卷积神经网络
- 2019-2-23
- 计算机视觉
编写中...
卷积神经网络(CNN)是深度学习中最基础的知识,特别在计算机视觉领域中,它是一步必不可少的一步操作。在学习更多深入的知识之前,有必要系统地学习下卷积神经网络的相关知识。
什么是卷积
上过概率论的同学应该都知道卷积公式,让我们先复习一下这个公式,设 \(f(x)\) 与 \(g(x)\) 是 \(\Bbb{R}\) 上的两个可积函数,作以下积分: \[ \int_{-\infty}^{\infty} f(t)g(x-t)dt \] 我们称这个积分为函数 \(f(x)\) 与 \(g(x)\) 的卷积函数,记作 \(h(x)=(g\cdot f)(x)\) 。
这样定义有什么用呢?有一个关于卷积的著名暴力讲解,接下来让我们通过这个例子来更好地理解卷积公式。
假如你的老板命令你干活,你却到楼下打台球去了,后来被老板发现,他非常气愤,扇了你一巴掌(激励),于是你的脸(系统)上会渐渐地鼓起来一个包(响应)。假定无论什么时候老板打你一巴掌,你的脸上总是会在相同的时间间隔内鼓起来一个相同高度的包来,我们可以把鼓起来的包的高度作为系统输出。
如果你每天都到楼下去打台球,那么老板每天都要扇你一巴掌,不过当老板打你一巴掌后,你5分钟就消肿了,所以时间长了,你甚至就适应这种生活了…如果有一天,老板忍无可忍,以0.5秒的间隔开始不间断地扇你,这样问题就来了,第一次扇你鼓起来的包还没消肿,第二个巴掌就来了,你脸上的包就可能鼓起来两倍高,老板不断扇你,巴掌(输入信号/脉冲)不断作用在你的脸(系统)上,鼓起来的包的高度(系统输出)就不断叠加了,这样这些包的高度就可以求和了,结果就是你脸上的包的高度是一个随时间变化的函数。
如果老板再狠一点,频率越来越高,以至于你都辨别不清时间间隔了,那么,求和就变成积分。在这个过程中的某一固定的时刻,你的脸上的包的鼓起程度和什么有关呢?和之前每次打你都有关!但是各次的贡献是不一样的,越早打的巴掌,贡献越小(因为之前的包会不断消肿)。所以这就是说,某一时刻的输出是之前很多次输入乘以各自的衰减系数之后的叠加,把所有时刻的输出放在一起形成一个函数,就是卷积,卷积之后的函数就是你脸上的包的高度随时间变化的函数。
回到卷积公式上,\(f(t)\) 就是 \(t\) 时刻巴掌打在脸上产生包的高度,而 \(g(x-t)\) 是 \(x\) 时刻该包的衰减系数,将它们乘起来再积分的结果就是卷积函数 \(\int_{-\infty}^{\infty} f(t)g(x-t)dt\)。
卷积就是“卷”+“积”,这里的“积”是积累的意思(小时)。仔细想想,把 convolution 翻译成卷积的前辈果真的牛,意思十分精确。
卷积神经网路
20世纪60年代,Hubel 和 Wiesel 在研究猫脑皮层中用于局部敏感和方向选择的神经元时发现其独特的网络结构可以有效地降低反馈神经网络的复杂性,继而提出了卷积神经网络(Convolutional Neural Networks, CNN)。现在,CNN已经成为众多科学领域的研究热点之一,特别是在模式分类领域,由于该网络避免了对图像的复杂前期预处理,可以直接输入原始图像,因而得到了更为广泛的应用。 K.Fukushima 在1980年提出的“新识别机”是卷积神经网络的第一个实现版本。随后,更多的科研工作者对该网络进行了改进。其中,具有代表性的研究成果是 Alexander 和 Taylor 提出的“改进认知机”,该方法综合了各种改进方法的优点并避免了耗时的误差反向传播。
对于卷积神经网络(Convolutional Neural Network, CNN),我们可以简单把它看作是一个分类器,把它当作一个黑盒子使用。
结构
CNN 的基本结构包括两层: 特征提取层和特征映射层。
特征提取层
在特征提取层中,每个神经元的输入与前一层的局部接受域相连,并提取该局部的特征。一旦该局部特征被提取后,它与其它特征间的位置关系也随之确定下来。
卷积层负责提取特征,采样层负责特征选择,全连接层负责分类。