cnn算法 | 您所在的位置:网站首页 › cnn卷积深度神经网络算法 › cnn算法 |
机器学习算法完整版见fenghaootong-github 卷积神经网络原理(CNN)卷积神经网络CNN的结构一般包含这几个层: 输入层:用于数据的输入卷积层:使用卷积核进行特征提取和特征映射激励层:由于卷积也是一种线性运算,因此需要增加非线性映射池化层:进行下采样,对特征图稀疏处理,减少数据运算量。全连接层:通常在CNN的尾部进行重新拟合,减少特征信息的损失CNN的三个特点: 局部连接:这个是最容易想到的,每个神经元不再和上一层的所有神经元相连,而只和一小部分神经元相连。这样就减少了很多参数权值共享:一组连接可以共享同一个权重,而不是每个连接有一个不同的权重,这样又减少了很多参数。 下采样:可以使用Pooling来减少每层的样本数,进一步减少参数数量,同时还可以提升模型的鲁棒性。 在CNN的输入层中,(图片)数据输入的格式 与 全连接神经网络的输入格式(一维向量)不太一样。CNN的输入层的输入格式保留了图片本身的结构。 对于黑白的 28×28 的图片,CNN的输入是一个 28×28 的的二维神经元: 而对于RGB格式的28×28图片,CNN的输入则是一个 3×28×28 的三维神经元(RGB中的每一个颜色通道都有一个 28×28 的矩阵) 卷积层这一层就是求内积 左边是输入,中间部分是两个不同的滤波器Filter w0、Filter w1,最右边则是两个不同的输出。 最左边是输出为: ai.j=f(∑m=02∑n=02wm,nxi+m,j+n+wb) a i . j = f ( ∑ m = 0 2 ∑ n = 0 2 w m , n x i + m , j + n + w b )以上图为例: wm,n w m , n :filter的第m行第n列的值 xi,j x i , j : 表示图像的第i行第j列元素 wb w b :用表示filter的偏置项 ai,j a i , j :表示Feature Map的第i行第j列元素 f f :表示Relu激活函数 激励层激励层主要对卷积层的输出进行一个非线性映射,因为卷积层的计算还是一种线性计算。使用的激励函数一般为ReLu函数: f(x)=max(x,0)f(x)=max(x,0)卷积层和激励层通常合并在一起称为“卷积层”。 池化层当输入经过卷积层时,若感受视野比较小,布长stride比较小,得到的feature map (特征图)还是比较大,可以通过池化层来对每一个 feature map 进行降维操作,输出的深度还是不变的,依然为 feature map 的个数。 池化层也有一个“池化视野(filter)”来对feature map矩阵进行扫描,对“池化视野”中的矩阵值进行计算,一般有两种计算方式: Max pooling:取“池化视野”矩阵中的最大值Average pooling:取“池化视野”矩阵中的平均值实例 CNN实例 |
CopyRight 2018-2019 实验室设备网 版权所有 |