对于图像分析而言,具体能够将其划分为不少类型的任务,好比分类、对象检测、识别、描述等。对于图像分类器而言,即便在诸如遮挡、照明变化、视觉等变化的状况下,也应该可以以高精度的性能工做。以特征工程为主要步骤的传统图像分类方法不适合在丰富环境中工做,即便是该领域的专家也不能给出一组可以在不一样变化下达到高精度的特征,没法保证手工所选的特征是否合适。在这个问题的启发下,特征学习的思想应运而生,经过自主学习来得到合适的图像特征,这也是人工神经网络(ANN)对于图像分析任务鲁棒性的缘由之一。基于梯度降低算法(GD)等学习算法,ANN能够自动学习到图像特征,将原始图像输入人工神经网络后,ANN可以自动地生成描述它的特征。算法
如今一块儿看看人工神经网络是如何对进行处理的,以及CNN为何在时间和内存上相较于全链接网络更高效。如图1所示,输入的是一个3x3大小的灰度图。例子中使用小尺寸的图像是为了方便讲解,而不是代表ANN只能处理小尺寸的图像。
网络
图像1ide
图像2函数
图像3性能
图像4学习
上面例子中的参数数目彷佛还能够接受,可是随着输入图像尺寸变大以及隐藏层数量增长,网络参数将大大增长。优化
例如,若网络具备两个隐层,分别有90和50个神经元,那么输入层和第一隐藏层之间的参数数目是9x90=810,两个隐藏层之间的参数数目为90x50=4500,该网络的参数总数为810+4500=5310。对于这样简单的网络结构就有这么多的参数数量,显然是不合适的;另一种状况是输入图像尺寸较大,好比32x32大小的图像(1024个像素),若是网络使用单个隐藏层(含有500个神经元),则总共有1024x500=512000个参数(权重),这对于只含单个隐藏层的网络而言是一个巨大的数字。所以,必须有一个解决方案来减小网络参数,那么针对于此,卷积神经网络(CNN)应运而生,虽然它网络模型一般比较大,但大大下降了参数数量。ui
即便是很小的全链接网络,网络参数数目变得很是大的缘由在于其层与层之间神经元每条链接上都是不一样的参数。所以,能够考虑给一组神经元提供相同的参数,如图5所示,一组神经元内的神经元都将分配同一个参数。
阿里云
图像5翻译
图像6
图像7
图像8
以前所述内容使得每一个神经元接受全部像素,若存在接受4个输入的函数f(x1,x2,x3,x4),则这意味着要基于全部这4个输入来进行决定。若是只有2个输入,但其输出结果与使用4个输入的结果相同,那么将没必要使用全部的这4个输入,只需给出对结果有影响的2个输入便可。借鉴该思想,每一个神经元接受输入的9个像素,若能使用更少的像素得到相同或更好的结果就大大下降了参数数量,所以能够朝着这个方向优化网络参数。
一般,在图像分析中,输入图像被转换为像素矩阵,像素矩阵中的每一个像素与它周围的像素高度相关,两个像素之间的距离越远,两者越不相关。例如,如图9所示,面部的像素与面部周围的像素相关,但它与天空、地面等像素的相关性较低。
图像9
图像10
因为CNN使用权重共享,使用较少的参数,这使得CNN网络结构通常层数比较多,这是全链接网络没法具备的特性。
如今只有4个权重分配给同一组中的全部神经元,那么这4个权重如何涵盖9个像素点呢?让咱们看看这是如何处理的吧!
图11展现了图10中的一个网络,并为每条链接添加了权重标记。在神经元内部,4个输入像素中的每个都与其相应的权重相乘,如图11中公式所示。
图像11
图像12
Aghdam, Hamed Habibi, and Elnaz Jahani Heravi. Guide to Convolutional Neural Networks: A Practical Application to Traffic-Sign Detection and Classification. Springer, 2017.
做者信息
Ahmed Gad,教师、专一于深度学习、计算机视觉
本文由阿里云云栖社区组织翻译。
文章原标题《Derivation of Convolutional Neural Network from Fully Connected Network Step-By-Step》,