系列文章见: 《回忆AI时代-从图灵机到人工智能》
文章目录
什么是CNN
CNN(Convolutional Neural Network,卷积神经网络)是一种专门用于处理图像数据的深度学习模型,它最大的特点是能够自动从图像中学习特征,而无需人工设计图像的特征。
譬如下图是一张猫的图片,人类几乎一眼就能判断这是一只猫但对于计算机来说,它看到的并不是猫,而是一大堆数字。因为图片实际上是由大量像素组成,每个像素都对应着 RGB(三原色)数值,计算机需要从这些数字中发现规律,最终判断图片中是否存在一只猫。
为什么是CNN
前文介绍过神经网络,为什么CNN比普通的神经网络更适合处理图像呢?譬如有一张100 × 100的灰度图片,共包含100 × 100 = 10000个像素。如果直接将这10000个像素,全部输入到普通的全连接神经网络中,那么每一个神经元都需要与所有输入相连接,当网络层数增加时,参数数量很容易达到数千万甚至更多,不仅训练速度慢、内存开销大,而且非常容易出现过拟合的现象。
CNN则采用了完全不同的思路。它认为没有必要一开始就观察整张图片,而是像人观察事物一样,先看局部,再逐渐组合成整体。
CNN会利用卷积操作,在图片上用一个较小的窗口(卷积核)不断滑动,每次只关注图片中的一小块区域,例如边缘、纹理、颜色变化等局部特征。随着网络不断加深,这些简单特征会逐渐组合成更加复杂的特征,最终识别出眼睛、耳朵、鼻子,甚至整只猫。
CNN的出现,使计算机第一次能够自动学习图像特征,摆脱了传统计算机视觉中依赖人工设计特征(Feature Engineering)的方法,极大地提升了图像识别的准确率。
