7. CNN 解决了什么问题?

CNN 出现之前,图像对于⼈⼯智能来说是⼀个难题,有2个原因:

  1. 图像需要处理的数据量太⼤,导致成本很⾼,效率很低
  2. 图像在数字化的过程中很难保留原有的特征,导致图像处理的准确率不⾼

需要处理的数据量太⼤

图像是由像素构成的,每个像素⼜是由颜⾊构成的。

现在随随便便⼀张图⽚都是 1000×1000 像素以上的, 每个像素都有RGB 3个参数来表示颜⾊信息。假如我们处理⼀张 1000×1000 像素的图⽚,我们就需要处理3百万个参数!1000×1000×3=3,000,000

这么⼤量的数据处理起来是⾮常消耗资源的,⽽且这只是⼀张不算太⼤的图⽚!

卷积神经⽹络 – CNN 解决的第⼀个问题就是「将复杂问题简化」,把⼤量参数降维成少量参数,再做处理。更重要的是:我们在⼤部分场景下,降维并不会影响结果。⽐如1000像素的图⽚缩⼩成200像素,并不影响⾁眼认出来图⽚中是⼀只猫还是⼀只狗,机器也是如此。

保留图像特征

图⽚数字化的传统⽅式我们简化⼀下,就类似下图的过程:

假如有圆形是1,没有圆形是0,那么圆形的位置不同就会产⽣完全不同的数据表达。但是从视觉的⻆度来看,图像的内容(本质)并没有发⽣变化,只是位置发⽣了变化。

所以当我们移动图像中的物体,⽤传统的⽅式的得出来的参数会差异很⼤!这是不符合图像处理的要求的。

CNN 解决了这个问题,他⽤类似视觉的⽅式保留了图像的特征,当图像做翻转,旋转或者变换位置时,它也能有效的识别出来是类似的图像。

那么卷积神经⽹络是如何实现的呢?在我们了解 CNN 原理之前,先来看看⼈类的视觉原理是什么?