这里出现了一系列新的名词,我们已经知道全连接是什么意思,这里再简单说明一下什么是卷积和池化。“卷积”(Convolution)原本是泛函分析中的概念,它是一种数学计算,信号变换中经常要用到它。在我们现在讨论的语境里,它是一种特征提取操作,最初被引入神经网络,就是为了处理模式识别中的图像特征提取的。它就像是一个漏斗,不断地在图片中平移,从下层图像中筛选数据。这个“漏斗”(专业上称作“卷积核”,Convolution Kernel)可以是各种形状的,经过漏斗过滤后,筛掉了一些数据,但可以获得更高维度的特征。譬如漏斗从像素中找出边缘,从边缘中找出形状,从形状中找出物体。漏斗对数据运算处理的过程,就像是人脑对物体分层抽象的过程。这个过程在图片识别里很关键,无论是对缩减数据规模(譬如 1000 万像素的图片,以10×10 的方形作卷积的话,下层节点规模可以缩小到 10 万)还是对提取特征都是极为有用的。
而“池化”(Pooling)的本质就是采样共享,譬如以颜色采样为例,采样区域中存在若干个像素,可能每个像素的颜色值都有少许差异,原本需要若干个对应的数字去存储它们的颜色,而池化过程是用同一个采样值(最大值或者平均值之类)来代替所有像素的颜色值,这样多个像素共用一个颜色值,便能够降低数据量。
前面 7.5.4 节提到的拉开深度学习热潮序幕的标志性事件—辛顿小组设计的 AlexNet 就是一个很成功的卷积神经网络,它是一个 8 层网络,其中包括 5 个卷积、池化和 Dropout 层(Dropout 是辛顿发明的一种用于避免过拟合的技巧)以及 3 个全连接层,使用 ReLU 作为激活函数,使用批量随机梯度下降算法训练。辛顿小组共使用两块 GTX 580 GPU 训练了 5 到 6 天,完成了ImageNet 数据库中 22000 种共 1500 万个标签数据的学习,达到了 16.4% 的最低错误率而夺得冠军。
第 7 章 深度学习时代
293