首页 > 编程知识 正文

卷积神经网络中的卷积,卷积神经网络卷积公式

时间:2023-05-06 07:30:10 阅读:267908 作者:4299

引言

相信刚学卷积神经网络的人来说,要理解卷积神经网络是一件不容易的事情,我们先来看看卷积神经网络中要知道的卷积计算

相关词汇

filter = 卷积核
feature map = 卷积之后得到的输出结果
感受野(Receptive Field) = 卷积神经网络各输出层每个像素点在原始图像上的映射区域大小
两层 33 卷积操作的有效区域(感受野)是55 (所有filter的stride=1,pad=0),示意图如下:

卷积过程


如上图是一个6x6的输入和一个3x3的卷积核以步长为1进行卷积。

卷积神经网络结构

一个卷积神经网络里包括5个部分——输入层、若干卷积操作和池化层结合的部分、全局平均池化层、输出层:

输入层:将每个像素代表一个特征节点输入网络。卷积操作部分:由多个滤波器组合的卷积层池化层:将卷积结果降维全局平均池化层:对生成的 feature map 取全局平均值输出层:需要分成几类,相应的就会有几个输出节点。每个输出节点都代表当前样本属于该类型的概率。 padding规则

padding 属性的意义是定义元素框与元素内容之间的空间。
为了方便解释,我们先定义几个变量

输入的尺寸中高和宽定义成 in_height、in_width。卷积核的高和宽定义成 filter_height、filter_width。输出的尺寸中高和宽定义成 output_height、output_width。步长的高兴的学姐方向定义成 strides_height、strides_width。 1. VALID情况

输出宽和高的公式表示如下:
output_width = (in_width-filter_width + 1) / strides_width (结果向上取整)
output_height = (in_height-filter_height + 1) / strides_height(结果向上取整)

2. SAME情况

输出的宽和高将与卷积核没有关系,具体公式表示如下:
output_width = (in_width-filter_width + 1) / strides_width (结果向上取整)
output_height = (in_height-filter_height + 1) / strides_height(结果向上取整)
注 意 color{red}{注意} 注意:补零规则
pad_height = max((output_height-1) x strides_height +filter_height-in_height, 0)
pad_width = max((output_width-1) x strides_width +filter_height-in_width, 0)
pad_top = pad_height / 2
pad_bottom = pad_height - pad_top
pad_left = pad_width / 2
pad_right = pad_width - pad_left
上面公式表示中:

pad_height:代表高度方向要填充 0 的行列pad_width:代表宽度方向要填充 0 的列数pad_top、pad_bottom、pad_left、pad_right:分别代表上、下、左、右这四个方向填充0的行、列数。 3.举例

假设用‘一个一维数据来举例,输入是 13,filter是 6,步长是 5,对于 padding 的取值有如下表示:
“VALID"相当于 padding,生成的宽度为 (13-6+1)/ 5 = 2 (向上取整)个数字。
inputs:
”SAME“=相当于 padding,生成的宽度为 13/5 = 3(向上取整)个数字
Padding 的方式可以如下计算:
Pad_width = (3-1) x 5+6-13 = 3
Pad_left = Pad_width / 2 = 3/2 = 1
Pad_right = pad_width - pad_left = 2

在左边补 1 个0,右边补 2 个0。

卷积有什么作用?

减少参数量,提取数据的重要特征,卷积的方式就可以看作是一个映射的过程。

参考资料

如果你想更加了解卷积神经网络的相关内容,请点击下方链接获取更多内容
https://pan.baidu.com/s/14jBtdx2d-4QHRgN7twdjSQ 提取码:ownj

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。