1989年古早的论文,为后续卷积神经网络的出现奠定了基础。
论文原文:https://ieeexplore.ieee.org/abstract/document/6795724
论文介绍
通过神经网络来识别手写数字,手写数字来源是手写邮政编码,输入大小为16*16尺寸的图,输出是10个分类概率。该论文通过设计网络架构,论证了如何将任务领域的约束条件整合到反向传播神经网络中。(这儿设计的网络架构就是卷积,提出了卷积神经网络的初步想法,只是当时作者还不知道它未来会叫卷积神经网络。这儿的限制就是说一个卷积核进行卷积时它的权重参数都是共享一致的,相当于施加了一个参数相等限制。)
为什么用卷积?
通过强制隐藏单元仅整合局部信息源,将此类先验知识融入网络架构。由于目标物体的显著特征可能出现在输入图像的任何位置,因此采用一组能在输入平面全域检测特定特征实例的检测器(卷积核),是较为合理的解决方案。由于特征的精确位置信息对分类任务无关紧要,因此在处理过程中可以适当舍弃部分位置信息(就是可以下采样,一定程度的降低空间分辨率),但是还是需要保留一部分粗略的位置信息。(这个位置信息怎么保留呢,就是按照卷积核移动的位置按次序把卷积得到的结果放在对应次序的位置上)
卷积的核心原理是什么?
然后提出了使用权重共享技术来构建能够在各个输入位置进行检测的特定特征检测器(就是在图片的不同位置使用参数不变的同一个卷积核进行卷积,因为目标物体的显著特征可能出现在输入图像的任何位置),相当于在连接中施加了参数相等的约束。
网络结构介绍
网络架构如下图:
三个隐藏层H1,H2,H3,一个输出层。输入尺寸是16*16的,H1层通过12个5*5的检测器(卷积核)进行卷积,步进值stride为2,然后得到12个8*8的特征映射,维度表示为(12,8,8),(12*8*8)*((5*5)+1)=19968(12*8*8的每个像素都是由5*5的输入视野上来的,然后再加上一个偏置参数b,所以连接数约为20000)。
H2层通过12个5*5*8的卷积核(相当于在H1层的输入的12个维度里面,按照顺序依次的选8个维度,维度的步进stride为1,长宽的步进还是2)。
然后是30个神经元的全连接层,最后的输出层是10个神经元的全连接层。
为什么16*16的输入尺度经过5*5大小的卷积核,在步进值stride为2的情况下得到了8*8的输出尺度呢?
如果按照现在的常规卷积方式的话,16*16的输入尺度,5*5的核,没有加padding,stride=2的话,输出尺度应该是6*6的,为什么会是8*8呢,见下图,当卷积卷到红框时按理就会停止,但是作者继续让其卷积直到在原始16*16的尺寸上无法在进行步进,超出边界的位置用了一个虚拟背景(这个背景设置为一个常数,值为-1)。
学到的内容总结
1.以前想不明白为什么可以用一个卷积核通过移动来卷一张图,同样不明白用多个卷积核有什么作用。之前看视频应该学过,但是可能学的还不够透彻。
现在明白了卷积核其实就是一个特征提取器,通过移动来提取一张图上各个位置的相同特征,在图像中一个位置很重要的特征在其他地方可能也很重要。(举个例子,比如光照,比如颜色的水平变化,垂直变化等),不同的卷积核就是不同的特征提取器,用来提取不同的特征。
2.只能说前人实在太牛了,我目前连前人肩膀都没爬上去。