对卷积神经网络 (CNN) 通俗形象的理解

哈哈,晚上学习学兴奋了,感觉自己对CNN有了比较深入和形象的理解,就想着写成文字给大家分享下,欢迎老铁们批评指正,现在都快凌晨三点了我要睡了,就不插入图片说明了,见谅!!(●ˇ∀ˇ●)

 CNN= 数据输入层 (Input Layer)+ { [卷积计算层(CONV Layer )*a + ReLU激励层 (ReLU Layer ) ]*b+ 池化层 (Pooling Layer ) }*c+全连接层 (FC Layer) * d 。

输入层:该层就不详说了,就是和传统机器学习模型的输入一样,做些数据预处理等操作,主要是中间三层。

卷积计算层:不同的卷积核(代表不同的权值W矩阵)就是不同的特征抽取方式,就像人眼看很多次物体一样,每次看到后从物体里得到的图片信息都是不一样的,比如第一次看物体从视野的左上角像卷积核一样扫描看到右下角观察出物体的轮廓,第二次以同样扫描方式观测出物体的颜色分布,第三次以同样扫描方式观测出物体的相对大小,依此类推,第K次扫描观察出物体的第K个特征,总共看物体N次,这个n就是卷积的次数(由于这里一个卷积里面只有一个卷积核所以这个卷积层一共也有n个卷积核),那么一个卷积里面有三个卷积核的话就可以看成三个人每次以同样的方式看物体,每次看到物体后综合下三个人看到的结果(相当于三个卷积结果累加)给出此种观察方式的观察结果,所以该卷积层一共有N个卷积,N*3卷积。接下来再卷积层2,卷积层3按照同样方式运算,但这就无法用人类语言比拟了,以我的语言能力。

激励层:将卷积层的输出结果做一次非线性的变换,激励函数作用是使每个神经元的输出能对输入的特征进行二分类(比如变为0和1),那莫激励层就相当于是将卷积层里的所有输出结果做一个二分类(比如变为0和1),那么这莫多位0和1就可以表示无穷多种分类,假如卷积层有100个输出结果,那么激励层的的输出就可以用100个二进制位来表示,这样的话就更容易(是机器更容易)分辨出数据的差别

池化层:就相当于对特征降维在尽可能不丢失特征信息的情况下降维来降低数据量以降低运算量,还有就是防止过拟合(原有数据保留太完整,当然很有可能造成过拟合),池化方法有两种,最大值池化和平均值池化,平均值池化很好理解,因为均值最能体现数据(不同数值集)的大小,最大值池化就是用最大值代表某块区域(就是卷积层得出的feature map中一小块方形的数值矩阵)的数值大小,这样,一小块方形区域数值矩阵就变成了一个数,如此,在整个feature map上池化就把若干个小方形区域转换成了若干个数值,从而达到降维目的。

全连接层:相当于传统的神经网络的隐藏层和输出层,将FC层前面输出的feature map再做几次加权运算输出最后的label。

你可能感兴趣的:(对卷积神经网络 (CNN) 通俗形象的理解)