您好,登录后才能下订单哦!
简史
卷积神经网络
在过去的十年里,计算机视觉领域取得的进步是前所未有的。机器现在可以识别视频中的图像或某一帧,准确率(98%)超过人类(97%)。之所以有这么大的突破,就是得益于对人脑的研究。
当时,神经学家正在对猫进行实验,他们发现图像中相似的部分会导致猫大脑中相似的部分变得活跃。换句话说,当一只猫看着圆圈时,大脑中的α就被激活了。当它观察正方形时,大脑中的β区被激活。他们的发现得出结论,动物的大脑包含一个神经元区,该区域对图像的特定特征作出反应,即它们通过大脑中神经元的分层结构来感知环境。每一幅图像在深入大脑之前都要经过某种特征提取器。
受大脑功能的启发,数学家们聚集在一起,创建一个系统来模拟不同神经元群对不同图像的感知,并相互交流以形成更大的图像。
特征提取器
他们将神经元群被激活的想法具体化为多维矩阵表示特定特征集的检测器的数学概念,并提供了特定的输入。其中,代表特定特征的探测器,又被称为滤波器或核。每一个这样的滤波器都将用于检测图像中特定的东西,例如用于检测边缘的滤波器。这些学习到的特性将通过另一组过滤器被传递,这些过滤器被设计用来检测更高级别的特性,例如眼睛、鼻子等。
用Laplacian滤波器卷积图像检测边缘
从数学上讲,我们将对给定的输入图像(以像素强度矩阵表示)和滤波器进行卷积运算,生成所谓的特征图。这个特征映射将作为另一层过滤器的输入。
为什么是卷积?
卷积是一个网络试图通过参考过去所学的内容来标记输入信号的过程。如果输入信号与之前看到的猫的图像类似,那么"猫"作为参考信号将与输入信号进行卷积或混合。然后将输出信号传递到下一层(这里,输入信号是以RGB像素强度表示输入图像的三维表示,而"猫"作为参考信号是识别猫类的核心)。
图像与滤波器的卷积运算
卷积运算的一个很好的性质是它不会轻易发生改变。这意味着每个卷积滤波器都代表了特定的特征集。例如眼睛,耳朵等。CNN算法对特征集的学习构成的参考结果,例如猫。需要补充的是,输出信号的强度并不取决于特征的位置,而仅仅取决于特征是否存在。因此,猫可以坐在不同的位置,而CNN算法仍然能够识别它。
池
通过追踪大脑的生物功能所形成的轨迹,我们能够建立出特征提取所需的数学仪器。然而,在了解到要跟踪的几何形状复杂性,以及需要分析的层次和特征的总数之后,我们会意识到我们没有足够的内存来保存所有的数据。即使是处理这一切所需的计算能力也会随着特性的数量呈指数级增长。很快,我们就不得不求助于一种被称为"池"的技术来解决当前我们的困境。它的核心思想很简单。
如果一个区域包含一个极具代表性的特性,我们可以避免在该区域中搜索其他特性。
最大池的演示
这样做,除了节省不必要的内存并节省计算能力外,还有助于消除图像中的噪声。
全连接层
到目前为止我们做的还不错,但是如果网络最终只检测到图像中的一组特征,那么它有什么用呢?我们需要一种方法,使网络能够将给定的图像进行分类。这就是对传统神经网络的一种应用。特别是,我们可以有一个全连接层,从先前的图层所检测到的特征映射到我们所拥有的分类标签的数量。最后一层将为输出类别中的每个类分配概率。基于这些输出概率,我们最终可以对图像做出分类。
全连接层
最后的框架
剩下的唯一一件事就是把所有这些学到的概念进行整理合并,行成我们称之为的卷积神经网络,又名CNN。本质上,CNN由一系列卷积层和池化层组成,这些层有选择性的组合在一起,生成一个特征图,然后将这个图反馈给全连接层,以生成类的概率。返回错误的输出,我们将能够进行更好的训练以生成准确的结果。
现在,从功能角度来让我们深入了解一下CNN是如何工作的。
卷积神经网络
卷积层
卷积层是CNN的主要组成部分。每个这样的层由一组独立的滤波器组成,每个滤波器在给定的图像中寻找不同的特征集。
卷积运算
从数学上讲,我们取一个固定大小的滤波器,并在完整的图像上滑动,在滤波器和输入图像块之间做点积。这个点积的结果将是一个标量,它会进入最终的特征映射。然后我们向右滑动过滤器,执行相同的操作,并将结果添加到特征图中。在将完整的图像与过滤器进行卷积后,我们最终得到一个表示不同特征集的特征映射,该特征集将作为下一层的输入。
步长
滤波器移动的量就是步长。在上面的图片中,我们的滑动滤波器系数是1。这可能不是我们一直需要的。使用步长的大小跟相邻的像素高度相关(特别是在最底层)。因此,通过使用适当的步长来减小输出的大小是有意义的。然而,一个大的步长可能会导致信息的高度损失。因此,我们在选择步长时必须小心。
步长为2
填充
对某一单层进行填充
步长的一个不受欢迎的理由是随着我们不断地进行卷积,特征图的大小会随之减小。这可能不是我们想要的结果。因为收缩也意味着信息损失。想要了解为什么会出现这种情况,那请注意应用于中间单元格和角落单元格的过滤次数的差异。显然,来自中间单元格的信息比边缘单元格的信息更重要。为了保留早期层内的有用信息,我们可以用0层包围给定矩阵。
参数共享
为什么CNN已经有了一个很好的深层神经网络。有趣的是,如果我们使用深度神经网络来进行图像分类,每一层的参数数将是CNN的数千倍。
在CNN共享参数
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。