Return
AI相关 深度学习 AI史

深度学习 03

深度学习不是什么新兴产物,但早期的机器和训练技巧无法支撑其发展。

早期问题

1980 年代,多层感知机和反向传播已经出现。

从结构上看,它和后来的深度神经网络已经没有本质区别:

输入线性层激活函数线性层输出\text{输入} \longrightarrow \text{线性层} \longrightarrow \text{激活函数} \longrightarrow \text{线性层} \longrightarrow \cdots \longrightarrow \text{输出}

但当时遇到了梯度消失问题,加之通用近似定理的提出。

大家都转向了更容易分析、更容易训练、数学基础更严密的传统机器学习方法,比如 SVM。深层网络慢慢淡出视野。

BM

玻尔兹曼机 (Boltzmann Machine, BM) 的灵感来源于物理学中的热力学。

物理学里有一个概念:一个系统总是倾向于达到能量最低、最稳定的状态。

BM 很理想化:

  • 把神经元分为可见层隐藏层
  • 可见层接收数据,隐藏层提取特征
  • 网络里的节点不断互相影响,最后达到一个稳定状态

但这样的网络结构太复杂了,每一个神经元都要和其他所有神经元相连。可见层内部互相连,隐藏层内部互相连,层与层之间也连。

这样的结构下,如果要更新权重,就必须计算网络里所有可能状态的概率分布。

如果有 NN 个节点,状态空间就是 2N2^N

所以 BM 只是一个理论上的上帝机器,不具备现实意义。不过其提出的隐藏层概念影响深远,成为深度网络中间层的通用称呼。

RBM

为了让理论落地,Hinton 做了个工程妥协:去掉所有同层连接

受限玻尔兹曼机 (Restricted Boltzmann Machine, RBM) 就此诞生。

实现原理

RBM 做的是无监督学习。

给它一张猫的图片,它的隐藏层被激活,然后它尝试用隐藏层的激活信号反向重构出一张猫的图片。如果重构结果和原图差距很大,它就调整权重。

反复训练后,RBM 可以学到这批输入数据的内部特征分布。

条件独立

在 RBM,连接只允许在可见层和隐藏层之间存在

这个限制带来了一个很重要的性质:条件独立

给定可见层的数据时,隐藏层每一个节点的概率计算相互独立,转化成了可以并行处理的矩阵运算。

BM 与 RBM 对比

逐层预训练

2006 年,Hinton 用 RBM 做了一套逐层预训练的方法:

  1. 用原始数据训练一号 RBM。
  2. 训练好后,把第一层权重固定(冻结)。
  3. 把一号 RBM 的隐藏层输出当作二号 RBM 的输入,训练二号。
  4. 一层一层往上叠。
  5. 最后在顶层加分类器,再用反向传播整体微调。

这叫贪心逐层预训练

这个方案的实用性不强,但它实打实地证明了深层网络是可以被训练的。

这是个关键转折。深层网络之前两次失败(线性 & 梯度消失),学术界对它早已没有耐心。

Hinton 把多层神经网络重新包装:Deep Learning 就此诞生。

Deep Learning

RBM 的退场

但如果今天去看主流框架,已经没有 RBM 的影子了。

因为后来出现了大量优化方案:

  • ReLU 激活函数:从数学根源上缓解 Sigmoid 带来的梯度消失。
  • 科学初始化:比如 Xavier、Kaiming 初始化,让随机初始权重不至于一开始就把信号搞崩。
  • Batch Normalization:强行把中间层分布拉回稳定范围。

RBM 功成身退,把舞台留给了年轻人。

深度学习爆发条件

GPU

这是改变格局的物理转折点。

2009 年,学者们发现,神经网络里海量的矩阵乘法(wTxw^Tx),完美契合为了打游戏而发明的显卡(GPU)的并发计算架构。

以前用 CPU 跑几个月的大模型,现在用 GPU 几天就能跑完。算力瓶颈被打碎

走到台前

  • 算法已经成熟(ReLU 激活函数解决了梯度消失问题)。
  • 硬件已经到位(GPU 让大规模训练成为可能)。
  • 数据已经准备好(ImageNet 等大数据集让模型有机会学到复杂规律)。

2012 年,Hinton 的学生使用深度卷积神经网络(AlexNet)在 ImageNet 大赛中以碾压性的优势击败了所有传统视觉算法。

至此,深度学习正式站在了舞台中央。