在上一篇中,主要读到了神经网络模型的超参数选择和训练效率方面的细节。这次就会进入更复杂的神经网络结构——即更广为人熟知的卷积神经网络。 本文还是以翻译PPT页内容为主,打星号的部分则是我的补充说明。
1 空间数据的神经网络——Neural Networks for Spatial Data
2 卷积神经网络的历史——History of Convolutional Neural Networks (CNNs)
1959年——Hubel和Weisel的神经学实验使人理解了哺乳动物的视觉系统的运作方式。
1980年——两人被授予了生理和医药方面的诺贝尔奖。
*例如:retina是视网膜、LGN( Lateral geniculate nucleus )是外侧膝状体、V1-V3是视觉皮层、 LOC( Lateral Occipital Complex )是枕外侧复合体。
*实验内容如图——主要是记录动物对屏幕上刺激产生的脑内电信号反应。
*核心观察:初始神经元仅对特定朝向的光有强烈反应。
核心思想:细胞被以层级的形式组织起来,作为特征探测器;低级细胞负责响应简单(二分)的激活类信息,而高级细胞负责响应组合起来的纹样模式。
1980年——新认知机Neocognitron被提出了,包含卷积层和降采样层。
*Neocognitron本文后续就沿用原词,因为本身也是日本科学家的生造词。
(蓝字)在这篇论文中,我们讨论了如何整合一个神经网络模型,以赋予其类似人类的图像识别能力...这一神经网络应用了与Hubel和Wiesel提出的视觉神经系统相似的结构。
*图1(上方)展示了Neocognitron的结构与Hubel和Wiesel提出的结构的相关对应。
*图2(下方)展示了Neocognitron的层间内连接方式。
当目标图样中的任意局部区域相符合时,复杂细胞被激活。
*如图,以上两种细胞也被提炼成卷积层和池层。后面的章节主要介绍这两部分。
*modifiable synapses是可塑性突触,在神经网络中它可以通过学习来调节连接的强度。
3 CNN,卷积层——CNNs –Convolutional Layers
假定有一个两层模型,每层100个节点——分别处理640*480和2048*1536的图像,权重项的排列组合就已经非常多了(如图)。
更多模型参数也会导致:更大的过拟合概率、增加训练时间、需要更多训练数据。
理念:每个节点仅接受上一层少量相邻节点的输入,共享少量参数。
为实现这一点,人们使用卷积的方式来代替全连接层中的矩阵乘法形式。
*图像类神经网络,其基本思想就可以概括为以过滤器等方式提取特征图。其它的文章中我也提到过,“过滤”这个常规翻译其实也不那么准确,就理解成“把一定的输入按一定规则加工后输出”比较合适。
*至此,可以和这个系列中读的其它图像处理类的内容形成参照了。
*图中的滑动过滤器依次执行3X3的矩阵,并计算(与过滤器核)点积。
*按矩阵的点积或内积定义来说,结果并不是一个标量。这里应该是计算了其卷积的结果。
*类似之前介绍的高斯模糊,与模糊核之间的运算也是卷积运算。
*课件中的公式中项的数量是有误的,应该就是9项,即逐项相乘后求和。之所以会有很多地方课件写成是DotProduct,是因为外网上这部分的出处就没有介绍得特别清楚。文末会附一篇关于这一话题的讨论链接。
对于上图中的例子,需要学习多少项权重?——4项(红、蓝、黄、绿的值)
如果使用全连接层,需要学习多少权重?——36(9个青绿色节点 X 4个洋红色节点——*这里就是图中节点的颜色,没有颜色识别上的含义)
对于上图中的例子,需要学习多少参数?——5(4个权重+1个偏置)
如果使用全连接层,需要学习多少参数?——40(36个权重+4个偏置)
参数共享能显著减少需要的参数数量,以及存储需求。
稀疏(而不是全部)连通也能显著减少需要的计算量。
Neocognitron中硬编码了过滤器的值。在下一篇中会介绍到过滤器值的学习过程。
*图中目标过滤器是人头像。例子是用一大幅画中识别出和过滤器接近的纹样。
*以图中的过滤器为例,它可以可视化为一款弯曲的轮廓(右图)。
*按图中的情况计算权重和,会得到相对较大的值。(*这里的权重和就是“互相关”的计算方式)
*按图中的情况计算权重和,会得到相对较小的值。(*这里直接就是0)
*图中的例子里,这个过滤器可以看作一个曲线探测器。对越接近的纹样,它的响应就越强;反之则响应越弱。
*很多过滤器在图像处理领域都读过,这里是反过来将其作为特征提取的核。
*对于过滤器执行后的值,应用激活函数——例如ReLU。
*这里对于点积的计算又是对的,5*5*3的两个chunk点积得到的就是75个维度的值。
*这个例子中,按前述的比例最终会得到28*28的激活图层。(*map这里翻译成图,但也要理解其有“映射”这一层意思)
当考虑到另一层,例如绿色过滤器——则有会有相同规模的激活图层。
如果有6个5X5的过滤器,则最终会得到6个独立的激活图层。
参数:用来构成激活图层的一组过滤器和偏置值。(也被称为——特征图)
*按图中的例子,第一个卷积层包含6个5X5X3的过滤器,得到的特征图规模如图。卷积层之间穿插着激活函数(例如图中的ReLU)。
*第二步又应用了10个5X5X6的过滤器,得到的特征图规模如绿色部分所示。
*堆叠的卷积层越多,就越能清晰地确定更大输入范围空间的纹样匹配情况。
*Padding特指和边缘的空间,也可以翻译成“填充”,但无论哪个翻译都距离其英文原意有一定距离。
*这部分课件的介绍略微显得不够充分,建议结合文末附的资料链接一起看。
4 CNN,池层——CNNs –Pooling Layer
*看过图形学剔除部分的,这个很类似Hiz算法的思想。
*最后预计算进入池的值如图——对应各自区域的最大值。
*最大值池可以视为对原始样本的一种降采样。上图的左侧可以直观地看出其规模的变化。
*最后预计算进入池的值如图——对应各自区域的平均值。
基于输入构建一次后就不用变了
降低内存需求
降低计算量
*这个结构可以类比成渲染管线中的帧缓冲,同样都是预计算+压缩+多次使用的思路。
本篇主要介绍了用过滤器进行特征相似度识别,图像等空间数据经过CNN的过滤器和激活函数,最终能被整体以特征的方式来识别;而对多层卷积的堆叠也可以看作对特征的逐步提取汇总——但我们也能明显感觉到,做到这个程度只是开了个头。
回顾一下最新的图片识别AI的使用情况,在“更快的训练速度”和“更高的精度”方面都有了长足的进步。我们知道比较先进的AI模型有了Transformer,有了推理能力和注意力机制,以及其它能提升训练速度和结果精度的设计——而这个系列后续就会读到人们不断进行优化提升的过程。
下一篇会主要介绍计算机视觉和图像分类,正好和之前读到的几篇形成了呼应。
评论区
共 1 条评论热门最新