Convolutional Neural Network(CNN)
1 为什么用 CNN 识别图像
1.1 使用 DNN 的缺陷
当我们用一般的全连接神经网络处理图像时,可能是这样子:
第一层识别一些最基础的线条、特定方向的边界等等之类的最基本的模式。
第二层就开始基于第一层的基础识别一些复杂一些的模式。
往后的层以此类推,直至识别出一个预期中的目标。
是我们这样直接处理的话,往往参数会太多,处理一张100*100像素的图 像就需要几千万个参数。
基于上述原因,所以我们要尽可能的去简化 Neural Network 的参数。根据我们的一些知识,去掉网络中的一些没用的 weight。这就是 CNN 要做的事情。
1.2 为什么可以使用 CNN
所以其实 CNN 是简化了全连接的神经网络。那为什么我们可以进行这种简化呢?
原因1: 在做图像识别的时候,就像我们在前面讲过的,神经网络的每一层完成的是不同的任务,识别的模式由简单到复杂。也就是说,我们并不是每识别一个模式都要查看整张图,大多数特征只要看图片的一小部分就行了。
原因2: 同样的一个模式可能会在图片的不同区域出现,而我们并不需要对不同区域中的模式都训练出一组参数 去检测。反之,我们只需要同一组参数重复使用就可以了。
原因3: 我们可以对一张图片做 重采样(subsample)。比如说把一张图片的奇数行和偶数列拿掉,使图片变为原来的