卷积神经网络的意义
多层感知机⼗分适合处理表格数据,其中⾏对应样本,列对应特征。对于表格数据,我们寻找的模式可能涉及特征之间的交互,但是我们不能预先假设任何与特征交互相关的先验结构。此时,多层感知机可能是最好的选择,然⽽对于⾼维感知数据,这种缺少结构的⽹络可能会变得不实⽤。
在传统的神经网络中,其输入通常是一个特征向量,需要人工设计特征,然后将这些特征计算的值组成特征向量,效果差。若把整副图像作为特征来训练神经网络,数据量大,效率低。
卷积神经网络的层级结构
数据输入层/ Input layer
卷积计算层/ CONV layer
ReLU激励层/ ReLU layer
池化层(汇聚层)/ Pooling layer
全连接层/ FC layer
网络流程:输入→((卷积→激励)×N→池化)×M→(全连接层→激励)×K→softmax→输出
1.数据输入层
该层要做的处理主要是对原始图像数据进行预处理,其中包括:
去均值:把输入数据各个维度都中心化为0
归一化:幅度归一化到同样的范围
PCA/白化:用PCA降维;白化是对数据各个特征轴上的幅度归一化
2.卷积计算层
局部关联,每个神经元看作一个滤波器(filter)
窗口(receptive field)滑动,filter对局部数据计算
3.激励层
把卷积层输出结果做非线性映射。
4.池化层(汇聚层)
池化层夹在连续的卷积层中间,用于压缩数据和参数的量,减小过拟合。
5.全连接层
两层之间所有神经元都有权重连接,通常全连接层在卷积神经网络尾部,与传统神经网络神经元连接方式一样。
卷积层
卷积层对输⼊和卷积核权重进⾏互相关运算,并在添加标量偏置之后产⽣输出。在⼆维互相关运算中,卷积窗⼝从输⼊张量的左上⻆开始,从左到右、从上到下滑动。当卷积窗⼝滑动到新⼀个位置时,包含在该窗⼝中的部分张量与卷积核张量进⾏按元素相乘,得到的张量再求和得到⼀个单⼀的
标量值,由此我们得出了这⼀位置的输出张量值。卷积层中的两个被训练的参数是卷积核权重和标量偏置。
汇聚层
与卷积层类似,汇聚层运算符由⼀个固定形状的窗⼝组成,该窗⼝根据其步幅⼤⼩在输⼊的所有区域上滑动,为固定形状窗⼝(有时称为汇聚窗⼝)遍历的每个位置计算⼀个输出。然⽽,不同于卷积层中的输⼊与卷积核之间的互相关计算,汇聚层不包含参数。相反,池运算是确定性的,我们通常计算汇聚窗⼝中所有元素的最⼤值或平均值。这些操作分别称为最⼤汇聚层(maximum pooling)和平均汇聚层(average pooling)。在这两种情况下,与互相关运算符⼀样,汇聚窗⼝从输⼊张量的左上⻆开始,从左往右、从上往下的在输⼊张量内滑动。在汇聚窗⼝到达的每个位置,它计算该窗⼝中输⼊⼦张量的最⼤值或平均值。计算最⼤值或平均值是取决于使⽤了最⼤汇聚层还是平均汇聚层。
卷积神经网络之优缺点
优点
•共享卷积核,对高维数据处理无压力
•无需手动选取特征,分类效果好
缺点
•需要调参,需要大样本量
•物理含义不明确
卷积神经网络LeNet(LeNet-5)
每个卷积块中的基本单元是⼀个卷积层、⼀个sigmoid激活函数和平均汇聚层。请注意,虽然ReLU和最⼤汇聚层更有效,但它们在20世纪90年代还没有出现。每个卷积层使⽤5 x 5卷积核和⼀个sigmoid激活函数。这些层将输⼊映射到多个⼆维特征输出,通常同时增加通道的数量。第⼀卷积层有6个输出通道,⽽第⼆个卷积层有16个输出通道。每个2 x 2池操作(步幅2)通过空间下采样将维数减少4倍。卷积的输出形状由批量⼤⼩、通道数、⾼度、宽度决定。
为了将卷积块的输出传递给稠密块,我们必须在⼩批量中展平每个样本。换⾔之,我们将这个四维输⼊转换成全连接层所期望的⼆维输⼊。这⾥的⼆维表⽰的第⼀个维度索引⼩批量中的样本,第⼆个维度给出每个样本的平⾯向量表⽰。LeNet的稠密块有三个全连接层,分别有120、84和10个输出。