一文看懂卷积神经网络-CNN
卷积神经网络 – CNN 最擅长的就是图片的处理。它受到人类视觉神经系统的启发。
CNN 有2大特点:
① 能够有效地将大数据量的图片降维成小数据量;
② 能够有效地保留图片特征,符合图片处理的原则。
目前 CNN 已经得到了广泛的应用,比如:人脸识别、自动驾驶、美图秀秀、安防等很多领域。
CNN 解决了什么问题?
在 CNN 出现之前,图像对于人工智能来说是一个难题,主要有两个原因:
1. 需要处理的数据量太大
图像由像素构成,每个像素包含 RGB 三个通道。
例如,一张 1000×1000 像素的图片,就包含 1000×1000×3 = 3,000,000 个参数,
处理如此海量的数据,成本高且效率低。
CNN 通过卷积和池化将大量参数降维为少量参数,而在大多数场景下,这种降维并不影响识别结果(例如将 1000×1000 的图片缩小到 200×200,仍可准确区分猫和狗)。
2. 保留图像特征
传统的图像数字化方式无法保留位置信息相同的特征。
假设用 1 表示圆形,0 表示非圆形,圆形位置不同会产生完全不同的数据表达;
但从视觉上看,内容并未改变,仅位置移动而已。
这样导致当图像中的物体发生平移时,传统方法得到的参数差异巨大,不符合图像处理要求。
CNN 则通过卷积操作保留局部特征,对图像进行平移、旋转或翻转时,仍能识别出相似的特征。
那么卷积神经网络是如何实现的呢?在我们了解 CNN 原理之前,先来看看人类的视觉原理是什么?
人类的视觉原理
深度学习许多研究成果来源于大脑认知原理,尤其是视觉系统的研究。
1981 年诺贝尔医学奖颁给了 David Hubel、Torsten Wiesel 和 Roger Sperry,表彰他们在视觉信息处理方面的发现。
人类视觉原理大致为:
- 从原始信号摄入(瞳孔摄入像素)
- 初步处理(大脑皮层细胞检测边缘与方向)
- 抽象(大脑判定物体形状,如圆形)
- 进一步抽象(大脑判定物体为某个具体对象,如气球)
例如,人脑在识别人脸时是逐层提取特征,从边缘到眼睛、轮廓等,最终组合成完整人脸。


卷积神经网络-CNN 的基本原理
典型的 CNN 由3个部分构成:
① 卷积层:负责提取图像中的局部特征;
这个过程我们可以理解为我们使用一个过滤器(卷积核)来过滤图像的各个小区域,从而得到这些小区域的特征值。
在具体应用中,往往有多个卷积核,可以认为,每个卷积核代表了一种图像模式,如果某个图像块与此卷积核卷积出的值大,则认为此图像块十分接近于此卷积核。如果我们设计了6个卷积核,可以理解:我们认为这个图像上有6种底层纹理模式,也就是我们用6中基础模式就能描绘出一副图像。
以下就是25种不同的卷积核的示例:
② 池化层:大幅降低参数量(降维),避免过拟合;
上图中,我们可以看到,原始图片是20×20的,我们对其进行下采样,采样窗口为10×10,最终将其下采样成为一个2×2大小的特征图。
之所以这么做的原因,是因为即使做完了卷积,图像仍然很大(因为卷积核比较小),所以为了降低数据维度,就进行下采样。
总结:池化层相比卷积层可以更有效的降低数据维度,这么做不但可以大大减少运算量,还可以有效的避免过拟合。
③ 全连接层:类似传统神经网络,用于输出最终结果。
例如,LeNet-5 网络结构就是卷积层–池化层–卷积层–池化层–卷积层–全连接层的组合。
CNN 有哪些实际应用?
CNN 在图像处理方面表现卓越,视频作为图像的连续叠加,CNN 同样擅长处理视频。常见应用包括:
- 图像分类、检索:节省大量人工成本,对图像分类准确率可达95%+。
- 目标定位检测:在图像中定位目标及其位置和大小,应用于自动驾驶、安防、医疗等。
- 目标分割:进行像素级分类,将前景和背景分离,并可识别目标类别,应用于美图秀秀、视频后期加工等。
- 人脸识别:广泛应用于安防、金融和日常生活。
- 骨骼识别:识别人体关键骨骼并追踪动作,应用于电影、游戏等。



百度百科+维基百科
更多详情请参考百度百科和维基百科相关条目。
扩展阅读
详细了解 CNN,请参考文章《一文看懂卷积神经网络-CNN》。
发表评论