从“看”到“懂”:AI中的卷积神经网络,究竟是怎样学会“认人识物”的?(上篇)

从“看”到“懂”:AI中的卷积神经网络,究竟是怎样学会“认人识物”的?(上篇) 你刷短视频时平台能精准认出视频里是猫还是狗你打开相册输入“海滩”它就能把几年前在三亚拍的照片全翻出来你的手机能对着你的脸解锁哪怕你戴了口罩多试几次它也能认出来……这些背后都藏着一个名字听着挺唬人的技术——卷积神经网络Convolutional Neural Network简称CNN。说它“唬人”是因为“卷积”这词一听就像高等数学容易把人劝退。但说白了它解决的是一个特别朴素的问题怎么让机器真的“看见”东西。今天咱们就分上下两篇把这事从头到尾聊透。上篇我们先说说这东西到底是什么以及当初大家为什么非要搞出它来。一、什么是卷积神经网络——别怕它就是个“会看图的流水线”咱们先想一个问题你怎么知道一张照片里是只猫你会看耳朵、眼睛、胡子、毛茸茸的轮廓……但这些“特征”在你脑子里是经过了几十年进化天生就会的。可机器不一样它拿到一张图片看到的只是一堆数字——每个像素点的红绿蓝RGB数值密密麻麻像一张巨大的数字矩阵。如果让一个最基础的“全连接神经网络”来处理这张图会发生什么假设图片是100×100像素不算大吧那就是一万个像素点。全连接网络的思路是把这一万个点每个都和下一层的所有神经元连起来。一层下来就是一万乘以一万——一个亿的参数。这还只是一层如果图片更大比如今天动不动就上千万像素那计算量直接爆炸。更麻烦的是这种“全连接”的方式完全忽略了图像最重要的一个特性空间结构。它把图片摊平成一维的线左边和右边的像素在它眼里没有任何位置关系。这就好比让你看一幅蒙娜丽莎却把所有颜料搅和在一起你还能认出来那是达芬奇画的吗卷积神经网络就是专门来解决这两个问题的参数太多算不动。忽略空间结构看不清。它的核心思路其实特别“反直觉”——不一次性看完整张图而是用一个个“小窗口”在图上滑动一点一点地看然后把看到的东西一层层组合起来。这个小窗口就叫卷积核也叫滤波器。它像一把特制的“小尺子”每滑到一个位置就计算一下这个局部区域的特征生成一个新的数字。等整个窗口滑完一遍你就得到了一张新的“特征图”——它保留了原图的相对位置但尺寸变小了信息被提炼了。这个过程就是卷积。别被名字吓到本质上它就是用一个小的模式去扫描大的图像提取局部的特征。而“神经网络”的部分就是让这些卷积核的参数不是人手工设计的而是让机器自己从数据里学出来。你想要识别眼睛网络自己就会在某个卷积核里学到一组数值专门对“眼睛”的形状敏感。你想要识别轮胎另一个卷积核就会自动学会怎么抓住圆形的边缘。所以卷积神经网络说白了就是一套由多个“卷积降采样”层堆叠起来的流水线每一层负责提取不同层级的特征——底层提取边缘、角落中层提取纹理、形状高层提取出眼睛、轮子、人脸这些具体部件。二、为什么会诞生——被“大而全”逼出来的新思路卷积神经网络不是凭空冒出来的。它的诞生其实是一个“被逼无奈”的故事。时间回到上世纪八九十年代人工智能还处在“符号主义”和“专家系统”的寒冬里神经网络也还只是学术圈一小拨人在鼓捣。真正让卷积神经网络第一次走到聚光灯下的是一个叫Yann LeCun杨立昆的法国学者。他当时面临一个实际的问题美国邮政局想搞一个自动识别手写邮政编码的系统。那时候的“传统方法”是人工设计特征——比如先提取数字的轮廓、交叉点、端点这些几何特征再用这些特征去训练一个简单的分类器。但问题是每个人的手写体千奇百怪你设计出来的“特征”在A手里好用换个人写立马翻车。Yann LeCun想能不能让网络自己从原始图像里学特征而不是靠人设计他试了全连接网络立刻遇到前面说的两个问题参数爆炸、忽略空间结构。于是他翻出了更早之前日本学者福岛邦彦提出的一个叫“神经认知机”的模型这个模型已经有了“卷积”和“降采样”的雏形——用局部感受野来模拟视觉皮层的分层处理。Yann LeCun把这个思想捡起来用反向传播Backpropagation让它真正能训练并在1998年提出了一个经典的网络结构——LeNet-5。这个只有7层的小网络成功地在手写数字识别任务上达到了接近99%的准确率。注意那可是1998年没有GPU没有大规模数据他硬是靠一个精巧的结构设计解决了邮政系统自动分拣的核心难题。卷积神经网络就是为了解决“如何让机器高效地从原始像素中自动提取有层次的空间特征”这个问题而诞生的。它要打破的是两个僵局(1)计算效率的僵局不让参数随着图像尺寸指数级增长;(2)特征工程的僵局不再需要专家手动设计边缘检测器、角点检测器让网络自己从数据里学。而它之所以能破局靠的就是一个核心洞察图像在局部是相关的且这种相关性在图像的不同位置会重复出现。 你在左上角学到的“横线”特征在右下角同样有用——这就是卷积核“权值共享”的思想也是它比全连接网络高效的根本原因。讲到这里我们其实已经摸到了卷积神经网络的“骨架”它为什么被造出来以及它最底层的设计哲学——用局部连接、权值共享和层级抽象来模拟生物视觉系统处理信息的方式。但光有骨架还不够。它究竟发展出了哪些“流派”每一层到底在做什么为什么后来的ResNet、YOLO这些名字听起来五花八门却都离不开“卷积”这两个字这些问题我们留到下篇来细说。下篇里我们不光会聊聊卷积神经网络的几种经典“类型”还会讲清楚它在今天的世界里到底能干什么——从修图到自动驾驶从医疗影像到短视频推荐它究竟是怎么“看懂”这个世界的。