揭开卷积神经网络的神秘面纱

揭秘卷积神经网络的翻译。


卷积神经网络。

在过去的十年中,我们看到了计算机视觉领域的惊人且前所未有的进步。 如今,计算机能够以98%的精度识别图像和视频帧中的对象,已经以97%的精度领先于人。 正是人类大脑的功能激发了开发人员创建和改进识别技术。

一旦神经学家对猫进行了实验,发现图像的相同部分激活了猫脑的相同部分。 也就是说,当猫看着圆圈时,大脑中的alpha区域被激活,而当看着正方形时,beta区域被激活。 研究人员得出结论,在动物的大脑中,存在神经元区域,它们对图像的特定特征做出响应。 换句话说,动物通过大脑的多层神经结构感知环境。 每个场景,每个图像都经过一系列特殊的标志选择,然后才被传输到大脑的深层结构。

受此启发,数学家开发了一个系统,在该系统中模拟一组神经元,这些神经元在不同的图像属性上运行并相互交互以形成共同的图片。

检索属性


一组提供特定输入数据的激活神经元的想法被转化为多维矩阵的数学表达式,该多维矩阵起着一组属性的决定因素的作用-称为过滤器或核。 每个这样的滤镜都会在图像中寻找一些特殊之处。 例如,可能有一个过滤器来确定边界。 然后将找到的属性传输到另一组过滤器,这些过滤器可以确定图像的高级属性,例如,眼睛,鼻子等。


使用拉普拉斯滤镜对图像进行卷积以确定边界。

从数学的角度来看,在以像素强度矩阵形式表示的输入图像和滤波器之间,我们执行了卷积运算,从而生成了所谓的特性图(特征图)。 该地图将用作下一个过滤器层的输入。

为什么要卷积?


卷积是网络尝试通过将输入信号与先前已知的信息进行比较来标记输入信号的过程。 如果输入信号看起来像猫的先前图像(已经为人所知的网络),则参考信号“猫”将与输入信号最小化(混合)。 结果信号被发送到下一层。 在这种情况下,输入信号意味着以RGB像素强度的形式对图片进行三维表示,并且内核会学习参考信号“ cat”以识别猫。


图像卷积运算和过滤器。 来源

卷积运算具有出色的特性-平移不变性。 这意味着每个卷积滤波器都反映了一组特定的属性,例如眼睛,耳朵等,并且卷积神经网络算法学习确定哪组属性对应于例如猫的参考。 输出信号的强度不取决于特性的位置,而是取决于它们的存在。 因此,可以以各种姿势描绘猫,但是算法仍然可以识别它。

汇集


通过遵循生物大脑的原理,科学家们能够开发出一种用于提取特性的数学仪器。 但是,在评估了需要分析以跟踪复杂几何形状的层和属性的总数之后,科学家意识到计算机将没有足够的内存来存储所有数据。 而且,所需的计算资源量随属性数量的增加而呈指数增长。 为了解决这个问题,开发了一种合并技术。 她的想法很简单:如果某个区域包含明显的属性,那么我们可以拒绝在该区域中搜索其他属性。


合并最大值的示例。

合并操作不仅节省了内存和处理能力,而且还有助于清除图像中的噪点。

全粘结层


好的,如果神经网络只能定义图像属性集,为什么会派上用场呢? 我们需要以某种方式教她如何对图像进行分类。 传统的神经网络形成方法将在此方面为我们提供帮助。 特别是,可以将先前图层上获得的属性图收集到与我们为分类准备的所有标签完全关联的图层中。 最后一层将分配匹配每个类别的概率。 基于这些最终概率,我们可以将图像归为某个类别。


完全粘合的层。 来源

最终架构


现在,只需要将网络研究的所有概念组合到一个框架中即可,即卷积神经网络(Convolution Neural Network,CNN)。 CNN由一系列卷积层组成,这些卷积层可以与池化层组合以生成属性映射,该属性映射传递到完全连接的层以确定匹配任何类的概率。 回顾我们得到的错误,我们可以训练该神经网络直到获得准确的结果。

现在,我们了解了CNN的功能性观点,让我们仔细研究一下CNN的使用方面。

卷积神经网络



卷积层。

卷积层是CNN的主要构建块。 每个这样的层都包括一组独立的过滤器,每个过滤器都在传入图像中寻找自己的一组属性。


卷积运算。 来源

从数学的角度来看,我们采用固定大小的滤镜,将其叠加在图像上,然后计算滤镜和输入图像的标量积。 工作结果将放置在最终属性图中。 然后,将过滤器移至右侧并重复该操作,还将计算结果添加到属性图中。 在通过过滤器对整个图像进行卷积之后,我们得到了一个属性图,该属性图是一组显式符号,并作为输入馈送到下一层。

大步前进


步幅是滤波器偏移量。 在上面的插图中,我们将滤波器移位了1倍。但是有时您需要增加偏移量的大小。 例如,如果相邻像素彼此之间具有很强的相关性(尤其是在较低层上),则可以使用适当的跨度来减小输出的大小。 但是,如果跨度太大,则会丢失很多信息,因此请小心。


步幅为2。

填充



填充单层。 来源

跨步的副作用之一是随着执行越来越多的新卷积,属性图中的一致减小。 这可能是不希望的,因为“减少”意味着信息丢失。 为了使其更清楚,请注意将滤镜应用于中间和角落的单元的次数。 事实证明,中间的信息毫无疑问比边缘的信息重要。 为了从早期的层中提取有用的信息,您可以将矩阵周围的零层包围。

参数共享


如果我们已经拥有良好的深度学习神经网络,为什么我们需要卷积网络? 值得注意的是,如果我们使用深度学习网络对图像进行分类,则每层参数的数量将比卷积神经网络的数量大一千倍。


在卷积神经网络中共享参数。

Source: https://habr.com/ru/post/zh-CN443236/


All Articles