具体在第五次汇报
卷积神经网络是多层感知机(MLP)的变种。卷积神经网络(Convolutional Neural Networks)是一种包含卷积计算且具有深度结构的前馈神经网络,CNN具有表征学习的能力,能够按阶层对输入数据进行平移不变分类。CNN的设计灵感来源于动物视觉系统分级处理信息的能力,即较低层的神经网络提取图像的浅层特征(如边缘信息),较高层的神经网络提取图像的深层特征(如图像的某个像素块),最终得到图像的整体特征。CNN可以进行监督学习和非监督学习,其隐含层内的卷积核参数共享和层间连接的稀疏性使得卷积神经网络能够以较小的计算量对格点化特征。
1.输入层
输入层的作用就是将图像转换为其对应的由像素值构成的二维矩阵,并将此二维矩阵存储,等待后面几层的操作。
- 去中心化,将样本中心值作为原点,具体实现为将样本值除以样本均值.
- 归一化,将样本坐标幅度缩减到0-1之间,降低样本差异带来的干扰。
- PCA降维,将高维数据投影到低维上,保留主要特征,降低数据复杂度。
2.卷积层
通过卷积运算提取输入数据的局部特征。卷积层中的每个卷积核可以提取一种特定的特征,多个卷积核可以并行工作以提取不同类型的特征。
3.激活层
完成卷积操作后,会得到一个新的特征图,但这个特征图的数值仅仅是线性组合的结果,表达能力有限。此时,激活函数就会被应用到特征图的每个元素上,引入非线性因素。
4.池化层
当特征图非常多的时候,意味着我们得到的特征也非常多,但是这么多特征都是我们所需要的么?显然不是,其实有很多特征我们是不需要的,而这些多余的特征通常会给我们带来如下两个问题:过拟合、维度过高。
为了解决这个问题,我们可以利用池化层。池化层又称为下采样,也就是说,当我们进行卷积操作后,再将得到的特征图进行特征提取,将其中最具有代表性的特征提取出来,通过减小特征图的大小来减少计算复杂性,可以起到减小过拟合和降低维度的作用。常见的池化操作包括最大池化和平均池化,通过选择池化窗口内的最大值或平均值来实现。这有助于提取最重要的特征。
5. 多层堆叠
CNN通常由多个卷积和池化层的堆叠组成,以逐渐提取更高级别的特征。深层次的特征可以表示更复杂的模式。
6. 全连接层
最后,全连接层将提取的特征映射转化为网络的最终输出。这可以是一个分类标签、回归值或其他任务的结果。通常全连接层在卷积神经网络尾部,全连接层和常规神经网络中一样,它的本质其实就是矩阵乘法再加上偏差。
假设还是上面人的脑袋的示例,现在我们已经通过卷积和池化提取到了这个人的眼睛、鼻子和嘴的特征,如果我想利用这些特征来识别这个图片是否是人的脑袋该怎么办呢?此时我们只需要将提取到的所有特征图进行“展平”,将其维度变为1*x,这个过程就是全连接的过程,也就是说,此步我们将所有的特征都展开并进行运算,最后会得到一个概率值,这个概率值就是输入图片是否是人的概率。
7.输出层
我们只需要将全连接层得到的一维向量经过计算后得到识别值的一个概率,当然,这个计算可能是线性的,也可能是非线性的。在深度学习中,我们需要识别的结果一般都是多分类的,所以每个位置都会有一个概率值,代表识别为当前值的概率,取最大的概率值,就是最终的识别结果。在训练的过程中,可以通过不断地调整参数值来使识别结果更准确,从而达到最高的模型准确率。