1.由于输入数据为图像,1024*1024*3水平的特征数量难以处理,通过引入卷积核进行对输入图像像素的批量卷积(或者按照d2l的说法,互相关运算,我觉得这个描述更能体现卷积核在其感受野内对图像小范围整体学习的特性)进行整体层面的特征学习。
2.通过调节卷积核,可以方便的降低特征数量。单通道stride为1且不考虑填充情况下,对a*b尺寸的图像通过一个c*d尺寸的卷积核,能够将a*b像素代表的信息压缩到(a-c+1)*(b-d+1),而更加重要的是,我们将需要反向传播优化的特征信息从全连接方法的a*b降低到了可以自由调节的c*d。
3.关于卷积核大小,d2l里提出:
卷积神经网络中卷积核的高度和宽度通常为奇数,例如1、3、5或7。 选择奇数的好处是,保持空间维度的同时,我们可以在顶部和底部填充相同数量的行,在左侧和右侧填充相同数量的列。
这句话可以这样理解,对2中例子a-c+1,当c为奇数时,显然为保证输出a-c+1与输入a有相同维度只需要增补偶数行即可。另外注意,对行列进行了增补代表卷积核运算的中心点(这也是奇数卷积核的优势,使用偶数卷积核由于找不到卷积的中心点会使得偶数卷积核不对称,导致在填充的时候像素特征不断偏移)和对应输出的值位置是不变的,即输出Y[i, j]
是通过以输入X[i, j]
为中心,与卷积核进行互相关计算得到的。
4.当存在步幅stride时,设垂直步幅e水平步幅f,则2中例子的输出尺度将变为(a-c+e+p)/e(向下取整),p为增加的行数。另外,可以将stride操作理解为采样,通过设置不同的stride对输入信号进行周期不同的采样
速记:(n-k+2p+s)/s,n为输入尺度,k为karnel,p为padding,s为stride
5.当对卷积核引入偏置bias时,为何反向传播对卷积核中不同位置参数分别进行调整,而这些不同参数却共用同一个偏置?我认为这是因为卷积核进行运算虽然是综合感受野内所有像素,但本质还是对单一像素点(中心点)进行调整的,所以这一偏置在反向传播中分别调整和给出一个统一值是没有区别的。
6.虽然和主题关系不大,补充一下大家一定要认真看代码啊...看VGG看到设定好输入输出尺寸直接在for循环反复添加新卷积层还以为有什么能够自动匹配两层间尺寸的特性,找了半天发现中间塞了一行尺寸调节的代码...