cnn算法 您所在的位置:网站首页 cnn卷积深度神经网络算法 cnn算法

cnn算法

2023-09-18 08:44| 来源: 网络整理| 查看: 265

机器学习算法完整版见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:取“池化视野”矩阵中的平均值

这里写图片描述

全连接层 和神经网络一样 卷积神经网络的训练 前向计算每个神经元的输出值 aj a j ( 表示网络的第j个神经元,以下同);反向计算每个神经元的误差项 σj,σj σ j , σ j 在有的文献中也叫做敏感度(sensitivity)。它实际上是网络的损失函数 Ed E d 对神经元加权输入的偏导数计算每个神经元连接权重 wi,j w i , j 的梯度( wi,j w i , j 表示从神经元i连接到神经元j的权重) 最后,根据梯度下降法则更新每个权重即可。

实例

CNN实例



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有