4.4 为什么使用深层表示?(Why deep representations?)

人脸识别

经过训练,神经网络第一层所做的事就是从原始图片中提取出人脸的轮廓与边缘,即边缘检测。这样每个神经元得到的是一些边缘信息。神经网络第二层所做的事情就是将前一层的边缘进行组合,组合成人脸一些局部特征,比如眼睛、鼻子、嘴巴等。再往后面,就将这些局部特征组合起来,融合成人脸的模样。

随着层数由浅到深,神经网络提取的特征也是从边缘到局部特征到整体,由简单到复杂。如果隐藏层足够多,那么能够提取的特征就越丰富、越复杂,模型的准确率就会越高。

语音识别模型

浅层的神经元能够检测一些简单的音调,较深的神经元能够检测出基本的音素,更深的神经元就能够检测出单词信息。如果网络够深,还能对短语、句子进行检测。

神经网络从左到右,神经元提取的特征从简单到复杂。特征复杂度与神经网络层数成正相关。特征越来越复杂,功能也越来越强大

深层网络另外一个优点:减少神经元个数,从而减少计算量

使用电路理论,计算逻辑输出:

y=x1x2x3xny=x_1\oplus x_2\oplus x_3\oplus\cdots\oplus x_n

对于这个逻辑运算,深度网络的结构是每层将前一层的两两单元进行异或,最后得到一个输出

整个深度网络的层数是log2(n)log_2(n),不包含输入层。总共使用的神经元个数为:

1+2++2log2(n)1=112log2(n)12=2log2(n)1=n11+2+\cdots+2^{log_2(n)-1}=1\cdot\frac{1-2^{log_2(n)}}{1-2}=2^{log_2(n)}-1=n-1

输入个数是nn,这种深层网络所需的神经元个数仅仅是n1n-1

如果不用深层网络,使用单个隐藏层,需要的神经元个数将是指数级别那么大。由于包含了所有的逻辑位(0011),则需要2n12^{n-1}个神经元

处理同一逻辑问题,深层网络所需的神经元个数比浅层网络要少很多

Last updated