
2012年秋天我在学校实验室里第一次看到AlexNet在ImageNet上的结果当时的感觉是“这东西怎么比第二名低那么多”。那会儿大家还在玩SVM、稀疏编码神经网络被当成上个世纪的古董结果一夜之间所有人都开始翻Hinton那几篇老论文。后来我回过头去读了从1943年MP神经元到2017年Transformer的几乎所有关键论文才发现神经网络和深度学习的发展根本不是什么线性叙事而是“被捧上天、被踩进泥、再爬回来、然后直接起飞”的曲折过程。这篇大事记我就按自己啃历史的时间顺序把这些里程碑串一遍顺带把今天还会遇到的很多问题——比如为什么图像处理用CNN不用前馈网络、BP网络怎么拟合曲线、深度学习环境怎么搭——都放在对应的历史节点里一起讲清楚。1. 开天辟地感知机与第一次热潮1.1 MP神经元神经网络最初的数学雏形故事要从1943年说起。神经生理学家麦卡洛克和逻辑学家皮茨合作发表了一篇论文提出了后来被称为MP模型的神经元数学模型。这个模型干的事情其实很简单把神经元看成一个带权重的逻辑门输入信号乘以权重后求和超过某个阈值就输出1否则输出0。用今天的眼光看这就是一个二分类线性阈值单元但放在当时它是第一次有人用数学方式描述“大脑里的神经元是怎么做计算的”。MP模型的贡献不在于它多强大而在于它确立了神经网络最基本的计算范式加权求和加非线性激活。现在你随便打开一个深度学习框架写一行nn.Linear再加一个ReLU本质上还是这个范式。很多初学者觉得神经网络特别玄乎其实拆到最底层就是一个一个MP模型的堆叠和组合。1.2 罗森布拉特感知机第一个能学习的神经网络到了1958年康奈尔大学的罗森布拉特在MP模型基础上搞出了感知机Perceptron。他做了一件MP模型没做到的事情给网络加了学习规则。感知机的训练过程是根据预测结果和真实标签的差异来调整权重样本被分错了就往正确方向修正权重分对了就保持不变。这就是最早的“基于误差驱动”的学习算法。当时这个玩意儿被媒体吹得很厉害《纽约时报》说它“能学会走路、说话、看东西甚至能复制自己”。罗森布拉特本人也比较高调觉得很快就能造出真正的智能机器。不过那时候的感知机是单层结构只能处理线性可分的问题这给后来埋了一个大坑。我在读这段历史的时候最大的感触是技术本身的进步固然重要但媒体和资本的情绪真的能把一个研究方向的节奏完全带偏这跟今天某些领域疯狂炒作很像。1.3 XOR困境第一次寒冬的真正原因1969年明斯基和帕珀特出版了《感知机》一书用严格的数学证明了单层感知机无法解决线性不可分问题最经典的例子就是XOR异或问题。所谓XOR就是两个输入相同输出0不同输出1。如果你把XOR的四个样本点画在二维平面上会发现不管你画什么样的直线都无法把两类点分开。这个证明本身没有错问题在于明斯基他们把结论放大成了“神经网络这条路走不通”。实际上解决XOR的方法早就有了苗头——只要在网络里加一个隐藏层就能把线性不可分问题映射到高维空间去解决。但当时缺少训练多层网络的可行算法单层感知机又确实有硬伤再加上明斯基在学界的地位很高整个神经网络领域瞬间被抽干了资金和人才。从1969到1980年代前神经网络研究基本进入冰河期。2. 破局关键反向传播与第一次复兴2.1 从误差反传到万能逼近1986年那篇论文多层网络要解决XOR问题最关键的是能训练隐藏层的权重。1974年沃伯斯在博士论文里已经提到了反向传播的想法但论文太冷门没几个人看到。1986年鲁梅尔哈特、辛顿和威廉姆斯在《自然》杂志上发表了一篇著名的论文《通过反向传播误差来学习表示》把这个算法真正推到了台前。反向传播的核心思想说穿了就是高数里的链式法则。网络前向计算出预测值和真实值算出误差然后用误差对每一层权重的梯度做反向传播逐层更新参数。举个例子一个三层的网络训练过程可以这么理解# 前向计算 z1 W1 x b1 a1 relu(z1) z2 W2 a1 b2 y_pred sigmoid(z2) # 反向传播梯度 dz2 y_pred - y dW2 dz2 * a1.T da1 W2.T dz2 * (a1 0) # relu导数 dW1 da1 * x.T # 更新权重 W1 - lr * dW1 W2 - lr * dW2这是我当年入门时手写过的第一版BP代码总共不到20行但它把整个深度学习的“引擎”说清楚了。这篇论文发表之后神经网络立刻迎来了一波复兴浪潮大家发现只要有足够多的层和神经元网络能自动学到特征表示不再需要手工定义特征。2.2 万能逼近定理只要够宽就行吗1989年前后赛本科和霍尼克等人分别证明了万能逼近定理一个单隐层的前馈神经网络只要隐藏层有足够多的神经元就可以以任意精度逼近任意连续的多元函数。这是一个非常强的结论也是今天还有人用BP神经网络做曲线拟合的理论基础。我在MATLAB里做过很多次BP拟合曲线的实验基本套路就是newff建网络、train训练、sim预测输入输出归一化之后单隐层网络拟合正弦、多项式这类函数效果都很好。但“万能逼近”在实际使用中藏着不少坑。首先它只说了“存在”这样的网络没说怎么找到它其次隐藏层神经元数量多了容易过拟合少了拟合不精确再次梯度下降很可能收敛到局部最优。所以很多初学者拿BP拟合曲线发现效果时好时坏根本原因不是网络不行而是初始化、学习率、隐层节点数这些超参数没调好。说白了万能逼近定理是一个灯塔告诉你前方有陆地但航线还得自己找。2.3 第一次复兴的岁月手写数字识别与LeNet第一次复兴期间卷积神经网络也在悄悄萌芽。1989年勒昆LeCun用卷积神经网络识别手写数字到1998年他正式发表了LeNet-5。这个网络的结构放在今天看依然相当清爽两个卷积层加两个池化层再接两个全连接层最后用softmax输出10个数字类别的概率。LeNet-5还顺手定义了卷积神经网络的基本范式卷积层提取局部特征池化层降低空间分辨率全连接层做分类决策。同时1998年还诞生了MNIST数据集这个由手写数字组成的数据集后来成了整个深度学习界的根几乎所有入门者都跑过它。顺便说一句LeNet-5被用于美国银行的支票识别系统这是神经网络最早的工业落地之一。可以说在深度学习被大众认识之前CNN已经默默做了十年打工人。3. 蛰伏年代从LSTM到深度学习的沉寂3.1 为什么神经网络在90年代再次遇冷90年代神经网络好不容易靠BP回暖了几年又遭到了一轮重击。这次不是被人写了书来证明它不行而是出现了更吸引人的替代品——支持向量机SVM。SVM当年之所以大杀四方是因为它基于凸优化理论上能保证找到全局最优解而且有完整的统计学习理论撑腰泛化误差界的说法就是那时候流行起来的。相比之下神经网络训练慢、可解释性差、容易掉进局部最优怎么看都像个“缺乏理论美感的经验工程”。另外还有一个现实问题90年代的算力实在太弱了。我查资料的时候看到LeNet-5当时的训练要跑好几天这还算快的。在GPU计算普及之前想让神经网络处理稍微大一点的数据集等待时间会直接劝退研究者。于是大量研究者转向SVM和核方法神经网络再次被边缘化。这段历史给我们一个很实在的教训一个方法能不能火除了看理论是否漂亮还得看基础设施是否支持。3.2 LSTM那个在冬天里悄悄长大的网络1997年霍赫赖特和施密德胡贝尔发表了长短期记忆网络LSTM的论文。当时循环神经网络RNN已经有了但存在一个致命问题梯度在时间方向上回传时要么爆炸要么消失网络根本记不住很久以前的信息。霍赫赖特他们想在RNN里加一条“传送带”让信息能原封不动地跨过很多时间步。LSTM的核心结构是三个门输入门决定新信息写入多少遗忘门决定旧记忆保留多少输出门决定当前时刻输出什么。门控机制的本质就是把“该忘记的”和“该记住的”交给网络自己去学。今天很多人在处理时间序列、语音、文本时还会遇到为什么普通RNN效果不好这样的问题答案就在LSTM这篇论文里。但在90年代LSTM只能在小规模问题上证明自己还要等上二十年等GPU和大量数据到位之后它才和CNN一起组成了深度学习的半边天。我读这段历史时最大的感慨是真正值钱的工作往往诞生于寒冬里它不赶热点只是一步一步把问题解决掉。3.3 深度信念网络与2006年的预训练思路2006年辛顿和萨拉赫丁诺夫发表了关于深度信念网络DBN的论文用一种逐层预训练的方式来训练多层神经网络。具体做法是先用受限玻尔兹曼机RBM把网络的第一层训练好固定住第一层参数再接着训练第二层一层一层往上堆最后用BP对整个网络做微调。这个思路今天看非常眼熟——“先在大量数据上做预训练再在下游任务上微调”不正是现在大语言模型的标准玩法吗区别只是当年用的是RBM逐层贪婪预训练现在用的是自监督的Transformer预训练。2006年这篇文章让“深度学习”这个概念正式进入学术圈视野但普通大众还是没什么感知。真正的爆炸要等到2012年。4. 爆发时刻2012年AlexNet到深度学习黄金十年4.1 ImageNet与AlexNetGPU乘以深度学习2012年是整个深度学习历史上最重要的分水岭。那一年辛顿带着他的两位学生克里泽夫斯基和苏茨克维参加了ImageNet大规模视觉识别竞赛ILSVRC用AlexNet把图像分类错误率从上一届冠军的26.2%直接压到15.3%领先第二名将近11个百分点。这个差距在当时是碾压性的其他队伍用的全是手工特征加传统机器学习而AlexNet是一个8层的卷积神经网络。AlexNet不是第一个CNN但它做了几个关键改动用ReLU激活函数解决梯度饱和问题用Dropout随机失活来抑制过拟合用数据增强扩大训练样本还用了双GPU并行训练。更重要的是它让整个计算机视觉社区明白了几件事第一深度很重要只要训练得动层数越多越好第二GPU是深度学习最合适的计算平台第三大数据加大模型加算力能碾压一切手工特征。这场竞赛之后NVIDIA的股价开始起飞各家高校和公司的实验室纷纷转向深度学习GPU训练集群成了新的标配。4.2 深度学习的“基建工程”ReLU、Dropout、BN、ResNetAlexNet引爆了热度但要让深度学习发展到今天的高度还需要一批“基建工程”。这里我特别想说说为什么图像处理用CNN而不是前馈神经网络这是很多入门者最喜欢问的问题。一张224x224的彩色图片展平之后是150528个数值如果用全连接网络第一个隐藏层如果有1024个神经元光这一层就有大约1.5亿个参数。而且展平的过程破坏了图像的空间结构像素之间的邻接关系、边缘纹理等局部特征全部丢失了。CNN的设计恰好解决这些问题卷积核只在自己感知野内做运算参数在不同空间位置共享一下把参数量降了几个量级卷积操作天然保留了局部相关性还能在浅层提取边缘纹理、在深层提取语义特征。这就解释了为什么深度学习视觉任务里CNN是标配而不是前馈网络。2013到2016年一批组件陆续落地ReLU解决了深层网络的梯度消失问题Dropout解决了过拟合问题批归一化BN缓解了网络内部协变量漂移让训练大幅加速2016年何恺明提出的残差网络ResNet用“跳连接”把网络深度推进到一百多层解决了网络加深反而变差的退化问题。我刚开始搭模型的时候总觉得结构越复杂越好后来才发现真正经典的网络结构都是把这几个基础组件用到了极致。4.3 从图像到自然语言RNN、注意力与Transformer到2014年深度学习已经不满足于只做图像了。语音识别先用RNN和LSTM刷新了记录机器翻译开始在序列到序列模型里尝试注意力机制。巴达瑙等人提出了在解码时动态关注编码器不同位置的注意力机制简单说就是每次生成一个目标词语时不要只依赖一个固定向量而是从源语言的不同位置按权重取信息。这个“动态取重点”的设计后来成了整个深度学习最通用的思想。2017年谷歌团队发表的那篇《Attention Is All You Need》直接把循环结构整个去掉提出了Transformer架构。Transformer用自注意力机制让每个token都能直接看到序列里的所有其他token一举解决RNN无法并行计算和长距离依赖的问题。我当时第一次读这篇论文最大的感受就是“怎么会有人想到这么简洁的结构”。之后的故事大家都知道了2018年BERT出来双向Transformer预训练模型刷新了几乎所有NLP榜单GPT系列一路做大到2022年底ChatGPT发布深度学习正式成为全民话题。4.4 图神经网络、生成模型与深度强化学习深度学习这十年不是只有CNN和Transformer。图神经网络GNN专门处理社交网络、分子结构、知识图谱这类非欧几里得数据核心操作是消息传递加邻居聚合。我第一次用GNN做分子性质预测时的体验是上手不难难的是理解图的池化和节点表示学习到底在学什么。2014年古德费洛提出了生成对抗网络GAN让生成模型进入黄金时代。GAN的思路是让一个生成器和一个判别器互相当裁判生成器负责伪造样本判别器负责分辨真假两者相互博弈到最后生成器能产生极其逼真的图像。这个“以战养战”的训练方式非常有想象力但也非常难稳定训练模式崩溃、训练震荡都是家常便饭。深度强化学习那边2016年AlphaGo击败李世石是一个标志性事件。它用深度神经网络做策略评估和行动选择配合蒙特卡洛树搜索第一次让人工智能在围棋这个人类智力竞技场上超越了顶级人类选手。当时我看完全程直播第一反应是“围棋AI真的是靠神经网络下赢的这技术要变天了”。5. 工具与算力支撑深度学习的隐形肩膀5.1 深度学习框架之争从Caffe到TensorFlow再到PyTorch深度学习理论发展得再漂亮没有趁手的工具也很难落地。2013年贾扬清发布Caffe这是早期最流行的深度学习框架之一它在计算机视觉领域非常顺手但也留下了一些让后人不太舒服的设计比如配置文件繁杂、扩展新层麻烦。我记得自己第一次用Caffe改一个自定义层光搞明白prototxt的语法就花了半天。2015年谷歌开源TensorFlow用计算图的方式抽象了整个训练过程它的问题在于静态图机制对调试不太友好2016年Facebook开源了PyTorch把动态图带到主流视野调试起来就像写普通Python一样直观。到今天PyTorch基本成了学术界和工业界的默认选择很多新框架也把兼容PyTorch当成标准。框架之争给后来者的启示是开发者体验真的很重要一个工具好不好用很多时候决定了它能走多远。除了这些大框架很多细分领域也有自己的工具链。比如工业机器视觉领域Halcon这种商业软件里也集成了深度学习工具适合做检测、分割这类落地应用。遇到这类场景你不用非得从零训练一个CNN直接用Halcon下载和调用预训练模型再到自己的样本上微调就行。工具没有高下之分能帮你把事情做成才是核心。5.2 硬件演进CPU、GPU到专用AI芯片2012年AlexNet能成功GPU功不可没。1999年NVIDIA发明GPU是为了图形渲染2006年CUDA发布后GPU才真正能用于通用计算。训练神经网络需要大量并行矩阵乘法GPU这种一堆小核同时开工的架构简直是天生的算力机器。我从CPU训练MNIST切到GPU训练CIFAR的时候感觉就像从骑自行车直接换成了坐高铁。2016年谷歌发布了TPU这是第一款专为深度学习设计的ASIC芯片在Transformer模型上能达到每瓦性能的惊人提升。这几年各种AI加速芯片也雨后春笋般出现我身边有朋友用过国产的摩尔线程S80来跑深度学习推理任务实测下来很多通用模型都能正常跑性能也够用。2025年国内研究生数学建模竞赛的A题甚至直接围绕“通用神经网络处理器下的核内调度”出题这说明用有限硬件做高效调度已经不是学术边缘问题而是深度学习中一个真实且重要的工程方向。对从业者来说理解硬件约束能从底层帮你在设计模型时做出更合理的取舍。6. 当下与学习路线如何站在历史上往前看6.1 从历史脉络看初学者应该先学什么我带过不少刚入门的朋友发现最容易踩的坑是一上来就想学大模型、想过百亿参数结果基础一塌糊涂。其实按照历史发展的顺序去学效率是最高的先理解MP模型和感知机再手推一次反向传播然后在小数据集上用Python写一个两层的BP网络接着用PyTorch搭一个CNN跑MNIST再试着用RNN或Transformer处理一个简单的文本分类任务。这个过程基本就是把70多年的历史快速重演一遍每一步都有据可依不会觉得知识是一堆散点。数学方面不用一开始就死磕花书里那些证明。你在训练一个网络时真正会反复用到的数学就是线性代数里矩阵乘法、微积分里链式法则、概率论里常见分布和最大似然以及一点点优化理论里的梯度下降。先会用再回头补推导这样压力小很多也能保持兴趣。6.2 环境与工具配置的最短可行路径现在搭建深度学习环境已经比十年前简单太多了。我给新人的建议是装好Anaconda创建Python3.10左右的环境然后pip install torch torchvision再装个Jupyter Notebook或VS Code一个能跑通的入门环境就完成了。大部分入门实验用CPU也完全能跑只是训练MNIST慢一点不至于劝退如果手头有NVIDIA独立显卡那就顺便装好CUDA版本的PyTorch训练速度会快很多。如果你想快速演示BP网络拟合一条曲线的效果MATLAB里的神经网络工具箱其实是个很省事的捷径前后不超过二十行代码。但前期用MATLAB跑通别急着“会了”建议还是回到Python里从零实现一次前向和反向传播看看梯度每次是怎么更新的。我在踩过不少坑之后总结出一个习惯配置环境遇到报错优先把报错信息原样复制到搜索引擎里找问题出在依赖版本冲突的概率非常高而在动手安装之前先用conda list查一下已有包版本很多时候可以省下两小时。6.3 推荐的学习资料与经典论文经典论文是永远绕不开的第一手资源。1986年那篇反向传播论文、1998年的LeNet-5、2012年的AlexNet、2017年的Transformer这四篇我建议所有认真学深度学习的人都精读一遍。论文里的背景和实验设计能让你看清楚一个关键问题是怎么被拆解和解决的这是任何教程都替代不了的。书籍方面邱锡鹏老师的《神经网络与深度学习》讲解系统数学上也比较温和《深度学习入门基于Python的理论与实现》是公认的动手向教材里面从零实现了神经网络和CNN很适合第一本想系统补数学理论再去看花书也不迟。课程方面吴恩达的深度学习专项课特点是清楚易懂适合建立全貌李沐的动手学深度学习则更偏实战能边看边跑代码。资料不在多挑一两本吃透远胜于囤一堆永远在收藏夹里吃灰的资源。如果非要说这个领域最打动我的是什么大概是每隔几年就会有人告诉你“某条路已经到头了”然后过几年同一个方向又会以你完全没想到的方式卷土重来。神经网络在上世纪60年代被证明有严重局限80年代靠BP复生90年代又被SVM压下去2012年靠算力和数据彻底翻身如今Transformer成了通用智能的基础架构。所以我的个人建议是别太执着于追每个热点把自己的数学功底和工程能力打扎实下次浪潮来的时候你只需要把旧知识平移过去就好。再分享一个小习惯每隔半年重读一遍2012年那篇AlexNet总能在细节里读出新的东西。