前面四篇把机器学习的基础框架、数据准备、任务分类和树模型都聊了一遍。今天终于轮到重头戏了——神经网络。
这是一个被过度神话又被过度低估的技术。被神话是因为媒体整天吹"人工智能像人脑一样思考"——纯属扯淡,人工神经网络跟生物神经网络差了十万八千里。被低估是因为很多人觉得"深度学习不就是堆层嘛,谁不会啊"——真要是一个模型几亿参数、训一个星期不崩,那你试试看?
咱们从历史沿革走一遍,顺便把"这些东西为什么这样设计"的逻辑讲清楚。
感知机——神经网络的"始祖",简单到让人误会
1958年Frank Rosenblatt发明了感知机(Perceptron),这是一个单层的神经网络——输入层、输出层,中间一层权重。你把特征加权求和,再过一个阶跃函数(大于0输出1、小于0输出-1),就完成了二分类。
这是历史上第一个能从数据里"学习"的算法模型。它用的训练方法就是现在的随机梯度下降的雏形——预测错了就调整权重,朝着误差减小的方向走。
但1969年Marvin Minsky写了一本叫《感知机》的书,数学证明了一个单层感知机连"异或(XOR)"这种简单的逻辑都学不了,因为XOR在二维空间里线性不可分。这个结论直接浇灭了第一波神经网络的热情,整个领域进入了长达十几年的"AI冬天"。
多层感知机与反向传播——神经网络的真正奠基
解决XOR问题的方案其实很简单——加一层"隐藏层"。通过一个中间层先把二维空间的点映射到三维空间,在三维空间里XOR就线性可分了。这是一个几何直觉——增加维度可以让不可分的数据变得可分。
但问题来了:单层感知机的权重更新有明确的数学推导(误差=真实值-预测值),多层网络里隐藏层的权重怎么更新?你不知道"隐藏层的输出该是多少"。
1986年,Rumelhart、Hinton和Williams发表了那篇开创性的论文,正式提出了反向传播算法(Backpropagation)。核心思想就是"链式法则"——从输出层往前推,把输出层的误差"分配"到每一层上,然后用梯度下降逐层更新权重。
反向传播的提出是神经网络历史的转折点。因为从此以后,你可以训练多层的、非线性的网络了——隐藏层可以有多层、每层可以有多个神经元,只要你愿意,可以堆到很深很深。
激活函数——没有它,再深的网络也是线性变换
你可能会问:"堆那么多层有什么意义?如果每层都是线性变换(加权求和),那多层叠加还是线性变换,等价于一个单层网络。"
所以每一层之后必须加一个非线性激活函数,让网络具备拟合任意复杂函数的能力。
早期用的Sigmoid函数,把输入压缩到(0,1)之间,性质很好,但有个致命的"梯度消失"问题——输入很大或者很小的时候,导数趋近于0,反向传播的梯度传不过来,深层网络训不动。Tanh类似,只是范围变成了(-1,1)。
2011年ReLU(修正线性单元)横空出世,就是max(0,x)——正数部分不变、负数部分截断为0。这个函数简单到令人发指,但它在正数部分导数为1,梯度不衰减,大大缓解了梯度消失问题,而且计算极其高效。从此ReLU成了深度学习的默认激活函数,直到现在依然如此。
卷积神经网络——给图像设计的天才结构
全连接网络处理图像有一个致命问题——参数量太大。一张224x224x3的图,摊平之后是15万个像素,如果第一层就有1000个神经元,那就是1.5亿个参数,不光算不动,而且极度容易过拟合。
卷积神经网络的核心思想是"局部连接"和"权值共享"。用一个小尺寸的卷积核(比如3x3)在整个图像上滑动,同一个卷积核的所有位置共享同一组权重。这样参数量被压缩到了几百几千个,而且天然具备"平移不变性"——猫在图像的左上角还是右下角,卷积核都能捕捉到它的边缘特征。
1989年LeCun提出LeNet,用在手写数字识别上,是现代CNN的始祖。但真正引爆这个领域的是2012年的AlexNet——用GPU训练了一个8层的CNN,在ImageNet图像分类比赛上把错误率从26%砍到了15%,震惊了学术界和工业界。从此深度学习进入了"大模型+大数据+大算力"的暴力美学时代。
循环神经网络——处理序列数据的"记忆"机制
图像是静态的,但语言、语音、时间序列是有"先后顺序"的。循环神经网络(RNN)的核心思想是"记忆"——每个时间步的输出不仅依赖当前输入,还依赖上一个时间步传下来的"隐状态"。
这就像你在读一段文字,每个词的阅读理解都结合了前面所有词的上下文。LSTM和GRU是RNN的改进版,通过"门控机制"解决了长序列中的梯度消失/爆炸问题——它们能记住几百步之前的信息,而普通RNN只能记住几步。
但RNN的"顺序处理"性质决定了它很难并行化——必须一个token一个token地跑,GPU的大规模并行优势发挥不出来。这在处理长序列时成了瓶颈。
Transformer——"注意力"机制彻底改变了一切
2017年"Attention Is All You Need"这篇论文的发表,是神经网络历史上仅次于反向传播的里程碑事件。
Transformer抛弃了RNN的顺序处理,完全依赖"自注意力(Self-Attention)"机制。自注意力的核心是:序列里的每个元素都可以"直接"看到序列里的所有其他元素,然后对不同的元素赋予不同的"注意力权重",加权汇总得到自己的新表示。
这个操作可以并行化(所有元素同时算),而且能捕捉长距离依赖——不管两个词隔了多远,注意力机制都能直接建立联系,不像RNN要一步一步地传过去。
Transformer加上了位置编码(因为没有了顺序输入,必须人工告诉模型"谁在前谁在后")、多头注意力(多组注意力并行)、残差连接和LayerNorm(防止深层网络退化),再加上海量数据和超大规模算力,成就了GPT、BERT、LLaMA等一系列横扫全领域的"大模型"。
Transformer的出现让"神经网络架构设计"这件事不再有"图像用CNN、语言用RNN"的分野了。现在一个Transformer架构可以干CV、NLP、语音、多模态所有活儿——这也是为什么很多人说"Transformer就是深度学习的第一性原理"。
神经网络的未来——更大?更小?还是更聪明?
过去十年的发展,模型规模从几百万参数膨胀到了几千亿,数据量从几十万样本膨胀到了几万亿token。这种"暴力堆料"的模式还能持续多久,现在没人说得清楚。但有几个方向是明确的:
一是效率优化——如何用更少的算力和更少的数据达到同样的效果。模型蒸馏、量化、剪枝、稀疏计算,这些会越来越重要。
二是架构探索——Transformer的自注意力是O(n²)复杂度,处理长序列时捉襟见肘。Mamba这类基于状态空间模型的新架构正在挑战Transformer的霸主地位,未来三年可能会出现新的"范式级"突破。
三是多模态融合——文本、图像、视频、语音、3D点云,把所有这些模态在同一个模型里统一处理,这是通往"世界模型"的必经之路。
神经网络的故事远远没有结束,我们还在半山腰上。