人工智能发展史 — 物理学诺奖之 Hinton 玻尔兹曼机模型
目录
文章目录
2024 诺贝尔物理学奖与人工智能
2024 年的诺贝尔物理学奖颁发给了 John Hopfield 和 Geoffrey Hinton,以表彰他们在实现机器学习的人工神经网络方面的基础性发现与发明。他们分别在 1982 年和 1983 年提出的霍普菲尔德网络和玻尔兹曼机这两种人工神经网络数据模型。
- 霍普菲尔德网络:解决了 “记忆” 如何在一个神经网络中稳健而灵活地存储,即使有些变化,神经网络也能 “想起来” 或者 “认出来”。
例如:使用霍普菲尔德网络来存储字母图像后,在一定噪声下,网络也可以 “认出” 已经存储的字母; - 玻尔兹曼机:也称为 “随机霍普菲尔德网络”,在普菲尔德网络的基础上,玻尔兹曼机借鉴的物理热力学系统中的能量跃迁机制,让神经网络拥有了 “创造性”,可以探索那些没见过的模式,从而变得更加灵活聪明,是今天生成式模型的奠基者。
简而言之,霍普菲尔德网络像是在如实的演奏一首已经记住了的曲子,而玻尔兹曼机则更像是爵士乐的即兴演奏,是对记忆的 “创造性复现”。

Hopfield 首次将统计物理中研究自旋玻璃的伊辛模型和人工神经网络、神经科学中的赫布法则、心理学中的格式塔现象以及用于并行计算的电路设计联系了起来,并从生物、计算与物理的角度解释了神经网络的记忆涌现行为。
得奖后一周,Hopfield 接受了 Lex Fridman 的对话采访。访谈中,Hopfield 谈到了当时的贡献。他认为他的研究从物理视角解释了一个物理系统(包括抽象后的人脑)如何能产生学习和记忆的行为,但它并没有描述在生物体中实际的学习机制和过程。不论如何,这些洞见在当时打通了计算、生物与物理学之间的新桥梁。从此,Hopfield 网络成了利用统计物理研究人工神经网络和智能原理的基本模型。
在 1980 年代和 1990 年代,研究人员认识到神经网络可以近似复杂的概率分布和模拟复杂的函数 —— 但训练它们非常困难。 Hinton 开创性的提出了玻尔兹曼机,它利用统计力学中的概念(如能量状态和热平衡)来描述网络如何学习观测变量和隐藏变量的联合分布。后来,受限玻尔兹曼机用更易于处理的架构完善了这些想法,激发了深度信念网络 (DBN) 和整个早期深度学习研究浪潮。
在得知得奖的第一时间,Hinton 本人表示 “没想到会发生这样的事情“。后来,在接受《纽约某报》的采访时,Hinton 表示:Hopfield 网络及其进一步发展(玻尔兹曼机)均依托于物理学成果。Hopfield 网络使用能量函数,而玻尔兹曼机则遵循统计物理学的思想。换句话说,神经网络发展在该阶段中确实很大程度依赖于物理学领域的思想。但实际上,用于构建如今常见的 AI 模型的是另一种不同的技术,这就跟物理学关系不大了。

1983 年:玻尔兹曼机
统计物理学背景知识
玻尔兹曼分布
19 世纪中叶,欧洲进入了第二次工业革命,大规模使用蒸汽机和内燃机技术革新动力来源。然而,当时的人们仍不清楚热能是如何从物质中产生并驱动机器的。以至于当时的发动机做功效率只不到 5%。直到 “热力学” 的诞生 —— 一门关于热平衡现象和如何设计高效热机的科学理论。
其中,热力第二定律指的是:热量可以自发地从温度高的物体传递到温度低的物体,但不可能自发地从温度低的物体传递到温度高的物体。即:孤立系统会自发地朝着热力学平衡的方向(熵最大化的状态)演化,最终退化为完全无序状态,因而又称为 “熵增定律”。
“熵” 概念最早由德国物理学家克劳修斯提出,他在宏观的层面用熵来描述系统能量变化与温度的关系。而路德维希·玻尔兹曼则是在微观的、分子的层面进行了描述。在分子和原子无法被显微技术观测到的年代,宏观现象的连续性和分子原子运动的离散性这两大流派之间产生了巨大的认知冲突。而玻尔兹曼坚信这个世界的物理现象背后的本质是由实际存在的分子原子运动所导致的。
玻尔兹曼所处的年代是统计学发展的重要时期。统计学主要的研究方法是记录大量可重复事物或者现象的数据,并利用这些数据来挖掘背后的规律,继而对具体的规律做出预测和判断。这为微观粒子互相作用力研究提供了新的思路,即:不关注天文数字量级的粒子之间的具体相互作用,而是只关注它们所有可能状态背后的整体规律。也就是说,这种方法强调通过统计手段来分析大量粒子的整体状态背后的规律,而不是追踪每个粒子的单独运动。
玻尔兹曼正是基于统计思维对微观的分子原子开展研究。他假设在没有外部作用情况下,微观状态的数量是有限的,并且所有的微观状态发生的概率都是一样的。这个通常被称为等概率原理。举例来说,等概率原理:在台球桌上开球之后,所有球在不受摩擦和外部作用力的条件下相互碰撞运动。这时,当用高速摄影机拍下某个瞬间,它们处在任何一种可能的位置和运动状态的组合,都是等可能出现的。同时,在微观状态等概率原理的条件下,每个台球的运动状态所蕴含的能量则很可能是不一样的,或高能或低能。
在自然界中,玻尔兹曼分布是很常见的。例如冰和液态水,它们由同样的水分子构成,但水分子的构型在不同温度下遵从的玻尔兹曼分布不同。在不同温度下对玻尔兹曼分布进行采样,所观察到的水分子的构型就不相同了。这造就了在低温下常常看到冰这种形态,而在高温下一般看到的是水这种形态。而这些样本是大自然从玻尔兹曼分布中采样所生成的,采样的能力来自于自然界。
玻尔兹曼发现:当一个孤立的系统处于热平衡状态时,那些具有较高能量的微观状态出现的可能性相对较小,而较低能量的微观状态出现的可能性则相对较高。并提出了玻尔兹曼分布,统计物理学领域最伟大的成果之一。
玻尔兹曼分布,用于描述微观粒子处于特定状态下的概率,是关于状态能量 E(x) 与系统温度 T 的函数。一个粒子处于状态 α 的概率 P(α) 是关于状态能量 E(x) 与系统温度 T 的函数。

如下图,根据 p(x) 的表达式,在温度 T 比较低的时候,最低能量的状态有着显著(指数)大于其它状态的出现概率。此时观测这个系统,我们最大可能看到它低能量的状态。而当温度 T 很高时,这种状态之间出现概率的差距就逐渐被拉平。

基于能源的模型
基于能量的模型 (EBM) 通过将每个可能的配置 x 与能量值 E(x) 相关联来定义数据的概率分布。较低的能量状态对应于更可能的配置,而较高的能量状态对应于不太可能的配置。从形式上讲,基于能量的模型通常使用玻尔兹曼分布:


- E(x) 是一个能量函数,通常由神经网络或一些参数函数定义。
- Z 是配分函数(或归一化常数),玻尔兹曼分布的归一化因子。确保 P(x) 在所有可能的 x 上求和(或积分)为 1。
EBM 公式的关键思想是:当我们可以以可学习的方式来定义和参数化 E(x),那么我们可以通过调整参数的方式来模拟复杂分布,从而使得实际数据配置能耗较低。
值得注意的是,此处 “能量” 的概念是从霍普菲尔德网络从继承而来,而霍普菲尔德网络又是从物理学中借来的。所以玻尔兹曼机的源点依旧是物理学。即:在热力学系统中,在给定温度下,能量较低的状态呈指数级增加。将这个类比转化为机器学习,状态是数据向量,系统会尝试学习一个能量函数,该函数对于要建模的数据来说是最小的。
吉布斯采样
在玻尔兹曼机中,配分函数 Z 通常很难计算,所以采用了另一种方法来将节点的状态值概率趋近于玻尔兹曼分布。即:玻尔兹曼机联合概率分布 P(x) 一般通过马尔科夫链蒙特卡洛方法(MCMC 方法)来做近似计算,采用基于吉布斯采样的样本生成方法来训练。
吉布斯采样,会随机选择一个变量 Xi,然后根据其全条件概率 P(Xi|X-i) 来设置其状态值,即以 P(Xi=1|X-i) 的概率将变量 Xi 设为 1,否则为 0。在固定的温度 T 下,运行足够时间后,玻尔兹曼机会达到热平衡状态。此时,任何全局状态的概率都服从玻尔兹曼分布 P(x),只和系统的能量有关,和初始状态无关。
玻尔兹曼机基本原理
玻尔兹曼机保留了霍普菲尔德能量最小化的核心思想,通过能量函数 E(x) 定义概率分布,能量越低,配置的可能性越高。同时,为了解决霍普菲尔德模型所具有的 “易陷入局部极小值” 和 “存储容量有限且易发生模式混淆” 等局限性,玻尔兹曼机引入了 2 个关键创新:
- 通过引入**模拟退火(AIS,Annealed Importance Sampling)**等算法,从而能够在学习过程中避免陷入局部最优,从而更好地捕捉到数据的抽象结构和表征。
- 通过引入隐藏节点,从而能够处理更复杂的概率分布。
模拟退火算法
“模拟退火” 源自冶金学中的 “退火” 过程,即:把材料加热后再按照特定的速度进行冷却。这样做的目的是让晶粒变大,减少材料内部的缺陷,从而改变材料的物理特性,比如变得更加坚硬。
材料中的原子最初会停留在一些能量较低的位置。加热时,能量增加,原子就会移动,随机地在其他地方活动。在退火冷却时,控制冷却的速度,比如以较慢的速度冷却使得这些原子有更多机会找到比之前更低能量的位置。
玻尔兹曼分布描述了在一个孤立的热力学系统中达到热平衡时,在单位时间内,系统呈现不同的微观状态的概率。但并没有描述状态之间应该如何进行 “跳转”,以使得系统如何能够在大部分时间都处于低能量的微观状态之中。
模拟退火算法则补充了这一方面:给定某个系统内的所有粒子的初始微观状态,通过随机调整系统的温度,使得所有粒子在下一时刻既有可能向能量更低的状态转变,也有可能向能量更高的状态转变,而玻尔兹曼分布已经证明了前者的概率更大。简而言之,核心思想就是通过将随机性引入热力学系统,找寻能量更低的状态,令整个系统的大部分时间都会处于低能量的状态。
霍普菲尔德模型发表不久,就引起了卡耐基梅隆大学的 Hinton 教授的注意。并在某节课堂中讨论了采用模拟退火来解决 Hopfield 网络 “易陷入局部极小值” 的缺陷。
在神经网络中,模拟退火是一种优化算法,通过模拟粒子在高温下的随机运动,帮助系统逃出局部最优,然后逐步降温,使其最终落入全局最优解附近。典型应用时玻尔兹曼机和 Softmax。在机器学习中,高温 Softmax 会鼓励模型更广泛地探索可能性,而低温 Softmax 会令模型更加坚定地做出选择。在强化学习、序列生成、策略搜索等任务中,温度控制成为了一种重要的策略参数。

随机性
Hinton 采用类似模拟退火算法且具有随机性的 Metropolis 算法。训练时,每次新的输入都会对某个神经元的状态进行更新。过程中,那些使系统能量更低的状态跳转具有更大概率被选择。通过这样的 “局部性” 状态跳转,整个系统的状态将最终收敛为玻尔兹曼分布。
也就是说,通过引入随机性,使得即便某一时刻卡在了山谷里,但仍然有机会从里面跳出来,换一条别的路径,去找寻能量更低的山谷。随着时间的推移,神经元网络会逐步找到一个能量最低的配置,从而更有效地处理信息。最终,网络不仅仅局限于简单的模式识别,而是具备了更强的学习能力和适应性。
隐藏节点
Hinton 将 Hopfield 网络中的神经元分为 2 类:
- 可见节点(Visible Units):用于接收和输出我们实际观测到的数据。直接对应于我们数据集中可观测的变量。
- 隐藏节点(Hidden Units):用于自动学习和表示数据内部复杂的、不可见的统计结构和特征。是模型内部的、潜在的变量,它们不与训练数据中的任何观测值直接对应。通过创建数据的高层抽象表示。

隐藏节点的核心价值是让模型通过调整与隐藏节点连接的权重,能够学习数据中复杂的依赖关系。现实世界的数据(如图像、文本、用户偏好)往往包含非常复杂的、非线性的相互关系。例如,一张图片中,某些像素点会趋向于同时出现(比如眼睛的轮廓和瞳孔)。
- 如果没有隐藏节点(即只有可见节点互连):那么玻尔兹曼机只能学习到可见变量之间成对的、浅层的相关性。它的建模能力非常有限,无法捕捉到多个变量协同作用的复杂模式,例如:“脸” 这个概念是由眼睛、鼻子、嘴巴等众多像素以一种特定方式组合而成的。
- 有了隐藏节点:那么每个隐藏单元可以学会激活(即表示)某一种特定的特征组合。例如:一个隐藏节点可能代表 “是否有眼睛”,另一个代表 “是否有鼻子”。当模型看到一张脸时,这些对应的隐藏节点会被激活。通过这种方式,模型用隐藏节点构建了一个分布式表示,从而能够对数据进行更深层次的建模。
一个生动的比喻,把玻尔兹曼机想象成一个破案的侦探:
- 可见节点(V):就是侦探能直接观察到的证据,比如指纹、脚印、监控录像。
- 隐藏节点(H):是侦探推断出的幕后黑手、动机、犯罪计划等看不见的概念和联系。
- 连接权重:是侦探心中的推理逻辑,比如:有这种动机的人通常会留下那种脚印。
- 训练过程:侦探通过研究大量已破获的旧案卷(训练数据),来学习证据(V)与犯罪动机、手法(H)之间复杂的联系(调整权重)。
- 推理过程:当遇到一个新案子(新数据)时,侦探通过观察到的部分证据(部分 V),利用他学到的推理逻辑,来推断出完整的犯罪过程、找出真凶(补全 V 并利用 H)。
可见,如果没有隐藏节点(犯罪动机和计划),侦探就只能看到证据之间的表面联系(这个脚印和那个指纹同时出现),而无法进行深层次的、有效的推理。
而且,隐藏节点的数量通常远少于可见节点。这意味着模型被迫要用更少的信息量(隐藏节点状态)来概括和解释更多的数据(可见节点状态)。这个过程本质上是一种降维和特征提取。模型学习到的是数据的本质特征,而不是简单的记忆。这些学习到的特征可以用于后续任务,如分类或回归。
同时,隐藏节点使得模型能够成为一个强大的生成模型。模型通过学习训练数据的概率分布 P(V),掌握了数据生成的“规则”。在训练时,通过吉布斯采样,模型会从它学到的分布中随机采样,从而生成全新的、与训练数据类似但又不完全相同的数据样本。如果没有隐藏节点,模型学到的分布会非常简单,几乎无法生成有意义的复杂新样本。
因此,隐藏节点这一创新思路突破了已有 Hopfield 网络的记忆和学习能力,使得神经网络不再仅仅依赖固定的模式存储,而是能够动态地学习和提取数据中的规律与特征。继而蜕变成一个强大的无监督学习、特征学习和生成模型的关键组成。它赋予了模型发现数据背后 “隐藏” 结构的能力,这也是其名称中 “隐藏” 一词的由来。
- 无监督模型:一种机器学习模型,它用于 “从未标记的数据中” 学习数据的结构和分布。无监督学习的主要任务包括聚类、降维等。常见的无监督学习算法有 K 均值聚类、主成分分析等。
- 有监督模型:是一种机器学习模型,它 “使用标记的数据集” 进行训练。在有监督学习中,模型通过学习输入和输出之间的映射关系来进行预测或分类。常见的有监督学习算法有线性回归、逻辑回归、支持向量机等。
回顾历史,Hinton 的关键贡献在于在 Hopfield 网络的基础上,将统计物理、人脑神经与计算的联系从解释联想记忆,进一步扩展到解释智能的内部表征学习上来。这一转变,让伊辛模型、自旋玻璃系统不再只是设计联想记忆机器的拼图,而是构建深度学习框架的重要理论基础。这一转变不仅拓展了神经网络的功能,还为理解和处理复杂数据提供了新的思路。
数学模型
玻尔兹曼机是一个具有可见和隐藏单元的完全连接网络,每个单元都可以被认为是一个二进制神经元(打开或关闭),每个单元的状态都以一定的概率受到其他变量的影响,满足玻尔兹曼分布。
玻尔兹曼机可以用概率无向图模型来描述,一个具有 K 个节点的玻尔兹曼机满足以下性质:
- 二值化:每个节点的状态值只有 0 和 1。
- 两类节点:一类是可观察的节点,有 N 个;另一类是不可观察的节点,即隐藏节点,有 K-N 个。
- 全连接:节点之间是全连接的,即每个节点都和其他节点连接。
- 对称性:每两个变量之间的互相影响是对称的。这里的对称和上面无向其实是一个概念,就是已知 A 点的状态值,那么求 B 的状态值,和已知 B 的状态值,求 A 的状态值的影响是相等的。
下图就是一个有 6 个节点的玻尔兹曼机。其中有 3 个可观察的节点,已经标了黄色,还有 3 个不可观测的节点,即隐藏节点,已经标了灰色。

所有单位的配置(可见 + 隐藏)的模型能量函数通常如下所示:
- v 是可见单位,h 是隐藏单位。
- w_ij 是连接可见单位 i 和隐藏单位 j 的权重。
- b_i 和 c_j 分别是可见和隐藏单元的偏差。
自学习
为了拟合玻尔兹曼机,我们的目标是调整权重 w_ij、偏置量 b_i 和 c_j ,以便分布 p(v) 对观测数据 v 施加高概率。对数似然的梯度涉及需要从数据分布(easy) 和模型分布(hard) 中采样的项。在实践中,MCMC 方法(如吉布斯采样)可用于近似这些预期,但对于完全连接的波尔茨曼机而言,这是出了名的慢。
因此,玻尔兹曼机在理论上具有优雅性,但事实证明很难在实际任务中扩展。
1985 年,受限玻尔兹曼机
玻尔兹曼机由完全连接的网络组成,包括可见单元和隐藏单元,但玻尔兹曼机的配分函数计算复杂性非常高,这使得模型无法严格计算一个数据的概率值和似然度。因此,Hinton 等人在 1985 年发表论文《A learning algorithm for boltzmann machines》,提出了受限玻尔兹曼机(Restricted Boltzmann machine,RBM)。

分层网络架构
RBM 通过分层思想简化了玻尔兹曼机的架构,分层 “限制” 了隐藏单元之间和可见单元之间的连接,即:隐藏单元本身之间没有连接,可见单元本身之间也没有连接。相反,连接仅在可见层和隐藏层之间运行(即二分结构)。
- 可见层:负责接受输入和学习数据集中的低层次特征。例如:如果处理的是一个灰度图像的数据集,则每个可见节点将接收一张图像中每个像素的像素值。MNIST 图像有 784 个像素,所以处理这类图像的神经网络的一个可见层必须有 784 个可见节点。
- 隐藏层:用于降维和提取深层次的特征。
下图可见,每个 V 节点的输入都被传递至所有的 H 节点,即对称二分图。
由于 RBM 具有架构简单、预训练高效、可解释性强等优势,所有在实际应用中交波尔茨曼机用得更多,应用场景包括降维与特征学习、协同过滤(如电影推荐)、深度置信网络(DBN)预训练,以及图像和数据建模等。但 RBM 的局限性在于连接限制、局部最优问题和扩展性挑战。
能量函数

由于受限玻尔兹曼机变成了分层的结构,所以其能量函数变成了由 3 部分组成:
- 一个是显层节点偏置乘以显层随机可观测变量部分;
- 一个是连接权重与显层随机可观测变量和隐层随机可观测变量相乘部分;
- 一个是隐层节点偏置乘以隐层随机可观测变量偏置部分。
CD 学习算法
由于受限玻尔兹曼机的特殊结构,Hinton 在 2000 年初提出了一种比吉布斯采样更加有效的学习算法,即对比散度学习算法,又称为 CD 学习算法。CD 算法是 RBM 训练的关键突破,显著减少了训练时间。

CD 算法在吉布斯采样的基础上作出的一点改进,即在处理玻尔兹曼机时,运行无穷次的吉布斯采样改进为运行 K 次即可。以前处理玻尔兹曼机时,吉布斯采样是一直对这个玻尔兹曼机处理,直到这个玻尔兹曼机收敛。Hinton提出,在受限玻尔兹曼机中,不需要等到受限玻尔兹曼机完全收敛,只需要 K 步吉布斯采样。所以 CD 算法又称 K 步吉布斯采样法。
收敛重构误差
玻尔兹曼机在无监督学习的情况下需要对权重进行重构,因为无监督学习没有提供实际基准标签。
在重构阶段,第一隐藏层的激活值作为反向传播中的输入。这些反向输入值与正向传播阶段中同样的权重相乘,每两个相连的节点之间各有一个权重,就像正向传播中输入 x 的加权运算一样。这些乘积的和再与每个可见层的偏差相加,所得结果就是重构值,亦即原始输入的近似值。
由于 RBM 权重初始值是随机决定的,重构值与原始输入之间的差别通常很大。可以将 r 值与输入值之差视为重构误差,此误差值随后经由反向传播来修正 RBM 的权重,如此不断反复,直至误差达到最小。

1986 年,多层感知机
1986 年,Geoffrey Hinton 与 David Rumelhart 和 Ronald Williams 发表了一篇开创性的论文《Parallel Distributed Processing(并行分布式处理)》,提出了多层感知机(MLP)与反向传播(BP)训练相结合的理念,解决了单层感知器无法进行非线性分类的问题,开启了神经网络的第二次热潮。
- 采用 BP(Back Propagation,反向传播)学习算法来训练具有多隐藏层的前馈网络。解决了多层感知机训练中的关键问题。它通过有效地计算误差的导数来逐步调整网络中的权重,使得多层感知机的训练变得可行。
- 采用 Sigmoid 进行非线性映射。解决了非线性分类和训练的问题。这种引入了非线性激活函数的多层感知机,解决了之前单层感知机仅能拟合线性函数的问题。

单层神经网络工作流程
-
前向传播(Forward Pass):将神经网络接收样本数据输入,并通过逐层计算得到最终的预测输出 y’。
-
计算误差(Calculate Errors):将 y’ 预测输出与 y 实际输出(标签)通过损失函数(Loss Function)计算出一个 Error(误差)L。误差代表了当前网络性能的好坏。

-
计算梯度:反向获取误差 L 之后,根据 L 对每一个权重 w_i 的偏导,得到梯度值(Gradient)。以 w_1 为例,计算得到 w_1 的梯度,用于后续调整 w_1 的权重值。

-
参数更新:得到每个权重的梯度后,使用梯度下降法,沿着梯度的反方向(即下降最快的方向)对全部权重参数进行微小的调整。使下一次前向传播结果趋近期望输出;

-
迭代计算:重复以上过程,直到网络的输出误差达到可接受的范围或达到预定的训练轮数。
多隐藏层与权重更新难题
在 MLP 中,Hinton 将分层网络架构设计扩展至多层网络结构,通过增加隐藏层的数量,实现了 “将特征分组,再将特征组分组” 的效果,进一步提高了网络对数据特征的提取能力。可见,多隐藏层是特征层次分析的基础,神经网络用这种方法来学习更为复杂且抽象的数据表达形式。
加入隐藏层可以极大地增强网络的表达能力和解决复杂问题的潜力,但面临一个巨大的技术瓶颈 —— 信用分配问题(Credit Assignment Problem)。
- 当网络有多层时,最终输出的误差 L 是由前面所有层的权重共同作用导致的。
- 但我们只知道最终的误差大,但这个误差具体应该归咎于隐藏层中的哪一个神经元?哪一个连接?并不清楚。
- 如果没有一个高效的方法将误差 “公平地” 分配给前面每一层的每一个权重参数,那么训练多层网络就无从谈起。

微积分的链式法则
1676 年,戈特弗里德·威廉·莱布尼茨(Gottfried Wilhelm Leibniz)发表了微积分的链式法则(Chain Rule),他指出:如果变量 y 依赖于变量 u,而 u 又依赖于变量 x,那么 y 关于 x 的导数,等于 y 关于 u 的导数,乘以 u 关于 x 的导数。
- 莱布尼兹记法:

- 函数计法:如果 y=f(g(x)) 对 x 求导,则:先对外层函数求导,再乘上内层函数的求导。

BP 误差反向传播算法
1974 年,哈佛大学的保罗·沃博斯在其博士论文中首次提出了基于微积分链式求导法则的 “误差反向传播(Back Propagation)算法” 的雏形,但最初受限于算力而未得到重视。直到 Hinton 在 MLP 中证明了 BP 算法可用于解决多隐藏层场景中的权重更新难题,所以也称为可微节点网络信用分配算法。这条规则成为了深度神经网络中反向信用分配的核心,是现代深度学习的基础。

BP 算法中,链式法则用于将损失函数的梯度从输出层传递回输入层。在每一层中,根据链式法则计算损失函数对于当前层输入的偏导数,然后将这些梯度传递给前一层。
而每一层的权重梯度是损失函数对于当前层权重的偏导数,用于指导如何调整权重以最小化损失函数。计算权重梯度是为了更新模型中的权重,从而使得模型能够更好地拟合数据。

如下图,使用微积分的链式求导法则对权重参数 w_1,1 进行梯度计算,公式中所需要的计算因子如下所示。以此类推,所有的 w_x,y 都可以通过链式求导法则计算其其梯度。
- 最终输出 Y
- 最终误差 L
- 各层的中间激活值 F(e),e=wx+b
- 权重参数 w_1,1 本身

至此,我们还需要总结 BP 反向传播过程中,所需要传递的数据是什么?以及计算节点所需要保留的前向传播中间值是什么?假设有 m 个计算节点,而针对每个计算节点 n:
- 前向传播的输入:
- 上一层的 A_n-1(Activation,激活值)
- 本层的 W_n (Weight,权重值)
- 前向传播的计算(神经元激活计算)
- 本层的 A_n
- 前向传播的输出:
- 本层的 A_n
- 前向传播保留的中间值,用于反向传播计算:
- 本层的 A_n
- 本层的 W_n
- 反向传播的输入:
- 最终输出 Y
- 最终误差 L
- 下一层以来的 dL_n+1~m 的误差梯度值
- 反向传播的计算(微积分链式法则计算):
- 本层以来的误差梯度值 dL_n~m
- 本层的权重更新值 w’_n
- 反向传播的输出:
- 本层以来的误差梯度值 dL_n~m
- 前向传播保留的中间值,用于下一轮前向传播计算:
- 本层的权重更新值 w’_n

值得注意的是在计算节点 n 中的权重更新是由优化器来完成计算的。
最终,BP 算法通过链式法则计算损失函数对网络权重的梯度,逐层反向传播误差信号,解决多层网络训练难题。
从简单的前馈神经网络到后来的 CNN(卷积神经网络)、RNN(循环神经网络)、GAN(生成对抗网络)、再到 Transformer 大语言模型,都离不开这个反向传播算法。
- CNN(卷积神经网络):机器视觉领域常用。区别于传统神经网络的全连接矢量计算,CNN 考虑像素之间的空间交互关系,神经元的输出只与上一层一定范围内的神经元相关,这个范围称为感受野,感受野大小由卷积核大小控制,不同通道数据使用同一卷积核进行运算,具有稀疏交互和参数共享的特点。常见网络结构包括 VGG、ResNet、GoogleNet 等。
- RNN(递归神经网络):引入了时间维度,适用于处理时间序列问题,网络具有记忆能力。为了便于处理序列文本,算法按照顺序递归处理不同的单词,每一个隐藏层的状态不仅受当前时刻的输入单词影响,还与上一时刻的隐藏层节点输出有关,以建立词语上下文之间的联系进行预测。常见网络结构包括 LSTM、GRU 等。
- GAN(生成对抗网络):常用于数据生成或非监督式学习应用。框架中同时训练两个模型, 两个网络相互竞争,最终达到一种平衡,常用语图像生成、语义分割等。网络分为生成器和对抗器,生成器根据噪声生成逼真的样本,判别器用于判别生成样本的真假,交替训练生成器和判别器,通过对抗学习不断提高生成器的质量,获得逼真的生成数据。
- Transformer:在 RNN 基础上引入了 Attention 注意力机制,通过位置编码计算输入序列在每个位置之间的相关性,允许模型在处理输入序列时关注到更多的局部信息,获得更好的预测或生成结果。

逻辑回归函数 Sigmoid
我们知道弗兰克·罗森布拉特开发的感知机模型(Perceptron)存在一个致命缺陷 —— 无法分类(预测)“非线性” 数据集。
一个典型的例子就是感知器不能区分 XOR 异或门。下图显示了 4 种基本逻辑门的情况,单层感知机可被用来区分其中的 3 种,包括:AND 逻辑与、NAND 逻辑与非和 OR 逻辑或。但是,无法模拟 XOR 逻辑异或函数,因为它属于线性不可分。

后来有人提出可以通过两层神经网络来解决 XOR 异或门,如下图所示。在感知机的输出层与输入层之间,在添加一层隐藏层。
- 左图为单层神经网络,决策边界只生成一条直线,无法区别异或问题。
- 右图为两层神经网络,增加了一个带非线性激活函数的隐含层。多了一个隐藏层相当于增加了一个空间维度,决策计算就能生成两条直线,可以区别异或问题了。

即便如此,但也很显然的,两层感知机依旧无法完全模拟生物神经元这一复杂的、动态的、非线性的系统。这一结论让 AI 发展进入了第一次十年寒冬。在研究停顿了近 20 年以后,直到 Hinton 提出了在 MLP 中采用 Sigmoid 非线性激活函数,并且结合 BP 算法进行多层网络反向传播。
感知机模型使用 step 线性激活函数存在 2 大缺陷:
- step 函数只能处理线性可分的数据集。
- step 函数在 BP 反向传播中,因为其输出为离散值(1 或 -1),所以其导数几乎无法提供有效的梯度信息(导数接近 0),导致无法通过梯度下降优化参数。
多层感知机模型中引入了 Sigmoid 非线性激活函数来替换 step 函数:
- 支持非线性激活:逻辑回归 Sigmoid 函数是一个 S 型函数,具有很强的函数复现能力,这使得 MLP 能够通过堆叠多个隐藏层来模拟复杂的函数。继而实现对复杂的非线性数据集进行分类(预测)。
- 支持 BP 反向传播算法:Sigmoid 函数是连续且平滑的,其导数可通过自身表示,便于计算梯度。
- 支持神经元激活模拟:Sigmoid 用作激活函数时,支持将变量映射到 0 和 1 之间(二分类),满足神经元激活模拟需求。

Sigmoid 函数的数学公式及其导数公式如下图所示。其对 x 的导数可以用自身表示,非常优雅。
- Sigmoid 函数的输出区间为 (0,1) ,可解释为概率 p。通常用于二分类(p>0.5,属于正类;p<0.5,属于负类)。
- Sigmoid 函数导数的最大值为 0.25(当输入为 0 时),且当输入绝对值增大时导数迅速趋近于 0。

Sigmoid 激活函数带来的非线性变换能力,能够将线性运算的输出(e = wx + b)映射到非线性空间(f(e))。通过多个多神经元组合的,能够实现将多个 S 曲线拼接成复杂曲面。使人工神经网络从 “高级计算器” 升级为 “通用函数逼近器”,具备了 “万能近似” 的能力。
Sigmoid 的局限性
尽管 Sigmoid 函数解决了感知机 step 函数的部分问题,但其自身也存在缺陷:
- 梯度消失:当输入值极大或极小时,Sigmoid 的导数趋近于 0。同时,在反向传播中,梯度需要通过链式法则逐层相乘。若每层激活函数的导数较小,经过多层累积后,梯度会指数级衰减,导致靠近输入层的权重几乎无法更新。
- 输出非零中心化:Sigmoid 的输出分布不对称,所以输出均值不为 0,导致后续层的输入偏向某一侧,影响权重更新的方向。
- 计算复杂度高:涉及指数运算,随着网络层数的增加训练的难度也越来越大。
因此,后续研究中出现了 ReLU、Tanh 等替代方案。例如:
- ReLU:在正区间保留梯度,计算高效,缓解梯度消失。
- Tanh:输出零中心化,梯度范围更大,适合隐藏层。

1989 年:万能近似定理
在科学家眼中,人的智能很大程度就等价于广义计算问题,人脑其实是一个复杂的函数,如果存在一个 model function,通过调整它的参数,就可以生成任何形状的函数,甚至模拟人脑这般的复杂函数,那么这个 model function 就具备了人的智能。
1989 年,乔治·西本科提出万能近似定理(Universal Approximation Theorem),从理论证明了,只要给予网络足够数量的隐藏神经元,至少有 1 个隐含层的神经网能以任意的精度来近似任何从一个有限维空间到另一个有限维空间的可测函数。换句话说,只要激活函数选择得当(具有非线性变换能力),理论上一个包含足够多隐含层神经元的、多层前馈网络能以任意精度逼近任意复杂度的函数。简而言之,理论上神经网络可以解决世界上任何问题,其表达力与图灵机等价。万能近似定理,从根本上消除了对神经网络表达力的质疑。奠定了深度学习理论基础。
万能近似定理实际是以分段函数的方式来拟合任意函数,类似于微积分的思想。以 Sigmoid 函数为例,当我们给 Sigmoid 激活函数输入一个特殊的参数时,就可以用 Sigmoid 来模拟 step 函数。
比如当我们给 t 一个很小的值时,𝜎(𝑡) 就会很接近 1,此时 𝜎(𝑡) 就变成以 0 为阶跃点的 step 函数,如果再将 t 根据 “左加右减” 原则进行平移,理论上可以得到以任意点为阶跃点的 step 函数。

进一步的,通过 2 个 Sigmoid 函数就可以模拟 2 个分段的 step 函数。
更进一步的,我们需要将不同的 step 函数进行组合,就可以得到一个三段的函数。
在多隐藏层神经网络中,只需要进行多种组合,就可以得到任意分段函数。
同理,使用 ReLU 激活函数也可以做到任意精度拟合,从形式上看 ReLU 也是两段的,它不仅可以表示水平线还可以表示斜线。所以一样能做到任意精度拟合。
万能近似定理证明了仅含有一层的前馈网络的模型即可有效地表示任何函数,即层数少但模型大的神经网络在理论上是万能的,但是这样的模型可能大到难以实现,且无法正确地学习和泛化,所以实践中往 “深” 的方向去做才有实操性,大多数情况下使用更 “深” 的模型能够减少表示期望函数所需要的单元的数量,并减少泛化误差。

参考文档
https://mp.weixin.qq.com/s/enc7uIZBB4F2fxTvVvZrfw
https://mgubaidullin.github.io/deeplearning4j-docs/cn/restrictedboltzmannmachine
https://mp.weixin.qq.com/s/wnBZt8xX_Aqglce7ApYNRg
https://mp.weixin.qq.com/s/KnIZ1ozQHTLPdvPrH1kOpg
https://mp.weixin.qq.com/s/Mc98HqcjE_KIAEEqmfIy9w
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)