到目前为止,我们使用的所有神经网络都是密集型的,一层中的每个神经元,上一层的所有激活,事实证明,仅仅使用密集层类型,可以建立一些非常强大的学习算法,并帮助你建立关于神经网络能做什么的进一步直觉,原来还有一些其他类型的层。
我们一直在利用神经元的激活,第二个隐藏层是每个单个激活值的函数,但事实证明,对于某些应用程序,设计神经网络的人可能会选择使用不同类型的层。
可能在某些工作中看到的另一种层类型,称为卷积层。举个例子来阐述,左边是输入X,是一个手写的数字九,构建一个隐藏层,它将计算不同的激活作为输入图像x的函数,但可以为第一个隐藏单元做些什么,画的是蓝色的,而不是说这个神经元可以看到图像中的所有像素,这个神经元只能观察这个小矩形区域的像素,第二个神经元,用洋红色来说明,也不会看整个输入图像x,相反,它只看像素,在图像的有限区域内,以此类推,对于第三个和第四个神经元,以此类推,一直到最后的神经元,它可能只看图像的那个区域,为什么只看一些像素而不是所有像素?它加快了计算速度,第二个优点是使用这种层的神经网络称为卷积层可以需要更少的训练数据,或者,它也不太容易过度拟合,当我们谈论使用学习算法的实用技巧时,这种类型的层,每个神经元只看一个区域,输入图像称为卷积层。
如何让卷积层发挥作用并推广使用?
如果你在神经网络中有多个卷积层,有时这叫卷积神经网络,为了说明卷积层,使用一维图像输入而不是二维,使用EKG,所以如果你在胸口放两个电极,你将记录如下所示的电压,与你的心跳相对应,实际上是在读取心电图信号,这些信号看起来像这样,试图诊断,如果病人有心脏问题,所以心电图信号有一个数字列表,对应于这个表面的高度,在不同的时间点,所以可能会有100个数字对应于这条曲线的高度,在100个不同的时间点,给出这个时间序列的学习任务,给这个心电图信号来分类,说这个病人是否有心脏病或一些可诊断的心脏病,以下是卷积神经网络可能做到的事情,我要接受心电图信号,把它旋转90度放在一边,所以我们这里由100个输入,X1,X2,....X100,当构造第一个隐藏层时,而不是有一个隐藏的单位,将所有100个数字作为输入,让我有第一个隐藏的单位,只看X1到X20,所以这相当于只看心电图信号的一个小窗口,第二个隐藏层在这里以不同的颜色显示,我们将从X11到X30,所以在心电图信号中看到了一个不同的窗口,第三个隐藏层看着另一个窗口,X21到X40,以此类推,X81到X100,它在心电图时间序列的末尾的一个小窗口,所以这是一个卷积层,因为这一层中的每一个单元只查看输入的有限窗口,现在神经网络的这一层有九个单元,下一层也可以是卷积层,所以在第二个隐藏层构建单元,不要查看上一层的所有九个激活,假设前一层的前五个激活,然后在第二层隐藏层的第二个单元可能会看到另外五个数字,这一层的第三个也是最后一个隐藏单元只会看到一个5,可能最后这些激活,a2得到一个Z状结肠单元的输入,确实考虑了2的所有三个值,为了对心脏病的存在或不存在进行二元分类,这是一个神经网络的例子,第一个隐藏层是卷积层,第二个隐藏层也是卷积层,然后输出层是Z状结肠层,事实证明,对于卷积层,有许多体系结构选择,例如单个神经元应该观察的输入窗口有多大,每层有多少个神经元通过有效的选择这些架构参数,可以建立新版本的神经网络,对于一些应用程序来说,这甚至比密集层更有效。