| 机器学习与 |
| --- |
|  |
| 范式
* 监督学习
* 無監督學習
* 線上機器學習
* 元学习（英语：）
* 半监督学习
* 自监督学习
* 强化学习
* 基于规则的机器学习（英语：）
* 量子機器學習
 |
| 问题
* 统计分类
* 生成模型
* 迴歸分析
* 聚类分析
* 降维
* 密度估计（英语：）
* 异常检测
* 数据清洗
* 自动机器学习
* 关联规则学习
* 語意分析
* 结构预测（英语：）
* 特征工程
* 表征学习
* 排序学习（英语：）
* 语法归纳（英语：）
* 本体学习（英语：）
* 多模态学习（英语：）
 |
| 监督学习(**分类** · **回归**)
* 学徒学习（英语：）
* 决策树学习
* 集成学习
	+ Bagging
	+ 提升方法
	+ 随机森林
* *k*-NN
* 線性回歸
* 朴素贝叶斯
* 人工神经网络
* 邏輯斯諦迴歸
* 感知器
* 相关向量机（RVM）
* 支持向量机（SVM）
* 迁移学习
* 微调
 |
| 聚类分析
* BIRCH
* CURE算法（英语：）
* 层次
* *k*-平均
* Fuzzy
* 期望最大化（EM）
* DBSCAN
* OPTICS
* 均值飘移（英语：）
 |
| 降维
* 因素分析
* CCA
* ICA
* LDA
* NMF（英语：）
* PCA
* PGD（英语：）
* t-SNE（英语：）
* SDL
 |
| 结构预测（英语：）
* 圖模式
	+ 貝氏網路
	+ 條件隨機域
	+ 隐马尔可夫模型
 |
| 异常检测
* RANSAC
* *k*-NN
* 局部异常因子（英语：）
* 孤立森林（英语：）
 |
| 人工神经网络
* 自编码器
* 認知計算
* 深度学习
* DeepDream（英语：）
* 多层感知器
* RNN
	+ LSTM
	+ GRU（英语：）
	+ ESN（英语：）
	+ 储备池计算（英语：）
* 受限玻尔兹曼机
* GAN
* SOM
* CNN
	+ U-Net
* Transformer
	+ Vision transforme（英语：）
* 脉冲神经网络（英语：）
* Memtransistor（英语：）
* 电化学RAM（英语：）（ECRAM）
 |
| 强化学习
* Q学习
* SARSA
* 时序差分（TD）
* 多智能体（英语：）
	+ Self-play（英语：）
* RLHF
 |
| 与人类学习
* 主动学习（英语：）
* 众包
* Human-in-the-loop（英语：）
 |
| 模型诊断
* 学习曲线（英语：）
 |
| 数学基础
* 内核机器（英语：）
* 偏差–方差困境（英语：）
* 计算学习理论（英语：）
* 经验风险最小化
* 奥卡姆学习（英语：）
* PAC学习（英语：）
* 统计学习
* VC理论
 |
| 大会与出版物
* NeurIPS
* ICML（英语：）
* ICLR
* ML（英语：）
* JMLR（英语：）
 |
| 相关条目
* 人工智能术语（英语：）
* 机器学习研究数据集列表（英语：）
* 机器学习概要（英语：）
 |
| * 
* 论
* 编
 |

在残差神经网络中的一个残差块里，残差连接跳过了两个网络层。
**残差神经网络**（**Residual Neural Network**，简称**ResNet**） 属于深度学习模型的一种，其核心在于让网络的每一层不直接学习预期输出，而是学习与输入之间的残差关系。这种网络通过添加"跳跃连接"，即跳过某些网络层的连接来实现身份映射，再与网络层的输出相加合并。其运作机制与高速神经网络（英语：）类似，通过极大的正偏置权重来打开"门控"。 这一设计使得拥有几十上百层的深度学习模型可以更易于训练，增加模型深度时还能保持甚至提高准确度。所谓的"残差连接"即"直连跳过"，这一概念也被应用于1997年的长短期记忆模型LSTM、 Transformer模型（比如BERT和GPT系列，ChatGPT等）、AlphaGo Zero、AlphaStar（英语：）以及AlphaFold等。

残差神经网络由何恺明、张祥雨、任少卿和孙剑开发，这一成果在2015年的ImageNet大规模视觉识别挑战赛中夺冠。

基本原理
----

### 背景介绍

2012年，针对ImageNet竞赛开发的AlexNet模型是一个包含8层的卷积神经网络。到了2014年，牛津大学的视觉几何组（VGG）通过叠加3x3卷积层将网络深度增加到了19层。
但是，层级的增加却导致训练精度的迅速下降， 这种现象被称为"性能退化"问题。

理论上，如果一个更深的网络仅仅是通过在一个较浅网络的基础上增加额外层来构建的，那么这个更深的网络不应该比其较浅的网络有更高的训练损失。 如果这些额外层具有身份映射的能力，那么更深的网络应该能够实现与其较浅网络相同的功能。但这里存在一个假设，即优化器不能有效地将这些参数化的网络层调整为身份映射。

### 残差学习

在多层神经网络模型里，设想一个包含若干层的子网络。这个子网络的函数用{\textstyle H(x)}来表示，其中{\textstyle x}是子网络的输入。残差学习是通过重新设定这个子网络的参数，让参数层表达一个残差函数{\textstyle F(x):=H(x)-x}。因此，这个子网络的输出{\textstyle y}可以表示为：

{\displaystyle {\begin{aligned}y&=F(x)+x\end{aligned}}}
这一原理同样适用于1997年提出的长短期记忆LSTM单元， 在随时间反向传播（英语：）里计算{\textstyle y\_{t+1}=F(x\_{t})+x\_{t}}，简化为{\textstyle y=F(x)+x}。

函数{\textstyle F(x)}常通过矩阵乘法实现，并结合激活函数以及规范化操作（如批量规范化（英语：）或层规范化）。

这类子网络被称作"残差块"。 通过叠加这样的残差块，形成深度残差网络。

在"{\textstyle y=F(x)+x}"公式中的"{\textstyle +\ x}"操作是通过一个相当于恒等映射的跳跃连接来完成，它将残差块的输入直接与输出连接。在随后的研究中，这种连接常被称作"残差连接"。

### 信号传递

身份映射的引入有利于信号在前向传播路径和反向传播路径中的传递。

#### 向前传播

如果第{\textstyle \ell }个残差块的输出是第{\textstyle (\ell +1)}个残差块的输入（这里假设块与块之间没有激活函数），可以得到：

{\displaystyle {\begin{aligned}x\_{\ell +1}&=F(x\_{\ell })+x\_{\ell }\end{aligned}}}
若递归应用此公式，例如，{\displaystyle {\begin{aligned}x\_{\ell +2}=F(x\_{\ell +1})+x\_{\ell +1}=F(x\_{\ell +1})+F(x\_{\ell })+x\_{\ell }\end{aligned}}}，可以推导出：

{\displaystyle {\begin{aligned}x\_{L}&=x\_{\ell }+\sum \_{i=l}^{L-1}F(x\_{i})\\\end{aligned}}}
这里{\textstyle L}表示任意后续残差块的索引（比如处于最末尾的块），{\textstyle \ell }代表任意靠前的块对应的索引。该公式说明了总有一个信号能够直接从浅层块{\textstyle \ell }传递到深层块{\textstyle L}。

#### 反向传播

残差学习的公式还在一定程度上缓解了梯度消失问题。然而，梯度消失并不是导致性能退化问题的根源，因为通过引入规范化层（如批量规范化）可在一定程度上解决此问题。根据上面的前向传播过程，对{\textstyle x\_{\ell }}进行求导，可以得到：

{\displaystyle {\begin{aligned}{\frac {\partial {\mathcal {E}}}{\partial x\_{\ell }}}&={\frac {\partial {\mathcal {E}}}{\partial x\_{L}}}{\frac {\partial x\_{L}}{\partial x\_{\ell }}}\\&={\frac {\partial {\mathcal {E}}}{\partial x\_{L}}}\left(1+{\frac {\partial }{\partial x\_{\ell }}}\sum \_{i=l}^{L-1}F(x\_{i})\right)\\&={\frac {\partial {\mathcal {E}}}{\partial x\_{L}}}+{\frac {\partial {\mathcal {E}}}{\partial x\_{L}}}{\frac {\partial }{\partial x\_{\ell }}}\sum \_{i=l}^{L-1}F(x\_{i})\\\end{aligned}}}
这里{\textstyle {\mathcal {E}}} 是最小化损失函数。以上表明，浅层的梯度计算{\textstyle {\frac {\partial {\mathcal {E}}}{\partial x\_{\ell }}}}总会直接加上一个项{\textstyle {\frac {\partial {\mathcal {E}}}{\partial x\_{L}}}}。因此，由于额外项{\textstyle {\frac {\partial {\mathcal {E}}}{\partial x\_{L}}}}的存在，即使{\textstyle F(x\_{i})}的梯度很小，总梯度{\textstyle {\frac {\partial {\mathcal {E}}}{\partial x\_{\ell }}}}也不会消失。

残差块
---

两种类型的卷积残差块。左侧是基本块，它由两个3x3卷积层组成。右侧是瓶颈块，该块先通过一个1x1卷积层进行降维，接着是一个3x3卷积层，最后再通过一个1x1卷积层恢复原来的维度。
### 基本残差块

基本残差块是原始ResNet研究中最简单的部分。 它包括两个串行的3x3卷积层以及一个残差连接。这两层的输入输出尺寸保持一致。

### 瓶颈残差块

瓶颈残差块包含三个串联的卷积层和一个残差连接。 该块的第一层是1x1卷积，用于降维，比如降至输入维度的1/4；第二层是3x3卷积；最后一层是另一个1x1卷积，用于恢复维度。ResNet-50、ResNet-101和ResNet-152模型都基于瓶颈块构建。

### 预激活残差块

预激活残差块在应用残差函数{\textstyle F}之前，先使用激活函数，如非线性和规范化的处理。预激活残差块的计算可以表述为：

{\displaystyle {\begin{aligned}x\_{\ell +1}&=F(\phi (x\_{\ell }))+x\_{\ell }\end{aligned}}}
这里的{\textstyle \phi }可以是如线性整流函数等任意非线性激活或归一化操作。这种设计减少了残差块间非恒等映射的数量，被用于训练200层到1000多层的模型。

从GPT-2开始，Transformer块常被用于预激活块，这在Transformer模型的相关文献中被称为"预规范化"。

### Transformer块

原始GPT模型采用的Transformer架构是由两种类型的残差块构成：一个是多头注意力块，另一个是前馈的多层感知器（MLP）块。这种设计通过结合两个功能强大的残差块，使得Transformer能够高效地处理数据并学习复杂的特征，其中每个残差块都利用残差连接来促使信号在网络深层之间的流动以及更有效的进行梯度回传，克服了深度模型训练过程中遇到的梯度消失等问题。
Transformer块是由两个残差块组成，每个残差块都设有一个残差连接。

第一个残差块为多头注意力块，使用了自注意力运算，随后连接一个线性映射层。第二个残差块是一个前馈式的多层感知器（MLP）块，这个块在某种程度上像是一个"反向"的瓶颈块，它通过一个线性映射层（在卷积神经网络中相当于1x1的卷积）来扩大维度，然后通过另一个线性映射层来减少维度。

一个Transformer块包含了四层线性映射。GPT-3模型拥有96个这样的Transformer块（在Transformer领域的文献中，通常将一个Transformer块称作一个"Transformer层"）。因此，该模型包含了大约400层的映射层，包括Transformer块内的96x4层，以及一些额外的层用于输入嵌入和输出预测。

若没有残差连接，训练网络深度极高的Transformer模型将无法取得成功。

相关研究
----

1961年，在弗兰克·罗森布拉特出版的书籍中介绍了一个含有跳跃连接的三层多层感知器（MLP）模型（详见第15章，第313页）。这种模型被称作"交叉耦合系统"，其跳跃连接实际上是交叉耦合连接的一种形式。

在1994年和1996年出版的书籍中提出了在前馈MLP模型中使用的"跳层"连接："MLP一般允许存在多个隐藏层，并且支持从输入直接到输出的‘跳层’连接"（详见第261页，第144页），"...这使得非线性单元能够调整线性函数形式"（详见第262页）。这种说法其实已经暗示了非线性MLP的表现就像是在一个线性函数上加上了一个残差函数。

塞普·霍赫赖特（英语：）在1991年分析了梯度消失问题，并认为这是深度学习效果不佳的原因。 为解决这一问题，长短期记忆（LSTM）网络在每个LSTM单元中引入了权重为1.0的跳跃或残差连接，计算公式为{\textstyle y\_{t+1}=F(x\_{t})+x\_{t}}。在随时间反向传播（英语：）中，这个公式转化为前馈神经网络中的残差公式{\textstyle y=F(x)+x}，从而实现了深层循环神经网络的有效训练。2000年发布的一种LSTM版本通过"遗忘门"来调节连接，这些门的权重不再固定为1.0，而是可以学习的。在实际实验中，遗忘门通过正偏置权重进行初始化，从而解决梯度消失问题。

2015年，高速神经网络（英语：）将上述原理应用于前馈神经网络，被媒体报道称为"首个具有数百层深度的前馈神经网络"。 原有的高速神经网络论文不仅提出了非常深的前馈网络的基本架构，还展示了20层、50层和100层网络的实验结果，并提及正在进行的深达900层的实验。50层或100层的网络相较于它们常用的神经网络有更低的训练误差，但与20层的训练结果相比，误差并无降低（详见MNIST数据集中的图1）。在超过19层的网络上，并未有训练精度的提高（详见CIFAR-10数据集中的表1）。然而，ResNet的研究证明了多于20层以上的训练结果同样有效。 它指出跳跃连接中的调节可能导致前向和反向传播中信号的消失（详见第3节）。这也解释了为什么2000年的LSTM的遗忘门要通过正偏置权重初始化为开启状态：只要门处于开启状态，它就如同1997年的LSTM。同样，高速神经网络如果通过强正偏置权重保持门的开启状态，就表现得如同ResNet一样。现在的神经网络（如Transformer）中使用的跳跃连接主要就是身份映射。

2016年出现的DenseNets被设计为一种深层的神经网络，旨在将每一层与其他所有层连接。DenseNets通过使用身份映射作为跳跃连接来实现这一目标。与ResNet不同，DenseNets通过拼接而非加法将层输出与跳跃连接合并。

利用残差网络架构，实现了具有随机深度的神经网络。 通过随机丢弃一部分网络层，让信号通过跳跃连接进行传播。这种做法也被称为"路径丢弃"。这是训练大型深层模型，如视觉Transformer（英语：）（ViT）的一种十分有效的正则化方法。

与生物学的联系
-------

虽然最初的残差网络研究并未受生物学启发，但后来的研究却发现残差网络与生物学有关。

2023年《科学》杂志上发表的一项研究展示了果蝇幼虫大脑的完整神经连接组。 这项研究发现了类似于人工神经网络中如ResNet一样的跳跃连接。

参考文献
----

1. 1 2 3 4 5 6 7  He, Kaiming; Zhang, Xiangyu; Ren, Shaoqing; Sun, Jian.. 10 Dec 2015. arXiv:1512.03385 可免费查阅.
2. 1 2 3 4 5  Srivastava, Rupesh Kumar; Greff, Klaus; Schmidhuber, Jürgen.. 3 May 2015. arXiv:1505.00387 可免费查阅 [cs.LG].
3. 1 2 3  Sepp Hochreiter; Jürgen Schmidhuber.. Neural Computation. 1997, **9** (8): 1735–1780  [2024-01-27]. PMID 9377276. S2CID 1915014. doi:10.1162/neco.1997.9.8.1735. （原始内容存档于2021-01-22）.
4. ↑  Deng, Jia; Dong, Wei; Socher, Richard; Li, Li-Jia; Li, Kai; Fei-Fei, Li.. CVPR. 2009  [2024-01-27]. （原始内容存档于2019-09-29）.
5. ↑ . image-net.org.  [2024-01-27]. （原始内容存档于2023-09-29）.
6. ↑  Simonyan, Karen; Zisserman, Andrew.. 2014. arXiv:1409.1556 可免费查阅 [cs.CV].
7. ↑  He, Kaiming; Zhang, Xiangyu; Ren, Shaoqing; Sun, Jian.. 2016. arXiv:1502.01852 可免费查阅 [cs.CV].
8. ↑  Szegedy, Christian; Ioffe, Sergey; Vanhoucke, Vincent; Alemi, Alex.. 2016. arXiv:1602.07261 可免费查阅 [cs.CV].
9. 1 2 3 4 5 6 7  He, Kaiming; Zhang, Xiangyu; Ren, Shaoqing; Sun, Jian.. 2015. arXiv:1603.05027 可免费查阅 [cs.CV].
10. ↑  Radford, Alec; Wu, Jeffrey; Child, Rewon; Luan, David; Amodei, Dario; Sutskever, Ilya.  (PDF). 14 February 2019  [19 December 2020]. （原始内容存档 (PDF)于6 February 2021）.
11. ↑  Dong, Yihe; Cordonnier, Jean-Baptiste; Loukas, Andreas.. 2021. arXiv:2103.03404 可免费查阅 [cs.LG].
12. 1 2  Rosenblatt, Frank.  (PDF). 1961  [2024-01-27]. （原始内容存档 (PDF)于2023-05-04）.
13. 1 2 3  Venables, W. N.; Ripley, Brain D.. Springer. 1994  [2024-01-27]. ISBN 9783540943501. （原始内容存档于2023-08-22）.
14. 1 2  Ripley, B. D.. Cambridge University Press. 1996  [2024-01-27]. （原始内容存档于2023-12-02）.
15. ↑  Hochreiter, Sepp.  (PDF) (diploma论文). Technical University Munich, Institute of Computer Science, advisor: J. Schmidhuber. 1991  [2024-01-27]. （原始内容存档 (PDF)于2023-03-20）.
16. 1 2 3  Felix A. Gers; Jürgen Schmidhuber; Fred Cummins.. Neural Computation. 2000, **12** (10): 2451–2471. CiteSeerX 10.1.1.55.5709 可免费查阅. PMID 11032042. S2CID 11598600. doi:10.1162/089976600300015015.
17. ↑  Srivastava, Rupesh Kumar; Greff, Klaus; Schmidhuber, Jürgen.. 22 July 2015. arXiv:1507.06228 可免费查阅 [cs.LG].
18. ↑  Schmidhuber, Jürgen.. 2015  [2024-01-27]. （原始内容存档于2023-11-27）.
19. ↑  Huang, Gao; Liu, Zhuang; van der Maaten, Laurens; Weinberger, Kilian.. 2016. arXiv:1608.06993 可免费查阅.
20. ↑  Huang, Gao; Sun, Yu; Liu, Zhuang; Weinberger, Kilian.. 2016. arXiv:1603.09382 可免费查阅.
21. ↑  
Liao, Qianli; Poggio, Tomaso.. 2016. arXiv:1604.03640 可免费查阅.
22. ↑  
Xiao, Will; Chen, Honglin; Liao, Qianli; Poggio, Tomaso.. 2018. arXiv:1811.03567 可免费查阅.
23. ↑  Winding, Michael; Pedigo, Benjamin; Barnes, Christopher; Patsolic, Heather; Park, Youngser; Kazimiers, Tom; Fushiki, Akira; Andrade, Ingrid; Khandelwal, Avinash; Valdes-Aleman, Javier; Li, Feng; Randel, Nadine; Barsotti, Elizabeth; Correia, Ana; Fetter, Fetter; Hartenstein, Volker; Priebe, Carey; Vogelstein, Joshua; Cardona, Albert; Zlatic, Marta.. Science. 10 Mar 2023, **379** (6636): eadd9330. PMC 7614541 可免费查阅. PMID 36893230. S2CID 254070919. bioRxiv 10.1101/2022.11.28.516756v1 可免费查阅. doi:10.1126/science.add9330.

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

| * 
* 论
* 编
可微分计算 |
| --- |
|  |
| 概论 | 
* 可微分编程
* 自動微分
* 张量微积分（英语：）
* 信息几何
* 统计流形
* 神经形态工程（英语：）
* 模式识别
* 运算学习理论（英语：）
* 归纳偏置

 |
|  |
| 概念 | 
* 梯度下降
	+ SGD（英语：）
* 聚类
* 回归
	+
* 幻觉
* 对抗（英语：）
* 注意力
* 卷积
* 損失函數
* 反向传播
* + softmax
	+ sigmoid
	+ ReLU
* 正则化
* 
* 扩散（英语：）
* 自回归

 |
|  |
| 应用 | 
* 机器学习
* 人工神经网络
	+ 深度学习
* 科学计算
* 人工智能
* 語言模型
	+ 大型语言模型

 |
|  |
| 硬件 | 
* TPU
* VPU
* IPU（英语：）
* 憶阻器
* SpiNNaker（英语：）

 |
|  |
| 软件库 | 
* Theano
* TensorFlow
	+ Keras
* PyTorch
* JAX
* Flux.jl（英语：）

 |
|  |
| 实现 | 

|  |  |
| --- | --- |
| 视觉·语音 | 
* AlexNet
* WaveNet
* 人像合成
* 手寫
* OCR
* 语音合成
* 
* 
* AlphaFold
* DALL-E
* Midjourney
* Stable Diffusion
* Sora
* Whisper（英语：）

 |
|  |
| 自然语言 | 
* Word2vec
* Seq2seq
* BERT
* LaMDA
	+ Bard
* NMT
* 辩手项目（英语：）
* 沃森
* GPT
	+ GPT-1
	+ GPT-2
	+ GPT-3
	+ GPT-4
* GPT-J（英语：）
* ChatGPT
* 文心一言
* Chinchilla AI（英语：）
* PaLM（英语：）
* BLOOM（英语：）
* LLaMA

 |
|  |
| 决策 | 
* AlphaGo
* Q学习
* SARSA
* OpenAI Five（英语：）
* 自动驾驶
* MuZero
* 行动选择（英语：）
	+ Auto-GPT
* 机器人控制（英语：）

 |

 |
|  |
| 人物 | 
* 约书亚·本希奥
* 杰弗里·辛顿
* 杨立昆
* 艾力克斯·格雷夫斯
* 伊恩·古德费洛
* 吴恩达
* 杰米斯·哈萨比斯
* 大衛·席爾瓦
* 李飛飛
* 于尔根·施密德胡伯
* 伊爾亞·蘇茨克維

 |
|  |
| 组织 | 
* Anthropic
* DeepMind
* EleutherAI（英语：）
* Google Brain
* Meta AI（英语：）
* Mila（英语：）
* MIT CSAIL
* OpenAI
* Hugging Face

 |
|  |
| 架构 | 
* 多层感知器（MLP）
* 循环神经网络（RNN）
* 長短期記憶（LSTM）
* 门控循环单元（英语：）（GRU）
* 卷积神经网络（CNN）
* 残差神经网络（ResNet）
* 变换器
* 自编码器
* 变分自编码器（VAE）
* 生成对抗网络（GAN）
* 图神经网络（英语：）（GNN）
* 回响状态网络（英语：）（ESN）
* 神经图灵机（NTM）
* 可微分神经计算机（英语：）（DNC）

 |
|  |
| 
* 主题 主题
	+ 计算机编程
	+ 技术
* 分类 分类
	+ 人工神经网络
	+ 机器学习

 |

 |