赞
踩
参考博客:https://blog.csdn.net/Biyoner/article/details/88916247
https://www.zhihu.com/question/47158818/answer/670431317
卷积神经网络的两大核心思想核心思想:局部连接、权值共享
这两大思想的作用就是减少参数量,节省运算时间和空间。
如何理解局部连接和权值共享。
局部连接
这种说法是相对于传统神经网络,用矩阵乘法来建立输入与输出关系的。每一个输出与每一个输入都会有交互(全连接)。而卷积网络用系数连接限制了输入特征层和隐藏层节点之间的连接数,降低了参数数量。如果没有局部连接,输入特征层和隐藏层节点的连接就变成了全连接。
权值共享
所谓权值共享,用一个filter区扫描输入特征层,filter里的值称为权值,共享指的是图片中每一个位置都用同一个filter去扫描。
一个m×m的卷积核,如果通道数是c那么进行一次卷积的计算量为m×m×c,如果没有权值共享,那么卷积核的参数数量将与输入特征层的参数数量相同。输入特征层的大小为256×256×3,如果没有权值共享的卷积核参数量就是256×256×3=196608
图片中底层的特征与特征所在的位置是无关的,无论文在图片中见得特征还是在图片边缘的特征,都可以利用卷积进行特征提取。在提取浅层特征的前几层网络可以使用相同的filter,也就是权值共享。
而较深层的网络特征与特征所在的位置是有关的。比如识别图片中的一只猫的眼睛、鼻子、嘴,不同的位置就需要使用不同的权重,这里卷积操作就不能胜任了,需要局部全连接层或者全连接层。
参考博客
输入特征层大小为:m×m×c
卷积核大小为 :f×f×c
stride=s,padding=p
卷积操作
输出特征层大小为:(m+2p-f)/s+1×(m+2p-f)/s+1
输入特征层大小为:m×m×c
卷积核大小为 :f×f×c
stride=s
池化层
没有padding填充输出特征层大小为:(m-f)/s+1
输入特征层大小为:m×m×c
卷积核大小为 :f×f×c
stride=s,padding=p
卷积操作的计算量:(f×f+1)×c
参考博客:卷积神经网络中感受野的详细介绍
参考博客:如何计算感受野(Receptive Field)——原理
输入参数直接计算感受野的网站
感受野的定义:卷积神经网络每一层输出的特征图(feature map)上的像素点在输入图片上映射的区域大小。在输出特征层上的一个像素点对应输入特征层上多少个像素点。
举个例子:
输入特征层的大小为5×5,
第一次卷积操作
步长为2
padding=1
卷积核大小为3×3
得到特征层大小为3×3
第二次卷积操作
步长为2
padding=1
卷积核大小为3×3
得到特征层大小为2×2
计算每一层的感受野,5×5→3×3→2×2
可以得出2×2特征层每一个像素点在前一层特征层上映射的范围大小就等于第二次卷积操作卷积核的大小3×3。
由这个感受野计算的结果向前递推,计算出在原始输入图像上的感受野(3-1)×2+3=7
递推:
(RFi表示第i层特征在第i-1层特征上的感受野)
RF(i-1)=(RFi-1)*stride+kernel
这个公式是怎么来的:
不考虑padding,计算卷积操作输出特征层的大小out = (in-kernel)/stride+1
这里已知输出特征层的大小,计算输入特征层大小
in=(out-1)*stride+kernel
直到计算出输出特征层在输入图像上的感受野大小
个人理解:就是最后一个特征层(第i层)的像素点对应上一层(第i-1层)中特征映射的大小为最后一次卷积操作卷积核的大小(3×3),然后计算这个3×3的区域在前一层(第i-2层)特征映射的大小,一直计算到输入的特征层,也就是最后一个特征层上的一个像素点对应在输入图片上的感受野。
代码来自博客:https://blog.csdn.net/Biyoner/article/details/88916247
链接:https://pan.baidu.com/s/1JLYDCmYkbjJJVZMMwFQGLw
提取码:jaxt
感谢:
https://blog.csdn.net/Biyoner/article/details/88916247
https://www.zhihu.com/question/47158818/answer/670431317
感受野计算+卷积/池化输出尺寸计算+卷积参数量计算
卷积神经网络中感受野的详细介绍
如何计算感受野(Receptive Field)——原理
输入参数直接计算感受野的网站
莫听穿林打叶声,何妨吟啸且徐行
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。