上一篇文章的末尾,给出了一段比较复杂的程序(看不懂也没关系),其实是使用了比较常见的卷积神经网络(Convolutional Neural Network,CNN)
。这篇文章中,我们用一些直观的方式来演示一下卷积神经网络的基本原理。
如果学习过数学和信号处理的相关课程,应该对卷积的原理并不陌生。卷积用在图像处理的效果比较直观,通俗来讲,就是对图像进行滤波、然后进行特征提取。

上面3*3的滑动窗称为一个卷积核
,每个卷积核的用于提取图像中的某个特征。
每个卷积核的一次滑动都做了如下的计算:


多层卷积运算示意图:

每一层卷积运算的输出,作为后一层卷积运算的输入,越靠前层的卷积核,提取的特征越细节。因为对于第一层卷积核看到的图像特征就是一堆像素点,通过第一层卷积核之后,输出的是一些边线等特征,再经过一层卷积核,输出了边线组成的一些基本轮廓,依次类推,直到识别出这个图像的类型。如下面的例子。
人脸识别的例子:

当然,机器学习使用的卷积神经网络,不仅仅只有卷积
,还有池化
、激励
等辅助操作,这里不再展开。另,机器学习除了卷积神经网络之外,还有很多种神经网络(比如循环神经网络(RNN)等上百种),各有各的优缺点,根据不同的场景选择使用即可。
这篇文章先到这里,下一篇文章,看看非图像类的信息,如何使用卷积神经网络做识别。
参考链接:卷积神经网络工作原理直观的解释
网友评论