图形AI粗读丨卷积神经网络 | 机核 GCORES
本文还是以翻译PPT页内容为主,打星号的部分则是我的补充说明。
其内容的顺序是有意义的数据,例如:
-
图像
-
声音(波谱)
-
文字(词语嵌套)
-
视频
1959年——Hubel和Weisel的神经学实验使人理解了哺乳动物的视觉系统的运作方式。
1980年——两人被授予了生理和医药方面的诺贝尔奖。
*图中是Hubel和Weisel两人的照片
*图中尝试解析(类人)哺乳动物的视觉多层反应。
*例如:retina是视网膜、LGN( Lateral geniculate nucleus )是外侧膝状体、V1-V3是视觉皮层、 LOC( Lateral Occipital Complex )是枕外侧复合体。
*实验内容如图——主要是记录动物对屏幕上刺激产生的脑内电信号反应。
*核心观察:初始神经元仅对特定朝向的光有强烈反应。
*V1层生理:方向选择
核心思想:细胞被以层级的形式组织起来,作为特征探测器;低级细胞负责响应简单(二分)的激活类信息,而高级细胞负责响应组合起来的纹样模式。
1980年——新认知机Neocognitron被提出了,包含卷积层和降采样层。
*Neocognitron本文后续就沿用原词,因为本身也是日本科学家的生造词。
*图中是提出者福岛邦彦的照片。
(蓝字)在这篇论文中,我们讨论了如何整合一个神经网络模型,以赋予其类似人类的图像识别能力…这一神经网络应用了与Hubel和Wiesel提出的视觉神经系统相似的结构。
多层简单和复杂细胞:
*图1(上方)展示了Neocognitron的结构与Hubel和Wiesel提出的结构的相关对应。
*图2(下方)展示了Neocognitron的层间内连接方式。
简单细胞通过一个滑动滤波器来提取特征。
当目标图样中的任意局部区域相符合时,复杂细胞被激活。
*如图,以上两种细胞也被提炼成卷积层和池层。后面的章节主要介绍这两部分。
*modifiable synapses是可塑性突触,在神经网络中它可以通过学习来调节连接的强度。
一层中的每个节点都为下一层的所有节点提供输入。
假定有一个两层模型,每层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特指和边缘的空间,也可以翻译成“填充”,但无论哪个翻译都距离其英文原意有一定距离。
步幅:在应用过滤器时一次跨越多少步(格子)。
*这部分课件的介绍略微显得不够充分,建议结合文末附的资料链接一起看。
最大值池:记录局部(矩形)范围内的值的最大值。
*看过图形学剔除部分的,这个很类似Hiz算法的思想。
*最后预计算进入池的值如图——对应各自区域的最大值。
*最大值池可以视为对原始样本的一种降采样。上图的左侧可以直观地看出其规模的变化。
平局值池:计算并存储各子区域的平均值。
*最后预计算进入池的值如图——对应各自区域的平均值。
需要学习多少(额外)参数?——不需要。
*这个结构可以类比成渲染管线中的帧缓冲,同样都是预计算+压缩+多次使用的思路。
本篇主要介绍了用过滤器进行特征相似度识别,图像等空间数据经过CNN的过滤器和激活函数,最终能被整体以特征的方式来识别;而对多层卷积的堆叠也可以看作对特征的逐步提取汇总——但我们也能明显感觉到,做到这个程度只是开了个头。
回顾一下最新的图片识别AI的使用情况,在“更快的训练速度”和“更高的精度”方面都有了长足的进步。我们知道比较先进的AI模型有了Transformer,有了推理能力和注意力机制,以及其它能提升训练速度和结果精度的设计——而这个系列后续就会读到人们不断进行优化提升的过程。
下一篇会主要介绍计算机视觉和图像分类,正好和之前读到的几篇形成了呼应。