如何理解卷积
1、什么是卷积:图像中不同数据窗口的数据和卷积核(一个滤波矩阵)做内积的操作叫做卷积,该计算过程又称为滤波(filter),本质是提取图像不同频段的特征。
2、什么是卷积核:也称为滤波器filter,带着一组固定权重的神经元,通常是n*m二维的矩阵,n和m也是神经元的感受野。n*m矩阵中存的是对感受野中数据处理的系数。一个卷积核的滤波可以用来提取特定的特征(例如可以提取物体的轮廓、颜色深浅等)。通过卷积层从原始数据中提取出新的特征的过程又称为feature map(特征映射)。filter_size是指filter的大小,例如3*3;filter_num是指每种filter_size的filter个数,通常是通道个数
3、什么是卷积层:多个滤波器叠加便成了卷积层。
4、一个卷积层有多少个参数:一个卷积核使用一套权值以便“扫视”数据每一处时以同样的方式抽取特征,最终得到的是一种特征。在tensorflow定义conv2d时需要指定卷积核的尺寸,本人现在的理解是一个卷积层的多个卷积核使用相同的m*n,只是权重不同。则一个卷积层的参数总共m*n*filter_num个,比全连接少了很多。
5、通道怎么理解:通道可以理解为视角、角度。例如同样是提取边界特征的卷积核,可以按照R、G、B三种元素的角度提取边界,RGB在边界这个角度上有不同的表达;再比如需要检查一个人的机器学习能力,可以从特征工程、模型选择、参数调优等多个方面检测。
6、几个参数
深度depth:神经元个数,决定输出的depth厚度同时代表滤波器的个数
步长stride:决定滑动多少步可以到边缘。
填充值zero-padding:再外围边缘补充若干圈0,方便从初始位置以步长为单位可以刚好滑倒末尾位置,通俗地讲就是为了总长能被步长整除。
上面的两个例子中:
五个神经元,即depth=5,意味着有5个滤波器。
数据窗口每次移动两个步长取3*3的局部数据,即stride=2(步长是步子大小,不是步数)
zero=padding=1
7、如何理解权值共享,减少了神经网络需要训练的参数的个数?
数据窗口滑动,导致输入在变化,但中间滤波器Filter W0的权重是固定不变的,这个权重不变即所谓的CNN中的参数(权重)共享机制。