[C1W4] Neural Networks and Deep Learning - Deep Neural Networks

第四周:深层神经网络(Deep Neural Networks)

深层神经网络(Deep L-layer neural network)

DLI(深度学习学院 deep learning institute)已经意识到有一些函数,只有非常深的神经网络能学会,而更浅的模型则办不到。尽管对于任何给定的问题很难去提前预测到底需要多深的神经网络,所以先去尝试逻辑回归,尝试一层然后两层隐含层,然后把隐含层的数量看做是另一个可以*选择大小的超参数,然后再保留交叉验证数据上评估,或者用你的开发集来评估。

深层网络中的前向传播(Forward propagation in a Deep Network)

深度神经网络的正向传播步骤和单隐层的神经网络非常类似,只不过是多重复几遍。

对于每一层的正向传播需要使用 for 循环,因为目前向量化无法实现一次计算所有层的正向传播,只能用 for 循环。

核对矩阵的维数(Getting your matrix dimensions right)

在做深度神经网络的正向传播和反向传播时,确认所有的矩阵维数前后一致,可以大大提高代码通过率。具体可参考 3.10 图中的维度比对。

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

[C1W4] Neural Networks and Deep Learning - Deep Neural Networks

首先,深度网络究竟在计算什么?如果你在建一个人脸识别或是人脸检测系统,深度神经网络所做的事就是,当你输入一张脸部的照片,然后你可以把深度神经网络的第一层,当成一个特征探测器或者边缘探测器。在这个例子里,我会建一个大概有20个隐藏单元的深度神经网络,是怎么针对这张图计算的。隐藏单元就是这些图里这些小方块(第一张大图),举个例子,这个小方块(第一行第一列)就是一个隐藏单元,它会去找这张照片里“|”边缘的方向。那么这个隐藏单元(第四行第四列),可能是在找(“—”)水平向的边缘在哪里。之后的课程里,我们会讲专门做这种识别的卷积神经网络,到时候会细讲,为什么小单元是这么表示的。你可以先把神经网络的第一层当作看图,然后去找这张照片的各个边缘。我们可以把照片里组成边缘的像素们放在一起看,然后它可以把被探测到的边缘组合成面部的不同部分(第二张大图)。比如说,可能有一个神经元会去找眼睛的部分,另外还有别的在找鼻子的部分,然后把这许多的边缘结合在一起,就可以开始检测人脸的不同部分。最后再把这些部分放在一起,比如鼻子眼睛下巴,就可以识别或是探测不同的人脸(第三张大图)。

你可以直觉上把这种神经网络的前几层当作探测简单的函数,比如边缘,之后把它们跟后几层结合在一起,那么总体上就能学习更多复杂的函数。这些图的意义,我们在学习卷积神经网络的时候再深入了解。还有一个技术性的细节需要理解的是,边缘探测器其实相对来说都是针对照片中非常小块的面积。就像这块(第一行第一列),都是很小的区域。面部探测器就会针对于大一些的区域,但是主要的概念是,一般你会从比较小的细节入手,比如边缘,然后再一步步到更大更复杂的区域,比如一只眼睛或是一个鼻子,再把眼睛鼻子装一块组成更复杂的部分。

这种从简单到复杂的金字塔状表示方法或者组成方法,也可以应用在图像或者人脸识别以外的其他数据上。比如当你想要建一个语音识别系统的时候,需要解决的就是如何可视化语音,比如你输入一个音频片段,那么神经网络的第一层可能就会去先开始试着探测比较低层次的音频波形的一些特征,比如音调是变高了还是低了,分辨白噪音,咝咝咝的声音,或者音调,可以选择这些相对程度比较低的波形特征,然后把这些波形组合在一起就能去探测声音的基本单元。在语言学中有个概念叫做音位,比如说单词ca,c的发音,“嗑”就是一个音位,a的发音“啊”是个音位,t的发音“特”也是个音位,有了基本的声音单元以后,组合起来,你就能识别音频当中的单词,单词再组合起来就能识别词组,再到完整的句子。

搭建神经网络块(Building blocks of deep neural networks)

[C1W4] Neural Networks and Deep Learning - Deep Neural Networks

[C1W4] Neural Networks and Deep Learning - Deep Neural Networks

前向传播和反向传播(Forward and backward propagation)

[C1W4] Neural Networks and Deep Learning - Deep Neural Networks

[C1W4] Neural Networks and Deep Learning - Deep Neural Networks

[C1W4] Neural Networks and Deep Learning - Deep Neural Networks

参数VS超参数(Parameters vs Hyperparameters)

详见第二门课。

深度学习和大脑的关联性(What does this have to do with the brain?)

深度学习和大脑有什么关联性吗?答案是:关联不大

那么人们为什么会说深度学习和大脑相关呢?

当你在实现一个神经网络的时候,一个神经网络的逻辑单元可以看成是对一个生物神经元的过度简化,但迄今为止连神经科学家都很难解释究竟一个神经元能做什么,它可能是极其复杂的;它的一些功能可能真的类似logistic回归的运算,但单个神经元到底在做什么目前还没有人能够真正可以解释。

深度学习的确是个很好的工具,在监督学习中,来学习各种灵活复杂的函数(从输入 \(x\) 到输出 \(y\) 的映射)。但这种和人类大脑的类比,在这个领域的早期也许值得一提。但现在这种类比已经逐渐过时了,我自己也在尽量减少使用这样的说法。

这就是神经网络和大脑的关系,我相信在计算机视觉,或其他的学科都曾受人类大脑启发,还有其他深度学习的领域也曾受人类大脑启发。但是个人来讲我用这个人类大脑类比的次数逐渐减少了。

上一篇:开源代码


下一篇:Highway Networks