没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
卷积神经网络为什么这么有效?
作者:SIGAI
2018.04.26
原创声明
本文为 SIGAI 原创文章,仅供个人学习使用,未经允许,不能用于商业目的。
导言:在机器视觉和其他很多问题上,卷积神经网络取得了当前最好的效果,它的成功
促使我们思考一个问题,卷积神经网络为什么会这么有效?在本文中,SIGAI 将为大家分析
卷积神经网络背后的奥秘。
思想起源
在各种深度神经网络结构中,卷积神经网络是应用最广泛的一种,它由 LeCun 在 1989
年提出[1]。卷积神经网络在早期被成功应用于手写字符图像识别[1][2][3]。2012 年更深层次
的 AlexNet 网络[4]取得成功,此后卷积神经网络蓬勃发展,被广泛用于各个领域,在很多
问题上都取得了当前最好的性能。
卷积神经网络通过卷积和池化操作自动学习图像在各个层次上的特征,这符合我们理
解图像的常识。人在认知图像时是分层抽象的,首先理解的是颜色和亮度,然后是边缘、角
点、直线等局部细节特征,接下来是纹理、几何形状等更复杂的信息和结构,最后形成整个
物体的概念。
视觉神经科学(Visual Neuroscience)对于视觉机理的研究验证了这一结论,动物大脑
的视觉皮层具有分层结构。眼睛将看到的景象成像在视网膜上,视网膜把光学信号转换成电
信号,传递到大脑的视觉皮层(Visual cortex),视觉皮层是大脑中负责处理视觉信号的部分。
1959 年,David 和 Wiesel 进行了一次实验[5],他们在猫的大脑初级视觉皮层内插入电极,
在猫的眼前展示各种形状、空间位置、角度的光带,然后测量猫大脑神经元放出的电信号。
实验发现,当光带处于某一位置和角度时,电信号最为强烈;不同的神经元对各种空间位置
和方向偏好不同。这一成果后来让他们获得了诺贝尔奖。
目前已经证明,视觉皮层具有层次结构。从视网膜传来的信号首先到达初级视觉皮层
(primary visual cortex),即 V1 皮层。V1 皮层简单神经元对一些细节、特定方向的图像信
号敏感。V1 皮层处理之后,将信号传导到 V2 皮层。V2 皮层将边缘和轮廓信息表示成简单
形状,然后由 V4 皮层中的神经元进行处理,它颜色信息敏感。复杂物体最终在 IT 皮层
(inferior temporal cortex)被表示出来。
SIGAI
视觉皮层结构
卷积神经网络可以看成是上面这种机制的简单模仿。它由多个卷积层构成,每个卷积层
包含多个卷积核,用这些卷积核从左向右、从上往下依次扫描整个图像,得到称为特征图
(feature map)的输出数据。网络前面的卷积层捕捉图像局部、细节信息,有小的感受野,
即输出图像的每个像素只利用输入图像很小的一个范围。后面的卷积层感受野逐层加大,用
于捕获图像更复杂,更抽象的信息。经过多个卷积层的运算,最后得到图像在各个不同尺度
的抽象表示。
卷积运算
一维信号的卷积是数字信号处理里的一种经典手段,在图像处理领域,卷积也是一种常
用的运算。它被用于图像去噪、增强、边缘检测等问题,还可以提取图像的特征。卷积运算
用一个称为卷积核的矩阵自上而下、自左向右在图像上滑动,将卷积核矩阵的各个元素与它
在图像上覆盖的对应位置的元素相乘,然后求和,得到输出像素值。以 Sobel 边缘检测算子
为例,它的卷积核矩阵为:
1 2 1
000
1 2 1
−−
假设输入图像的矩阵为以
( )
,xy
为中心的
33
子图像为:
1, 1 , 1 1, 1
1, , 1,
1, 1 , 1 1, 1
x y x y x y
x y x y x y
x y x y x y
I I I
I I I
I I I
− − − + −
−+
− + + + +
在该点处的卷积结果按照如下方式计算:
1, 1 , 1 1, 1 1, 1 , 1 1, 1
22
x y x y x y x y x y x y
I I I I I I
− − − + − − + + + +
− + − + + +
即以为中心的的子图像与卷积核的对应元素相乘,然后相加。通过核卷积作用于输入图
像的所有位置,我们可以得到图像的边缘图。边缘图在边缘位置有更大的值,在非边缘处的
值接近于 0。下图为 Sobel 算子对图像卷积的结果,左图为输入图像,右图为卷积后的结果:
SIGAI
Sobel 算子卷积结果
从上图可以看到,通过卷积将图像的边缘信息凸显出来了。除了 Sobel 算子之外,常用
的还有 Roberts、Prewitt 算子等,它们实现卷积的方法相同,但有不同的卷积核矩阵。如果
我们使用其他不同的核,也可以抽取更一般的图像特征。在图像处理中,这些卷积核矩阵的
数值是人工设计的。通过某种方法,我们可以通过机器学习的手段来自动生成这些卷积核,
从而描述各种不同类型的特征,卷积神经网络就是通过这种自动学习的手段来得到各种有用
的卷积核。
卷积层
卷积层是卷积神经网络的核心。下面通过一个实际的例子来理解卷积运算。如果被卷积
图像为:
11 1 7 2 2
1 3 9 6 7
7 3 9 6 1
4 3 2 6 3
4 1 3 4 5
卷积核为:
152
2 6 3
711
首先用图像第一个位置处的子图像,即左上角的子图像和卷积核对应元素相乘,然后相
加,在这里子图像为:
11 1 7
1 3 9
7 3 9
卷积结果为:
11 2 1 5 7 2 1 2 3 6 9 3 7 7 3 1 9 1 138 + + + + + + + + =
接下来在待卷积图像上向右滑动一列,将第二个位置处的子图像:
SIGAI
1 7 2
3 9 6
3 9 6
与卷积核卷积,结果为 154。接下来,再向右滑动一位,将第三个位置处的子图像与卷
积核进行卷积,结果为 166。处理完第一行之后,向下滑动一行,然后重复上面的过程。以
此类推,最后得到卷积结果图像为:
138 154 166
126 167 133
104 110 121
(GIF 动图)
经过卷积运算之后,图像尺寸变小了。我们也可以先对图像进行扩充(padding),例如
在周边补 0,然后用尺寸扩大后的图像进行卷积,保证卷积结果图像和原图像尺寸相同。另
外,在从上到下,从左到右滑动过程中,水平和垂直方向滑动的步长都是 1,我们也可以采
用其他步长。
卷积运算显然是一个线性操作,而神经网络要拟合的是非线性的函数,因此和前全连接
网络类似,我们需要加上激活函数,常用的有 sigmoid 函数,tanh 函数,ReLU 函数等。关
于激活函数的解释,为什么需要激活函数,什么样的函数可以用来做激活函数,SIGAI 会
在后续的文章中讲述,请关注我们的公众号。
前面我们讲述的是单通道图像的卷积,输入是二维数组。实际应用时我们遇到的经常是
多通道图像,如 RGB 彩色图像有三个通道,另外由于每一层可以有多个卷积核,产生的输
出也是多通道的特征图像,此时对应的卷积核也是多通道的。具体做法是用卷积核的各个通
道分别对输入图像的各个通道进行卷积,然后把对应位置处的像素值按照各个通道累加。
由于每一层允许有多个卷积核,卷积操作后输出多张特征图像,因此第
l
个卷积层的卷
积核通道数必须和输入特征图像的通道数相同,即等于第
1l −
个卷积层的卷积核的个数。
下图是一个简单的例子:
SIGAI
剩余16页未读,继续阅读
资源评论
SIGAI_csdn
- 粉丝: 2348
- 资源: 45
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功