长春做网站外包,深圳开发app的公司,不用网站做cpa,网站管理助手ftp连接不上目录 第一门课#xff1a;神经网络和深度学习 (Neural Networks and Deep Learning)第四周#xff1a;深层神经网络(Deep Neural Networks)4.5 为什么使用深层表示#xff1f;#xff08;Why deep representations?#xff09; 第一门课#xff1a;神经网络和深度学习 (… 目录 第一门课神经网络和深度学习 (Neural Networks and Deep Learning)第四周深层神经网络(Deep Neural Networks)4.5 为什么使用深层表示Why deep representations? 第一门课神经网络和深度学习 (Neural Networks and Deep Learning)
第四周深层神经网络(Deep Neural Networks)
4.5 为什么使用深层表示Why deep representations?
我们都知道深度神经网络能解决好多问题其实并不需要很大的神经网络但是得有深度得有比较多的隐藏层这是为什么呢我们一起来看几个例子来帮助理解为什么深度神经网络会很好用。 首先深度网络究竟在计算什么如果你在建一个人脸识别或是人脸检测系统深度神经网络所做的事就是当你输入一张脸部的照片然后你可以把深度神经网络的第一层当成一个特征探测器或者边缘探测器。在这个例子里我会建一个大概有 20 个隐藏单元的深度神经网络是怎么针对这张图计算的。隐藏单元就是这些图里这些小方块第一张大图举个例子这个小方块第一行第一列就是一个隐藏单元它会去找这张照片里“|”边缘的方向。那么这个隐藏单元第四行第四列可能是在找“—”水平向的边缘在哪里。之后的课程里我们会讲专门做这种识别的卷积神经网络到时候会细讲为什么小单元是这么表示的。你可以先把神经网络的第一层当作看图然后去找这张照片的各个边缘。我们可以把照片里组成边缘的像素们放在一起看然后它可以把被探测到的边缘组合成面部的不同部分第二张大图。比如说可能有一个神经元会去找眼睛的部分另外还有别的在找鼻子的部分然后把这许多的边缘结合在一起就可以开始检测人脸的不同部分。最后再把这些部分放在一起比如鼻子眼睛下巴就可以识别或是探测不同的人脸第三张大图。
你可以直觉上把这种神经网络的前几层当作探测简单的函数比如边缘之后把它们跟后几层结合在一起那么总体上就能学习更多复杂的函数。这些图的意义我们在学习卷积神经网络的时候再深入了解。还有一个技术性的细节需要理解的是边缘探测器其实相对来说都是针对照片中非常小块的面积。就像这块第一行第一列都是很小的区域。面部探测器就会针对于大一些的区域但是主要的概念是一般你会从比较小的细节入手比如边缘然后再一步步到更大更复杂的区域比如一只眼睛或是一个鼻子再把眼睛鼻子装一块组成更复杂的部分。
这种从简单到复杂的金字塔状表示方法或者组成方法也可以应用在图像或者人脸识别以外的其他数据上。比如当你想要建一个语音识别系统的时候需要解决的就是如何可视化语音比如你输入一个音频片段那么神经网络的第一层可能就会去先开始试着探测比较低层次的音频波形的一些特征比如音调是变高了还是低了分辨白噪音咝咝咝的声音或者音调可以选择这些相对程度比较低的波形特征然后把这些波形组合在一起就能去探测声音的基本单元。在语言学中有个概念叫做音位比如说单词 cac 的发音“嗑”就是一个音位a 的发音“啊”是个音位t 的发音“特”也是个音位有了基本的声音单元以后组合起来你就能识别音频当中的单词单词再组合起来就能识别词组再到完整的句子。 所以深度神经网络的这许多隐藏层中较早的前几层能学习一些低层次的简单特征等到后几层就能把简单的特征结合起来去探测更加复杂的东西。比如你录在音频里的单词、词组或是句子然后就能运行语音识别了。同时我们所计算的之前的几层也就是相对简单的输入函数比如图像单元的边缘什么的。到网络中的深层时你实际上就能做很多复杂的事比如探测面部或是探测单词、短语或是句子。
有些人喜欢把深度神经网络和人类大脑做类比这些神经科学家觉得人的大脑也是先探测简单的东西比如你眼睛看得到的边缘然后组合起来才能探测复杂的物体比如脸。这种深度学习和人类大脑的比较有时候比较危险。但是不可否认的是我们对大脑运作机制的认识很有价值有可能大脑就是先从简单的东西比如边缘着手再组合成一个完整的复杂物体这类简单到复杂的过程同样也是其他一些深度学习的灵感来源之后的视频我们也会继续聊聊人类或是生物学理解的大脑。
Small隐藏单元的数量相对较少 Deep隐藏层数目比较多 深层的网络隐藏单元数量相对较少隐藏层数目较多如果浅层的网络想要达到同样的计算结果则需要指数级增长的单元数量才能达到。
另外一个关于神经网络为何有效的理论来源于电路理论它和你能够用电路元件计算哪些函数有着分不开的联系。根据不同的基本逻辑门譬如与门、或门、非门。在非正式的情况下这些函数都可以用相对较小但很深的神经网络来计算小在这里的意思是隐藏单元的数量相对比较小但是如果你用浅一些的神经网络计算同样的函数也就是说在我们不能用很多隐藏层时你会需要成指数增长的单元数量才能达到同样的计算结果。 我再来举个例子用没那么正式的语言介绍这个概念。假设你想要对输入特征计算异或或是奇偶性你可以算123 … … 假设你有或者个特征如果你画一个异或的树图先要计算12的异或然后是3和4。技术上来说如果你只用或门还有 非门的话你可能会需要几层才能计算异或函数但是用相对小的电路你应该就可以计算异或了。然后你可以继续建这样的一个异或树图上图左那么你最后会得到这样的电路来输出结果 y ^ y \hat{y} y y^y也就是输入特征的异或或是奇偶性要计算异或关系。这种树图对应网络的深度应该是(())那么节点的数量和电路部件或是门的数量并不会很大你也不需要太多门去计算异或。
但是如果你不能使用多隐层的神经网络的话在这个例子中隐层数为(())比如你被迫只能用单隐藏层来计算的话这里全部都指向从这些隐藏单元到后面这里再输出那么要计算奇偶性或者异或关系函数就需要这一隐层上图右方框部分的单元数呈指数增长才行因为本质上来说你需要列举耗尽 2 n 2^n 2n种可能的配置或是 2 n 2^n 2n种输入比特的配置。异或运算的最终结果是 1 或 0那么你最终就会需要一个隐藏层其中单元数目随输入比特指数上升。精确的说应该是 2 n − 1 2^{n−1} 2n−1个隐藏单元数也就是( 2 n 2^n 2n)。
我希望这能让你有点概念意识到有很多数学函数用深度网络计算比浅网络要容易得多我个人倒是认为这种电路理论对训练直觉思维没那么有用但这个结果人们还是经常提到的用来解释为什么需要更深层的网络。
除了这些原因说实话我认为“深度学习”这个名字挺唬人的这些概念以前都统称为有很多隐藏层的神经网络但是深度学习听起来多高大上太深奥了对么这个词流传出去以后这是神经网络的重新包装或是多隐藏层神经网络的重新包装激发了大众的想象力。抛开这些公关概念重新包装不谈深度网络确实效果不错有时候人们还是会按照字面意思钻牛角尖非要用很多隐层。但是当我开始解决一个新问题时我通常会从 logistic 回归开始再试试一到两个隐层把隐藏层数量当作参数、超参数一样去调试这样去找比较合适的深度。但是近几年以来有一些人会趋向于使用非常非常深邃的神经网络比如好几打的层数某些问题中只有这种网络才是最佳模型。
这就是我想讲的为什么深度学习效果拔群的直觉解释现在我们来看看除了正向传播以外反向传播该怎么具体实现。