人工神经网络——前馈神经网络——多层神经网络——CNN、DNN、DBN。

CNN(卷积神经网络)

CNN、RNN、LSTM等各种神经网络都是基于FCNN(全连接神经网络)出发的,最基础的原理都是由反向传播而来。

反向传播示意图:

混合深度神经网络 神经网络 深度神经网络_神经网络

神经网络的训练是有监督的学习,也就是输入X 有着与之对应的真实值Y ,神经网络的输出Y 与真实值Y 之间的损失Loss 就是网络反向传播的东西。整个网络的训练过程就是不断缩小损失Loss 的过程。

卷积神经网络的各层中的神经元是3维排列的:宽度、高度和深度。在卷积神经网络中的深度指的是激活数据体的第三个维度,而不是整个网络的深度,整个网络的深度指的是网络的层数。

卷积神经网络构成

卷积神经网络主要由这几类层构成:输入层、卷积层,ReLU层、池化(Pooling)层和全连接层(全连接层和常规神经网络中的一样)。卷积层负责提取图像中的局部特征;池化层用来大幅降低参数量级(降维、防止过拟合);全连接层类似传统神经网络的部分,用来输出想要的结果。

在实际应用中往往将卷积层与ReLU层共同称之为卷积层,所以卷积层经过卷积操作也是要经过激活函数的。具体说来,卷积层和全连接层(CONV/FC)对输入执行变换操作的时候,不仅会用到激活函数,还会用到很多参数,即神经元的权值w和偏差b;而ReLU层和池化层则是进行一个固定不变的函数操作。卷积层和全连接层中的参数会随着梯度下降被训练,这样卷积神经网络计算出的分类评分就能和训练集中的每个图像的标签吻合了。

卷积层——特征提取

在处理图像这样的高维度输入时,让每个神经元都与前一层中的所有神经元进行全连接是不现实的。相反,我们让每个神经元只与输入数据的一个局部区域连接。该连接的空间大小叫做神经元的感受野(receptive field),它的尺寸是一个超参数(其实就是滤波器的空间尺寸)。在深度方向上,这个连接的大小总是和输入量的深度相等。

这个过程我们可以理解为我们使用一个过滤器(卷积核)来过滤图像的各个小区域,从而得到这些小区域的特征值。

卷积层运算过程如图,用一个卷积核扫完整张图片。

混合深度神经网络 神经网络 深度神经网络_全连接_02

 池化层——下采样,数据降维,避免过拟合

池化过程如图,以最大池化为例

混合深度神经网络 神经网络 深度神经网络_池化_03

可以看到,原始图片是5*5的,我们对其下采样,采样窗口为3*3,最终将其下采样为一个3*3大小的特征图。之所以这么做的原因,是因为即使做完了卷积,图像仍然很大(因为卷积核比较小),所以为了降低数据维度,就进行下采样。

 总结:池化层相比卷积层可以更有效的降低数据维度,这么做不但可以大大减少运算量,还可以有效的避免过拟合。

全连接层——输出结果

经过卷积层和池化层处理过的数据输入到全连接层,得到最终想要的结果。经过卷积层和池化层降维过的数据,全连接层才能”跑得动”,不然数据量太大,计算成本高,效率低下。

典型的 CNN 并非只是上面提到的3层结构,而是多层结构。比如:卷积——池化——卷积——池化——卷积——全连接层

CNN应用

只写目前对于我学习有关的内容

目标分割——就是一个像素级的分类

可以对前景和背景进行像素级的区分、再高级一点还可以识别出目标并且对目标进行分类。

 总结:CNN的价值

  1. 能够将大数据量的图片有效的降维成小数据量(并不影响结果)
  2. 能够保留图片的特征,类似人类的视觉原理

参考:卷积神经网络(CNN)详解 - 知乎 (zhihu.com)

卷积神经网络 – CNN