神经网络机器学习

Bernhard Mehlig
(2021)

物理系

致谢
本教科书基于我在瑞典哥德堡大学和哥德堡查尔姆斯理工大学讲授的人工神经网络课程的讲义。 在准备我的讲座时,我主要参考了 Hertz、Krogh 和 Palmer 撰写的神经计算理论导论[1] 其他来源包括 Haykin 撰写的神经网络:全面的基础[2]、Horner 海德堡的讲义笔记[3]、Goodfellow、Bengio 和 Courville 撰写的深度学习[4]以及 Nielsen 在线书籍神经网络与深度学习[5] 我感谢 Martin Čejka 排版了我的手写讲义的第一个版本,感谢 Erik Werner 和 Hampus Linander 在准备第8章方面提供的帮助,感谢 Kristian Gustafsson 对第11章的详细反馈,感谢 Nihat Ay 对第4.5节的评论,以及感谢 Mats Granath 关于自编码器的讨论。 我还想感谢 Juan Diego Arango、Oleksandr Balabanov、Anshuman Dubey、Johan Fries、Phillip Gräfensteiner、Navid Mousavi、Marina Rafajlovic、Jan Schiffeler、Ludvig Storm 和 Arvid Wenzel Wartenberg 实现了本书中描述的算法。 许多图基于他们的结果。 Oleksandr Balabanov、Anshuman Dubey、Jan Meibohm,特别是 Johan Fries 和 Marina Rafajlovic 为本书贡献了成为练习的考试问题。 最后,我要感谢 Stellan Östlund 对我鼓励和批评。 最后但并非最不重要的是,许多同事和学生——过去和现在的——指出了印刷错误和错误,并提出了改进建议。 我感谢他们所有人。 本版本不包含练习(版权归剑桥大学出版社所有)。 整本书可在 剑桥大学出版社 获取。 . 封面图像显示了一个输入模式,该模式旨在最大化深度卷积神经网络给定卷积层中对应于一个特征图的神经元的输出[129,130]。 另请参见第8.7页。 图片由 Hampus Linander 提供。 经许可转载。 \begin{overpic}[scale={1.28}]{figures/cover_image/out_7_980.png} \end{overpic} 封面图片显示了一个输入模式,该模式旨在最大化深层卷积神经网络 [129,130] 给定卷积层中对应于一个特征图的神经元的输出。 另见第 8.7 页。 图片由 Hampus Linander 提供。 经许可转载。

第一章 引言

术语 神经网络 在历史上指的是哺乳动物大脑中神经元的网络。 神经元是计算的基本单元,它们在网络中相互连接以处理数据。 这可能是一个非常复杂的任务。 因此,这种神经网络对外部刺激的动态响应通常非常复杂。 每个神经元的输入和输出随时间变化,以脉冲序列的形式变化,但网络本身也会随时间变化:我们通过建立神经元之间的新连接来学习和提高数据处理能力。

用于机器学习的神经网络算法的灵感来自于大脑中神经元网络的结构和动力学。 这些算法使用高度理想化的神经元模型。 然而,基本原理是相同的:人工神经网络通过改变其神经元之间的连接来学习。 这些网络可以执行多种信息处理任务。

例如,神经网络可以学习识别数据集中的结构,并在一定程度上泛化其学习内容。 一个 训练集 包含一个输入模式列表,以及一个相应的标签列表或目标值列表,这些标签或目标值编码了网络应该学习的输入模式的属性。 人工神经网络可以通过调整神经元之间的连接强度来训练,从而非常准确地对这类数据进行分类,并可以学习将结果推广到其他数据集——前提是新数据与训练数据差别不大。 这种类型问题的典型例子是图像中的物体识别,例如在自动驾驶汽车拍摄的摄像头图像序列中。 近年来,人们对使用神经网络进行机器学习的兴趣部分源于神经网络在 视觉物体识别 中取得的成功。

神经网络擅长的另一个任务是使用动态或循环网络进行 机器翻译 这些网络以句子作为输入。 随着逐个输入单词,网络输出翻译后的句子中的单词。 循环网络可以在大型输入句子及其翻译的训练集上进行有效训练。 谷歌翻译就是这样工作的。 循环网络也被成功地用于预测混沌动力学。 所有这些都是 监督 学习的例子,其中网络被训练来将某个目标或标签与每个输入相关联。

人工神经网络也擅长分析大型未标记数据集,这些数据集通常是高维的——其中可能很难确定 先验 哪些问题最相关且值得回答。 无监督 学习算法以不同的方式组织未标记的输入数据。 例如,它们可以检测输入模式的熟悉度和相似度(聚类)以及输入数据中的其他结构。 当输入数据存在冗余时,无监督学习算法效果很好,它们对于大型高维数据集特别有用,因为在这些数据集上,通过观察可能难以检测到聚类或其他数据结构。

许多问题介于监督学习和无监督学习这两个极端之间。 考虑一个代理如何学习在一个复杂的环境中导航,以尽可能快地从一个位置到达另一个位置,或者尽可能少地消耗能量。 强化学习方法允许智能体通过优化其对环境线索(以惩罚和奖励的形式)的反应来做到这一点。 简而言之,智能体学习以这样一种方式行动,使其比惩罚更频繁地获得积极反馈(奖励)。

\begin{overpic}[scale={0.57}]{Fig_1_1} \end{overpic}
图 1.1: 由三个神经元表示的逻辑或函数。 如果神经元 1 和 2 中至少有一个处于活跃状态,则神经元 3 会积极地发射。 图 1b 之后 由 McCulloch 和 Pitts [6]

用于神经网络机器学习的工具是很久以前开发的,其中大部分是在上个世纪的后半叶开发的。 1943 年,McCulloch 和 Pitts [6] 分析了神经元网络如何处理信息。 使用神经元的抽象模型,他们证明了这些单元如何耦合在一起以表示逻辑函数(图 1.1)。 他们的分析和结论是使用卡尔纳普的逻辑句法 [7] 阐述的,而不是像我们今天习惯的那样用代数方程来阐述。 然而,他们的神经元模型本质上是二进制阈值单元,与迄今为止大多数用于机器学习的神经网络算法的基本构建块密切相关。 因此,在这本书中,我们将这种模型称为 McCulloch-Pitts 神经元 这项早期关于神经网络研究的目的是解释神经生理机制 [8] 也许最重要的进展是 Hebb 的学习原则,它描述了神经网络如何通过加强同时活跃的神经元之间的连接来学习。 该原则在 Hebb 的著作 行为组织:神经心理学理论 [9] 中有描述,该书出版于 1949 年。

大约十年后,受罗森布拉特有影响力的工作的推动,人工神经网络的研究得到了加强。 1958 年,他为麦卡洛克-皮茨神经元制定了一个学习规则,该规则与赫布规则相关,并证明了该规则收敛到该模型可以解决的所有问题的正确解 [10] 他为麦卡洛克-皮茨神经元的层状网络创造了 感知器 这个术语,并表明这种神经网络原则上可以解决单个麦卡洛克-皮茨神经元无法解决的任务。 然而,当时没有感知器的通用学习规则。 闵斯基和帕珀特的工作 [11] 強調了学习的几何方面。 这使他们能够证明感知器可以解决哪些类型的问题,以及哪些问题不能解决。 1969 年,他们在他们优雅的著作 感知器。计算几何入门 中总结了这些结果。

感知器是分类器,为每个输入模式输出一个标签。 感知器表示一个数学函数,一个输入-输出映射。 感知器学习的突破是鲁梅尔哈特等人 et al. [12] 的论文。 作者于 1986 年证明了感知器可以通过梯度下降进行训练。 这意味着神经元之间的连接强度以小步迭代改变,以最终最小化输出误差。 对于单个麦卡洛克-皮茨神经元,这本质上给出了赫布规则。 重要的是,梯度下降允许有效地训练具有多层 (反向传播 用于多层感知器) 的感知器。 鲁梅尔哈特等人 et al. 的第二个贡献是用神经网络进行对象识别的局部特征图。 对应的数学运算是一个卷积。 因此,这类架构现在被称为 卷积网络

Hopfield 的工作推广了一种完全不同的方法,同样基于 Hebb 规则。 1982 年,Hopfield 分析了 一个作为记忆的动态或循环网络的属性 [13]:该动态被设计为通过收敛到相应的稳态来查找存储的模式。 这些 Hopfield 网络 在物理学家中特别受欢迎,因为它们与自旋玻璃的统计物理学密切相关,这使得有可能对这种人工神经网络进行精确的数学理解。 Hopfield 网络是计算机科学中重要发展的基础。 更一般的循环网络,例如,像感知器一样被训练用于语言处理。 带有隐藏神经元的 Hopfield 网络,即所谓的 Boltzmann 机 [14] 是生成模型,允许从神经网络学习的分布中进行采样。 带有多个隐藏层的 Boltzmann 机的训练算法 [15], 出版于 1986 年,是第一个用于训练具有多层的网络的算法之一, 即所谓的 深度 网络。

行为心理学中一个重要的问题是了解我们如何从经验中学习。 一个假设是,令人满意的行为会因积极的反馈而得到加强。 大约在研究人员开始分析感知器的时候,出现了一条不同的神经网络研究路线:寻找允许神经网络通过强化学习的学习规则。 在许多这类问题中,积极的反馈或奖励不是立即获得的,而是在未来的某个时间获得,例如在棋盘游戏中。 因此,有必要理解 如何估计某种行为的未来奖励,以及如何找到优化未来奖励的策略。 强化学习 [16] 是为这个目的而设计的。 1995 年,这种方法的早期应用展示了神经网络如何学习玩棋盘游戏西洋双陆棋 [17]

一个相关的研究领域源于神经生理学问题:我们如何学习将视觉或感觉刺激映射到大脑中神经活动的空间时间模式? 1992 年,Kohonen 描述了一个 自组织映射 [18],它表明了神经元如何创建输入的有意义的几何表示。 同时,Kohonen 算法是第一个用于大型数据集的非线性降维方法之一。

机器学习的神经网络算法与数学统计中使用的许多方法之间有着密切的联系,例如马尔可夫链蒙特卡罗算法和模拟退火方法。 某些无监督学习算法与主成分分析有关,而另一些则与聚类算法有关,例如 K-means 聚类。 深度网络的监督学习本质上是回归分析,试图将输入-输出函数拟合到训练数据。 换句话说,这仅仅是函数拟合——通常使用大量拟合参数。 最近的卷积神经网络有数百万个参数。 确定如此多的参数需要非常大且准确的数据集。 这清楚地表明神经网络并不是 万能的解决方案 其中一个难题是,要了解何时需要使用神经网络进行机器学习,以及何时不需要使用。 因此,我们需要详细了解算法的工作原理,特别是它们何时以及如何失效。

神经网络的机器学习在早期取得了一些成功,但这些方法在上个世纪并没有得到广泛应用。 相反,在过去十年中,基于神经网络的机器学习变得越来越成功和流行。 对于许多应用,基于神经网络的算法现在被认为是最佳选择,例如预测蛋白质如何折叠 [19] 是什么导致了这种范式转变? 毕竟,这些方法本质上是在四十年或更长时间前开发的。 新的成功可能源于一个原因:产业界迫切需要针对大型数据集的机器学习算法,因此投入了时间和精力,生成比以前更大的、更准确的训练集。 计算机硬件也得到了改进,因此现在可以有效地训练包含许多神经元的、具有许多层的网络,这使得最近的进步成为可能。

\begin{overpic}[scale={0.8}]{Fig_1_2.png} \end{overpic}
图 1.2: 大脑皮层中的神经元,是哺乳动物大脑的一部分。 由圣地亚哥·拉蒙·卡哈尔绘制, 这位西班牙神经学家因其在“神经系统结构方面的研究”获得了 1906 年的诺贝尔生理学或医学奖, 与卡米洛·高尔基一起获得 [20] 由西班牙马德里国家研究委员会 (CSIC) 的卡哈尔研究所“卡哈尔遗产”提供。

本书基于我在瑞典哥德堡大学和查尔默斯理工大学 15 年来关于人工神经网络的讲座笔记。 在准备这些讲座时,我的主要来源是赫兹、克罗格和帕尔默的 神经计算理论导论 [1] 该材料分为三个部分:霍普菲尔德网络、有标签数据的监督学习以及无标签数据集的学习(无监督学习和强化学习)。 从霍普菲尔德网络开始的原因之一是,存在一个优雅的数学理论来描述这些神经网络是如何学习的,这使得从第一性原理来理解它们的优缺点成为可能。 这对于本书中讨论的大多数其他算法来说并不适用。 对霍普菲尔德网络的分析为本书的后面部分奠定了基础。 II 部分描述了使用多层感知器和卷积神经网络的监督学习,从明斯基和佩珀特强调的简单几何图像开始,并最终导致卷积网络在目标识别中的最新成功以及递归网络在语言处理中的成功。 III 部分解释了神经网络可以从未标记的数据中学习什么, 特别强调强化学习。 总体目标是解释允许神经网络学习的基本原理,重点介绍所有三个部分共有的思想和概念。

1.1 神经网络

哺乳动物大脑的不同区域执行不同的任务。 大脑皮层 是哺乳动物大脑的外层, 是其最大和最发达的部分之一。 我们可以将大脑皮层看作是一张薄片(约 2 到 5 毫米厚),它自身折叠形成一个分层结构,具有很大的表面积,可以容纳大量的 神经细胞,神经元 人类大脑皮层包含 大约 1010 个神经元。 它们通过神经纤维连接 (轴突),这些纤维分支并在 突触 处终止。 这些突触是与其他神经元的连接。 突触连接到 树突,这些树突从神经细胞体延伸出来的分支,旨在以电信号的形式收集来自其他神经元的输入。 人脑中的一个神经元可能与其他神经元有数千个突触连接。 大脑皮层中连接的神经元网络负责处理视觉、音频和感官数据。

1.2 显示了大脑皮层中的神经元。 这幅图是圣地亚哥·拉蒙·卡哈尔在一百多年前绘制的。 他通过显微镜研究了大脑中神经网络的结构,并通过像 图 1.2 中再现的那样的墨水在纸上的图画记录了他的观察结果。 可以区分神经细胞的细胞体、它们的轴突 (f) 和它们的树突。 一些神经元的轴突连接到其他神经元的树突,形成一个神经网络(参见参考文献   [21] 了解这幅图的更详细描述)。

1.3 展示了一个神经元的示意图。 信息从左到右进行处理。 左侧是树突,它们接收信号并连接到神经元的细胞体,在那里信号被处理。 图的右侧显示了轴突,通过它输出被发送到其他神经元。 轴突通过突触连接到它们的树突。

信息以电信号的形式传输。 1.4 展示了一个 锥体 神经元在鱼类 [22] 中的电位时间序列的例子。 该时间序列由一系列间歇性的电位峰值组成。 当神经元 不活跃 时,会出现没有峰值的静止期,在峰值丰富的时期,我们说神经元是 活跃 的。

\begin{overpic}[scale={0.57}]{Fig_1_3} \end{overpic}
图 1.3: 神经元的示意图。 树突 通过突触接收以电信号形式的输入。 信号在神经元的细胞体中被处理。 细胞核 以白色显示。 输出从神经细胞体沿着轴突传递,轴突通过突触连接到其他神经元。

1.2 McCulloch-Pitts 神经元

在人工神经网络中,信息处理和信号传递的方式高度理想化。 McCulloch 和 Pitts [6] 将神经元,神经网络的计算单元, 建模为一个二进制阈值单元

\begin{overpic}[scale={0.57}]{Fig_1_4} \end{overpic}
图 1.4: 鱼类电感觉锥体神经元的脉冲序列。 该时间序列来自参考文献 [22] 经出版商许可转载。 标签已添加。

它只有两种可能的输出,或状态: 活跃或非活跃。 要计算输出,该单元将加权输入求和。 如果总和超过给定阈值,则神经元的状体被认为是活跃的,否则是非活跃的。 与原始模型略微更一般的模型,如图1.5所示。 该模型在离散时间步t=0,1,2,3,中执行重复计算。 时间步t时第j个神经元的状体用

sj(t)={1inactive,1active. (1.1)

给定状体 sj(t),第 i 个神经元计算

si(t+1)=sgn(j=1Nwijsj(t)θi)sgn[bi(t)]. (1.2)

这里 sgn(b) 是符号函数(图 1.5):

sgn(b)={1,b<0,+1,b0. (1.3)

符号函数的自变量,

bi(t)=j=1Nwijsj(t)θi, (1.4)

被称为 局部场

\begin{overpic}[scale={0.57}]{Fig_1_5} \end{overpic}
图 1.5: 麦卡洛克-皮茨神经元的示意图。 神经元的索引为 i,它接收来自 N 个神经元的输入。 从神经元 j 到神经元 i 的连接强度用 wij 表示。 神经元的 阈值θi 表示。 索引 t=0,1,2,3, 标记计算步骤的离散时间序列,而 sgn(b) 代表符号函数[图 1.6 和方程 (1.3) ]。

我们看到神经元对输入 sj(t) 执行加权平均。 参数 wij 被称为 权重 这里第一个索引,i,指的是执行计算的神经元,而 j 标记连接到神经元 i 的神经元。 通常,不同神经元对之间的权重具有不同的数值,反映了突触耦合的不同强度。 权重可以是正的或负的, 我们说当 wij=0 时没有连接。

本书将图 1.5 中描述的模型称为 McCulloch-Pitts 神经元,尽管他们的原始模型对权重有额外的限制。 阈值 1 11深度学习 文献 [4] 中, 阈值被称为 偏差,定义为 θi 的负数,在方程 (1.4) 中带有一个加号。 本书使用带负号的约定 (1.4)。 对于神经元 i,用 θi 表示。

最后,请注意,在给定时间步长 t 的状态 sj(t) 的情况下,对所有神经元 i 并行执行计算 (1.2)。 输出 si(t+1) 是下一时间步长所有神经元的输入。 因此,输出具有时间参数 t+1 这些步骤重复多次,导致网络中所有神经元的活动水平的时间序列。

\begin{overpic}[scale={0.57}]{Fig_1_6} \end{overpic}
图 1.6: 符号函数 [公式 (1.3)]。

1.3 激活函数

McCulloch-Pitts 模型根据两个状态 1+1 来近似图 1.4 中的尖峰活动模式,分别代表图中所示的非活动期和活动期。 对于许多计算任务来说,这已经足够了,对于我们的目的来说,皮质中电信号动力学的细节与之完全不同并不重要。 毕竟,目的不是对大脑中的神经动力学进行建模,而是构建受这种动力学启发的计算模型。

稍后将明显发现,对于某些任务和问题,必须对上述最简单的模型进行一定程度的推广。 例如,符号函数在 b=0 处的跳跃可能会导致神经元网络的活动水平发生较大波动,这是由于局部场跨越 b=0 的无穷小变化引起的。 为了抑制这种影响,可以让神经元对其输入持续做出响应,从而取代等式 1。 (1.2) 通过

si(t+1)=g(jwijsj(t)θi). (1.5)

这里 g(b) 是一个连续的 激活函数 它可能只是一个线性函数, g(b)b 但我们将看到,许多任务需要非线性激活函数,例如 tanh(b)(图 1.7)。 当激活函数连续时,神经元状态也假设连续值,而不仅仅是方程 (1.1) 中给出的离散值 1+1

\begin{overpic}[scale={0.57}]{Fig_1_7} \end{overpic}
图 1.7: 连续激活函数 g(b)=tanh(b)
\begin{overpic}[scale={0.57}]{Fig_1_8} \end{overpic}
图 1.8: (a) 漏泄积分-触发 神经元的放电速率作为细胞膜电电流 I 的函数, 方程 (1.7) 用于 τ=25Uc/R=2 (b) 分段线性激活函数, g(b)=max{0,b}

或者,可以使用分段线性激活函数(图 1.8)。 这部分受到 漏泄积分-触发 神经元响应曲线的启发,该模型描述了流入神经元细胞的细胞膜电电流 I 与膜电位 U 之间的关系。 膜电位动力学的简单模型将神经元表示为一个电容器。 在漏泄积分-触发神经元中,漏泄通过在电容器 C 并联添加一个电阻器 R 来建模, 所以

I=UR+CdUdt. (1.6)

对于恒定电流,膜电位从零开始随时间增长, U(t)=RI[1exp(t/τ)],其中 τ=RC 是模型的时间常数。 人们说,当膜电位超过临界值 Uc 时,神经元会产生 尖峰 之后,膜电位立即重置为零(并再次开始增长)。 在此模型中,放电速率 f(I)tc1 给出,其中 tcU(t)=Uc 的解。 因此,放电速率表现出阈值行为。 换句话说,系统就像一个整流器:

f(I)={0forIUc/R,[τlog(RIRIUc)]1forI>Uc/R. (1.7)

该响应曲线如图 1.8 (a) 所示。 关键是存在一个阈值,低于该阈值响应严格为零。 响应函数在质量上看起来像分段线性函数

g(b)=max{0,b}, (1.8)

如图 (b) 所示。 具有这种激活函数的神经元被称为 整流线性单元,激活函数 (1.8) 被称为 ReLU 函数。

1.4 异步更新

方程 (1.2) 和 (1.5) 被称为 同步 更新规则, 因为所有神经元都是并行更新的: 在时间步 t 中,所有输入 sj(t) 都被存储。 然后,所有神经元 i 使用存储的输入同时更新。 另一种方法是 每次迭代只更新一个神经元,例如索引为 m 的神经元:

si(t+1)={g(jwmjsj(t)θm)for i=m,si(t)otherwise. (1.9)

这被称为 异步 更新规则。 异步更新中使用不同的方案来选择神经元。 一种可能性是将神经元排列成二维数组,并以某种顺序逐个更新它们。 例如,在 打字机方案中,首先从左到右更新数组顶行的神经元,然后从左到右更新第二行,依此类推。 第二种可能性是随机选择要更新的神经元。

如果有N个神经元,那么一个同步步骤平均对应N个异步步骤。 时间尺度上的这种差异并不是同步更新和异步更新之间的唯一区别。 异步动力学可以在某些情况下被证明收敛到一个确定的状态,而同步动力学可能无法做到这一点,从而导致周期性循环永远持续下去。

1.5 总结

人工神经网络使用一个高度理想化的模型来模拟基本计算单元:McCulloch-Pitts 神经元(图1.5)是一个二进制阈值单元,与 McCulloch 和 Pitts [6]最初引入的模型非常相似。 这些单元通过权重wij连接在一起,每个单元计算其输入的加权平均值。 网络按顺序执行这些计算。 大多数神经网络算法都是使用本章描述的模型构建的。

1.6 进一步阅读

人工神经网络历史的两个描述特别推荐。 First, the early history of the field is summarised in the Introduction to the second edition of Perceptrons. An introduction to computational geometry by Minsky and Papert [11], which came out in 1988. 这本书还包含一个简明的参考文献,其中包含 Minsky 和 Papert 的评论。 其次,在一篇简短的笔记中,Kanal [23] 回顾了 Rosenblatt 的工作并将其置于背景中。

第一部分 Hopfield 网络

Hopfield 网络 [24, 13] 是一种人工神经网络,可以识别或重建图像, 例如图 2.1 中所示的数字二进制图像。 这些图像 存储 在网络中,方法是根据 Hebb 规则 [9] 选择网络的权重 wij 通过将神经元的初始状态分配给失真数字的位,将失真数字(图 2.2)馈入网络。 想法是神经网络动力学收敛到最接近的存储数字。 通过这种方式,网络可以识别 输入作为正确模式的失真版本, 它可以 检索 正确的数字。 Hopfield 网络非常可靠地识别具有许多位的模式,并且在过去,此类网络被用于执行模式识别任务。 如今,有更高效的算法可用于此目的(第 8 章)。

然而,Hopfield 网络是机器学习 与神经网络基本原理的例证。 首先,本书中讨论的大多数神经网络算法都是从类似的构建块构建的,并使用与 Hebb 规则相关的学习规则。 此外,Hopfield 网络是 递归网络 的示例,它们的神经元遵循动态规则进行更新。 用于机器翻译和时间序列预测的广泛使用的算法基于此原理。

此外,受限玻尔兹曼机 与 Hopfield 网络密切相关。 这些 机器使用隐藏神经元来学习输入模式的分布。 这使得 生成图像纹理并完成部分遮挡的图像成为可能 [25] 这些机器的推广,深度信念网络,是机器学习第一个深度网络架构的例子。 受限玻尔兹曼机已被发展成更有效的生成模型,亥姆霍兹机器,用于采样与给定数据分布中类似的新模式。 最近生成模型的训练算法,变分自动编码器,基于与亥姆霍兹机器学习规则相同的原理。

Hopfield 网络的动态与自然科学中广泛应用于各种问题的随机马尔可夫链蒙特卡罗算法密切相关。 最后,Hopfield 网络突出了随机性在神经网络动力学中的作用。 一定程度的噪声,不要太多,可以大大提高 Hopfield 网络的性能。 在工程问题中,通常最好避免随机性,当随机性是由降低系统性能的乘性或加性噪声引起时。 相反,在神经网络动力学中,随机性通常是有帮助的,因为它允许探索更广泛的配置或动作,从而帮助动力学收敛到更好的解决方案。 一般来说,分析神经网络的随机动力学具有挑战性。 但对于 Hopfield 网络,人们已经了解很多。 原因是 Hopfield 网络与统计物理学中研究的随机系统密切相关,即所谓的自旋玻璃 [26, 27]

第 2 章 确定性 Hopfield 网络

\begin{overpic}[scale={0.57}]{Fig_2_1} \end{overpic}
图 2.1: 数字 0 到 4 的二进制表示。 每个模式有10×16个像素。 改编自参考文献 [2] 中的图 14.17。 稍微奇特的形状有助于Hopfield网络区分模式 [28]

2.1 模式识别

作为一个模式识别任务的例子,考虑 p 图像 (模式),例如图2.1中所示的数字。 不同的模式由 μ=1,,p 索引。 这里 p 是模式的数量 (p=5 在图 2.1 中)。 模式 μ 的位用 xi(μ) 表示。 索引 i=1,,N 标记给定模式的不同位,N 是每个模式的位数 (N=160 在图 2.1 中)。 这些位是 二进制的: 它们只能取值 1+1 为了确定算法的一般性质,人们经常转向 随机模式,其中每个位 xi(μ) 是随机选择的,以概率 12 取任一值。 将模式的位收集在这样的列向量中很方便

𝒙(μ)=[x1(μ)x2(μ)xN(μ)]. (2.1)

在本书中,向量用粗体数学字体书写,如公式 (2.1)。

神经网络的任务是识别失真的模式, 例如,确定图 2.2 中右边的模式是此图中左边数字的扰动版本。 为此,人们 存储 p 个模式在网络中, 并向其呈现这些模式之一的失真版本,并要求网络找到与失真模式最相似的存储模式。

问题的表述使得有必要定义失真模式 𝒙 与任何存储模式,例如 𝒙(ν),的相似程度。 一种可能性是根据均方误差来量化模式 𝒙𝒙(ν) 之间的距离 dν:

dν=14Ni=1N(xixi(ν))2. (2.2)

预因子被选择使得距离等于两个±1模式不同的位数的比例。 注意距离 (2.2) 不指平移、旋转或剪切造成的失真。 一种改进的距离度量方法可能会考虑在所有可能的平移、旋转等情况下模式之间的最小距离。

\begin{overpic}[scale={0.57}]{Fig_2_2} \end{overpic}
图 2.2: 数字 0 的二进制图像 (N=160),以及同一图像的失真版本。 N=160xii=1,,N 代表 xi=+1 同时 代表 xi=1

2.2 Hopfield 网络和 Hebb 规则

Hopfield 网络 [24, 13] 是 McCulloch-Pitts 神经元的网络, 旨在解决上一节中描述的模式识别任务。 要识别的模式的位以一种特定的权重选择编码,称为 Hebb 规则,如下所述。

网络中所有可能的 McCulloch-Pitts 神经元状态,

𝒔=[s1s2sN], (2.3)

形成网络的配置空间 状态 𝒔 的分量 使用同步规则 (1.2) 更新:

si(t+1)=sgn[bi(t)]with local fieldbi(t)=j=1Nwijsj(t)θi, (2.4)

或使用异步规则

si(t+1)={sgn[bm(t)]for i=m,si(t)otherwise. (2.5)

要识别失真模式,将它的位 xi 输入网络,通过将神经元的初始状态分配给模式位,

si(t=0)=xi. (2.6)

想法是选择一组权重 wij 使得 网络动力学 (2.4) 或 (2.5) 收敛到正确的存储模式。 权重的选择必须取决于所有p 模式,𝒙(1),,𝒙(p) 我们说,这些模式通过分配适当的权重而存储在网络中。 例如,如果𝒙𝒙(ν) 的失真版本(图 2.2),那么我们希望网络收敛到这种模式:

if𝒔(t=0)=𝒙𝒙(ν)then𝒔(t)𝒙(ν)ast. (2.7)

等式 (2.7) 表示网络纠正了失真模式 𝒙 中的错误。 如果这有效,则存储的模式 𝒙(ν) 被称为网络动态的吸引子

但是收敛不能保证。 如果初始失真太大,网络可能会收敛到另一种模式。 它可能会收敛到其他与存储模式没有或很少关系的状态,或者根本不收敛。 模式 𝒙(ν) 周围的区域,其中所有模式 𝒙 收敛到 𝒙(ν),被称为 𝒙(ν)吸引域 该区域的大小以一种复杂的方式取决于存储模式的集合,并且没有一般的收敛证明。

因此,我们首先问一个更简单的问题:如果输入一个未失真的模式,例如 𝒙(ν),网络是否将其识别为一个存储的、未失真的模式? 网络不应该对 𝒙(ν) 进行任何更改,因为所有位都是正确的:

if𝒔(t=0)=𝒙(ν)then𝒔(t)=𝒙(ν)for allt=0,1,2,. (2.8)

我们如何选择权重和阈值以确保等式 (2.8) 成立? 让我们首先考虑一个简单的情况,其中只有一个模式 𝒙(1) 需要识别。 在这种情况下,权重和阈值的合适选择是

wij=1Nxi(1)xj(1)andθi=0. (2.9)

这条学习规则让人想起神经元激活模式与其耦合之间的一种关系,这是 Hebb [9] 在 70 多年前提出的:

当细胞 A 的轴突足够靠近以激发细胞 B,并且反复或持续地参与激发 B,则在一个或两个细胞中都会发生一些生长过程或代谢变化,从而使 A 作为激发 B 的细胞之一的效率提高。

这是一种通过建立连接来学习的机制:如果神经元同时活跃,则它们之间的耦合趋势会增加。 方程 (2.25) 表达了一个类似的原理。 与方程 (2.7) 结合起来,它表明如果两个神经元都处于活跃状态 (si=sj=1),则它们之间的耦合 wij 为正;如果它们的狀態不同,则耦合为负。 因此,规则 (2.25) 被称为 Hebb 规则。 Hopfield 网络是由 McCulloch-Pitts 神经元组成的网络,其权重由 Hebb 规则决定。

Hopfield 网络是否能够识别以这种方式存储的模式 𝒙(1) 为了验证规则 (2.9) 是否有效,我们将模式输入网络,方法是分配 sj(t=0)=xj(1),并评估方程 (2.4):

j=1Nwijxj(1)=1Nj=1Nxi(1)xj(1)xj(1)=1Nj=1Nxi(1)=xi(1). (2.10)

第二个等式成立,因为 xj(1) 只能取值 ±1,因此 [xj(1)]2=1 使用 sgn(xi(1))=xi(1),我们得到

sgn(j=1Nwijxj(1))=xi(1). (2.11)

将方程 (2.11) 与更新规则 (2.4) 进行比较,表明模式 𝒙(1) 的位 xj(1) 在更新下保持不变,如方程 (2.8) 所要求的那样。 换句话说,网络将该模式识别为存储的模式,因此方程 (2.9) 实现了我们的要求。 请注意,如果我们在方程 (2.9) 中省略 N1 的因子,我们会得到相同的结果。

但网络是否可以纠正错误? 模式 𝒙(1) 是否是一个吸引子 [方程 (2.7)]? 这个问题无法在一般情况下得到回答。 然而在实践中,Hopfield 网络通常运行良好。 这是一个基本认识,即神经网络可能表现良好,尽管没有证据证明它们的动态会收敛到正确解。

\begin{overpic}[scale={0.57}]{Fig_2_3} \end{overpic}
图 2.3: 具有 N=4 个神经元的 Hopfield 网络。 (a) 网络布局。 神经元 i 表示为 $i$⃝。 箭头表示对称连接。 (b) 模式 𝒙(1)

为了说明这些困难,考虑一个例子,一个具有 N=4 个神经元的 Hopfield 网络(图 2.3)。 使用方程 (2.9) 为权重 wij 赋值,从而存储图 2.3 中所示的模式 𝒙(1) 现在考虑一个扭曲的模式 𝒙,它与 𝒙(1) 之间的距离不为零[图 2.4(a)]:

d1=116i=14(xixi(1))2=14. (2.12)

为了将模式馈送到网络,我们设置 sj(t=0)=xj 然后我们使用同步规则 (2.4) 迭代动态。 2.4 显示了不同扭曲模式的结果。 我们看到,前两种扭曲模式收敛到已存储的模式,即情况 (a) 和 (b)。 但是第三个扭曲的模式 不 [case (c)]。

\begin{overpic}[scale={0.57}]{Fig_2_4} \end{overpic}
图 2.4: 扭曲模式的重建。 在同步更新 (2.4) 下,前两个扭曲的模式 (a) 和 (b) 收敛到存储的模式 𝒙(1),但是 模式 (c) 却没有。

为了理解这种行为,我们使用 权重矩阵 分析同步动力学 (2.4)

𝕎=1N𝒙(1)𝒙(1)T. (2.13)

这里 𝒙(1)T 表示列向量 𝒙(1)转置, 所以 𝒙(1)T 是一个行向量。 矩阵乘法的标准规则也适用于列向量和行向量,它们只是 N×11×N 矩阵。 所以 r.h.s 上的产品。 方程 (2.13) 是一个 N×N 矩阵。 在下面,元素为 AijBij 的矩阵写成 𝔸𝔹,等等。 等式 (2.13) 中的乘积也被称为 外积 如果我们改变乘积中 𝒙(1)𝒙(1)T 的顺序, 我们将得到一个数字:

𝒙(1)T𝒙(1)=j=1N[xj(1)]2=N. (2.14)

乘积 (2.14) 被称为 标量积 它也被表示为 𝒂𝒃=𝒂T𝒃 并且等于 |𝒂||𝒃|cosφ,其中 φ 是向量 𝒂𝒃 之间的角度,|𝒂|𝒂 的大小。 我们使用相同的符号来表示从左边用矩阵乘以转置向量:𝒙𝔸=𝒙T𝔸

\begin{overpic}[scale={0.3}]{Fig_2_5} \end{overpic}
图 2.5: 摘自 xkcd.com/1838 在知识共享署名-非商业性使用 2.5 许可协议下。

对于不熟悉线性代数中这些术语的人来说,一个很好的来源是 Mathews 和 Walker [29]物理数学方法 中的第 6 章(图 2.5)。

使用方程式 (2.14),我们看到 𝕎 投影 到向量 𝒙(1) 上,

𝕎𝒙(1)=𝒙(1). (2.15)

此外,从方程式 (2.14) 中可以得出,矩阵 (2.13) 是 幂等 的:

𝕎t=𝕎fort=1,2,3,. (2.16)

方程式 (2.15) 和 (2.16) 与 sgn(xi(1))=xi(1) 一起意味着网络识别模式 𝒙(1) 为存储的模式。 这个例子说明了一般证明, 方程式 (2.10) 和 (2.11)。

现在考虑图 2.4 中的扭曲模式 (a)。 我们通过分配将此模式馈送到网络

𝒔(t=0)=[1111]. (2.17)

为了计算同步动力学 (2.4) 中的一步, 我们应用 𝕎𝒔(t=0) 这是通过两个步骤完成的, 使用权重矩阵的外部积形式 (2.13)。 我们首先 从左侧用 𝒙(1)T 乘以 𝒔(t=0)

𝒙(1)T𝒔(t=0)=[1,1,1,1][1111]=2, (2.18)

然后我们用 𝒙(1) 乘以这个结果。 这给出了

𝕎𝒔(t=0)=12𝒙(1). (2.19)

取向量 𝕎𝒔(t=0) 中第 i 个分量的符号得到 si(t=1)

si(t=1)=sgn(j=1Nwijsj(t=0))=xi(1). (2.20)

我们得出结论,网络的状态在一次同步更新中收敛到存储的模式。 由于 𝕎 是幂等的,网络将停留在那里:模式 𝒙(1) 是一个吸引子。 2.4 中的情况 (b) 也是以类似的方式运作。

现在看看情况 (c),其中网络无法收敛到存储的模式。 我们通过分配 𝒔(t=0)=[1,1,1,1]𝖳 将此模式馈送到网络。 对于同步动力学的迭代,我们评估

𝒙(1)T𝒔(0)=[1,1,1,1][1111]=2. (2.21)

因此,

𝕎𝒔(t=0)=12𝒙(1). (2.22)

使用更新规则 (2.4),我们发现

𝒔(t=1)=𝒙(1). (2.23)

方程 (2.16) 意味着

𝒔(t)=𝒙(1)fort1. (2.24)

因此,图 2.3 中所示的网络有两个吸引子, 模式 𝒙(1) 以及 反转 模式 𝒙(1) 正如我们将在第 2.5 节中看到的,这是霍普菲尔德网络的一个通用属性:如果 𝒙(1) 是一个吸引子,那么模式 𝒙(1) 也是一个吸引子。 在下一节中,我们将讨论当多个模式存储在霍普菲尔德网络中时会发生什么。

2.3 串扰项

当存在多个模式时,我们需要泛化 方程 (2.9)。 一种可能性是简单地将方程 (2.9) 相加到存储的模式 [13]

wij=1Nμ=1pxi(μ)xj(μ)andθi=0. (2.25)

公式 (2.25) 将 Hebb 规则推广到 p 模式。 由于对 μ 的求和,与 Hebb 学习假设的关系不太清楚,但我们仍然将公式 (2.25) 称为 Hebb 规则。 无论如何,我们看到权重与模式位的二阶矩成正比。 基于规则 (2.25) 的神经网络可以识别模式 𝒙(μ) 的属性,这些属性编码在模式位之间的双点相关性中。

注意权重是对称的,wij=wji 另外,请注意公式 (2.25) 中的前置因子 N1 不重要。 选择它是为了简化模型的大-N 分析(第 3 章)。 Hebb 规则的另一种版本 [13, 2] 将对角线权重设置为零:

wij=1Nμ=1pxi(μ)xj(μ)forij,wii=0,andθi=0. (2.26)

本节我们使用 Hebb 规则的 (2.26) 形式。 如果我们以这种方式分配权重,网络是否能识别存储的模式? 问题是是否

sgn(1Njiμxi(μ)xj(μ)xj(ν))=bi(ν)=xi(ν) (2.27)

成立。 为了检查这一点,我们重复了上一节中描述的计算。 作为第一步,我们评估局部场

bi(ν)=(11N)xi(ν)+1Njiμνxi(μ)xj(μ)xj(ν). (2.28)

在这里,我们将模式上的求和拆分为两个贡献。 第一项对应于 μ=ν,其中 ν 指的是输入到网络的模式,即我们希望网络识别的模式。 公式 (2.28) 中的第二项包含对剩余模式的求和。 如果 (2.28) 中的第二项不影响右侧的符号,则条件 (2.27) 满足。 这一方程。 这一第二项被称为 串扰 项。

是否将串扰项添加到 𝒙(ν) 会影响 sgn(bi(ν)),取决于存储的模式。 由于串扰项包含 对 μ=1,,p 的求和,我们预计如果 p 足够小,这一项就不重要。 我们在网络中存储的模式越少,它们都被识别的可能性就越大。 此外,通过类比 前一节中描述的示例,可以推断存储的模式也是吸引子, 因此略微扭曲的模式会收敛到正确的存储模式。

为了更定量地分析串扰项的影响,我们将存储具有随机位的模式 (随机模式)。 不同的位 被分配 ±1,且具有相同的概率独立地赋值:

Prob(xi(ν)=±1)=12. (2.29)

这尤其意味着 xj(μ)=0,并且不同位的 协方差 消失:

xi(μ)xj(ν)=δijδμν. (2.30)

这里 表示对随机模式的许多实现的平均值,δij克罗内克δ,如果 i=j 等于 1,否则为 0。 总之,不同的位是不相关的。

给定一个随机模式集合,串扰项改变 sgn(bi(ν)) 的概率是多少? 换句话说,如果所有位最初都是正确的,网络在一个异步更新中产生错误位的概率是多少? 当串扰项与 xi(ν) 的符号相同时,其大小并不重要。 如果它有不同的符号,那么串扰项可能很重要。 为了确定何时会出现这种情况,人们定义了

Ci(ν)xi(ν)1Njiμνxi(μ)xj(μ)xj(ν)cross-talk term. (2.31)

如果 Ci(ν)<0,那么串扰项与 xi(ν) 的符号相同,因此串扰项没有区别:添加此项不会改变 xi(ν) 的符号。 如果 0<Ci(ν)<1 也没有关系,只有当 Ci(ν)>1 如果 Ci(ν)>1(我们在等式 (2.28) 中近似了 11/N1,假设 N 很大),则网络在模式 ν 的位 i 中产生错误。

2.4 单步错误概率

单步 错误概率 Perrort=1 定义为在一次更新位尝试中发生错误的概率,前提是最初所有位都是正确的:

Perrort=1=Prob(Ci(ν)>1). (2.32)

由于模式和位是相同分布的,因此 Prob(Ci(ν)>1) 不 取决于 iν 因此 Perrort=1 不包含任何索引。

Perrort=1 如何取决于问题的参数, pN pN 都很大时,我们可以使用 中心极限定理 [29, 30] 来回答这个问题。 由于不同的位/模式是独立的,我们可以将 Ci(ν) 看作 M=(N1)(p1) 个独立随机数 cm 的总和,这些随机数以相等的概率取值 1+1

Ci(ν)=1Njiμνxi(μ)xj(μ)xj(ν)xi(ν)=1Nm=1Mcm. (2.33)

右边的总和中包含 M=(N1)(p1) 项。 因为不包含 μ=ν 的项,也不包含 j=i 的项 [等式 (2.26) ]。 如果我们使用规则 (2.25),那么来自对角权重的等式 (2.33) 将进行修正。 对于 pN 来说,这种 修正很小。

pN 很大时,求和 m=1Mcm 包含大量独立同分布的随机数,其均值为零,方差为一。 根据中心极限定理, m=1Mcm 服从均值为零,方差为 M 的高斯分布。

由于中心极限定理在神经网络算法分析中起着重要作用,因此 值得更详细地讨论该定理。 首先,请注意求和 m=1Mcm 等于 2kM,其中 k 是 求和中 cm=+1 的出现次数。 随机选择cm等于1+1称为伯努利试验[30],绘制 k+1Mk1 的概率 Pk,M 给出二项式0>分布[30]1>。 在我们的例子中,cm=±1 等于 12 的概率,因此

Pk,M=(Mk)(12)k(12)Mk. (2.34)

这里 (Mk)=M!/[k!(Mk)!] 表示将 +1k 次出现分布到 M 个位置的方法数量。

我们想证明 Pk,M 对于较大的 M 接近高斯分布, 其均值为零,方差为 M。 由于方差随着 M 的增大而发散, 使用变量 z=(2kM)/M 比较方便。 中心极限定理意味着 z 在较大的 M 极限情况下,服从均值为零,方差为一的正态分布。为了证明这一点,我们将 k=M2+M2z 代入方程 (2.34) 并利用斯特林公式求 较大的 M 的极限

n!enlognn+12log2πn. (2.35)

Pk,M 展开到 M1 的主导阶, 假设 z 保持为一阶,得到 Pk,M= 2/(πM)exp(z2/2) 现在从 k 改变变量到 z 这将局部邻域 dk 扩展到 dz 概率守恒 意味着 P(z)dz=P(k)dk 因此 P(z)=(M/2)P(k), 所以 P(z)=(2π)1/2 exp(z2/2) 换句话说,z 的分布是均值为零,方差为一的正态分布,正如 我们想证明的那样。

\begin{overpic}[scale={0.57}]{Fig_2_6} \end{overpic}
图 2.6: 方程式 (2.31) 中定义的量 C 的高斯分布。

回到方程式 (2.33),我们得出结论 Ci(ν) 是高斯分布的

P(C)=(2πσC2)1/2exp[C2/(2σC2)], (2.36)

均值为零,如图 2.6 所示, 方差为

σC2=MN2pN. (2.37)

在这里我们使用 MNp 来表示较大的 Np

计算此方差的另一种方法是对方程式 (2.33) 求平方, 并对随机模式求平均值:

σC2=1N2(m=1Mcm)2=1N2n=1Mm=1Mcncm. (2.38)

这里 表示对 cm 的随机实现求平均值。 由于随机数 cm 对于不同的索引是独立的, 并且因为 cm2=1,所以有 cncm=δnm 因此,双重求和中的对角线项会贡献,总和为 MNp 这就产生了方程式 (2.37)。

为了确定 Perrort=1 [方程式 (2.32)],我们必须将 C 的分布 从 1 集成到

Perrort=1=12πσC1dCeC22σC2=12[1erf(N2p)]. (2.39)

这里 erf误差函数,定义为 [31]

erf(z)=2π0zdxex2. (2.40)

由于 erf(z) 随着 z 的增加单调增加,我们得出结论 Perrort=1 随着 p 的增加而增加,或者随着 N 的减小而增加。 这是预期的:当存储的模式更多时,网络更难区分存储的模式。 另一方面,如果存储的模式有更多位,则更容易区分存储的模式。 我们还发现,单步错误概率仅通过组合 pN 来确定。

αpN. (2.41)

参数 α 被称为网络的 存储容量 2.7 显示了 Perrort=1 如何取决于存储容量。 例如,对于 α=0.2,单步错误概率略大于 1%。

\begin{overpic}[scale={0.57}]{Fig_2_7} \end{overpic}
图 2.7: 单步错误概率对存储容量 α 的依赖性,根据公式 (2.39)。

在推导公式 (2.39) 时,我们假设存储的模式是随机的,并且具有独立的位。 现实中的模式并非随机。 然而,我们预期 Perrort=1 描述了当 pN 很大时,Hopfield 网络的典型单步错误概率。 但是,构建反例很简单。 例如,考虑 正交模式:

𝒙(μ)𝒙(ν)=0forμν. (2.42)

对于这种模式,在 N 很大时的极限情况下,串扰项消失(练习 2.2),因此 Perrort=1=0

更重要的是,本节中定义的错误概率仅指初始更新,即第一次迭代。 接下来会发生什么,经过多次迭代会发生什么? 数值实验表明,错误概率在以后的迭代中可能高得多,因为一个错误往往会增加以后再犯错的概率。 因此,估计 Perrort=1 只是长期观察误差概率的下限。

2.5 能量函数

考虑长时间极限 t Hopfield 动力学是否收敛,如方程 (2.7) 所要求? 这是神经网络算法分析中的一个重要问题,因为不收敛到有意义解的算法是无用的。

分析神经网络算法收敛的标准方法是定义一个 能量函数 H(𝒔) 在所需解处具有最小值, 𝒔=𝒙(1) 例如。 我们监控能量函数在迭代过程中的变化,并跟踪遇到的最小值 H,以找到最小值。 如果我们只存储一个模式 p=1,则合适的能量函数是

H=12N(i=1Nsixi(1))2. (2.43)

𝒔=𝒙(1) 时,此函数最小,si=xi(1) 对于所有 i 通常会插入因子 1/(2N),但这不会改变 H𝒔=𝒙(1) 处最小的这一事实。

一个关键点是,异步 McCulloch-Pitts 动力学 (2.5) 收敛H 的最小值 [13] 这是因为 H 在更新规则 (2.5) 下不会增加。 为了证明这个重要的性质,我们首先评估 r.h.s. 上的表达式。 等式(2.43)的:

H=12ijN(1Nxi(1)xj(1))sisj. (2.44)

使用 Hebb 规则 (2.9),我们发现 能量函数 (2.43) 变成

H=12ijwijsisj. (2.45)

此函数与能量函数(或 哈密顿量)具有相同的形式 对于由相互作用的自旋组成的某些磁系统的物理模型 [32],其中自旋 sisj 之间的相互作用能量为 12(wij+wji)sisj 请注意,Hebb 规则 (2.9) 产生对称权重, wij=wji,以及 wii>0 还请注意,将对角权重 设置为零 不会改变 H𝒔=𝒙(1) 处最小的这一事实,因为 si2=1 对角权重只是对 H 做出与 𝒔 无关的恒定贡献。

第二步是证明 H 在 异步 McCulloch-Pitts 动力学 (2.5) 下不会增加。 在这种情况下,我们 称能量函数为 Lyapunov 函数,或 损失函数 为了证明能量函数是 Lyapunov 函数,选择一个神经元 m 并根据方程式 (2.5) 更新它。 我们用 sm 表示神经元 m 的更新状态:

sm=sgn(jwmjsj). (2.46)

所有其他神经元保持不变。 有两种可能性, 要么是 sm=sm 要么是 sm=sm 在第一种情况下,H 保持 不变,H=H 这里 H 指的是更新 (2.46) 后的能量 函数的值。 相反,当 sm=sm 时,能量函数变化量

HH =12jm(wmj+wjm)(smsjsmsj)12wmm(smsmsmsm)
=jm(wmj+wjm)smsj. (2.47)

累加范围是所有连接到 神经元 m 的神经元 j,即方程式 (2.46) 中要更新的神经元。 现在,如果权重是对称的,HH 等于

HH=2jmwmjsmsj=2jwmjsmsj2wmm. (2.48)

由于 jwmjsj 的符号是 sm=sm 的符号,如果 wmm0,则可以得出

HH<0. (2.49)

换句话说,当神经元 m 的状态发生变化 smsm 时, H 的值必须减小。 总结一下, 1 11这里概述的推导没有使用 Hebb 规则 (2.9) 的具体形式,只是权重是对称的,并且 wmm0 然而, 当 wmm<0 时,推导失败。 在这种情况下, H𝒔=𝒙(1) 处取得最小值仍然成立, 但 H 在更新规则下可能会增加,因此无法保证收敛。 因此,我们要求对角权重不为负。 H 在 异步 McCulloch-Pitts 动力学 (sm=sm) 下要么保持不变,要么其值减小 (smsm)。 注意,这对于同步动力学 (2.4) 不成立,参见习题 2.9。 由于能量函数在异步 McCulloch-Pitts 动力学下不可能增加, 它必须收敛到能量函数的最小值。 对于能量函数 (2.43), 这意味着动力学必须收敛到存储的模式或其反转。 两者都是吸引子。

我们假设阈值消失,但当阈值不为零时,证明也适用,在这种情况下,对于能量函数

H=12ijwijsisj+iθisi (2.50)

与更新规则 sm=sgn(jwmjsjθm) 结合。

到目前为止,我们只考虑了一个存储模式, p=1 如果我们存储多个模式 [Hebb 规则 (2.25) ],那么 (2.45) 在 McCulloch-Pitts 动力学下不会增加的证明以同样的方式起作用, 因为没有假设权重 wij 的特定形式,只是 它们必须是对称的,并且对角权重必须不为负。 因此,在这种情况下,能量函数的最小值 也必须对应于吸引子,如图 2.8 所示。

\begin{overpic}[scale={0.57}]{Fig_2_8} \end{overpic}
图 2.8: 能量函数的最小值是配置空间中的吸引子,配置空间是所有网络状态的空间。 并非所有最小值都对应于存储的模式 (𝒙(mix) 是一个混合状态,见文本),并且存储的模式也不必对应于最小值。

网络的配置空间,对应于 𝒔=[s1,sN]𝖳 的所有可能选择,被绘制为一个单轴,即 x 轴。 但是当 N 很大时,配置空间实际上是高维的。

然而,当 p>1 时,一些存储的模式可能不是吸引子。 这是从我们在第 2.2 节中对串扰项的分析得出的。 如果串扰项对某个存储的模式造成错误,那么这个模式就不位于能量函数的最小值处。 另一种看待这一点的方法是将方程 (2.25) 和 (2.45) 结合起来,得到:

H=12Nμ=1p(i=1Nsixi(μ))2. (2.51)

虽然在方程 (2.43) 中定义的能量函数在 𝒙(1) 处有一个最小值, 但方程 (2.51) 不必在 𝒙(1) 处(或任何其他存储的模式)有一个最小值,因为 (i=1Nsixi(1))2 的最大值可以通过来自其他模式的项来补偿。 p 很小时(第 2.2 节),这种情况很少发生。

相反,可能存在不对应于存储模式的最小值。 这种状态被称为 伪状态 网络可能会收敛到伪状态。 这是不可取的,但即使只有一个存储的模式,也会发生这种情况, 正如我们在第 2.2 节中看到的那样:McCulloch-Pitts 动力学 可能会收敛到反转的模式。 这也从方程 (2.51) 中得出:如果 𝒔=𝒙(1)H 的局部最小值,那么 𝒔=𝒙(1) 也是 局部最小值。 这是 H𝒔𝒔 下不变性的结果。 除了倒置模式之外,还有其他类型的虚假状态。 一个例子是 混合状态叠加 奇数个 2n+1 模式 [1] 例如,对于 n=1, 混合状态的位读取为:

xi(mix)=sgn(±xi(1)±xi(2)±xi(3)). (2.52)

混合状态的数量随着 n 的增加而增加。 22n+1(p2n+1) 个混合状态是 2n+1 个模式中 p 个模式的叠加,对于 n=1,2,(练习 2.4)。 网络有时会识别出像 (2.52) 这样的混合状态 (练习 2.5), 因此网络可能会收敛到这些状态。 最后,还有一些虚假状态与 存储的模式 xj(μ) 无关。 这些 自旋玻璃 状态在参考文献中详细讨论。   [33, 34, 27],以及 Hertz、Krogh 和 Palmer [1]

2.6 摘要

Hopfield 网络是 McCulloch-Pitts 神经元的网络 能够识别或 检索 模式 (算法 1)。 它们的布局由连接强度或权重定义,这些权重根据 Hebb 规则选择。 权重 wij 是对称的,网络通常是全连接的。 Hebb 规则确保存储的模式被识别,至少在模式数量不太大的情况下,大多数情况下都能被识别。 McCulloch-Pitts 动力学的收敛性是根据能量函数来分析的,该函数在这种动力学下不会增加。

网络动力学误差概率的单步估计在第 2.2 节中推导出来。 如果迭代若干步,误差概率通常会大得多,但在一般情况下难以评估。 对于随机 Hopfield 网络,稳态误差概率更容易估计,因为动力学收敛于稳态。

算法 1 使用确定性 Hopfield 网络进行模式识别
   使用 Hebb 规则存储模式 𝒙(μ)
   通过分配 𝒔(t=0)𝒙 将失真模式 𝒙 输入网络;
   t=1,,T
      选择 m 的值并更新 sm(t)sgn(j=1Nwmjsj(t1))
  结束 对于
   读出模式 𝒔(T)

第 3 章 随机 Hopfield 网络

在上一章中出现了两个相关问题。 首先,Hopfield 动力学可能会陷入伪最小值。 事实上,如果从给定的初始状态到正确的吸引子之间存在一个局部最小值,那么动力学就会停滞在局部最小值中,因此算法无法收敛到正确的吸引子。 其次,能量函数通常是在高维配置空间上的强变化函数。 因此,很难预测网络下降动力学遇到的第一个局部最小值。

通过在动力学中引入随机性元素来解决这两个问题。 这对于许多神经网络算法来说是一个有效的技巧。 但是,通常来说,分析随机动力学非常具有挑战性。 相反,对于 Hopfield 网络,我们已经了解了很多。 原因是随机 Hopfield 网络与统计力学中研究的系统密切相关,即所谓的自旋玻璃。 就像这些系统一样 - 以及许多其他物理系统 - 随机 Hopfield 网络表现出 有序-无序转变 当神经元数量很大时,这种转变变得很尖锐。 这具有重要的意义。 假设网络在一定数量的位的情况下,对给定数量的模式产生了令人满意的结果。 如果尝试再存储一个模式,网络可能无法识别任何东西。 本章的目的是解释为什么会发生这种情况以及如何避免这种情况。

3.1 随机动力学

异步更新规则 (2.5) 被称为 确定性,因为给定的一组状态 sj 决定了神经元 m 更新的结果。为了引入噪声,将规则 (2.5) 用异步 随机 规则 [36] 替换:

sm={+1 with probability 𝓅(bm),1 with probability 1𝓅(bm). (3.1a)
A neuron with update rule (3.1a) is called binary stochastic neuron. As before, bm=jwmjsjθm is the local field, and the probability 𝓅(b) is given by:
𝓅(b)=11+e2βb. (3.1b)

函数 𝓅(b) 在图 3.1 中绘制。

\begin{overpic}[scale={0.57}]{Fig_3_1} \end{overpic}
图 3.1: 用于定义随机规则 (3.1) 的概率函数 (3.1b),针对 β=10β=0 绘制。

参数 β 是噪声参数。 β 较大时,噪声水平 较小。 As β tends to infinity, the function 𝓅(b) approaches zero if b is negative, and it tends to unity if b is positive. 因此,对于 β,随机更新规则 (3.1) 收敛到确定性规则 (2.5)。 在相反的极限情况下,当 β=0 时,更新概率 𝓅(b) 仅仅等于 12 在这种情况下,si 被随机更新为 1+1,概率相等。 动力学不依赖于局部场 𝒃 中包含的存储模式。

想法是保持一个较小的但有限的噪声水平。 然后网络动力学与上一章中分析的确定性 Hopfield 动力学非常相似。 但是噪声允许系统 逃脱虚假极小值。 然而,由于动力学是随机的,我们必须 重新表述收敛准则 (2.7)。 这将在下一节中讨论。

3.2 阶参数

如果我们提供一个存储模式,例如 𝒙(1),那么我们希望随机动力学 保持在 𝒙(1) 的附近。 这只有在噪声足够弱的情况下才能起作用,即使这样也无法保证。 在时间步 t,比特 i 正确,如果 si(t)xi(1)=1 所有比特在 i=1Nsi(t)xi(1)=N 时是正确的,否则总和将取小于 N 的值。 通过在 网络的异步随机动力学中从 t=0t=T 对给定比特 xi(μ) 进行 1Ni=1Nsi(t)xi(1) 的平均来衡量成功率:

mμ(T)=1Tt=1T(1Ni=1Nsi(t)xi(μ)). (3.2a)
\begin{overpic}[scale={0.57}]{Fig_3_2} \end{overpic}
图 3.2: 说明有限时间平均值 m1(T) 如何依赖于总迭代时间 T。浅灰色线显示 m1(T) 的结果, 针对 网络中存储的随机模式的不同实现,在 N 的一个较大的有限值。黑线是 m1(T) 在随机模式的不同实现上的平均值。

如果我们将模式 𝒙(1) 输入网络, 我们最初有 m1(t=0)=1 我们希望 m1(t) 保持接近于 1,以便网络 识别模式 𝒙(1) 在实践中, 数量 1Ni=1Nsi(t)xi(1) 稳定到一个 稳态,其中它围绕一个平均值波动,并具有一个确定的分布,该分布变得独立于迭代次数 t。如果网络运行良好,则有限时间平均值 m1(T) 在初始 瞬变 之后收敛到一个一阶值(图 3.2)。 极限值,

m1limTm1(T)1Ni=1Nsixi(1), (3.2b)

被称为 序参量 由于存在噪声,序参量 m1 通常小于 1。 公式 (3.2b) 中的最后一个等式定义了在随机网络动力学上的时间平均值 si

3.2 还说明了一个微妙之处。 对于 N 的有限值,序参量 m1 依赖于存储的模式。 随机模式的不同实现 𝒙(1),,𝒙(p) 会产生 m1 的不同值。 N 的极限情况下,这个问题不会发生, 序参量 m1 变得独立于 存储的模式。 我们说系统在该极限情况下是 自平均 的。 为了获得 序参量的确定值 对于 N 的有限值,通常对 m1 在网络中存储的随机模式的不同实现中取平均值 (图 3.2 中的粗实线)。 3.2 中的虚线表示此平均值,m1

其他成分,mμ=limTmμ(T) 对于 μ>1,预计会很小。 这对于具有许多独立比特的随机模式来说当然是正确的。 如果 si(t)xi(1),则方程 (3.2b) 中 对 i 求和的各个项在求和时近似抵消,因为模式 𝒙(2)𝒙(p) 的比特与 𝒙(1) 的比特独立。 总之,如果我们输入模式 𝒙(1) 并且网络运行良好, 我们期望在 N 较大的极限情况下:

mμ{1ifμ=1,0otherwise. (3.3)

这是否属实取决于 pNβ 的值。 在接下来的几节中, 我们将确定 m1 如何依赖于这些参数。

3.3 平均场理论

序参量被定义为网络在稳态下随机动力学的平均值(图 3.2)。 计算此平均值是一项具有挑战性的任务,因为所有神经元以非线性方式相互作用。 考虑神经元编号 i si 的命运由其局部场 bi 决定, 通过方程 (3.1)。 困难在于局部场反过来依赖于网络中所有其他神经元的sj1 11我们将阈值设置为零,如 Hebb 规则 (2.26) 中所假设的那样。

bi(t)=j=1Nwijsj(t). (3.4)

N很大时,我们可以假设bi(t)在稳态下基本上保持恒定,与t无关,因为sj(t)的波动在对j求和时平均掉了:

bi(t)=bi+fluctuations. (3.5)

由于bi(t)由许多随机数的总和给出,我们诉诸中心极限定理,并认为bi(t)的波动是N1/2量级的。 由于bi(t)1,我们在N很大的极限内忽略了波动,并写出

bi(t)bi=j=1Nwijsj=1Nμjixi(μ)xj(μ)sj, (3.6)

使用给定模式𝒙(μ)的赫布规则(2.26)。 时间平均局部场bi被称为平均场 忽略方程(3.5)中波动的理论被称为平均场理论 它们需要一个自洽解,因为平均sj在右边的 方程(3.6)取决于平均场。 使用随机更新规则(3.1),我们发现:

si =Prob(si=+1)Prob(si=1)=𝓅(bi)[1𝓅(bi)]=tanh(βbi). (3.7)

方程(3.6)和(3.7)产生了一组N个关于si的非线性自洽方程,

si=tanh(βbi)withbi=1Nμjixi(μ)xj(μ)sj. (3.8)

回想一下,平均是时间平均值,针对给定模式𝒙(μ)进行评估。

平均场方程(3.8)的另一个等价但略有不同的推导是:假设我们对固定sjsi的动力学(3.1)进行si平均,然后对所有sj进行平均。 这给了si=tanh(βbi) 与方程(3.8)比较,我们看到平均场近似对应于近似tanh(βbi)tanh(βbi)

现在,为了计算序参量(3.9),

mμ=1Nj=1Nsjxj(μ), (3.9)

我们必须求解平均场方程 (3.8) 以获得方程 (3.9) 中的时间平均值 si 为此,我们将平均场 bi 表示为序参数 mμ 的函数:

bi=1Nμ=1pjixi(μ)xj(μ)sjμ=1pxi(μ)mμ. (3.10)

最后一个等式只是近似的,因为 mμ 定义中的 j 求和包含项 j=i 是否包含该项对 N 很大时的极限影响很小。

让我们首先假设方程 (3.3) 计算 m1,忽略方程 (3.10) 中包含 μ1 的项。 为了确保这些小的 μ1 项不会累加到第一项的实质性修正,存储容量必须足够小。 对于 N 的较大值,我们假设

α1. (3.11)

在这种情况下,仅保留右侧的第一项就足够了。 方程 (3.10) [37] 该近似值与方程 (3.8) 一起得出:

si=tanh(βbi)tanh(βm1xi(1)). (3.12)

应用序参数的定义 (3.9),可以发现

m1=1Ni=1Ntanh(βm1xi(1))xi(1). (3.13)

利用 tanh(z)=tanh(z) 以及位 xi(μ) 只能取值 ±1 的事实,可以得到:

m1=tanh(βm1). (3.14)

这是一个关于 m1 的自洽方程。 对于 β0,它有解 m1=0 这不是期望的解,因为 m1=0 意味着 𝒙(1) 没有被识别。 相反,对于 β,有三个解,m1=0,±1 3.3 显示了方程式 (3.14) 在 β 的中间值上的数值评估结果。 β 大于临界值时,

\begin{overpic}[scale={0.57}]{Fig_3_3} \end{overpic}
图 3.3: 平均场方程 (3.14) 的解,实线。 临界噪声水平为 βc=1 虚线对应于不稳定解。
βc=1, (3.15)

这三个解仍然存在。 m1=0不稳定 的。 这可以通过计算 Hopfield 网络 [1]自由能 的导数来证明。 换句话说,如果我们从一个对应于 m1=0 的初始条件开始,网络动力学 不会停留在那里。 其他两个解是 稳定 的:当网络被 初始化为接近 𝒙(1) 时, 那么它会收敛到 m1=O(1), 只要 β>βc

问题的对称性决定了还必须有一个解 具有 m1 此解对应于 反转模式 𝒙(1)(第 2.5 节)。 如果我们从 𝒙(1) 的附近开始,那么网络不太可能 收敛到 𝒙(1),前提是 N 足够大。 动态转变 𝒙(1)𝒙(1) 的概率随着 N 的增加 以及噪声水平的下降而非常迅速地消失。 如果这种转变在模拟中以这种极限发生,则网络将在 𝒙(1) 附近停留很长时间。 考虑 TN 的有限但很大的值下趋于 的极限。 然后网络以非常小的速率在 𝒙(1)𝒙(1) 之间来回跳动。 因此,序参数平均值为零。 这表明 NT 的大极限不可交换:

limTlimNm1(T)limNlimTm1(T). (3.16)

在实践中,有趣的极限是左边的那个,即一个大的网络运行时间 T 比初始瞬态时间长得多,但不是无限的。 这正是平均场理论适用的地方。 它对应于 首先取 N 的极限,在有限但很大的 T 下。 这描述了转变 𝒙(1)𝒙(1) 未发生的模拟。

总之,方程 (3.14) 预测序参数收敛到一个确定的值 m1,独立于在 N 极限下的存储模式。 N 是有限的时候,序参数的极限值确实依赖于存储的模式(图 3.2)。 在这种情况下,我们也对存储模式的不同实现进行平均,如上所述。 这个平均值的 m1 决定了稳态下的平均误差概率 Perrort=,即错误位的平均比例。 稳态下的平均正确位数由

12i=1N(1+sixi(1))=N2(1+m1), (3.17)

因为 12(1+sixi(1))=1 如果 xi(1) 是正确的,否则等于零。 外层平均值是对随机模式的不同实现(内层平均值是对网络动态进行的)。 第二个等式来自于方程 (3.2b)。 由于左边 等式 (3.17) 的 <248304_1010> 等于 N 乘以 1Perrort=,我们推断出

Perrort==12(1m1). (3.18)

由于 m11 作为 β,稳态误差概率 在这个极限下趋向于零。 这是预期的,因为存储的模式 𝒙(μ) 在确定性极限中,当串扰项可以忽略不计时, 对于足够小的 α 值被识别。 但请注意,随机动力学 减慢,因为噪声 水平趋于零。 噪声水平越低,网络在局部最小值中停留的时间越长, 因此需要更长的时间才能达到稳态,并对 H 的稳态统计量进行采样。 在相反的极限情况下,β0,稳态误差概率趋于 12,因为 m10 在这个噪声主导的极限情况下,随机网络停止工作。 如果一个人 将 N 位完全随机地分配,那么平均而言,其中一半将是正确的, Perrort==12

重要的是要注意,噪声可以通过另一种方式提供帮助: 它可能阻止网络动力学收敛到混合状态(第 2.5 节)。 这可以从以下 [33, 1] 中看出。 为了推导出上述平均场结果,我们假设 m11mμ0 对于 μ1 混合状态对应于解决方案,其中 𝒎 的奇数个分量 是非零的,例如:

𝒎(mix)=[mmm0]. (3.19)

忽略串扰项,平均场方程读取

si=tanh(βμ=1pmμ(mix)xi(μ)). (3.20)

β 的极限情况下,平均值 si 收敛到混合状态 (2.52),当 𝒎(mix) 由等式 (3.19) 给出时。 对随机模式的位进行平均 可以发现:

mμ(mix)=xi(μ)tanh(βν=1pmν(mix)xi(ν)). (3.21)

等式 (3.21) 的数值解表明 对于 β1<βc1=1 存在一个非零解。 但是, 对于 0.46<β1<1 [33],此解决方案是不稳定的。 换句话说,混合状态的临界噪声水平低于存储模式,等于 0.46 对于大于此但仍小于 1 的噪声水平,网络可以识别存储的模式,并且不会收敛到混合状态。

但是,这些结果是在假设只有一个(或几个)阶参数不为零的情况下获得的。 这对应于 α=p/N0 的极限,其中串扰项(第 2.3 节)可以忽略不计。 下一节描述了一个对于 α 的较大值仍然准确的平均场理论。

3.4 临界存储容量

前一节的分析用它的第一项 xi(1)m1 代替了总和 (3.10)。 这只有在 p/N 足够小时才有效。 现在我们讨论当 p/N 不小时如何进行。

注意,第 2.2 节的分析没有假设 p/N 很小,但它只产生了单步误差概率 Perrort=1,我们讨论了存储容量 α=p/N 与单步误差概率的关系。 但是,随着网络动力学的迭代,误差的数量往往会增加,至少当 α 足够大,以至于串扰项很重要时。 现在我们描述如何计算 Perrort=,以获得存储容量 α 的一般值,以演示误差如何在迭代时相乘,导致网络失败。

如前所述,我们在网络中使用 Hebb 规则 (2.26) 存储 p 个模式,并将模式 𝒙(1) 馈送到网络。 目的是确定阶参数 m1 和相应的稳态误差概率 pN,以便 αN 情况下保持有限。 在这种情况下,我们不能再仅仅通过第一项来近似方程式 (3.10) 中的总和,因为 μ>1 的其他项可能加起来得到一个与 m1 同数量级的贡献。 相反,我们必须评估所有 mμ 以计算平均场 bi

相关的计算总结在参考文献 [38] 的第 4 章。 它也在 Hertz、Krogh 和 Palmer [1] 的第 2.5 节中概述。 本节的其余部分非常接近地遵循此概述。 首先,将平均场方程 (3.8) 改写为序参量 mμ 使用

si=tanh(βμxi(μ)mμ) (3.22)

我们发现

mν=1Nixi(ν)si=1Nixi(ν)tanh(βμxi(μ)mμ). (3.23)

这组耦合的 p 非线性方程等效于平均场方程 (3.8)。

现在将模式 𝒙(1) 馈送到网络。 我们假设网络在稳态下保持接近模式 𝒙(1),因此 m1 保持为一阶。 其他的 mμ 保持很小。 然而,当p很大时,我们不能简单地近似r.h.s上μ的总和。 方程 (3.23) 仅由其第一项计算,因为其余(小)项的总和可能不可忽略。 诀窍是假设模式 位是随机的,与平均值为零不相关 [方程 (mμ) 和 (2.30) ]。

诀窍是假设模式位是随机的,与均值零不相关[方程 (2.29) 和 (2.30)]。 在这种情况下,顺序参数 mμμ=2,,p 成为在零附近波动且方差 mμ2 的随机数(该平均值超过随机模式)。 我们使用方程(3.23)来近似计算方差。

在等式 (3.23) 右侧的 μ 求和中,我们必须单独处理 μ=ν 项,因为索引 ν 也出现在左侧。 此等式的。 同样,μ=1 项也必须像以前一样单独处理,因为 μ=1 是馈送到网络的模式的索引。 因此,m1mν 的计算结果对于 ν1 来说略有不同。 我们从第一种情况开始。 使用 xi(μ)=±1 以及 tanh(z) 是一个奇函数,等式 (3.23) 简化为:

m1=1Nitanh(βm1+βμ1xi(μ)xi(1)mμ). (3.24)

接下来的步骤类似于第 2.2 节中对串扰项的分析。 假设这些模式是随机的,并且它们的位 xi(μ)=±1 是独立同分布的。 Np 很大时,等式 (3.24) 中的求和可以通过中心极限定理来估计。 对于随机模式,变量

zμ1xi(μ)xi(1)mμ (3.25)

是许多独立同分布的随机数的总和,其均值为零,方差有限。 因此,变量 z 近似服从高斯分布,均值为零。 因此,z 的分布完全由其方差 σz2 决定,并且独立于 i

回到等式 (3.24), 将求和 1Ni 近似为对服从高斯分布的变量 z 的平均值。 这将产生:

m1=dz2πσz2ez22σz2tanh(βm1+βz). (3.26)

等式 (3.26) 是期望的结果,它是一个关于 m1 的自洽方程,替代了平均场方程 (3.14)。

为了确定 m1,我们需要估计方差 σz2,该方差出现在公式 (3.26) 中。 为此,我们将公式 (3.25) 平方,并对得到的双重求和进行平均。 由于比特 xi(μ)xi(μ)μμ 时是独立的,因此在这个双重求和中只有对角线项会对平均值做出贡献:

σz2=μ1mμ2pmμ2for anyμ1. (3.27)

在这里,我们假设 p 很大,并对 p1p 进行了近似。 为了进一步评估方差,有必要估计剩余的阶数参数。 我们再次从公式 (3.23) 开始,并对 ν1 写出

mν=1Nixi(ν)tanh(βxi(1)m1+βxi(ν)mν+βμ1μνxi(μ)mμ)=1Nixi(ν)xi(1)tanh(βm1+βxi(1)xi(ν)mν+βμ1μνxi(μ)xi(1)mμ). (3.28)

考虑 tanh() 的自变量中的三个项。 项 ① 为一阶项,它与 N 无关。 项 ③ 可能为同一阶,因为 对 μ 的求和包含 pN 项。 相反,项 ② 在 N 值较大的情况下很小。 因此,对 tanh(…) 进行泰勒展开是一个很好的近似:

tanh(++)tanh(+)+ddxtanh|++. (3.29)

利用 ddxtanh(x)=1tanh2(x),我们得到

mν=1Nixi(ν)xi(1)tanh(βm1+βμ1μνxi(μ)xi(1)mμ)+1Nixi(ν)xi(1)βxi(1)xi(ν)mν[1tanh2(βm1+βμ1μνxi(μ)xi(1)mμ)]. (3.30)

利用 x(μ)=±1 以及因此 [xi(μ)]2=1 的事实,这个表达式简化为:

mν=1Nixi(ν)xi(1)tanh(βm1+βμ1μνxi(μ)xi(1)mμ)++βmν1Ni[1tanh2(βm1+βμ1μνxi(μ)xi(1)mμ)]. (3.31)

目标现在是求解 mν 将第二行中的求和 1Ni 近似为对高斯分布变量 z [公式 (3.25)] 的平均值,得到:

βmνdz12πσzez22σz2[1tanh2(βm1+βz)]. (3.32)

定义参数 q

qdz12πσzez22σz2tanh2(βm1+βz), (3.33)

我们可以将公式 (3.32) 写成

βmν[1dz12πσzez22σz2tanh2(βm1+βz)]βmν(1q). (3.34)

回到公式 (3.31),我们看到它具有以下形式

mν=1Nixi(ν)xi(1)tanh(βm1+βμ1μνxi(μ)xi(1)mμ)+(1q)βmν. (3.35)

求解 mν ,我们得到 ν1

mν=1Nixi(ν)xi(1)tanh(βm1+βμ1μνxi(μ)xi(1)mμ)1β(1q). (3.36)

此表达式允许我们计算方差 σz,由公式 (3.27) 定义。 公式 (3.36) 表明平均 mν2 包含对 位索引 i 的双重求和。 由于位是独立的,只有对角线项有贡献,因此

mν21N2itanh2(βm1+βμ1μνxi(μ)xi(1)mμ)[1β(1q)]2 (3.37)

对于 ν1,但与 ν 独立。 分子只是 q/N,来自公式 (3.33)。 所以方差计算为

σz2=αq[1β(1q)]2. (3.38)

综上所述,存在三个耦合方程,对于 m1qσz,公式 (3.26),(3.34) 和 (3.38)。 它们必须一起求解 以确定 m1 如何依赖于 βα

为了与第 2.2 节中描述的结果进行比较,我们必须取确定性极限,β 在此极限下,q 趋近于 1, 但 β(1q) 保持有限 [1] 在公式 (3.38) 中设置 q=1 但保留 β(1q),我们得到:

σz2 =α[1β(1q)]2. (3.39a)
The deterministic limits of Equations (3.34) and (3.26) become [1]:
β(1q) =2πσz2em122σz2, (3.39b)
m1 =erf(m12σz2). (3.39c)

回忆稳态误差概率的表达式 (3.18)。 将公式 (3.39c) 中的 m1 代入此表达式,我们发现 在相同的极限下:

Perrort==12[1erf(m12σz2)]. (3.40)

将此与确定性极限内的一步误差概率的方程 (2.39) 进行比较。 该方程是针对网络动力学的仅一步推导出来的, 而公式 (3.40) 描述了许多步的极限,即长时间或稳态极限。

然而,事实证明,方程 (3.40) 简化为 (2.39) 作为 α0. 为了看到这一点,人们通过引入变量 y=m1/2σz2 来求解方程组 (3.39)。 人们 获得以下关于 y 的一维方程 [1, 34]:

y(2α+(2/π)ey2)=erf(y). (3.41)

相关的解是那些满足 0erf(y)1 的解, 因为阶参数被限制在这个范围内(到 m1 的转变不会在 N 的极限内发生)。 3.4 显示了从 方程 (3.40) 和 (3.41) 获得的稳态误差概率。 还显示了一步 误差概率

Perrort=1=12[1erf(12α)]

在第 2.2 节中推导。 如上所述,Perrort= 接近于 Perrort=1 对于小的 α 我们得出结论:在这个极限内,对于小的 α,误差概率不会随着网络动力学的迭代而显著增加。 早期迭代中的误差对以后发生误差的概率影响很小。

\begin{overpic}[scale={0.57}]{Fig_3_4} \end{overpic}
图 3.4: 误差概率作为确定性极限中存储容量 α 的函数。 一步误差概率 Perrort=1 [方程 (2.39)] 以虚线显示,稳态误差概率 Perrort= [方程 (3.40)] 以实线显示。 在阴影区域,误差雪崩增加了误差概率。 在参考文献 1 中的图 1 之后。  [34]

α 的值较大时,情况有所不同。 在这种情况下,Perrort=1 会严重低估稳态误差概率。 在散列区域,动态中的误差会增加后续步骤中出现误差的概率,从而导致 误差雪崩 3.4 说明了 稳态误差概率趋于 12 随着参数 α 超过临界值 αc 而增加。 公式 (3.41) 得出

αc0.1379 (3.42)

对于临界存储容量 αc α>αc 时,网络仅产生噪声。 相反,当 α<αc 时,网络运行良好。 存储容量 α 越小,网络性能越好。

3.4 显示稳态误差概率在 αc 附近发生非常突然的变化。 假设我们在 Hopfield 网络中存储了 137 个具有 1000 位的模式。 在这种情况下,网络可以以相对较小的误差概率检索模式。 但是,如果我们尝试存储一个或两个以上的模式,网络将无法产生 与存储的模式有意义相关的输出。 这种快速的变化 是 相变 的一个例子。 在许多物理系统中,人们观察到类似的有序相和无序相之间的转变 [32]

当噪声水平更高时会发生什么? 公式 (3.34)、(3.26) 和 (3.38) 的数值解表明,临界存储容量 αc 随着噪声水平的增加而降低(β 的值更小)。 3.5 示意性地展示了这一点。 在实线下方,错误概率小于 12,因此网络可靠地运行(尽管在接近相变边界时可靠性降低)。 在此区域之外,错误概率等于 12 在此区域,网络失效。 α 很小的情况下,临界噪声水平为 βc=1 在此情况下,网络由第 3.3 节中解释的理论,即公式 (3.14) 所描述。

或者,Hopfield 网络的这两个不同相位可以用序参数 m1 来表征。 我们看到,m10 在实线下方,而 m1=0 在实线上方,在 N 很大时。

\begin{overpic}[scale={0.57}]{Fig_3_5} \end{overpic}
图 3.5: Hopfield 网络在 N 很大时的相位图(示意图)。 Perrort=<12 的区域是有序相,Perrort==12 的区域是无序相。 参考文献 [34] 中图 2 之后。   [34]

3.5 超越平均场理论

本章总结的理论基于对局部场的平均场近似,即方程 (3.6)。 主要结果是在图 3.5 中所示的相图, 是在 N 极限情况下推导出来的。 对于较小的 N 值,人们期望过渡变得不那么尖锐,因此 m1 即使对于大于临界存储容量 αcα 值也不为零。

但即使对于较大的 N 值, 平均场理论的可靠性仍然是一个问题。 为了回答这个问题,人们使用了一种更精确的理论,该理论基于所谓的 副本技巧 𝒔 在固定模式 𝒙(μ) 下的稳态分布开始。 在第 4 章中,我们将看到 McCulloch-Pitts 动力学的稳态分布是 玻尔兹曼分布

PB(𝒔)=Z1eβH(𝒔) (3.43)

(第 4 章中的证明假设对角权重设置为零)。 归一化因子 Z 称为 配分函数

Z=𝒔eβH(𝒔). (3.44)

为了计算序参数,在能量函数 (2.45) 中添加一个阈值项

H=12ijwijsisj+μλμixi(μ)si. (3.45)

然后通过对 λμ 求导得到序参数 mμ

mμ=1Nixi(μ)ni=1NβλμlogZ. (3.46)

外部平均是对随机模式的不同实现进行的。 使用副本技巧对 Z 的对数进行平均。 想法是将对数的平均值表示为

logZ=limn01n(Zn1), (3.47)

函数 Zn 看起来像是 n 个系统副本的配分函数,因此得名 副本 技巧。 如果假设所有副本产生相同的序参量,则可以得到第 3.4 节中描述的平均场解。 如果允许不同的副本具有不同的序参量 (副本对称性破缺), 则可以得到关于临界存储容量 [39] 的更精确解。

αc=0.138187. (3.48)

平均场结果 (3.42) 与公式 (3.48) 只有轻微差异。 最精确的蒙特卡罗模拟(第 4.2 节)针对 N 的有限值 [40] 进行,外推至 N=

αc=0.143±0.002. (3.49)

这与最佳理论估计值,即公式 (3.48) 接近,但存在显著差异,同时它也与平均场结果 (3.42) 不同。

为了将这些结果置于背景之中,请注意,对于其他系统,平均场理论往往会得出比这里差得多的结果。 通常,平均场理论最多只能对相变给出定性描述。 相比之下,对于霍普菲尔德网络,平均场理论效果很好,因为每个神经元都与其他每个神经元连接。 这有助于平均掉公式 (3.6) 中的波动。 在具有局部相互作用的物理系统中,平均场理论在更高维度上往往效果更好,因为有更多相邻点可以进行平均(练习 3.5)。

3.6 相关和非随机模式

在前两节中,我们假设 存储的模式是随机的,具有独立同分布的位。 这使我们能够使用中心极限定理来计算霍普菲尔德网络的存储容量。 希望结果能够描述典型非随机模式或具有相关位的随机模式的情况。 相关性会影响串扰项的分布,进而影响霍普菲尔德网络的存储容量。 有人认为, 当模式之间更强地相关时,存储容量会增加, 而另一些人则声称,容量在这种极限情况下会减小(见参考文献   [41] 对于讨论)。

对于一组确定的模式(没有随机性需要平均),情况似乎更加具有挑战性。 然而,有一种方法可以修改 Hebb 规则来解决这个问题,至少当模式线性独立时可以解决。 Hertz、Krogh 和 Palmer [1] 解释了这种方法。 人们只需将

Qμν=1N𝒙(μ)𝒙(ν) (3.50)

融入 Hebb 规则。 为此,人们定义了 p×p 重叠矩阵 ,其元素为 Qμν,并写成:

wij=1Nμνxi(μ)(1)μνxj(ν). (3.51)

对于正交模式 (Qμν=δμν),这种修改后的 Hebb 规则与等式 (2.25) 相同。 对于非正交模式,规则 (3.51) 确保所有模式都能被识别。 等式 (3.51) 要求矩阵 可逆:它的列必须线性独立(这意味着行也线性独立)。 这限制了使用规则 (3.51) 可以存储的模式数量,因为 p>N 意味着线性相关性。

对于线性独立的模式,可以通过从任意起点开始的逐步改进,迭代地找到权重 wij 我们可以说,网络通过一系列权重变化来学习任务。 这是用于解决感知机分类任务的思想(第 II 部分)。

3.7 摘要

在本章中,我们分析了 Hopfield 网络的随机动力学。 我们询问了在哪些情况下网络动力学可以可靠地识别存储的模式。 如果存储的模式是随机的,Hopfield 网络的性能取决于它们的数目、每个模式的比特数以及噪声水平。 存储容量 α 等于存储模式数与每个模式的比特数之比。 当此比率较小时,网络可以可靠地运行,前提是噪声水平不要太大。 N 极限的平均场分析表明,Hopfield 网络的参数平面中存在相变(图 3.5):当 α 超过临界存储容量 αc 时,网络将停止工作。

Hopfield 网络与本书后面讨论的网络具有许多共同的特性。 也许最重要的一点是,在动力学中引入噪声可以研究网络的收敛性和性能:在存在噪声的情况下,存在一个可以分析的明确定义的稳态。 在没有噪声的情况下,在确定性极限中,网络动力学会在能量函数的局部最小值处停止,并且可能无法达到存储的模式。 自然,噪声必须足够小,才能使网络准确地运行。 最后,Hopfield 网络的构建块是 McCulloch-Pitts 神经元和 Hebb 的权重规则。 接下来的几章中讨论的许多算法以某种形式使用了这些元素。

3.8 进一步阅读

Hertz、Krogh 和 Palmer 在 神经计算理论导论 中解释了 Hopfield 网络的统计力学 [1] 从玻尔兹曼分布开始,本书第 10 章总结了如何计算序参数,以及如何评估相应解的稳定性。 有关副本技巧的更多详细信息,请参阅 Müller、Reinhard 和 Strickland 的书籍 [37] 以及 Engel 和 van den Broeck 的书籍 [42],以及综述文章 [43]

第 4 章 玻尔兹曼分布

在第 2 章中,我们看到了 Hopfield 网络的确定性动力学 (2.5) 允许 Lyapunov 函数

H=12ijwijsisj+iθisi, (4.1)

如果权重 wij 是对称的, 并且 wii>0 在本章中 1 11 在本章中,我们将对角权重设置为零。 我们证明了异步随机 McCulloch-Pitts 动力学 (3.1) 收敛到一个稳态,其中状态向量 𝒔 遵循玻尔兹曼分布

PB(𝒔)=Z1eβH(𝒔)with normalisationZ=𝒔eβH(𝒔). (4.2)

随机动力学 (3.1) 与 马尔可夫链蒙特卡罗 算法的动力学密切相关,这些算法旨在从玻尔兹曼分布中有效地采样。 我们还讨论了如何通过蒙特卡罗模拟来解决优化任务:将一个合适的能量 H 分配给每个配置 𝒔, 使得函数 H(𝒔) 对于最优配置 𝒔min 具有全局最小值。 随机动力学找到低能配置(但不一定是 𝒔min),特别是 如果人们通过增加 β (模拟退火 [44]) 来迭代地降低噪声水平。

最后但并非最不重要的是,我们看一下 玻尔兹曼机 [15, 45, 14, 46, 47],带有 隐藏神经元 的随机 Hopfield 网络,这些神经元既不用于输入也不用于输出。 玻尔兹曼机可以 训练 来学习二进制输入模式 𝒙 的分布 Pdata(𝒙) 的属性。 想法是迭代地改变方程 (4.1) 中的权重,直到玻尔兹曼分布代表输入分布。 这个想法是, 迭代权重直到网络学习输入分布 Pdata,在 监督学习 (第 II 部分) 中以稍微不同的形式使用。 玻尔兹曼机与 Hopfield 网络密切相关。 没有 隐藏神经元,两种模型都学会 表示模式位的两点相关性 xi(μ)xj(μ)

当有关输入的重要信息 编码在高阶相关性中时,可以使用 隐藏神经元 来表示 这些相关性。 通常,玻尔兹曼机很难训练,特别是如果它们有许多隐藏神经元。 受限玻尔兹曼机 是一种具有隐藏神经元的的神经网络,但连接较少: 只有 可见 神经元和隐藏神经元之间的连接被允许。 这些神经网络可以相当有效地训练,并且可以解决许多不同的任务。 除了学习输入模式的分布之外,它们还可以被训练来识别不完整的输入模式,以及对输入进行分类 [25]

4.1 随机动力学的收敛

我们首先证明随机动力学 (3.1) 具有一个稳态,其中 𝒔 按照玻尔兹曼分布 (4.2) 分布。 为此,我们考虑网络动力学的另一种等效公式。 它包括两个部分。 首先,随机选择一个神经元,例如编号为 m 其次,将 sm 更改为 smsm,概率为

Prob(smsm)=11+eβΔHm, (4.3a)
with
ΔHm=H(,sm,)H(,sm,). (4.3b)

为了探索随机规则 (4.3) 和 (3.1) 之间的关系, 我们使用

ΔHm=bm(smsm) (4.4)

其中局部域为 bm=jwmjsjθm 为了推导出方程式 (4.4),我们假设权重是对称的,并且对角权重消失。 结果是通过类似于导致方程式 (2.48) 的计算得到的,只是这里我们有非零 阈值。 为了继续, 我们将规则 (4.3) 分成不同的情况。 神经元 m 的状态以概率

if sm =1 obtainsm =1with prob. 11+e2βbm =𝓅(bm), (4.5a)
if sm =1 obtainsm =1with prob. 11+e2βbm =1𝓅(bm). (4.5b)
In the second row we used that 1𝓅(b)=111+e2βb=1+e2βb11+e2βb=11+e2βb. The state remains unchanged with probability:
if sm =1 obtain sm =1 with prob. 1𝓅(bm) =11+e2βbm, (4.5c)
if sm =1 obtain sm =1 with prob. 𝓅(bm) =11+e2βbm. (4.5d)

与方程式 (3.1) 相比,我们得出结论,在所做假设 (wij=wjiwii=0) 下,两种方案 (3.1) 和 (4.3) 是等效的。 注意,公式 (4.3) 比随机 Hopfield 动力学更通用,因为它 不需要能量函数具有 (4.1) 的形式。 特别是,权重不需要对称,也不需要对角权重消失。 如果不满足这些条件,则公式 (3.1) 和 (4.3) 不等效(练习 4.1)。

规则 (4.3) 定义了 一个 马尔可夫链 的状态

𝒔t=0𝒔t=1𝒔t=2 (4.6)

和以前一样,索引 t 计数迭代步骤。 马尔可夫链是一个 无记忆 的随机状态序列,由 转移概率 p(𝒔|𝒔) 从状态 𝒔𝒔 [48] 定义。 转移概率 p(𝒔|𝒔) 连接任意状态。 人们区分 局部移动,其中只有一个神经元 可能改变,如上所述,以及 全局移动,其中许多神经元可能在一个步骤中改变其状态。

在这两种情况下,更新都包含两个部分。 首先,用概率 q(𝒔|𝒔) 建议一个新的状态 𝒔 其次,用 接受概率 接受新的状态 𝒔

pa(𝒔|𝒔)=11+eβΔHwithΔH=H(𝒔)H(𝒔). (4.7)

因此,转移概率由两个因素的乘积给出

p(𝒔|𝒔)=q(𝒔|𝒔)pa(𝒔|𝒔). (4.8)

这些步骤重复多次,从而创建了状态链 (4.6)。

由转移概率 (4.8) 定义的马尔可夫链 具有玻尔兹曼分布 (4.2) 作为稳态分布,如果 详细平衡 条件满足:

p(𝒔|𝒔)PB(𝒔)=p(𝒔|𝒔)PB(𝒔). (4.9)

注意,这是一个充分条件,而不是必要条件 [49] 存在一些不满足详细平衡但仍然具有稳态的马尔可夫链(练习 4.4)。 通常详细平衡意味着不仅马尔可夫链具有PB(𝒔)作为稳态分布,而且由序列(4.6)生成的态分布收敛于PB(𝒔),参见文献  [48] 了解更多信息。

为了证明详细平衡条件 (4.9) 对于转移概率 (4.8) 成立,假设随机选择单个神经元,其概率均匀

q=N1, (4.10)

其中 N 是网络中的神经元数量。 由于 q 不依赖于 𝒔𝒔,因此建议新状态的概率显然是对称的。 然后方程 (4.2)、(4.7) 意味着:

qeβH(𝒔)1+eβ[H(𝒔)H(𝒔)] =qeβH(𝒔)+eβH(𝒔)=qeβH(𝒔)1+eβ[H(𝒔)H(𝒔)]. (4.11)

这表明玻尔兹曼分布是马尔可夫链的稳态,该马尔可夫链由 (4.7)、(4.8) 和 (4.10) 定义。 因此,玻尔兹曼分布是马尔可夫链的稳态。 如果模拟收敛于稳态(通常情况下确实如此),那么马尔可夫链访问的态将根据玻尔兹曼分布进行分布。 这也意味着霍普菲尔德模型的稳态分布是玻尔兹曼分布,如第 3.5 节所述。

需要强调的是,方程 (4.9) 是转移概率 p(𝒔|𝒔)=q(𝒔|𝒔)pa(𝒔|𝒔) 的条件,而不仅仅是接受概率 pa(𝒔|𝒔) 的条件。 对于上面讨论的局部移动,q 是一个常数,因此 p(𝒔|𝒔)pa(𝒔|𝒔) 在这种情况下,只需检查接受概率的详细平衡条件即可。 一般来说,特别是对于全局移动,需要在详细平衡检查中包含 q(𝒔|𝒔) [50]

4.2 蒙特卡洛模拟

前一节中描述的马尔可夫链是 马尔可夫链蒙特卡洛 算法的基础。 此方法广泛应用于统计物理学和数理统计学。 因此,了解不同公式之间的联系非常重要。

玻尔兹曼分布描述了大量物理系统在稳态下观察其构型的概率 [32] 具有能量函数(也称为 哈密顿量H 的系统的统计力学表明,在给定温度 T 下(在此情况下, β1=kBT 其中 kB 是玻尔兹曼常数),以及没有任何其他约束的情况下,它们的构型根据玻尔兹曼分布进行分布,处于热力学平衡状态。 如果我们用向量 𝒔 表示系统的构型,则玻尔兹曼分布将采用以下形式 (4.2)。 归一化因子 Z=𝒔eβH(𝒔) 也称为 配分函数 对于具有大量相互作用自由度的系统,配分函数的计算可能非常昂贵,因为对 𝒔 的求和包含许多项。 因此,与其直接计算分布,不如生成一个具有适当转移概率的状态马尔可夫链,例如 (4.3)。

在实践中,人们经常使用转移概率的略微不同的形式 (Metropolis 算法 [51])。 假设 q 是常数,则采用:

p(𝒔|𝒔)=q{eβΔHwhenΔH>0,1whenΔH0, (4.12)

其中 ΔH=H(𝒔)H(𝒔) 与之前相同。 Metropolis 速率服从详细平衡条件 (4.9) 可以通过以下方式看到:

p(𝒔|𝒔)PB(𝒔) =qZ1eβH(𝒔){eβ[H(𝒔)H(𝒔)]ifH(𝒔)>H(𝒔)1otherwise (4.15)
=qZ1eβmax{H(𝒔),H(𝒔)} (4.16)
=qZ1eβH(𝒔){eβ[H(𝒔)H(𝒔)]ifH(𝒔)>H(𝒔)1otherwise (4.19)
=p(𝒔|𝒔)PB(𝒔).

Metropolis 算法在算法 2 中进行了总结。 它提供了一种计算可观测量 A(𝒔)𝒔 玻尔兹曼分布上的平均值 A 的优雅方法:

A=Z1𝒔A(𝒔)eβH(𝒔)1Tt=1TA(𝒔t). (4.20)

这种计算平均值 A 的特殊方法是更一般的方法 重要性采样 [52] 的特例。 中心极限定理意味着,对于 A 的估计误差随着 T 的增加而 T1/2 减少。 前置因子由和中后续项之间的相关性决定 (4.20):序列中的状态 (4.6) 是相关的,特别是当移动是局部的时,因为随后配置相似。 从分布中生成许多高度相关的样本并不是一种非常有效的采样该分布的方法。 有时建议全局移动可能更有效,以避免马尔可夫链中的后续状态相似。 但不能保证全局移动会导致更弱的相关性。 对于全局移动,ΔH 可能更有可能假设较大的正值,因此建议的移动更少被接受。 因此,马尔可夫链可能在某些状态中停留很长时间,从而增加序列中的相关性。 通常,折衷方案最有效,既不是局部也不是全局的移动。 总之,蒙特卡洛采样的收敛速度很慢。 这促使索卡尔在他关于蒙特卡洛模拟的讲义笔记开头用警告 [49]

蒙特卡洛是一个非常糟糕的方法;只有在所有其他方法都更糟糕时才应该使用它。

蒙特卡洛算法被广泛使用,Metropolis 算法的原始参考文献 [51] 通常被认为是计算物理学中最具意义的科学论文之一。 索卡尔的观点当然是指许多问题无法以其他任何方式解决,因此蒙特卡洛模拟是唯一的选择。 但我们应该意识到该方法的缺点。 同样的谨慎适用于本书的主题,即使用神经网络的机器学习算法。

算法 2 对称 q(𝒔|𝒔) 的 Metropolis 算法
   初始化 𝒔=𝒔0 ;
   t=1,,T
      建议一个新的状态 𝒔 ,其概率为 q(𝒔|𝒔) ;
      计算 ΔH=H(𝒔)H(𝒔) ;
     如果 ΔH0 那么
         接受新状态: 𝒔=𝒔 ;
     别的
         随机生成一个在 [0,1] 内均匀分布的数字 r ;
        如果 r<exp(βΔH) 那么
            接受新状态: 𝒔=𝒔 ;
        别的
            拒绝 𝒔 ;
        结束 如果
     结束 如果
      采样 𝒔t=𝒔At=A(𝒔t) ;
  结束 对于

4.3 模拟退火

\begin{overpic}[scale={0.57}]{Fig_4_1} \end{overpic}
图 4.1: 示意图. 模拟退火 (箭头) 倾向于降低能量函数. 噪声有助于避免 动力学停滞在局部最小值.

组合优化问题承认 2kk! 配置 - 当 k 很大时,太多以至于无法通过完全枚举找到最佳配置. 一种替代策略是为每个配置 𝒔 分配一个能量 H(𝒔),使得 H 在最佳配置 𝒔min 时最小. 通过蒙特卡罗模拟最小化 H(𝒔), 利用蒙特卡罗动力学在温度 kBT=β1 低时倾向于降低 H, 图 4.1. 一种常见的策略是在运行时降低温度. 在模拟开始时,温度很高,因此动力学首先探索能量景观的粗略特征. 当温度降低时,动力学感知到 H(𝒔) 的越来越精细的特征. 希望它最终停留在全局最小值 Hmin=H(𝒔min) 处,在零温度下, 其中 PB(𝒔)=0H(𝒔)>HminPB(𝒔)>0 仅对 H(𝒔)=Hmin 有效. 此方法称为 模拟退火 [44],另见 数值食谱 [53] 中的第 10.9 节. 在模拟过程中缓慢降低温度模拟了物理系统的缓慢冷却. 它经过一系列准平衡玻尔兹曼分布,温度越来越低,直到系统最终找到全局最小值 Hmin

对于许多组合优化问题,可以写出 具有与公式 (2.50) 相同形式的能量函数,其中权重对称 [54] 由于 sij2=1,总是可以假设对角权重 消失,因为它们对 H 的贡献只是一个常数。简而言之, 可以使用霍普菲尔德动力学 (3.1) 来最小化 H旅行推销员 问题已经通过这种方式解决 [54, 1],随着迭代 随机动力学,噪声水平逐渐降低。

当然,不必为此使用霍普菲尔德模型。 相反,我们可以直接使用随机动力学 (4.3) 或 Metropolis 算法 (4.12) 通过模拟退火来解决组合优化问题。 然而,一个关键步骤是找到一个合适的能量函数。

例如,考虑 双酶切问题 它是在对人类基因组进行测序时出现的 [55, 56] 人类基因组序列最初是通过将重叠的 DNA 片段按正确顺序拼凑在一起而组装起来的,方法是确保重叠片段共享相同的 DNA 序列。 为此,需要唯一地识别 DNA 片段。 片段的实际 DNA 序列是一个唯一的标识符。 但通过 指纹 来识别 DNA 片段就足够了,而且效率更高,例如 限制性酶切位点 的序列。 这些是短的子序列(长 4 或 6 个碱基对),被识别为识别切割 (消化) DNA 链的精确位点的酶。 DNA 片段通过其包含的限制性酶切位点的类型和位置来识别,即所谓的 限制性酶切图

L=10000
a= [5976, 1543, 1319, 1120, 42]
b= [4513, 2823, 2057, 607]
c= [4513, 1543, 1319, 1120, 607, 514, 342, 42]
L=20000
a= [8479, 4868, 3696, 2646, 169, 142]
b= [11968, 5026, 1081, 1050, 691, 184]
c= [8479, 4167, 2646, 1081, 881, 859, 701, 691, 184, 169, 142]
L=40000
a= [9979, 9348, 8022, 4020, 2693, 1892, 1714, 1371, 510, 451]
b= [9492, 8453, 7749, 7365, 2292, 2180, 1023, 959, 278, 124, 85]
c= [7042, 5608, 5464, 4371, 3884, 3121, 1901, 1768, 1590, 959, 899, 707, 702, 510, 451, 412,
  c=[ 278, 124, 124, 85]
表 4.1: 双酶切问题 [55] 的示例配置,针对三种不同的染色体长度 L。对于每个示例,都给出了三个有序的片段集,分别对应于使用 A、使用 B 和同时使用 A 和 B 消化的结果。

当一个 DNA 片段被两种不同的酶切割时,人们可以通过实验来确定所得片段的长度。 是否可以通过片段的长度来确定 DNA 片段序列中切割的顺序,从而找到限制性图谱? 这就是双酶切问题 [55] 在双酶切实验中,一个给定的 DNA 序列首先被一种酶切割(例如 A)。 假设这将产生 n 个片段,长度为 ai (i=1,,n)。 然后,DNA 序列被另一种酶 B 切割。 在这种情况下,发现 m 个片段,长度为 b1,b2,,bm 第三,DNA 序列同时被两种酶 AB 切割,产生 l 个片段,长度为 c1,,cl,见表 4.1 的示例。 任务现在是确定 a 切割和 b 切割的所有可能的顺序,这些顺序导致 l 个片段,长度为 c1,c2,,cl 由于双酶切问题的解是退化的,所以一个重要的问题是确定有多少个不同的解(练习 4.5)。

要写下能量函数,用 a={a1,,an} 表示用酶 A 切割产生的片段长度的有序集,其中 a1a2an1 同样,用 b={b1,,bm} (b1b2bm1) 表示用酶 B 切割产生的片段长度,用 c={c1,,cl} (c1c2cl1) 表示先用 A 切割再用 B 切割产生的片段长度。集合 ab 的排列 σμ 会产生一个我们称为 c^(σ,μ)c 片段集。 双酶切问题的解对应于产生 c^(σ,μ)=c 的排列 [σ,μ] 因此,一个合适的能量函数是

H(σ,μ)=jcj1[cjc^j(σ,μ)]2, (4.21)

构型空间是所有排列对 𝒔=[σ,μ] 的空间。 构型空间中的局部移动对应于 σ 和/或 μ 的短子序列的反转。 可以证明相应的 q(𝒔|𝒔) 是对称的 (练习 4.5)。 如上所述,这是随机动力学以其最简单形式收敛的必要条件, 方程 (4.12) 和算法 2

对于模拟,首先选择一个更大的温度 kBT=β1,以便随机动力学首先探索能量景观的粗略特征。 随着模拟的进行, 温度逐渐降低。 这使得动力学能够学习景观的更精细特征,如上所述。

4.4 玻尔兹曼机

玻尔兹曼机是广义的霍普菲尔德网络, 可以学习近似二进制输入模式的数据分布。 玻尔兹曼机与霍普菲尔德网络不同 有两个主要方面。 首先,不用赫布规则,而是调整权重,直到玻尔兹曼 机器精确地逼近数据分布。 权重被迭代地细化以最小化 数据分布和模型(玻尔兹曼分布)之间的差异。 然而,这个过程与赫布规则密切相关, 正如我们即将看到的。 其次,为了表示输入模式的比特之间的更高阶相关性,玻尔兹曼机 采用隐藏神经元。

\begin{overpic}[scale={0.57}]{Fig_4_2} \end{overpic}
图 4.2: 具有 五个神经元的玻尔兹曼机。 所有权重都是对称的, 对角权重设置为零。 神经元的状态用 si=±1 表示。 此神经网络没有隐藏单元。 它看起来像一个 Hopfield 网络,但权重不是由 Hebb 规则给出的。

我们从没有隐藏神经元的 Boltzmann 机开始(图 4.2), 因为它们更容易分析。 然后 我们讨论为什么隐藏神经元对于学习一般输入分布的性质是必要的 Pdata(𝒙) 二进制输入 𝒙 具有隐藏神经元的 Boltzmann 机的训练算法在第 4.5 节中描述。

训练算法的目标是找到权重,以便 Boltzmann 分布

PB(𝒔=𝒙)=Z1exp(12ijwijxixj) (4.22)

尽可能精确地逼近分布 Pdata(𝒙) 在本章的这里和剩余部分中,我们设定 β=1 输入模式有 N 个二进制位 [等式 (2.1)],其值为 ±1 权重矩阵 𝕎 是对称的,wij=wji,其 对角元素设置为零,wii=0 在本节中,我们还将阈值设置为零。

Boltzmann 机通过使用一系列输入模式 𝒙(μ) (μ=1,,p) 迭代地调整权重 wij 来进行训练,这些模式独立地从数据分布 Pdata(𝒙) 中采样。 这是通过最大化 似然 =μ=1pPB(𝒔=𝒙(μ)) Boltzmann 机产生输入模式序列 𝒙(1),,𝒙(p) 的可能性来实现的。 任何模式都可能在序列中出现不止一次,其频率与 Pdata(𝒙) 成正比。 因此,最大化 对应于尽可能准确地逼近数据分布。 通常人们最大化似然函数的对数, 即 对数似然 函数

log=logμ=1pPB(𝒔=𝒙(μ))=μ=1plogPB(𝒔=𝒙(μ)). (4.23)

对数是一个单调函数,因此对数似然在其与似然相同的权重值处取得最大值。 取对数简化了 学习算法的分析, 因为 logPB(𝒔=𝒔(μ)) 仅仅是 xj(μ) 的二次函数。 此外,基于对数似然的学习算法 通常在数值上更稳定。

最大化对数似然背后的另一个理由是从 Kullback-Leibler 散度 出发, 其定义为

DKL=μ=1pPdata(𝒙(μ))log[Pdata(𝒙(μ))/PB(𝒔=𝒙(μ))]. (4.24)

和中 Pdata(𝒙(μ))=0 为零的项被设置为零,并且 DKL 被定义为无穷大,当 存在 PB=0Pdata0 的模式时。 Kullback-Leibler 散度是 两个分布之间差异的度量: DKL 非负,并且它在 Pdata(𝒙(μ))=PB(𝒔=𝒙(μ)) 处取得其全局最小值 DKL=0,参见练习 4.6。 我们从公式 (4.24) 推断,最小化 DKL 等于最大化 log

为了找到对数似然的全局最大值,我们使用 梯度上升: 我们重复地通过添加增量来改变权重

wmn=wmn+δwmnwithδwmn=ηlogwmn. (4.25)

小参数 η>0学习率 梯度指向 最陡峭的上坡方向。 这个想法是向上走很多小步,直到希望(但并不一定)到达全局最大值。 由于似然是许多可能很小的因子的乘积, 可能变得非常小。 这会导致数值不稳定。 最大化 log 而不是 可能更稳定,因为它 在梯度中产生了一个额外的因子 1log/wmn=1/wmn

为了评估 的梯度,我们从公式 (4.23) 开始

log=μ=1p[logZ+12ijwijxi(μ)xj(μ)]. (4.26)

此表达式假设对角权重消失,就像公式 (4.22) 一样。 第一步是计算导数

logZ=logs1=±1,,sN=±1exp(12ijwijsisj). (4.27)

为了计算 logZ/wmn,我们使用链式法则

wijwmn=δimδjn+δjmδin. (4.28)

此关系对于对称权重有效,并且前提是 ijmn 在公式 (4.28) 中,δkl 是克罗内克德尔塔,如果 k=l 则为 δkl=1,否则为零(第 2 章)。 特别地,δimδjn=1 仅当 i=mj=n 时才成立。 否则,克罗内克德尔塔的乘积等于零。 公式 (4.28) 由以下故事说明(对一个著名的数学笑话的修改):

线性函数 x 和常数函数一起散步。 当他们突然看到导数走来时,常数函数开始担心。 “我不担心,”函数 x 自信地说,“我不会被导数置为零。”当导数走近时,它说:“你好! 我是 /y 你好吗?”

道理是:由于 xy 是自变量,因此 x/y=0 公式 (4.28) 反映了相同的原理:权重 wijwmn 是自变量,除非它们的索引一致。 公式 (4.28) 对非对角权重有效,并且等式右侧有两项。 因为权重是对称的。

回到 logZwmn 的导数,利用等式 (4.28),可以发现:

logZwmn=s1=±1,,sN=±1smsnPB(𝒔)smsnmodel. (4.29)

最后一个等式定义了模型的二点相关性,smsnmodel, 使用玻尔兹曼机的稳态分布 (4.22) 计算得出。 计算等式 (4.26) 中 第二项的导数得到:

wmn12ijwijxi(μ)xj(μ)=xm(μ)xn(μ). (4.30)

总结一下,

logwmn=μ=1p(xm(μ)xn(μ)smsnmodel)=p(xmxndatasmsnmodel). (4.31)

这里 xmxndata=p1μ=1pxm(μ)xn(μ) 是输入数据的二点相关性。 利用 (4.25),学习规则 变为:

δwmn=η(xmxndatasmsnmodel), (4.32)

其中我们舍弃了一个 p 因子,它只影响学习率 η 的数值。 权重增量由 二点模式相关性决定,就像 Hebb 规则 (2.25) 一样。 右边第一项 等式 (4.32) 具有与等式 (2.25) 完全相同的形式, 对输入模式的二点相关性的总和。 第二个平均值是针对玻尔兹曼机的稳态分布 (4.22) 进行的。 学习规则采用两个二点相关性之间的差值形式, 因为任务是将两个分布之间的差异降至最低。 学习规则可能收敛是合理的 因为当模型相关性等于 数据相关性时,权重增量消失。

平均值 smsnmodel 可以通过 McCulloch-Pitts 动力学的数值模拟来近似

si={1 with probability 𝓅(bi),1 with probability 1𝓅(bi), (4.33)

使用 bi=jwijsj𝓅(bi)=11+e2bi 人们必须迭代方程式 (4.33) 直到系统达到稳态,持续时间足够长,以至于任何初始瞬变都可忽略不计。

训练算法可以概括如下。 人们初始化所有权重,并从给定的输入模式序列中计算 xmxndata 人们通过对玻尔兹曼机动力学的数值模拟来估计 smsnmodel,并使用 (4.32) 改变权重。 这个步骤是迭代的,要么使用一组新的输入,要么使用相同的输入,但以置换的顺序。 在每次迭代中,人们必须再次计算 smsnmodel,因为权重已经改变了。 这种方法非常慢,因为它通常需要长时间的模拟才能准确地估计 xmxnmodel,在学习算法的每次迭代中。

存在一个更根本的问题 [47] 就像赫布规则一样,学习规则 (4.32) 完全依赖于输入位之间的两点相关性。 这意味着玻尔兹曼机无法学习输入之间的更高阶相关性。 但是,两点相关性可能不足以表示编码在输入数据中的信息。 为了说明这一点,考虑布尔 XOR 函数(练习 2.13 和第 5 章)。 它可以编码在四个模式 [1,1,1][1,1,1][1,1,1][1,1,1] 中。 前两个分量表示 XOR 函数的输入。 第三个分量表示输出,它根据 XOR 函数规定的两个输入变量而变化。 让我们 定义一个输入分布,该分布反映了这些三点相关性,通过将 Pdata=14 分配给四个模式,并将 Pdata=0 设置为其他情况。 具有三个神经元的玻尔兹曼机无法表示这种输入分布,因为不存在形式为 (4.1) 的能量函数,该函数在这四种模式下具有四个最小值。 因此,四种模式中编码的三点相关性无法以玻尔兹曼机最简单形式表示。

同样,Hopfield 网络对于 XOR 函数也失败了:这四种状态不是具有三个神经元的 Hopfield 网络的吸引子(练习 2.13)。 可以考虑具有三阶或更高阶交互的神经网络 [47]

H=12ijwij(2)sisj16ijkwijk(3)sisjsk+ (4.34)

(练习 2.7)。 但是,随着阶数的增加,权重的数量会激增,导致训练速度非常慢。

一种替代方法是使用具有 隐藏 神经元的玻尔兹曼机,它们既不是输入也不是输出单元。 想法是隐藏神经元可以学习表示这些相关性 [47] 具有隐藏神经元的玻尔兹曼机的学习规则与等式 (4.32) 非常相似,但当隐藏神经元数量很大时,玻尔兹曼机的训练速度非常慢。 更有效的方法是删除可见神经元之间以及隐藏神经元之间的所有权重。 这将在下一节中描述。

4.5 受限玻尔兹曼机

\begin{overpic}[scale={0.57}]{Fig_4_3} \end{overpic}
图 4.3: 具有三个可见神经元,vj,和四个隐藏神经元,hi 的受限玻尔兹曼机。

受限玻尔兹曼机 [57] 由可见神经元和隐藏神经元组成,这些神经元以无向二部图(图 4.3)排列:唯一的连接是在不同类型的神经元之间,可见神经元之间没有连接,隐藏神经元之间也没有连接。 因此,一个受限玻尔兹曼机的能量函数对于 N 个可见神经元 vjM 个隐藏神经元 hi 的形式为

H=i=1Mj=1Nwijhivj+j=1Nθj(v)vj+i=1Mθi(h)hi, (4.35)

其中权重为 wij,阈值为 θj(v)θi(h) McCulloch-Pitts 动力学读作

hi={1with probability𝓅(bi(h))1with probability1𝓅(bi(h))withbi(h)=j=1Nwijvjθi(h), (4.36a)
and
vj={1with probability𝓅(bj(v))1with probability1𝓅(bj(v))withbj(v)=i=1Mhiwijθj(v). (4.36b)

假设对角权重消失,但权重矩阵不必是对称的(练习 4.9)。 由于大多数情况下 MN,它通常甚至不是一个方阵。

受限玻尔兹曼机权重的学习规则是使用对数似然的梯度上升推导出来的,对于单个模式 𝒙(μ)

logP(𝒙(μ))=logh1=±1,,hM=±1PB(𝒗=𝒙(μ),𝒉). (4.37)
算法 3 对比发散 CD-k 对于 ±1 个神经元
  初始化权重和阈值;
   ν=1,,νmax
      从数据分布中采样 p0 个模式 (p0p);
      μ=1,,p0
         初始化 𝒗(0)𝒙(μ)
         更新所有隐藏神经元: 𝒃(h)(0)𝕎𝒗(0)𝜽(h)
         i=1,,M
            hi(0)+1 以概率 𝓅(bi(h)(0)),否则 hi(0)1
         结束 对于
         对于 t=1,,k 执行
            更新所有可见神经元:𝒃(v)(t1)𝒉(t1)𝕎𝜽(v);
            对于 j=1,,N 执行
               vj(t)+1 概率为 𝓅(bj(v)(t1)),否则 vj(t)1;
            结束 对于
            更新所有隐藏神经元:𝒃(h)(t)𝕎𝒗(t)𝜽(h);
            对于 i=1,,M 执行
               hi(t)+1 概率为 𝓅(bi(h)(t)),否则 hi(t)1;
            结束 对于
         结束 对于
         计算权重和阈值增量:δwmn(μ)η[tanh(bm(h)(0))vn(0)tanh(bm(h)(k))vn(k)];δθn(v,μ)η[vn(0)vn(k)];δθm(h,μ)η[tanh(bm(h)(0))tanh(bm(h)(k))];
      结束 对于
      使用 μ=1p0δwmn(μ)μ=1p0δθn(v,μ)μ=1p0δθm(h,μ) 调整权重和阈值;
   结束 对于

按照上一节的步骤,可以发现:

δwmn(μ)=η(hmxn(μ)datahmvnmodel). (4.38)

第一个平均值,

hmxn(μ)data =h1=±1,,hM=±1hmxn(μ)[i=1MP(hi|𝒗=𝒙(μ))], (4.39)

可以通过利用隐单元之间没有连接的事实来进一步评估。 利用更新规则 (4.36a),我们发现

hm=±1hmP(hm|𝒗=𝒙(μ))=p(bm(h))[1p(bm(h))]=tanh(bm(h)), (4.40)

正如方程 (3.7) 一样。 对于方程 (4.5) 中的其它求和,我们使用归一化条件 1=hk=±1P(hk|𝒗=𝒙(μ)) 得到:

hmxn(μ)data =tanh(bm(h))xn(μ)=tanh(j=1Nwmjxj(μ)θm(h))xn(μ).

右侧的第二个平均值 方程 (4.38) 简化为

hmvnmodel=tanh(j=1Nwmjvjθm(h))vnmodel. (4.41)

平均值 model 是通过蒙特卡罗采样计算的, 使用 McCulloch-Pitts 动力学 (4.36) 来生成马尔科夫链

𝒗t=0𝒉t=0𝒗t=1𝒉t=1𝒗t=2. (4.42)

在极限 t 中,此序列的稳态 根据模型分布(玻尔兹曼分布)分布 能量函数为 (4.35)。 一般来说,只有异步的 McCulloch-Pitts 动力学才能被证明是 收敛的(第 2.5 节和第 4.1 节)。 然而,这里,马尔科夫链可以通过在给定 𝒗t 的情况下,同时更新所有隐藏神经元 𝒉t 更有效地生成,因为 𝒉t 的分量彼此独立,因为它们之间没有连接。 同样,可见神经元 𝒗t 是并行更新的。 为了进一步加快计算速度,人们通常只 迭代有限步,直到 t=k 为止,并用 𝒗t=0=𝒙(μ) 初始化 链。 k 步后,我们近似

tanh(j=1Nwmjvjθm(h))vnmodeltanh(j=1Nwmjvj,t=kθm(h))vn,t=k. (4.43)

此算法称为 对比发散 或 CD-k 算法(算法 3)。 由于对模型分布的平均值 是近似的 [方程 (4.43)],因此此算法不完全对应于梯度上升。

总之,

δwmn =η[tanh(jwmjvj,t=0θm(h))vn,t=0tanh(jwmjvj,t=kθm(h))vn,t=k]. (4.44)

阈值的类似学习规则如下:

δθn(v) =η(vn,t=0vn,t=k), (4.45a)
δθm(h) =η[tanh(jwmjvj,t=0θm(h))tanh(jwmjvj,t=kθm(h))]. (4.45b)

方程 (4.45) 的推导留作练习(练习 4.10)。 受限玻尔兹曼机可能具有状态值为 01 而不是 11 的 0/1 神经元。 对于 0/1 神经元, CD-k 算法略有不同(练习 4.11)。

\begin{overpic}[scale={0.57}]{Fig_4_4} \end{overpic}
图 4.4: 条纹图案数据集 [47] 的模式完成。 (a) 3×3 条形数据集中的所有图案, 对应 1+1 (b) 对应于第一行的三个可见单元 [v1,v2,v3] 被固定为 [+1,1,+1] 并保持 固定为这些值。 其余单元最初设置为 0(灰色位),并且它们的 状态被允许改变 同时从受限玻尔兹曼机中采样 在 McCulloch-Pitts 动力学短暂过渡之后,模式被正确地完成。 图示,参考文献 7 中的图   [25]

4.4 说明了受限玻尔兹曼机如何学习完成模式, 以条纹图案数据集 [47, 25] 为例。 首先,受限玻尔兹曼机 使用 CD-k 算法进行训练。 然后考虑一个部分遮挡的模式。 例如,假设只有其位的上行是已知的:v1=+1 (), v2=1 () 和 v3=+1 ()。 其余的位 v4,,v9 被遮蔽,其状态被设置为零,如 图 4.4(b) 所示。 为了完成模式,从玻尔兹曼分布中采样 PB(v4,,v9|v1=+1,v2=1,v3=+1) 保持 v1=+1,v2=1,v3=+1 固定 (夹紧 这些神经元),并为其余神经元迭代麦卡洛奇-皮茨动力学。 面板 (b) 显示了机器如何输出正确的完成模式。

这需要隐藏神经元,因为数据分布具有非零的三点相关性 [47] (练习 2.13)。 通常,受限玻尔兹曼机可以使用更多隐藏神经元来更好地逼近二进制输入数据的分布 Pdata 需要多少个 [58, 59] 答案通常未知,但可以合理地认为 M2N 个隐藏神经元就足够了,因为每个隐藏神经元都可以编码二进制 输入模式中的一个 (获胜神经元,第 7.1 节)。 更准确地说, 可以证明 M=2N11 个隐藏神经元就足以 达到任意小的 Kullback-Leibler 散度 [60] Kullback-Leibler 散度的上限在参考文献中推导出。  [61, 62]:

DKLlog(2){Nlog2(M+1)M+12log2(M+1)M<2N11,0M2N11. (4.46)

这里 表示整数部分。 4.5 说明了 此结果。 它演示了 受限玻尔兹曼机如何逼近 第 4.4 节中介绍的 XOR 分布。 该图显示了 Kullback-Leibler 散度如何取决于 隐藏神经元的数量(练习 4.7)。

\begin{overpic}[scale={0.57}]{Fig_4_5} \end{overpic}
图 4.5: 受限玻尔兹曼机学习用于异或问题 [面板 (a)], 见第 4.4 节。 面板 (b) 显示了 DKL 相对于隐藏神经元数量 M 的数值估计,与上限 (4.46) 相比。 示意图, 基于 Arvid Wenzel Wartenberg 使用 CD-k 算法进行的模拟。

在此示例中,有 N=3 个输入。 我们看到三个隐藏神经元足以使 受限玻尔兹曼机非常精确地逼近数据分布,这与方程 (4.46) 一致。 然而,总的来说,CD-k 算法不能保证收敛到与估计 (4.46) 相对应的最优解。

受限玻尔兹曼机是 生成模型,它们可以用于从机器已学习的分布中进行采样 [25] 通过这种方式,机器可以完成缺失的信息,如 图 4.4 所示。 受限玻尔兹曼机还可以学习对模式进行分类,方法是学习二进制输入及其标签的分布。 为此,将可见神经元分为输入神经元和输出神经元,并带有标签或目标。 这是一项监督学习任务, 是第二部分 II 的主题。 最近,受限玻尔兹曼机被用于表示和分析量子多体系统的基态波函数 [63]

4.6 摘要

本章讨论了玻尔兹曼分布。 两个主要要点是,首先,随机麦卡洛赫-皮茨动力学 (3.1) 以玻尔兹曼分布为稳态。 其次,更新规则 (3.1) 是马尔可夫链蒙特卡罗算法的特例,用于具有能量函数 (2.45) 的霍普菲尔德模型。 由于该算法倾向于降低能量函数,因此可用于解决复杂的优化问题。 在模拟退火中,随着模拟的进行,人们逐渐降低噪声水平。 这模拟了物理系统的缓慢冷却,通常是将系统带入全局最优状态的有效方法。

玻尔兹曼机是霍普菲尔德网络的推广,可以通过迭代地改变权重和阈值来学习二进制数据的分布,直到相应的玻尔兹曼分布近似于数据分布。 学习规则是使用目标函数上的梯度上升推导出来的,在本例中是 log-likelihood。 训练使用随机梯度下降的深度神经网络也使用了一个类似的思想(第 II 部分)。 要学习二进制模式的通用输入分布,需要隐藏神经元,这也是第 II 部分的中心主题。 由于具有许多隐藏神经元的玻尔兹曼机很难训练,因此人们会移除不需要的连接。 受限玻尔兹曼机仅在可见神经元和隐藏神经元之间具有连接。

4.7 进一步阅读

较旧但仍然是统计物理学中蒙特卡罗方法的良好参考书是 Binder 编著的 统计物理学中的蒙特卡罗方法 [52],以及 Sokal 的讲义笔记 [49] 一些历史笔记 可以在参考文献中找到。  [64]

要了解玻尔兹曼机的简明介绍,请参阅 MacKay 撰写的 信息论、推理和学习算法 [47],或 Murphy 撰写的 机器学习:概率视角 [65] 参考文献   [66] 对受限玻尔兹曼机进行了更数学化的回顾。

在受限玻尔兹曼机中,应该允许多少个隐藏神经元? 除 Kullback-Leibler 散度的上限 (4.46) 外,人们知之甚少,并且模拟 [60] 表明,可以使用比方程式 (4.46) 规定的更少的隐藏神经元获得对 Pdata 的非常精确的近似值。

深度信念网络 由受限玻尔兹曼机的层组成 [2] 对这种深度架构(具有多层的网络)进行对比发散训练是深度学习算法 [67] (第 7 章)的第一个例子之一。

亥姆霍兹机 [68, 69] 是玻尔兹曼机的泛化,被设计为更有效的生成模型。 与变分自动编码器(第 10.6 节)一样,它们由编码器和解码器两个网络组成。 编码器(在参考文献中称为识别模型   [69])生成数据分布的压缩表示,而解码器(生成模型)从压缩表示生成模式。

第二部分 监督学习

I 部分描述的霍普菲尔德网络识别使用赫布规则存储的模式。 它的神经元充当输入和输出。 将扭曲的模式输入网络后,网络动力学运行,直到它到达一个稳定状态,该状态有望对应于最接近扭曲模式的存储模式。 在这种情况下,网络通过将扭曲的模式与存储模式中最接近的模式关联起来对其进行分类。

II 部分描述了 监督学习, 一种使用带标签的数据集通过神经网络解决 分类任务 的不同方法。 加利福尼亚大学欧文分校的 机器学习库 [70] 包含许多此类数据集。 一个例子是 iris 数据集,其中列出了 150 株鸢尾花的某些属性。 对于每株植物,给出了四个属性(图 5.1):萼片长度、萼片宽度、花瓣长度和花瓣宽度。 数据集中的每个条目包含一个 标签(或 目标),说明植物属于哪个类别:iris setosairis versicoloriris virginica 该数据集由遗传学家 R. A. Fisher [71] 描述。

机器学习任务是调整神经网络的权重和阈值,使其能够根据植物的属性正确地确定其类别。 为此,人们使用一组 训练 标签数据。 每组属性都是网络的输入模式。 神经网络应该输出正确的标签(或目标),在本例中是植物是否是 iris setosairis versicoloriris virginica 人们将网络输出与训练集中所有输入模式的相应目标进行比较,并改变权重和阈值,直到网络为每个输入模式计算出正确的输出。 关键问题是训练后的网络是否能够 泛化:它是否能为训练集中不包含的输入模式找到正确的标签?

用于监督学习的网络被称为 感知器 [10] 它们由多层麦卡洛克-皮茨神经元组成:通常包含一些 隐藏 神经元层和一个输出层。 我们在与受限玻尔兹曼机相关的隐藏神经元的概念上进行了简要讨论(第 4.5 节),但感知器具有不同的布局,并且它们的训练方式也不同。 这些层通常从左(输入)到右(输出)排列。 所有连接都是单向的,从一层中的神经元到下一层右侧的神经元。 在给定层中,神经元之间没有连接,或者没有向左边的层反向连接。 此安排确保了训练算法 (随机梯度下降) 的收敛。 在使用此算法进行训练期间,网络参数会迭代地更改。 在每一步中,都会应用一个输入,并且更新网络的权重和阈值以减少输出误差。 笼统地说,每一步都相当于在权重中添加一点 Hebb 规则。 重复此操作,直到网络正确地对训练集进行分类。

在人们意识到具有许多隐藏层的网络可以被训练来可靠地识别和分类图像数据 (深度学习) 后,多层感知器的随机梯度下降最近受到了广泛关注。

第 5 章 感知器

\begin{overpic}[scale={0.57}]{Fig_5_1} \end{overpic}          sepal petal classification length width length width 6.3 2.5 5.0 1.9 virginica 5.1 3.5 1.4 0.2 setosa 5.5 2.6 4.4 1.2 versicolor 4.9 3.0 1.4 0.2 setosa 6.1 3.0 4.6 1.4 versicolor 6.5 3.0 5.2 2.0 virginica

图 5.1: 左:鸢尾花的花瓣和萼片。 右:鸢尾花数据集 [70] 的六个条目。 所有长度均以厘米为单位。 整个数据集包含 150 个条目。

1958 年,Rosenblatt [10] 建议将 McCulloch-Pitts 神经元连接成分层 前馈 网络以处理信息。 他将这些网络称为 感知器 布局如图 5.2 所示。 最左侧的层由输入端组成,图 5.2 中以黑色绘制。 右侧紧跟着两层 McCulloch-Pitts 神经元。 最右侧的层由输出神经元组成。 中间层是一个 隐藏 层。 其神经元的状态不会被读取。

\begin{overpic}[scale={0.57}]{Fig_5_2} \end{overpic}
图 5.2: 具有一个隐藏层的前馈网络。 输入端用黑色表示。 我们使用 Ref. 的符号。   [1]: Wij 用于连接到输出神经元 Oi (阈值为 Θi)的权重,wjk 用于连接到 隐藏神经元 Vj(阈值为 θj)的权重。

所有连接都是单向的:每个神经元都 向前 传播,只传播到右侧相邻层的 神经元。 层内没有连接,没有反向连接,没有跳过层的连接。 N 个输入端。 与 Part I 中一样,我们将输入模式表示为

𝒙(μ)=[x1(μ)x2(μ)xN(μ)]. (5.1)

索引 μ=1,,p 标记不同的输入模式。 隐藏的神经元计算

Vj=g(bj)withbj=kwjkxkθj, (5.2)

带有权重 wjk 和阈值 θj 函数 g(b) 是一个激活函数,其参数称为局部场(第 1.2 节)。 5.2 中所示网络的输出神经元执行计算

Oi=g(Bi)withBi=jWijVjΘi. (5.3)

索引 i=1,,M 用权重 Wij 和阈值 Θi 对输出神经元进行标记。

分类问题由输入模式的训练集给出 𝒙(μ) 和相应的 目标 向量

𝒕(μ)=[t1(μ)t2(μ)tM(μ)]. (5.4)

其思想是选择所有权重和阈值,使网络产生所需的输出:

\begin{overpic}[scale={0.57}]{Fig_5_3} \end{overpic}
图 5.3: 具有二维实值输入的分类问题, 目标等于 ±1 灰色实线是决策边界。 图例: 对应于 t(μ)=1 对应于 t(μ)=1
Oi(μ)=ti(μ)for alliandμ. (5.5)

在第 I 部分描述的 Hopfield 网络中,权重是使用 Hebb 规则 (2.26) 赋予的。 相反,感知器通过迭代更新其权重和阈值来训练,直到方程式 (5.5) 满足。 这是通过反复将 Hebb 规则的小倍数添加到权重中来实现的(第 5.2 节)。 另一种方法是定义一个能量函数,该函数是网络权重的函数,当 方程式 (5.5) 满足时,该函数具有全局最小值。 该网络通过在权重空间中采取减小能量函数的小步长来进行训练(梯度下降,第 5.3 节)。

5.1 分类问题

为了说明感知器如何解决分类问题,请考虑图 5.3 中所示的简单示例。 共有十个模式,每个模式都有两个实值分量:

𝒙(μ)=[x1(μ)x2(μ)]. (5.6)

在图 5.3 中,模式被绘制为 x1-x2 平面中的点,即 输入平面 模式分为两类,目标值分别为 ±1

t(μ)=1forandt(μ)=1for. (5.7)

一个神经元足以对这些模式进行分类,它是一个二进制阈值单元,具有激活函数 g(b)=sgn(b),与可能的 target 值一致。 由于只有一个神经元,我们可以将权重排列成一个权重向量

𝒘=[w1w2]. (5.8)

网络执行计算

O=sgn(w1x1+w2x2θ)=sgn(𝒘𝒙θ). (5.9)

这里 𝒘𝒙=w1x1+w2x2 是向量 𝒘𝒙 之间的标量积(第 2 章)。

这个例子让我们找到了分类问题的几何解释。 从图 5.3 中我们可以看到,模式分为两个簇: 在左侧, 在右侧。 我们可以通过绘制一条分离这两个簇的线来对模式进行分类,使得线右侧的所有点都具有 t=+1,而线左侧的模式具有 t=1 这条线称为 决策边界 为了找到方程 (5.9) 的几何意义,让我们暂时将阈值设为零,这样

O=sgn(𝒘𝒙). (5.10)
\begin{overpic}[scale={0.57}]{Fig_5_4} \end{overpic}
图 5.4: 感知机对于所示的权重向量 𝒘 正确地对模式进行分类,该权重向量垂直于决策边界(灰色实线)。 图例: 对应于 t(μ)=1 对应于 t(μ)=1

然后分类问题采用以下形式

sgn(𝒘𝒙(μ))=t(μ). (5.11)

为了计算标量积,我们将向量写为

𝒘=|𝒘|[cosαsinα]and𝒙=|𝒙|[cosβsinβ]. (5.12)

这里 |𝒘|=w12+w22 表示向量 𝒘 的范数,αβ 是向量与 x1 轴的角度。 然后 𝒘𝒙=|𝒘||𝒙|cos(αβ)=|𝒘||𝒙|cosφ, 其中 φ 是两个向量之间的角度。 φπ/2π/2 之间时,标量积为正,否则为负。 因此,如果权重向量垂直于决策边界,如 Figure 5.4 所示,则网络将 Figure 5.3 中的模式正确分类。

阈值 θ 的作用是什么? 公式 (5.9) 意味着决策边界由 𝒘𝒙=θ 参数化,或者

x2=(w1/w2)x1+θ/w2. (5.13)

因此,阈值决定了决策边界与 x2 轴的交点(等于 θ/w2)。 Figure 5.5 说明了这一点。

\begin{overpic}[scale={0.57}]{Fig_5_5} \end{overpic}
图 5.5: 没有阈值和有阈值的决策边界。

决策边界——垂直于 𝒘 的直线——应该将具有正目标和负目标的输入分开。 如果能找到这样的直线,则该问题可以用单个神经元解决。 我们说这个问题是 线性可分的 相反,如果不存在这样的直线,则该问题不是线性可分的。 这只会在 p>N 时发生。 图 5.6 显示了两个问题。 左边的是线性可分的,右边的是不可分的。

\begin{overpic}[scale={0.57}]{Fig_5_6} \end{overpic}
图 5.6: 二维输入空间中的线性可分数据和不可分数据。

其他例子是 布尔函数 布尔函数接受 N 个二进制输入,并具有一个二进制输出。 布尔 AND 函数(两个输入)在图 5.7 中进行了说明。 该函数的值表显示在左侧。 图形表示显示在图的右侧 ( 对应于 t=1 对应于 t=+1)。 还显示了二进制阈值单元的决策边界及其权重向量 𝒘

x1 x2 t
0 0 -1
0 1 -1
1 0 -1
1 1 +1

\begin{overpic}[scale={0.57}]{Fig_5_7} \end{overpic}

图 5.7: 布尔 AND 函数:值表(左) 以及输入平面上的几何表示(右)。 图例: 对应于 t(μ)=1 对应于 t(μ)=1

重要的是要注意,决策边界不是唯一的,解决问题的权重向量和阈值也不是唯一的。 特别是,权重向量的范数是任意的。 5.8 说明了布尔 XOR 函数是 线性不可分的 [11] 两个变量有 16 个不同的布尔函数。 只有两个是线性不可分的(练习 5.2), XOR(图 5.8)和 XNOR。

x1 x2 t
0 0 -1
0 1 +1
1 0 +1
1 1 -1

\begin{overpic}[scale={0.57}]{Fig_5_8} \end{overpic}

图 5.8: 布尔 XOR 函数是线性不可分的。 图例: 对应于 t(μ)=1 对应于 t(μ)=1

到目前为止,我们只讨论了一个单一的神经元。 如果分类问题需要多个输出神经元,每个神经元都有自己的权重向量 𝒘i 和阈值 θi 我们可以将权重向量分组为权重矩阵 𝕎,如第 I 部分所示,这样行向量 𝒘i𝖳 就是权重矩阵 𝕎

5.2 迭代学习算法

在上一节中,我们通过观察确定了布尔 AND 函数的权重和阈值(图 5.7)。 现在我们讨论一种迭代地找到权重的算法。 它在图 5.9 中进行了说明。 在面板 (a) 中,模式 𝒙(8) (t(8)=1) 位于决策边界的错误一侧。

\begin{overpic}[scale={0.57}]{Fig_5_9} \end{overpic}
图 5.9: 学习算法的说明。 在面板 (a) 中,t=+1 模式 x(8) 位于决策边界(实线红色线)的错误一侧。 为了纠正错误,必须将权重逆时针旋转 [面板 (b) ]。 在面板 (c) 中,t=1 模式 x(4) 位于决策边界的错误一侧。 为了纠正错误,必须将权重逆时针旋转 [面板 (d) ]。

为了纠正这个错误,将决策边界逆时针旋转。 为此,将模式向量 𝒙(8) 的一个小的倍数 到权重向量中

𝒘=𝒘+δ𝒘withδ𝒘=η𝒙(8). (5.14)

参数 η>0 被称为 学习率 它必须很小,以便决策边界不会旋转得太远。 结果显示在面板 (b) 中。 面板 (c) 显示了另一个情况, 其中模式 𝒙(4) (t(4)=1) 位于决策边界的错误一侧。 为了以正确的方式(逆时针方向)旋转决策 边界,可以 减去 𝒙(4) 的一个小倍数:

𝒘=𝒘+δ𝒘withδ𝒘=η𝒙(4). (5.15)

这两个 学习规则 结合起来 形成了 Rosenblatt [10] 的学习规则:

𝒘=𝒘+δ𝒘(μ)withδ𝒘(μ)=ηt(μ)𝒙(μ). (5.16)

对于多个神经元,该规则如下:

wij=wij+δwij(μ)withδwij(μ)=ηti(μ)xj(μ). (5.17)

该规则让人想起 Hebb 规则 (2.9),只是 这里输入和输出与不同的单元相关联。 因此, 我们有 ti(μ)xj(μ) 而不是 xi(μ)xj(μ) 可以对 (5.17) 进行迭代应用,以获得一系列随机选择的模式 μ,直到解决问题。 这对应于在每次迭代中添加一点 Hebb 规则。 为了确保算法在解决问题时停止,可以使用 学习规则 [1]

δwij(μ)=η(ti(μ)Oi(μ))xj(μ). (5.18)

5.3 线性单元的梯度下降

在本节中,学习算法 (5.18) 以不同的方式推导出来, 通过使用梯度下降最小化能量函数。 这需要微分,因此 我们必须选择一个可微分的激活函数。 最简单的选择是 线性激活函数,g(b)=b 我们设置 θ=0, 以便网络计算:

Oi(μ)=kwikxk(μ). (5.19)

具有线性激活函数的神经元被称为 线性单元 输出 Oi(μ) 假设连续值, 但不一定是目标 ti(μ) 对于线性单元,分类问题

Oi(μ)=ti(μ)fori=1,,Nandμ=1,,p (5.20)

有正式的解决方案

wik=1Nμνti(μ)(1)μνxk(ν). (5.21)

这可以通过将公式 (5.21) 代入 (5.19) 来验证。 这里 是重叠矩阵,其元素为

Qμν=1N𝒙(μ)𝒙(ν) (5.22)

(第 3.6 节)。 为了使解 (5.21) 存在, 矩阵 必须可逆。 正如第 3.6 节中所述,这要求 pN,否则输入模式向量将是 线性相关的,因此 的列(和行)也是如此。 如果矩阵 的列或行线性相关,则它无法求逆。

假设输入模式线性无关, 因此解 (5.21) 存在。 在这种情况下,我们可以迭代地找到解。 为此,定义能量函数

H=12iμ(ti(μ)Oi(μ))2. (5.23)

此函数是非负的,并且当所有输出都等于相应的目标时,它消失,对于所有模式。

能量函数 (5.23) 被视为权重 wij 的函数,不像 Part I 中的能量函数,它是神经元状态变量的函数。 目标是找到使 H 最小的权重。 如果输入模式线性无关,H 在全局最小值处消失,对应于问题的期望解(练习 5.1)。 让我们使用 梯度下降 来最小化 H

wmn=wmn+δwmnwith weight incrementsδwmn=ηHwmn. (5.24)

学习率为 η>0 这类似于公式 (4.25),除了负号。 在第 4.4 节中,目标是最大化目标函数,这里我们希望最小化 H 通过 采取 在搜索全局最小值的过程中,许多下坡步骤。 公式 (5.24) 中的导数使用链式法则进行评估,连同 公式 (4.28),它采用以下形式

wijwmn=δimδjn (5.25)

用于非对称权重。 这产生了权重增量

δwmn=ημ(tm(μ)Om(μ))xn(μ). (5.26)

此学习规则与公式 (5.18) 非常相似。 一点不同的是,公式 (5.26) 包含所有模式的总和。 还需要牢记的是, 激活函数不同,而公式 (5.18) 是针对 g(b)=sgn(b) 推导的, 学习规则 (5.26) 是针对 g(b)=b 推导的。 规则 (5.26) 的一个优点是它源于能量函数。 这有助于分析算法的收敛性,正如我们在第 2 章中所见。

线性单元 [公式 (5.19)] 很特殊。 布尔 AND 问题(图 5.7)确实 不承认解 (5.21), 即使问题是线性可分的。 由于模式向量 𝒙(μ) 是线性相关的,因此解 (5.21) 不存在。 偏移模式或引入阈值不会改变这一事实。

在第 5.5 节中,我们讨论了如何使用具有非线性激活函数的神经元隐藏层来解决线性不可分的。 注意,引入具有线性单元的隐藏层没有帮助, 因为如果所有神经元都具有线性激活函数,则结果的输入-输出映射仍然是线性的,因此只能解决具有 pN 的问题。 这是使用具有非线性激活函数的隐藏层的主要原因。

需要牢记以下四点。 首先,如果模式是线性无关的,那么我们可以使用梯度下降来确定线性单元的合适权重(和阈值)。 其次,一般来说,需要具有非线性单元的隐藏层,因为具有连续非线性单调激活函数的单个神经元只能解决具有线性无关模式的问题(练习 5.11)。 第三,对于非线性单元的梯度下降,我们必须要求激活函数g(b)是可微的,或者至少是分段可微的。 第四,在这种情况下,我们使用链式法则计算梯度,从而导致导数因子ddbg(b) 这就是消失梯度问题 (第7章)的起源。

5.4 分类能力

在第3章中,我们分析了 Hopfield 网络的存储能力。 5.1节中描述的分类问题的类似问题是:具有激活函数g(b)=sgn(b)的单个神经元可以对多少个模式进行分类? 与 Hopfield 网络的情况一样,人们可以为随机二元分类问题找到一个一般性的答案。

\begin{overpic}[scale={0.57}]{Fig_5_10} \end{overpic}
图 5.10: 左:平面中的一般位置上的五个点。 右:这些点不在一般位置,因为三个点位于一条直线上。

考虑p个点,其坐标向量为𝒙(μ),位于N维输入空间中,并分配随机目标:

t(μ)={+1with probability 12,1with probability 12. (5.27)

如果我们能找到一个 N 维权重向量 𝒘,使得 𝒘𝒙=0 是一个有效的决策边界,并且该边界经过原点,那么这个随机分类问题是 均匀 线性可分的。

𝒘𝒙(μ)>0ift(μ)=1and𝒘𝒙(μ)<0ift(μ)=1. (5.28)

因此,均匀线性可分 的问题是二元分类问题,它们可以通过包含原点的超平面线性分离。 具有此属性的问题可以通过具有阈值 θ=0 的二进制阈值单元来解决。

\begin{overpic}[scale={0.57}]{Fig_5_11} \end{overpic}
图 5.11: 可分性的概率 (5.29) 作为 α=p/N 的函数,针对输入空间的三个不同维度 N 值。 请注意,对于 m 的较大值,在 α=2 附近有一个明显的阈值。

现在假设这些点(包括原点)处于 一般位置(图 5.10)。 在这种情况下,Cover 定理 [72] 给出了 p 个模式在 N 维度中随机二元分类问题是均匀线性可分的概率表达式:

P(p,N)={(12)p1k=0N1(p1k)forp>N,1otherwise. (5.29)

这里 (lk)=l!(lk)!k! 是二项式系数, 对于 lk0 方程 (5.29) 通过递归证明,从一般位置的一组 p1 个点开始。 假设给定这些点,均匀线性可分的分类问题的数量 C(p1,N) 是已知的。 添加一个点后,就可以根据 C(p1,N) 计算 C(p,N),并且递归得出方程 (5.29)。 5.11 显示了此结果作为 α=p/N 的函数,针对 N 的不同值。 对于 pN,任何随机分类问题都是均匀线性可分的。 在这种情况下,模式向量是线性无关的,因此问题也可以通过线性单元解决(第 5.3 节)。 但是,具有激活函数 sgn(b) 的神经元可以对超过 N 种模式的问题进行分类。 N 趋于无穷大时,函数 P(αN,N) 接近阶跃函数 θH(2α)(习题 5.12)。 在这种极限情况下,最大分类能力因此为 αmax=2

\begin{overpic}[scale={0.57}]{Fig_5_12} \end{overpic}
图 5.12: XOR 问题可以通过将数据嵌入到三维输入空间来解决。

N 为有限值时,预期的分类能力是多少? 为了回答这个问题,考虑模式 𝒙(1),𝒙(2), 和目标 t(1),t(2), 的随机序列,并问 [72]:最大整数的分布是什么,使得问题 𝒙(1),𝒙(2),,𝒙(n) 在维度 N 中是可分离的,但 𝒙(1),𝒙(2),,𝒙(n),𝒙(n+1) 不是? P(n,N)n 种模式在 N 维输入空间中线性可分离的概率。 我们可以写 P(n+1,N)=q(n+1|n)P(n,N),其中 q(n+1|n) 是在 n 种模式线性可分离的情况下,n+1 种模式线性可分离的条件概率。 然后,n+1 种模式不可分离(但 n 种模式可分离)的概率为 [1q(n+1|n)]P(n,N)=P(n,N)P(n+1,N) 我们可以将此方程的右侧解释为随机变量 n 的分布 pn,即维度 N 中可分离模式的最大数量:

pn=P(n,N)P(n+1,N)=(12)n(n1N1)forn=0,1,2,.

因此,可分离模式的最大期望数量为

n=n=0npn=2N. (5.30)

所以,预期的分类能力是输入维度的两倍:

αmax=2. (5.31)

这量化了在更高维度的输入空间中更容易分离模式的概念。 举例来说,考虑 XOR 问题,它在二维输入空间中不是线性可分离的。 当我们在三维空间中嵌入这些点时,这个问题就变得可分离了,例如,通过将x3=0分配给t=+1模式,并将x3=1分配给t=1模式(图5.12)。

5.5 多层感知器

\begin{overpic}[scale={0.57}]{Fig_5_13} \end{overpic}
图 5.13: (a) 线性可分离问题。 (b) 无法线性分离的问题可以通过分段线性决策边界来解决。 图例:对应于t(μ)=1对应于t(μ)=1

在第5.1节和第5.2节中,我们讨论了如何解决线性可分离问题[图5.13(a)]。 本节的目的是展示图5.13(b)中所示的不可分离问题可以通过具有一个隐藏层的感知器来解决。 5.14描绘了用于解决图5.13(b)中的分类问题的网络。

\begin{overpic}[scale={0.57}]{Fig_5_14} \end{overpic}
图 5.14: 隐藏层感知器用于解决图5.13 (b)中所示的问题。

与上一节类似,所有神经元都使用符号函数作为激活函数,可能的输出为±1

Vj(μ)=sgn(bj(μ))withbj(μ)=kwjkxk(μ)θj,O1(μ)=sgn(B1(μ))withB1(μ)=jW1jVj(μ)Θ1. (5.32)

隐藏层中的三个神经元都有自己的决策边界。 想法是选择权重wjk和阈值θj,使三个决策边界将输入平面划分为不同的区域,以便每个区域仅包含t=1模式或t=+1模式[3]

此构造的工作原理如图 5.15 所示。

\begin{overpic}[scale={0.57}]{Fig_5_15} \end{overpic}               V1 V2 V3 target 1 + - + 1 + 1 + + +1 + + +1 + + +1 + + + +1

图 5.15: 左:决策边界 [图 5.13(b)], 区域, 以及由隐藏神经元状态确定的相应二进制代码。 图例: 对应于 t(μ)=1 对应于 t(μ)=1 右:区域的编码和相应的目标。 区域 + 不存在。
\begin{overpic}[scale={0.57}]{Fig_5_16} \end{overpic}
图 5.16: 分类问题的输出问题的图形表示如图5.15所示。

图的左侧显示了三个决策边界,以及它们的权重向量,以及它们如何将输入平面划分为不同的区域,这些区域中要么只包含 ,要么只包含 每个区域都包含一个三位代码,由符号 + 组成。 代码由隐藏神经元的状态决定。 代码中第 j 个位置的 + 符号表示 Vj=+1 因此,该区域位于决策边界 j 的权重向量一侧。 相反, 符号对应于 Vj=1 在这种情况下,该区域位于决策边界的另一侧,与权重向量相反的一侧。 该值表显示了与每个区域相关的目标,以及该区域的代码。

输出神经元的权重 W1j 和阈值 Θj 的选择是为了使它将正确的目标值与每个区域相关联。 5.16 显示了输出问题的图形表示。 此问题是线性可分的(练习 5.3)。

\begin{overpic}[scale={0.57}]{Fig_5_17} \end{overpic}

V1 V2 t -1 + +1 + - + + -1

图 5.17: 布尔 XOR 函数:几何表示、网络布局和输出神经元的值表。 区域 + 不存在。 所有神经元都假设两种可能的状态,+11 几何表示的图例: 对应于 t(μ)=1 对应于 t(μ)=1

以下函数计算每个区域的正确输出:

O1(μ)=sgn(V1(μ)+V2(μ)+V3(μ)). (5.33)

这解决了图 5.15 中描述的二元分类问题,但请注意,该解决方案不是唯一的。 存在一系列不同的权重和阈值可以解决该问题,并且存在基于不同网络布局的其他解决方案。 然而,该解决方案说明了如何通过在网络布局中添加隐藏层来解决非线性可分分类问题。 隐藏层中的神经元定义了分段线性决策边界的一部分。 如果决策边界非常弯曲,则需要更多隐藏神经元。

5.17 展示了另一个示例,如何使用具有隐藏层中两个神经元的多层感知器解决布尔 XOR 问题,该感知器具有激活函数 sgn(b)、阈值 1232,所有权重都等于 1。 输出神经元 具有权重 +11 以及单位阈值:

O1=sgn(V1V21). (5.34)

Minsky 和 Papert [11] 在 1969 年证明了所有布尔函数都可以用多层感知器表示,但至少一个隐藏神经元必须连接 到 所有 输入终端。 这意味着网络中的并非所有神经元都 局部 连接(神经元只有几个传入权重)。 由于全连接网络比局部连接网络更难训练, 这在当时被认为是一个缺点。 现在,近 50 年过去了,视角发生了变化。 卷积网络(第 8 章)只与输入有局部连接,并且可以被训练来识别图像中的物体,具有很高的准确率。

总结一下,多层感知器是在训练集 [𝒙(μ),𝒕(μ)]μ=1,,p 上进行训练的, 通过将决策边界移动到正确的位置。 这是通过反复应用 Hebb 规则来调整所有权重实现的。 通过对能量函数 (5.23) 进行梯度下降,可以得到一个相关的学习规则。 此外,我们还没有讨论如何更新 阈值, 但很明显,它们也可以使用梯度下降学习进行更新。

一旦所有决策边界都处于正确的位置,我们必须问: 如果我们将训练好的网络应用于一个新的数据集,会发生什么? 它能正确地对新的输入进行分类吗? 换句话说,网络能 泛化 吗? 5.18 展示了一个例子。 面板 (a) 显示了在训练集上训练网络的结果。 决策边界将 t=1 模式与 t=+1 模式分开, 以便网络能够正确地对训练集中的所有模式进行分类。 在面板 (b) 中, 训练后的网络被应用于 验证集 中的模式。 我们看到大多数模式都被正确分类,只有一个错误。 这意味着 能量函数 (5.23) 对于验证集并不完全为零。 尽管如此,网络 仍然做得很好。 通常,尝试精确地对决策边界附近的模式进行分类并不是一个好主意,因为现实世界的数据集会受到噪声的影响 (第 6.4 节)。

\begin{overpic}[scale={0.57}]{Fig_5_18} \end{overpic}
图 5.18: (a) 在 训练集上训练网络的结果。 图例: 对应于 t(μ)=1,而 对应于 t(μ)=1 (b) 验证集的分类。 一个 模式被错误分类。

5.6 摘要

感知机是分层的正向网络,可以学习对训练集中的数据进行分类 [𝒙(μ),𝒕(μ)] 对于每个输入模式 𝒙(μ),网络找到正确的目标向量 𝒕(μ) 我们讨论了针对一个简单示例的学习算法:具有两个分量和一个二元目标的实值模式。 这使得我们可以用图形方式表示分类问题,并了解线性可分离分类问题如何通过简单感知器解决。 有三种不同的方式来理解感知器是如何学习的。 首先,从几何角度来看,感知器通过将决策边界移动到正确的位置来学习。 其次,这可以通过反复添加少量的赫布规则来实现。 第三,这些规则类似于从能量函数的梯度下降推导出的学习规则 (5.23)。 Cover 定理量化了简单感知器分离具有二元目标的模式的能力。 最后,我们讨论了如何使用具有隐藏层的感知器解决非线性可分离分类问题。

5.7 进一步阅读

正如引言中提到的,对感知器研究历史的简短介绍是 Kanal [23] 的综述。 Minsky 和 Papert 的非凡著作以非常优雅的方式深入解释了感知器学习的几何学。 关于 Cover 定理证明的资料请参见 Ref.  [73]

第 6 章 随机梯度下降

在第 5 章中,我们讨论了隐藏层如何帮助对非线性可分离问题进行分类。 我们解释了图 5.15 中的决策边界如何用隐藏神经元的权重和阈值表示,并介绍了一种基于梯度下降的训练算法。 本节将更详细地讨论训练算法。

5.2 显示了要训练的网络的布局。 之前一样,有 p 个输入模式 𝒙(μ),每个模式有 N 个组件。 网络的输出有 M 个组件:

𝑶(μ)=[O1(μ)O2(μ)OM(μ)], (6.1)

与目标向量 𝒕(μ) 匹配。 5.2 中所示的网络 计算

Vj(μ) =g(bj(μ))withbj(μ)=k=1Nwjkxk(μ)θj, (6.2a)
Oi(μ) =g(Bi(μ))withBi(μ)=jWijVj(μ)Θi. (6.2b)

等式 (6.2) 表明输出是根据嵌套的激活函数获得的。 它们必须是可微分的(或者至少是分段可微分的)。 除了这一点之外,现在无需进一步指定它们。

6.1 链式法则和误差反向传播

5.2 中的网络通过梯度下降学习进行训练,与第 5.3 节相同。 权重增量由下式给出:

δWmn=ηHWmnandδwmn=ηHwmn, (6.3)

具有能量函数

H=12μi(ti(μ)Oi(μ))2. (6.4)

等式 (6.3) 中的小参数 η>0 是学习率, 如第 5.3 节所述。 使用 链式法则 计算能量函数的导数。 对于连接到输出层的权重,我们应用一次链式法则

HWmn =μi(ti(μ)Oi(μ))Oi(μ)Wmn, (6.5a)
and then once more, using Equation (5.25):
Oi(μ)Wmn =g(Bi(μ))δimVn(μ). (6.5b)

这里 g(B)=dg/dB 是激活函数相对于局部场 B 的导数, 并且 δim 是克罗内克函数:δim=1 如果 i=m 且否则为零。

一点重要的是,隐藏层中神经元的 Vj 不依赖于 Wmn,因为这些神经元没有连接到这些权重的输入,这是网络 前馈布局 的结果。 总之,我们获得了连接到输出层的权重的增量:

δWmn=ηHWmn=ημ=1p(tm(μ)Om(μ))g(Bm(μ))Vn(μ)ημ=1pΔm(μ)Vn(μ). (6.6a)
The quantity
Δm(μ)=(tm(μ)Om(μ))g(Bm(μ)) (6.6b)

是一个加权输出 误差:当 Om(μ)=tm(μ) 时它消失。 连接到隐藏层的权重以类似的方式进行调整,通过 应用链式法则四次:

Hwmn =μi(ti(μ)Oi(μ))Oi(μ)wmn, (6.7a)
Oi(μ)wmn =lOi(μ)Vl(μ)Vl(μ)wmn, (6.7b)
Oi(μ)Vl(μ) =g(Bi(μ))Wil, (6.7c)
Vl(μ)wmn =g(bl(μ))δlmxn(μ). (6.7d)

这里我们使用了公式 (5.25)。 使用输出误差的定义,Δi(μ),公式 (6.3) 得出:

δwmn=ημiΔi(μ)Wimg(bm(μ))xn(μ)ημδm(μ)xn(μ). (6.8)

最后一个等式定义了加权误差,

δm(μ)=iΔi(μ)Wimg(bm(μ)), (6.9)

与隐藏层相关联。 注意 δm(μ) 当输出误差 Δi(μ) 为零时消失。 公式 (6.9) 表明误差是递归确定的。 神经元状态也是递归更新的,公式 (6.2),但是公式 (6.9) 和 (6.2) 之间有一个重要的区别。 分层网络的前馈结构意味着神经元是从左到右更新的。 相反,公式 (6.9) 表示误差是从右到左更新的,从输出层到隐藏层。 术语 反向传播 指的是这种差异:神经元向前更新,误差向后更新。

在误差 Δm(μ)δm(μ) 的意义上, 权重增量对两层具有相同的形式:

δWmn=ημ=1pΔm(μ)Vn(μ)andδwmn=ημ=1pδm(μ)xn(μ). (6.10)

规则 (6.10) 也称为 δ-规则 [1]. 阈值以类似的方式调整:

δΘm =ηHΘm=ημ=1p(tm(μ)Om(μ))[g(Bm(μ))]=ημ=1pΔm(μ), (6.11a)
δθm =ηHθm=ημ=1piΔi(μ)Wim[g(bm(μ))]=ημ=1pδm(μ). (6.11b)

因此,阈值增量的通用形式类似于公式 (6.10)

δΘm=ημ=1pΔm(μ)andδθm=ημ=1pδm(μ), (6.12)

但没有神经元的狀態变量(或输入)。 区分公式 (6.10) 和 (6.12) 的一种方法是注意到 阈值增量的公式看起来像权重增量的公式,如果将神经元的狀態值设置为 1 这是根据公式 (6.2) 得出的。

反向传播规则 (6.10) 和 (6.12) 包含模式的总和。 这对应于同时馈送所有模式以计算权重和阈值的增量 (batch 训练)。 或者,可以选择单个模式,通过反向传播更新权重,然后继续多次迭代这些训练步骤 (sequential 训练)。 一次迭代对应于馈送单个模式,p 次迭代称为一个 epoch(在批量训练中,一次迭代对应于一个 epoch)。 如果随机选择模式,则顺序训练会导致 stochastic gradient descent

δWmn =ηΔm(μ)Vn(μ)andδwmn=ηδm(μ)xn(μ), (6.13a)
δΘm =ηΔm(μ)andδθm=ηδm(μ). (6.13b)

由于模式上的总和 不存在,因此这些步骤不一定降低能量函数。 它们的 方向会波动,但平均权重增量(在所有模式上取平均)指向下降方向。 结果是参数空间中的 stochastic path, 不太容易陷入局部最小值(但请参阅第 7.8 节)。

6.2 随机梯度下降算法

前一节中推导的随机梯度下降公式是为具有一个隐藏层的网络推导的。 本节介绍具有许多隐藏层的深度网络的随机梯度算法的细节。 为此,我们需要调整我们的符号,如6.1 所示。 我们用索引 来标记各层。 输入端层用 =0 标记,而 =L 层表示输出神经元层。 层中神经元的狀態变量为 Vj(),连接到这些神经元左侧的权重为 wjk(),与 层相关的误差用 δk() 表示。 在这种表示法中,等式 (6.2) 的内容为:

Vj()=g(kwjk()Vk(1)θj()). (6.14)
\begin{overpic}[scale={0.57}]{Fig_6_1} \end{overpic}
图 6.1: 说明了算法 4 中使用的符号。
算法 4 随机梯度下降
   初始化权重 wmn() 为随机数,阈值为零,θm()=0
   ν=1,,νmax
      选择 μ 的值并将模式 𝒙(μ) 应用于输入层,𝑽(0)𝒙(μ)
      =1,,L
         正向传播:Vj()g(kwjk()Vk(1)θj())
      结束 对于
      计算输出层的误差: δi(L)g(bi(L))(tiVi(L));
      对于 =L,,2 执行
         反向传播: δj(1)iδi()wij()g(bj(1));
      结束 对于
      对于 =1,,L 执行
         改变权重和阈值: wmn()wmn()+ηδm()Vn(1)θm()θm()ηδm();
      结束 对于
   结束 对于

重复上一节概述的步骤,我们得到更新公式

δwmn()=ηδm()Vn(1)andδθm()=ηδm(), (6.15)

误差

δj(1)=i(tiVi(L))Vi(L)Vj(1)g(bj(1)), (6.16)

其中 bj()=kwjk()Vk(1)θj()Vj()的局部场。 它涉及 权重矩阵 𝕎() 和向量 𝑽(1)之间的矩阵-向量乘积。 使用链式法则评估梯度 Vi(L)/Vj(1), 得到递归关系

δj(1)=iδi()wij()g(bj(1)), (6.17)

初始条件为 δi(L)=(tiVi(L))g(bi(L)) 对于一个隐藏层,公式 (6.17) 等价于 (6.9)。 递归的结果 (6.17) 是一个向量 𝜹(1),其分量为 δj(1), 通过 [𝕎()𝖳𝜹()]jg(bj(1)) 的逐元素相乘得到。 向量的逐元素相乘有时 被称为 Schur 或 Hadamard 积 [75],用 𝒂𝒃=[a1b1,,aNbN]𝖳 表示。 它没有像向量点积或叉积那样的几何意义,因此使用它的意义不大。 此外,请注意 向量 𝜹() 乘以权重矩阵的转置,𝕎()𝖳,而不是权重矩阵本身。 我们将在第 9.1 节中回到这一点。

随机梯度算法在算法 4 中进行了总结。 输入一个输入 𝒙(ν),使用 (6.15) 更新权重,并迭代这些步骤, 直到能量函数 (5.23) 被认为足够小。 请注意,得到的权重和阈值不是唯一的。 在图 5.17 中,布尔 XOR 函数的所有权重都等于 ±1 但是训练算法 (6.10) 对应于反复添加权重增量。 这可能会导致权重增长。

在实践中,随机梯度下降动力学可能过于嘈杂。 在这种情况下, 最好对少量随机选择的模式进行平均。 这样 的集合被称为 小批量,大小为 mB 带有小批量的随机梯度下降 中,用以下公式替换方程式 (6.10) 和 (6.12)

δWmn =ημ=1mBΔm(μ)Vn(μ)andδΘm=ημ=1mBΔm(μ), (6.18)
δwmn =ημ=1mBδm(μ)xn(μ)andδθm=ημ=1mBδm(μ).

有时小批量规则是在求和之前用 mB1 的前因子来表示的。 mB1可以被直接吸收到学习率中,但当比较不同实现的学习率时,需要检查方程式 (6.18) 中的总和前面是否包含 mB1

如何选择将哪些输入包含在小批量中? 这一点将在下面 6.3 中讨论:在每个纪元的开始,会随机 洗牌 训练集中输入模式的序列。 然后,第一个小批量包含模式 μ=1,,mB,依此类推。

常见的激活函数 g(b) 选择包括 sigmoid 函数或 tanh:

g(b) =11+ebσ(b), (6.19a)
g(b) =tanh(b). (6.19b)
\begin{overpic}[scale={0.57}]{Fig_6_2} \end{overpic}
图 6.2: 激活函数的饱和 (6.19)。 两个激活函数的导数 g(b)ddbg(b) 对于 |b| 的较大值都趋于零。

在这两种情况下,导数都可以用函数本身来表示:

ddbσ(b) =σ(b)[1σ(b)],ddbtanh(b)=[1tanh2(b)]. (6.20)

第二个等式在 3.4 中使用过。 以下是对激活函数 g(b) 导数的简写符号很常见:g(b)ddbg(b)

如图 6.2 所示,激活函数 (6.19) 在 |b| 的较大值处饱和:它们的导数 g(b) 趋于零。 由于反向传播规则 (6.16) 包含 g(b) 的因子,这意味着如果 |b| 变得太大,算法就会变慢。 出于这个原因,初始权重和阈值应该选择使得局部域 b 的大小不要太大,以避免 g(b) 变得太小。 一种标准程序是将所有权重最初随机分布,例如,以零均值和适当方差的正态分布。 具有许多隐藏层(深层网络)的网络的性能可能对权重的初始值敏感(第7.2节)。

有时有人认为阈值的初始值并不那么重要。 想法是,至少在最初,它们比权重学习得更快,并且一个常见的做法是将阈值初始化为零。 7.2节 总结了一个得出不同结论的平均场论证。

6.3 对输入数据进行预处理

对输入数据进行预处理可能是有用的,尽管任何预处理都可能从数据中删除信息。 然而,通常建议将数据移位,以便所有p模式的每个分量的均值为零:

xk=1pμ=1pxk(μ)=0. (6.21)

有几个原因导致这种情况。 首先,较大的均值会引起 能量函数中较大的梯度(练习 6.9),这对于使用梯度下降进行导航来说很困难。 不同方向上不同的输入数据方差具有类似的影响。 因此,将输入缩放,使输入数据分布在所有方向上具有相同的方差(图6.3),例如等于 1:

σk2=1pμ=1p(xk(μ)xk)2=1. (6.22)

其次,为了避免连接到输入的神经元饱和,它们的局部域不能太大(第6.2节)。 如果将权重初始化为均值为零、方差为 1 的高斯随机数,那么如果输入模式的分布具有较大的均值或较大的方差,则很有可能出现较大的激活。 第三,通过移位输入数据来强制输入均值为零可以避免第一隐藏层中神经元的权重必须一起减小或增大[76] 等式 (6.18) 表明,如果输入数据具有较大的均值,则进入 隐藏神经元mδ𝒘mδm𝒙的成分很可能具有相同的符号。 这使得网络难以学习区分。 总之,建议对输入数据分布进行平移和缩放,使其均值为零,方差为一,如图 6.3 所示。

\begin{overpic}[scale={0.57}]{Fig_6_3} \end{overpic}
图 6.3: 平移和缩放输入数据以实现零均值和单位方差。
\begin{overpic}[scale={0.57}]{Fig_6_4} \end{overpic}
图 6.4: 当输入数据像本图所示那样聚集成簇时,应该从任意一个簇中随机选择数据。 决策边界用实心灰色线表示。 它对两个簇的斜率不同。

应该将相同的变换(使用为训练集确定的均值和缩放因子)应用于任何新的数据集,该数据集在网络在训练集上训练后应该被分类。

6.4 显示了输入分布,该分布落入两个不同的簇中。 簇之间的差异有时被称为 协变量偏移,这里 协变量 只是输入的另一个术语。 想象一下,只将来自其中一个簇的输入馈送到网络。 它将学习决策边界的局部属性,而不是其全局特征。 如果网络更频繁地遇到不熟悉的数据,这些全局属性将得到有效学习。 对于顺序训练(随机梯度下降),这不是问题,因为呈现给网络的输入模式序列是随机的。 但是,如果使用小批量训练,为了避免协变量偏移,小批量应该包含随机选择的模式。 为此,在每个 epoch 的开始,会随机 打乱 训练集中输入模式的顺序。

还建议 [76] 观察训练过程中的输出误差。 如果在随后的多个学习步骤中,误差相似,则相应的输入对网络来说是熟悉的。 较大的误差对应于不熟悉的输入,参考   [76] 建议更频繁地提供此类输入。

当输入数据维度非常高时,需要许多输入端。 这通常意味着应该在隐藏层中使用许多神经元。 这可能是一个问题,因为它增加了过度拟合输入数据的风险。 为了尽可能避免这种情况,可以通过 主成分分析 来降低输入数据的维度。 此方法允许将高维数据投影到低维子空间(图 6.5)。

\begin{overpic}[scale={0.57}]{Fig_6_5} \end{overpic}
图 6.5: 主成分分析(示意图)。 左侧的数据集可以 通过仅保留数据的 𝒖1 主成分来进行分类。 这对于右侧的数据集并不成立。

6.5 左侧显示的数据大致呈直线, 主方向 𝒖1 我们看到,与主方向正交的坐标对于对数据进行分类没有用。 因此,可以忽略该坐标,从而降低数据集的维数。 主成分分析的思想是 旋转输入空间中的基 使得数据沿新坐标系的第一轴的方差,𝒖1,最大。 人们保留与 𝒖1 相对应的输入分量,丢弃与 𝒖2 相对应的输入分量(图 6.5)。

为了确定最大方差方向,考虑单位方向向量 𝒗|𝒗|=1)沿该方向的数据方差:

σv2=(𝒙𝒗)2𝒙𝒗2=𝒗𝒗. (6.23)

这里

=δ𝒙δ𝒙𝖳withδ𝒙=𝒙𝒙 (6.24)

是数据 协方差矩阵 𝒗 指向协方差矩阵 的主特征向量方向时,方差 σv2 最大。 可以这样理解。 协方差矩阵是对称的,因此它的特征向量 𝒖1,,𝒖N 构成输入空间的正交规范基。 这使我们能够将矩阵 表示为

=α=1Nλα𝒖α𝒖α𝖳. (6.25)

特征值 λα 非负。 这 从方程 (6.24) 和特征值方程 𝒖α=λα𝒖α 可以得出。 我们按大小对特征值进行排序,λ1λ2λN0 使用方程 (6.25),我们可以为方差写出

σv2=α=1Nλαvα2 (6.26)

vα=𝒗𝒖α 我们想要证明,在 𝒗 归一化为单位的约束下,σv2 对于 𝒗=±𝒖1 来说是最大值,

α=1Nvα2=1. (6.27)

To ensure that this constraint is satisfied as the vα are varied, one introduces a 拉格朗日乘子 λ (Exercises 6.10 and 6.11). 约束 (6.27) 与 λ 相乘并添加到目标函数 (6.26)。 最大化读取的函数

=αλαvα2λ(1αvα2). (6.28)

为了找到 的最大值,我们确定其奇异点,由 /vβ=0 定义。 这会产生vβ(λβ+λ)=0 的最大值是针对λ=λ1获得的,其中λ1与特征向量𝒖1的最大特征值。 我们得出的结论是,除了必须等于 1 的一个分量之外,所有分量 vβ 都必须消失。 这表明方差 σv2 在主方向上最大化。

在多于二维的情况下,通常存在多个数据显着变化的方向。 这些k主方向对应于具有最大特征值的k特征向量。 这可以递归地显示。 通过应用投影矩阵1=𝟙𝒖1𝒖1𝖳将数据投影到与𝒖1正交的子空间。 然后重复上述过程,会发现数据沿 𝒖2 变化最大。 经过迭代,获得k主方向𝒖1,,𝒖k 通常,k 最大的特征值和最小的特征值(都接近于零)之间存在差距。 然后可以安全地将数据投影到由 k 主方向跨越的子空间上。 如果没有差距,那么该如何处理就不清楚了。

6.5 右侧显示的数据集说明了另一个问题。 如果我们只使用主成分,这个数据集就很难分类。 在这种情况下,我们通过将数据投影到其主成分上而丢失了重要信息。

6.4 过拟合和交叉验证

\begin{overpic}[scale={0.57}]{Fig_6_6} \end{overpic}
图 6.6: 过拟合。 左:对于具有 15 个神经元的单隐藏层的网络,训练集中决策边界的准确表示。 右:这个新的数据集与第一个数据集只有一点点噪声不同。 决策边界附近的点没有被正确分类。 图例: 对应于 t(μ)=1 对应于 t(μ)=1

有监督学习的目标是从训练集泛化到新数据。 只有训练集的一般属性才是我们感兴趣的,而不是针对特定训练集的特定属性。 一个具有更多神经元的的神经网络可能更好地对输入数据进行分类,因为它更准确地表示了给定数据集的所有特定特征。 但来自相同输入分布的不同模式集在细节上可能看起来完全不同,在这种情况下,决策边界可能无法很好地对新数据进行分类(图 6.6)。 换句话说,网络可能会拟合过细的细节(例如训练集中的噪声),这些细节没有普遍意义。 这个问题,如图 6.6 所示,被称为 过拟合 对于具有更多神经元的网络,过拟合的趋势更大。 一般来说,我们应该寻找一种折衷方案,以牺牲训练精度为代价,减少网络过拟合的趋势。

避免过拟合的一种方法是使用 交叉验证提前停止 将数据分成两个集合:训练集验证集 这些集合共享要学习的一般特征。 但是,尽管训练集和验证集是从相同分布中抽取的,但它们在不感兴趣的细节上可能存在差异。

当网络在训练集上进行训练时,人们不仅会监控训练集的能量函数,还会监控使用验证数据评估的能量函数。 只要网络学习输入分布的一般特征,训练和验证能量就会下降。 但当网络开始学习训练集的特定特征时,验证能量就会饱和,甚至可能开始增加。 此时,训练停止。 该方案如图 6.7 所示。

\begin{overpic}[scale={0.57}]{Fig_6_7} \end{overpic}
图 6.7: 训练和验证误差的进展。 该图是示意性的,数据已平滑处理。 基于 Oleksandr Balabanov 进行的模拟。 图中显示了训练集(实线)和验证集(虚线)的能量函数的自然对数作为训练迭代次数的函数。 当验证能量开始增加时,训练停止。

通常,输出神经元的可能状态值是连续的,而目标值只取离散值。 在这种情况下,还可以监控验证集的 分类错误 分类错误的定义取决于分类问题的类型。 对于具有目标 t=0/1 的单个输出神经元,分类错误定义为

C=1pμ=1p|t(μ)θH(O(μ)12)|. (6.29a)
If, by contrast, the targets take the values t=±1, then the classification error reads:
C=12pμ=1p|t(μ)sgn(O(μ))|. (6.29b)

作为第三个例子,考虑一个分类问题,其中输入必须被分类到 M 个互斥类别中, 例如 MNIST 手写数字数据集 (第 8.3 节)其中 M=10 6.1 给出了另一个例子,其中有 M=3 类。 在这两种情况下,其中一个目标等于 1,而所有其他目标等于 0。 因此,目标的总和为 1:iMti(μ)=1 现在假设网络具有 sigmoid 输出,Oi(μ)=σ(bi(μ)) 为了根据网络输出 Oi(μ) 对输入 𝒙(μ) 进行分类,我们定义

yi(μ)={1if Oi(μ) is the largest of all outputs i=1,,M,0otherwise. (6.30a)
Then the classification error can be computed as
C=12pμ=1pi=1M|ti(μ)yi(μ)|. (6.30b)

在所有情况下,分类精度 被定义为 (1C) 100%,它通常用百分比表示。

分类错误决定了被错误分类的输入的比例。 然而,它包含的信息比能量函数少,能量函数实际上是输出的均方误差。 这在表 6.1 中得到了说明。 所有三个输入都被正确分类, 但存在相当大的均方误差。 这表明分类并不十分可靠。

μ output 𝑶(μ) target 𝒕(μ) classification correct?
1 [0.4, 0.5, 0.4] [0,1,0] versicolor yes
2 [0.4, 0.3, 0.5] [0,0,1] setosa yes
3 [0.6, 0.5, 0.4] [1,0,0] virginica yes
表 6.1: 说明了 能量函数和分类错误之间的区别。 该表显示了来自鸢尾花数据集的三个不同输入的网络输出,以及正确的分类。 所有输入都被正确分类,但输出和目标之间的差异 相当大。

6.5 学习率的适应

选择更大的学习率很诱人 ,因为它们使网络能够更有效地从浅层极小值中逃逸。 但当能量函数快速变化时,这会导致问题, 导致训练失败。 为了避免这种情况,人们使用了一种 自适应的 学习规则,例如:

δwmn(t)=ηHwmn|{wij}={wij(t)}+αδwmn(t1). (6.31)

这里 t=1,2,,T 表示迭代次数。 我们看到,步长为 t 的增量不仅取决于瞬时梯度, 还取决于前一次迭代的权重变化 δwmn(t1) 我们说动力学 变得 惯性的,权重获得 动量 . 参数 α0 被称为 动量常数 . 它决定了 惯性效应的强度。 我们看到 α=0 对应于通常的反向传播规则。 α 为正时,惯性如何改变学习过程? 迭代方程 (6.31) 得到

δwmn(T)=ηt=0TαTtHwmn(t). (6.32)

这里以及在下面,我们使用简写符号

Hwmn(t)Hwmn|{wij}={wij(t)}.

方程 (6.32) 表明 δwmn(T) 是训练期间遇到的梯度的加权平均。 现在假设训练卡在一个浅的最小值中。 那么梯度 H/wmn(t) 在许多时间步长内保持大致恒定。 为了说明发生了什么,让我们假设 H/wmn(t)=H/wmn(0) 对于 t=1,,T 在这种情况下,我们可以写

δwmn(T)ηHwmn(0)t=0TαTt=ηαT+11α1Hwmn(0). (6.33)

在这种情况下, α 接近于 1 时,收敛速度加快。 我们还看到,为了使公式 (6.33) 中的总和收敛,必须 α<1

另一个需要考虑的限制是梯度从一次迭代到下一次迭代快速变化。 在这种情况下,学习规则是如何修改的? 举个例子,让我们假设梯度的幅度保持不变,但其符号在振荡,H/wmn(t)=(1)tH/wmn(0) 对于 t=1,,T 将此代入公式 (6.32),我们得到:

δwmn(T)ηHwmn(0)t=0T(1)tαTt=ηαT+1+(1)Tα+1Hwmn(0). (6.34)

这里,与公式 (6.33) 中的增量相比,增量要小得多。 这表明引入惯性可以大大加速 收敛而不影响精度。 当然,缺点是还有一个参数需要选择,即 动量常数 α

\begin{overpic}[scale={0.57}]{Fig_6_8} \end{overpic}
图 6.8: (a) 动量法 (6.31)。 灰色箭头表示增量 η(H/wmn)|{wij(t)} (b) Nesterov 的加速梯度 方法 (6.35)。 灰色箭头 表示 η(H/wmn)|{wij(t)+αt1δwij(t1)} 𝒘(t+1)(灰色点)的位置比面板 (a) 中的位置更靠近最小值(黑色点)。

Nesterov 的 加速梯度 方法 [77] 是另一种实现方式 动量。该算法是为平滑优化问题而开发的, 但建议在 使用梯度下降 [78] 训练深度神经网络:

δwmn(t) =ηHwmn|{wij(t)+αt1δwij(t1)}+αt1δwmn(t1). (6.35)

一系列合适的系数 αt 由递归 [78] 定义。 系数 αt 从下方逼近于 1,随着 t 的增加。

Nesterov 的加速梯度方法比简单的 动量方法,因为 加速梯度方法评估的是外推点处的梯度,而不是 初始点处的梯度。 6.8 说明了 Nesterov 方法 收敛速度更快的情况。 Nesterov 方法的实现难度与方程 (6.31) 相差不大,在计算成本方面也相差不大。

还有其他调整学习率的方法 在训练期间,如 Haykin 的书 [2] 中第 4.10 节所述。 最后,学习率 不需要对所有神经元都相同。 如果不同层中神经元的权重以非常不同的速度变化(第 7.2 节),则可以定义一种层相关学习 对于梯度较小的神经元,速率 η 较大。

反向传播是一种在权重空间的能量函数 (6.4) 上进行随机梯度下降的有效算法,因为它只涉及到要更新的权重的局部量。

反向传播是权重空间中能量函数 (6.4) 的随机梯度下降的有效算法,因为它仅涉及要更新的权重的局部量。 隐藏神经元的网络具有许多自由参数(它们的权重和阈值)。 这增加了过拟合的风险 ,这会降低网络的泛化能力。 ,这降低了网络的泛化能力。 具有许多隐藏层的深层网络特别容易过度拟合(第 7 章)。 交叉验证来减少网络过拟合的趋势。 交叉验证。

6.7进一步阅读

反向传播算法在 Hertz、Krogh 和 Palmer 的第 6.1 节 [1] 中有解释,在 Haykin 的书的第 4 章 [2] 中也有解释。 LeCun 的论文 [76] et al. 早于 1986 年的深度学习 ,但它仍然是一个非常好的为使反向传播更有效而提供的食谱集。

关于误差反向传播的第一篇论文之一是由 Rumelhart et al. [12] 作者对反向传播算法进行了优雅的解释和总结。 他们还描述了不同数值实验的结果,其中一个介绍了卷积网络(第 8 章)以学习区分字母 T 和 C(图 6.9)。

\begin{overpic}[scale={0.57}]{Fig_6_9} \end{overpic}
图 6.9: 由参考文献 [12] 中的卷积网络检测到的模式。 参考文献中的图 13 之后。  [12]

第 7 章 深度学习

\begin{overpic}[height=85.35826pt]{figures/jpg/Fig_7_1a.jpg} \end{overpic}
\begin{overpic}[height=85.35826pt]{figures/jpg/Fig_7_1b.jpg} \end{overpic}
\begin{overpic}[height=85.35826pt]{figures/jpg/Fig_7_1c.jpg} \end{overpic}
图 7.1: 鸢尾花图片。 从左到右: 鸢尾 setosa (版权 T. Monto), 鸢尾 versicolor (版权 R. A. Nonenmacher), 和 鸢尾 virginica (版权 A. Westermoreland)。 所有图片都受到 知识共享许可证保护。

7.1 隐藏层数量?

\begin{overpic}[scale={0.57}]{Fig_7_2} \end{overpic}
图 7.2: 用于函数逼近的多层感知器。

在第 5 章中,我们看到了为什么有时需要隐藏层:为了解决线性不可分的问题。 在什么情况下一个隐藏层就足够了? 有哪些问题需要多个隐藏层? 即使没有必要,额外的隐藏层是否会提高网络的性能?

为了理解多少个隐藏层就足够了,将 分类问题 视为一个 近似问题 是很有用的 [79] 考虑 分类问题 [𝒙(μ),t(μ)] 对于 μ=1,,p 这个问题定义了一个 目标函数 t(𝒙) 训练一个网络来解决这个任务对应于通过网络的输出函数 O(𝒙) 来近似目标函数 t(𝒙),从 N 维输入空间到一维输出。

通过选择权重和阈值,需要多少个隐藏层才能以一定的精度逼近给定的一组函数? 答案取决于目标函数的性质。 它是否为实值,可能是连续的,或者它是否只取离散值?

我们从实值输入和单个输出 [80, 1] 开始。 考虑图 7.2 中绘制的网络。 隐藏层中的神经元具有 sigmoid 激活函数 σ(b)=(1+eb)1 输出是一个线性单元 ,具有线性激活函数 g(b)=b 使用两个隐藏层,人们试图通过 来逼近函数 t(𝒙)

O(𝒙)=mWmg(jwmj(2)g(kwjk(1)xkθj(1))θm(2))Θ. (7.1)
\begin{overpic}[scale={0.57}]{Fig_7_3} \end{overpic}
图 7.3: 神经网络输出 O(x) 近似 目标函数 t(x)
\begin{overpic}[scale={0.57}]{Fig_7_4} \end{overpic}
图 7.4: 用于逼近一维目标函数 t(x) 的基函数。

在最简单的情况下,输入是一维的(图 7.3)。 The 训练集由对 [x(μ),t(μ)] 组成,这些对编码了 目标函数 t(x) 然后任务是通过网络输出 O(x) 来逼近 t(x)

O(x)t(x). (7.2)

为此,人们使用图 7.4 中所示的基函数 (x) 的线性组合。 任何合理的实值函数 t(x) 都可以通过这些基函数的总和来逼近,每个基函数都适当地平移和缩放。 此外,这些基函数可以用 sigmoid 激活函数的缩放差来表示

(x)=W[σ(w(1)xθ1(1))σ(w(1)xθ2(1))]. (7.3)

与公式 (7.1) 相比,可以看出一个隐藏层足以 以这种方式构造函数 O(x)

\begin{overpic}[scale={0.57}]{Fig_7_5} \end{overpic}
图 7.5: 二维 基函数。 (a) 要构建具有两个输入的局部基函数,需要两个具有 sigmoid 激活函数的神经元隐藏层。 一层通过四个 sigmoid 输出的线性组合来确定浅色交叉。 第二层将最终输出定位到较暗的方块 [公式 (7.4)]。 (b) 一个基函数的网络布局, 参考图 8。  [80]

现在考虑二维输入。 在这种情况下,一个合适的基函数是 (图 7.5):

(𝒙)=Wσ{w(2)[σ(w(1)x1)σ(w(1)x1θ2(1))+σ(w(1)x2)σ(w(1)x2θ4(1))]θ(2)}. (7.4)

所以两个隐藏层足以用于两个输入维度。 对于每个基函数,我们在第一个隐藏层需要四个神经元,在第二个隐藏层需要一个神经元。 对于超过两个输入维度的情况,构造方式类似。 对于每个基 函数 我们需要 2N 第一个隐藏层中的神经元和第二个隐藏层中的一个神经元。 总之,两个隐藏层足以近似实值目标函数。

然而,对于实值函数并不总是需要两层。 对于连续函数,一个 隐藏层就足够了。 这是由 通用逼近定理 [2] 它表示任何连续函数 可以通过具有单个隐藏层的神经网络来近似到任意精度,前提是隐藏层中具有足够多的神经元。

在第 5 章中,我们考虑了离散布尔函数。 任何具有 N 维输入的布尔函数都可以用一个具有一个隐藏层的神经网络表示,在隐藏层中使用 2N 个神经元。 这样的网络的一个例子在参考文献中讨论。  [1]

xk{+1,1} k=1,,Ninputs
Vj j=0,,2N1hidden neurons
g(b)=sgn(b) activation function of hidden neurons (7.5)
g(b)=sgn(b) activation function of output neuron

与第 5.5 节中布尔函数表示的差异在于,这里的输入取值 ±1 原因是,这简化了证明,它是通过构造 [1] 对于每个隐藏神经元,权重分配如下

wjk={δif the kthdigit of binary representation of j is 1,δotherwise, (7.6)

其中 δ>1(见下文)。 The 所有隐藏神经元的阈值 θj 相同,等于 N(δ1) 想法是每个输入模式 仅打开隐藏层中的一个神经元,即 获胜神经元)。输入输出神经元的权重 确定如下。 如果神经元 Vj 表示的模式的输出为 +1,则 W1j=+1,否则 W1j=1 阈值设置为Θ=jW1j

为了说明此构造的工作原理,请考虑布尔 XOR 函数作为示例(图 7.6)。

x1 x2 t
-1 -1 -1
+1 -1 +1
-1 +1 +1
+1 +1 -1

\begin{overpic}[scale={0.57}]{Fig_7_6} \put(-71.0,67.0){({\bf a})} \put(0.0,67.0){({\bf b}) } \put(112.0,67.0){({\bf c})} \end{overpic}      j digit 1 digit 2 0 0 0 1 0 1 2 1 0 3 1 1

图 7.6: 布尔异或函数。 (a) 值表,(b) 网络布局。 对于馈入隐藏层的权重,虚线对应于 wjk=δ,实线对应于 wjk=δ 对于馈入输出神经元的权重,虚线对应于 W1j=γ,实线对应于 W1j=γ 图表 (c) 总结了 j 的二进制表示,用于确定隐藏层的权重 wjk [公式 (7.6) ]。

为了确认只有对应获胜神经元发出正信号,考虑模式 𝒙(1)=[1,1]𝖳 它激活隐藏层中的第一个神经元 (j=0)。 为了看到这一点,计算隐藏神经元的局部场:

b0(1) = 2δ2(δ1)=2, (7.7)
b1(1) = 2(δ1)=22δ,
b2(1) = 2(δ1)=22δ,
b3(1) = 2δ2(δ1)=24δ.

如果我们选择 δ>1,那么第一个隐藏神经元的输出给出正输出 (V0>0),其他神经元产生 负输出,Vj<0 用于 j=1,2,3 总之,输出神经元 1 是此模式的获胜神经元。 现在考虑 𝒙(3)=[1,+1]𝖳 在这种情况下

b0(3) = 2(δ1)=22δ, (7.8)
b1(3) = 2δ2(δ1)=24δ,
b2(3) = 2δ2(δ1)=2,
b3(3) = 2(δ1)=22δ.

现在第三个隐藏神经元输出正值,而其他神经元输出负值。 它对其他两种模式,𝒙(2)𝒙(4),也以同样的方式工作。 综上所述,每种模式都有一个独特的获胜神经元。 111That pattern μ=k gives the winning neuron j=k1 is of no importance, it is just a consequence of how the patterns are ordered in the value table in Figure 7.6 7.7 展示了与 Vj 对应的四个 决策边界 如何划分输入平面。

\begin{overpic}[scale={0.57}]{Fig_7_7} \end{overpic}
图 7.7: 展示了图 7.6 中所示的 XOR 网络如何划分输入平面。 目标值编码方式与图 5.8 相同: 对应于 t=1 对应于 t=+1)。
\begin{overpic}[scale={0.57}]{Fig_7_8} \end{overpic}
图 7.8: 奇偶校验问题的解决方案 对于 N 维输入。 该网络由 XOR 单元(图 5.17,这里使用 0/1 神经元)构建。 每个 XOR 单元都有一个包含两个神经元的隐藏层。 只显示了 XOR 单元输入和输出的状态,而不是隐藏神经元的状态。 总的来说,整个网络只有 O(N) 个神经元。 在参考文献   [81] 中图 2 之后。

根据上面概述的方案,输出神经元计算

O1=sgn(V1+V2+V3V4) (7.9)

Θ=jW1j=0 对于 𝒙(1)𝒙(4),我们找到了正确的结果 O1=1 同样适用于 𝒙(2)𝒙(3),在这种情况下我们得到 O1=1 总之,这个例子说明了如何用一个包含 2N 个神经元、只有一个隐藏层的网络来表示一个 N 维布尔函数。 问题当然是这个网络很贵 训练较大的 N 值,因为隐藏神经元的数量非常大。

例如,考虑 作为一个例子,考虑 奇偶性函数 对于位等于 0 或 1 的 N 维二进制输入。 它测量输入比特序列的奇偶性。 如果输入中有一的个数为奇数,则该函数计算结果为 1,否则为 0。 与上述类似的构造产生了一个具有 2N 个神经元的隐藏层网络布局。 如果将 XOR 网络连接在一起 , 则可以用 O(N) 个神经元解决奇偶性问题 [81] (图 7.8)。 N 为 2 的幂时,该网络具有 3(N1) 个神经元。 为了看到这一点,将输入数量设置为 N=2k 7.8 表明神经元的数量 𝒩k 满足递归关系 𝒩k+1=2𝒩k+3 其中 𝒩1=3 该递归关系的解为 𝒩k=3(2k1)

这个例子还说明了使用多个隐藏层的第二个原因。 为了设计一个用于特定任务的神经网络,通常可以使用经过充分研究的构建块来构建网络。 将它们连接在一起,通常以层次结构的方式。 在图 7.8 中,只有一个构建块,即图 5.17 中的 XOR 网络。 其他例子是用于图像分析的卷积网络。 这里,基本构建块被称为特征图。 ,它们 识别图像中不同的几何特征,例如边缘或角点(第 8 章)。

7.2 梯度消失和爆炸

本节描述了 深度网络训练中的 固有 不稳定性 随着随机梯度下降, 梯度消失或爆炸问题会出现。

在第 6 章中,我们看到当递归中的因子 g(b) (6.17) 变小时,学习速度会变慢。 当网络有多个隐藏层时,例如 如图7.9所示,g(b)的潜在小因子被乘以,使问题变得更加严重。 这就是 这是 梯度消失问题

图 7.10:
具有四个隐藏层的全连接深度网络。 \begin{overpic}[scale={0.57}]{Fig_7_9} \end{overpic}
\begin{overpic}[scale={0.57}]{Fig_7_10} \end{overpic}
具有四个全连接隐藏层的网络的梯度消失问题。 该图示意性地说明了均方根 该图示意性地说明了均方根是如何变化的。 δrms() 中的错误取决于训练周期的次数。 在第一阶段,梯度消失问题很严重,在第二阶段,网络开始学习,第三阶段是收敛阶段,其中错误下降。 基于 Ludvig Storm 执行的模拟的示意图,在 MNIST 数据集上训练具有四个隐藏层和每层 N=30 个神经元的网络。

7.10 量化了这个问题。 该图显示均方根值。 在初始训练期间,随机初始权重 δrms()(N1j=1N[δj()]2)1/2 的不同实现的平均误差往往非常小。 为了解释这种现象,请考虑参考文献中讨论的简单示例。  [5]:一个长链神经元,每层只有一个神经元(图 7.11)。 输出 V(L) 由嵌套的激活函数给出

V(L)=g(w(L)g(w(L1)g(w(2)g(w(1)xθ(1))θ(2))θ(L1))θ(L)). (7.10)

让我们计算错误 δ() 使用公式 (6.16)。 部分导数 在 (6.16) 中使用链式法则进行评估:

V(L)V(L1) = g(b(L))w(L),
V(L)V(L2) = V(L)V(L1)V(L1)V(L2)=g(b(L))w(L)g(b(L1))w(L1), (7.11)

其中 b(k)=w(k)V(k1)θ(k) 神经元k的局部场。这会产生以下 V(L)/V() 表达式:

V(L)V()=k=L+1[g(b(k))w(k)]. (7.12)

将此表达式代入公式 (6.16),我们发现:

δ()=[tV(L)(x)]g(b(L))k=L+1[w(k)g(b(k1))]. (7.13)

您也可以通过应用算法 4 中的递归来获得此结果,δ()=δ(+1)w(+1)g(b())

\begin{overpic}[scale={0.57}]{Fig_7_11} \end{overpic}
图 7.11: 用于说明梯度消失问题的 神经元链 [5], 其中神经元为 V(),权重为 w(),阈值为 θ()

现在考虑早期阶段 训练 [5] 对于激活函数 (6.19),g(b) 的最大值为 141, 而 g(b)|b| 较大时,会呈指数级减小。 如果将权重初始化为第 6.2 节中所述的方式,即初始化为 均值为零、方差为 σw2=1 的高斯随机变量, 那么因子 w(k)g(b(k1)) 往往小于 1。 在这种情况下,公式 (7.12) 意味着 误差或梯度 δ() 减小时,迅速消失。 原因很简单,即当 变小时,公式 (7.12) 中的乘积的因子数会增加, 而多个较小数字相乘会得到一个非常小的乘积。 结果, 训练速度会变慢。 正如上面提到的,这就是 梯度消失问题的早期阶段 (图 7.10 中的阶段 I)。

后续时间发生了什么? 7.10 表明网络继续缓慢学习。 对于图 7.10 中所示的特定示例,这种影响持续了 大约 20 个 epoch。 然后,第一层开始学习得更快(阶段 II)。 到目前为止,还没有数学理论描述这种转变是如何发生的。 训练过程中后期, 误差随着学习收敛而衰减(图 7.10 中的阶段 III)。

有一个第二个等效的观点 [5]:远离输出层的学习速度很慢, 因为输出对这些神经元的 state 并不敏感。 给定神经元对输出的影响由公式 (7.12) 衡量,该公式描述了 当改变特定层中神经元的 状态 时,网络的输出如何变化。 无论如何,公式 (7.13) 表明 远离输出的隐藏层学习速度很慢, 至少在权重仍然随机的初始阶段是这样。

假设我们尝试通过增加权重方差 σw2 来对抗梯度消失问题。 问题是,这可能会导致 因子 w(k)g(b(k1)) 变为大于 1。 因此, 梯度反而呈指数增长( 训练动态从根本上不稳定。 梯度爆炸)。 总之, training dynamics is fundamentally unstable. 这是由于误差递归的乘法性质造成的。 对公式 (7.12) 中的乘积取对数,并假设 权重是独立分布的随机数,则 中心极限定理 (第 2 章) 意味着 logδ() 的分布是高斯的。 换句话说,误差的分布是对数正态分布 , 意味着 δ() 的非常小和非常大的值以高概率出现。

在类似于图 7.9 中所示的网络中,原理相同。 假设所有层 =1,,L 具有相同数量 N 的神经元。 N>1 时,将乘以 N×N 个矩阵,而不是数字。 随机数的乘积 (7.12) 变成随机矩阵的乘积。 使用链式法则 我们发现:

Vi(L)Vj() = m=1Nn=1Np=1NVi(L)Vm(L1)Vm(L1)Vn(L2)Vp(+1)Vj(). (7.14)

采用更新规则

Vm(k)=g(j=1Nwij(k)Vj(k1)θi(k)) (7.15)

我们就可以评估每个因子:

Vm(k)Vn(k1)=g(bm(k))wmn(k). (7.16)

将此结果代入公式 (7.14),我们看到偏导数 Vi(L)/Vj() 可以以矩阵乘积的形式计算。 矩阵 𝕁L 的元素 [𝕁L]ij=Vi(L)/Vj() 由下式给出:

𝕁L=𝔻(L)𝕎(L)𝔻(L1)𝕎(L1)𝔻(+1)𝕎(+1). (7.17)

这里 𝕎(k) 是馈入层 k 的权重矩阵,

𝔻(k)=[g(b1(k))g(bN(k))] (7.18)

是对角矩阵,其元素为 Djj(k)=g(bj(k)) 矩阵乘积 (7.17) 决定了误差动力学,就像 公式 (7.13) 一样:

𝜹()𝖳=𝜹(L)𝖳𝕁Lwith𝕁L=[𝔻(L)]1𝕁L𝔻(). (7.19)

随着误差在层之间传播,|𝜹()|2=𝜹()𝖳𝜹() 的大小会收缩还是增长? 这由 的特征值左柯西-格林矩阵 𝕁p𝕁p𝖳 决定,其中 p=L 这个矩阵是对称的,它的 特征值是非负的。 它们的平方根是 奇异值 𝕁p

Λ1(p)Λ2(p)ΛN(p)0. (7.20)

通常按照公式 (7.20) 中的大小对奇异值进行排序。 当层数很多时, 公式 (7.17) 中因子的数量 p=L 很大。 在这种情况下,最大奇异值要么呈指数下降,要么呈指数上升,作为 p [82] 的函数。 对应的速率

λ1=limp1plogΛ1(p) (7.21)

称为最大 李雅普诺夫指数 . 负的最大李雅普诺夫指数表明误差呈指数消失。 𝕁p𝕁p𝖳 的特征向量称为 后向李雅普诺夫向量 . 它们描述了误差在网络中传播时的变化方式。 输入之间的微小差异如何变化,由 前向李雅普诺夫向量决定,即 𝕁p𝖳𝕁p 的特征向量。 由于 𝕁p𝖳𝕁p𝕁p𝕁p𝖳 具有相同的 特征值,输入差异幅度的衰减或增长的速率与误差幅度的衰减或增长的速率相同。

最大李雅普诺夫指数的概念借鉴于混沌理论 [83, 84, 85],其中 λ1>0 意味着初始条件的微小扰动会随着时间的推移呈指数增长。 迭代映射 (7.10) 是一个动力系统。

7.10 中的转变是由李雅普诺夫指数从负值变为 λ10 [86] 引起的。 总之,深度网络中不稳定梯度问题 是由于最大奇异值 Λ1(p) 随着远离输出层而呈指数增长或下降,具体取决于最大李雅普诺夫指数 是否为负或正。

彭宁顿等人 [87] 建议通过以使 最大李雅普诺夫指数接近零的方式初始化 权重和阈值来解决不稳定梯度问题,以确保误差不会呈指数增长或缩小。 考虑图 7.9 中所示的网络,每层隐藏层有 N 个神经元,并初始化 权重为具有零均值和方差 σw2 的独立高斯随机数。 The 阈值的初始化方式相同,方差为 σθ2 N 的极限情况下,可以使用均值场理论 [87],就像第 3 章一样,来估计最大李雅普诺夫指数 .

按照参考文献   [87],第一步是计算误差如何 在网络中传播。 我们假设不相关 随机输入模式 ,公式 (2.29),以及具有零均值和方差 wijwkl=σw2δijδkl 的随机权重。 N 时,误差是许多随机数的总和 [公式 (6.17) ]。 根据中心极限定理(第2章),可以得出结论,误差近似服从高斯分布,均值为零,方差为

[δj(1)]2=i,k=1Nδi()δk()wij()wkj()[g(bj(1))]2σw2i=1N[δi()]2[g(bj(1))]2. (7.22)

最后一种近似方法忽略了 与局部场可能的相关性。 方差[δi()]2不依赖于i, 因此该和只给出N的因子。

N很大的极限情况下,中心极限定理确保局部 场bj()也服从高斯分布, 均值为零 方差为

σ2=1Nj=1N[bj()]2. (7.23)

这使得我们能够估计

[g(bj()]2dzez2/2σ22πσz2[g(z)]2F(σ). (7.24)

方程 (7.23) 描述了如何分布 局部字段bj()随着迭代而变窄或变宽。 对于g(b)=tanh(b),它显示在参考文献中。  [87] 表明在权重和阈值的方差σw2σθ2上的某些条件下,σ趋近于一个固定点σ=limσ 如果σ可以用σ很好地近似, 则公式(7.22)简化为: δrms(1)δrms()σw2NF(σ) 这导致了最大Lyapunov指数的均值场估计,

λ1log|δ(1)/δ()|12log[σw2NF(σ)]. (7.25)

网络参数应进行调整,以使该指数尽可能接近 零。 这意味着,特别是,应该 取

σw2N1, (7.26)

另见参考文献   [88, 89] 但是我们必须牢记,等式 (7.25) 依赖于求极限 N N 为有限值时,等式 (7.25) 所基于的假设会失效,导致平均场理论失效。 例如,误差分布的尾部预计随着 N 的减小而变得更重,如上面描述的 N=1 结果所示。 还要注意,当 N 为有限值时,𝕁p 假设秩为零,概率很小但非零。 在这种情况下 λ1=

在实践中,有一些其他的技巧可以帮助在一定程度上解决不稳定梯度问题。 首先,有人认为,在较大的 b 值下不会饱和的激活函数(例如 ReLU 函数) 有助于解决梯度消失问题。 其次,批标准化 (第 7.6.5 节)可以减少不稳定梯度问题。 第三,引入跳层连接( 残差网络 )可以缓解不稳定梯度问题。 这一点将在第 7.4 节中讨论。

最后,问题有一个重要的方面我们没有讨论:不稳定梯度限制了信息以有意义的方式在网络中传播的程度。 这一点在 Ref. 中解释  [90]

在本节中,我们一直假设权重是随机数。 当网络开始学习时,情况不再如此。 问题是,当乘积 (7.17) 中不同因子的相关性发展时,𝕁p 的奇异值如何变化。

7.3 整流线性单元

格洛罗特等人 [91] 建议使用分段激活函数,即 ReLU 函数 2 22由于 ReLU 函数的导数在 b=0 处不连续,因此一个常见的约定是在 b=0 处将导数设置为零。 max{0,b} (第 1 章)。 使用 ReLU 神经元的意义何在? 在训练 一个具有 ReLU 激活函数的深度网络 ,许多 隐藏神经元产生零输出。 这意味着激活神经元网络(非零输出) 稀疏地 相连。人们有时认为稀疏网络具有良好的属性;至少稀疏表示 分类问题的往往更容易学习,因为它们更有可能线性可分(第 5.4 节)。 7.12 说明了对于给定的输入模式 ,只有一部分隐藏神经元 是激活的。 对于这些神经元,计算是线性的,但不同的输入模式会给出不同的 活动神经元。 公式 (7.17) 中的乘积获得了特别简单的结构: 矩阵 𝔻(p) 是对角的,具有 0/1 项。 但是,虽然权重矩阵最初是独立的,但随着训练的进行,它们变得相关。 此外,𝔻(p)-矩阵也形成了相关性: 哪些元素消失取决于哪些模式被固定在输入端子上。

一个只有一个或很少几个活动神经元的隐藏层可能充当 瓶颈 阻止输出误差的有效反向传播 从原则上讲,这可能会减慢 训练。 对于参考中给出的示例   [91], 这种情况不会发生。 为了描述信息在具有 ReLU 神经元的网络中的传播,应该计算矩阵 𝕁p 的奇异值消失的概率(第 7.2 节)。

\begin{overpic}[scale={0.57}]{Fig_7_12} \end{overpic}
图 7.12: 具有 ReLU 激活函数的活动神经元的稀疏网络。 黑色路径对应于具有正局部场域的 活动 神经元。

对于较大的正局部域,ReLU 函数是无界的。 因此,消失梯度问题 (第 7.2 节) 被认为在由修正线性单元组成的网络中不太严重。 然而,由于 ReLU 函数不会饱和,因此权重往往会增加。 格洛罗特 等人。 [91] 建议 使用 L1-正则化 (第 7.6.1 节) 以确保 权重不会增长。

最后,使用 ReLU 函数 代替 sigmoid 函数可以加速 训练, 因为 ReLU 函数具有分段常数导数。 这些函数比非线性激活函数及其导数更快地计算。

7.4 残差网络

减少消失梯度问题的一种方法是引入 快捷方式, 连接跳过层 [92] 经验证据表明,具有此类快捷方式的网络比标准多层感知器更容易训练。 很有可能的原因是,在具有快捷方式的网络中,消失梯度问题不太严重,因为误差 在此类网络中,传播由具有最少因子的矩阵乘积决定。

本节解释了如何训练带有捷径的网络[93]

\begin{overpic}[scale={0.57}]{Fig_7_13} \end{overpic}
图 7.13: 带有捷径的网络的示意图,捷径跳过一层(灰色箭头)。 摘自参考文献图 1。   [93]

布局在图 7.13 中以示意图的形式说明。 黑箭头代表通常的前馈连接,灰色箭头代表跳过一层的连接。 7.13 中的符号与算法 4 中的符号略有不同。 从层 1 的权重用 wjk(,1) 表示,而从层 1+1 的权重用 wij(+1,1) 表示(图 7.13 中的灰色箭头)。 注意上标的顺序与下标相同: 索引指向 . 根据图 7.13,层 +1 中的神经元 j 计算

Vj(+1)=g(kwjk(+1,)Vk()θj(+1)+nwjn(+1,1)Vn(1)). (7.27)

像往常一样,激活函数的参数是 局部场 bj(+1) 所有连接的权重都以通常的方式训练,即通过随机梯度下降 .

\begin{overpic}[scale={0.57}]{Fig_7_14} \end{overpic}
图 7.14: 带有短路(灰色箭头)的神经元链,跳过单个神经元。

为了说明所得公式的结构,考虑一个神经元链,每层只有一个神经元,带有跳过一个神经元的短路(图 7.14)。 我们使用公式 (6.15) 和 (6.16) 计算权重增量。 递归 (6.17) 仅适用于没有跳过层的标准前馈网络。 为了确定如何更新图 7.14 所示网络的权重,我们需要评估梯度 V(L)/V() 首先,考虑 w(L,L1) 的学习规则。 使用公式 (6.15) 和 (6.16) 可以发现

δw(L,L1)=ηδ(L)V(L1)withδ(L)=(tV(L))g(b(L)), (7.28)

如算法 4 中所示。 同样,可以得到

δw(L,L2)=ηδ(L)V(L2)withδ(L)=(tV(L))g(b(L)). (7.29)

现在考虑 w(L1,L2) 的学习规则。 使用 V(L)/V(L1)=g(b(L))w(L,L1) 可得

δw(L1,L2)=ηδ(L1)V(L2)withδ(L1)=δ(L)w(L,L1)g(b(L1)), (7.30)

如前所述。 但是 w(L2,L3) 的更新不同,因为现在短路发挥了作用。 从层 L2L 的连接会产生一个额外的项:

V(L)V(L2)=V(L)V(L1)V(L1)V(L2)+g(b(L))w(L,L2). (7.31)

对偏导数进行求值得到:

δw(L2,L3)=ηδ(L2)V(L3)withδ(L2) =δ(L1)w(L1,L2)g(b(L2)
+δ(L)w(L,L2)g(b(L2)). (7.32)

以这种方式继续迭代,可以找到以下误差反向传播规则:

δ(1)=δ()w(,1)g(b(1))+δ(+1)w(+1,1)g(b(1)) (7.33)

其中 w(+1,1)=0L1 对于 =L,L1, 第一项与算法 4 中的误差递归相同。 第二项是由于跳跃连接造成的。 这些连接减少了梯度消失问题。 为了说明这一点,请注意,我们可以将误差 δ() 写成

δ()=δ(L)1,2,,nw(L,n)g(b(n))w(2,1)g(b(1))w(1,)g(b()) (7.34)

其中,求和是对网络中所有路径 L>n>n1>>1> 进行的。 对于具有多个神经元的网络,一般公式的结构类似于公式 (7.34)。 根据该方程,具有多层的网络中,最小的误差或梯度,主要由对应于步骤数(因子)最少的路径的乘积决定。 因此,快捷方式倾向于增加小的梯度。

最后,参考文献中描述的网络   [92] 使用单位权重进行跳跃连接。 在这种情况下,Vj(+1) 的局部场采用以下形式

bj(+1)=kwjk(+1,)Vk()θj(+1)+Vj(1)F+Vj(1), (7.35)

假设隐藏层具有相同数量的神经元。 这里 F 是局部场的残差贡献(当 F=0 时,输入 Vj(1) 直接传递到 bj(+1))。 因此,这样的网络被称为 残差网络 [92] 但请注意,参考文献中描述的网络   [92] 使用卷积层(第 8.1 节)。

7.5 输出和能量函数

到目前为止,我们讨论了在所有层的所有神经元中具有相同激活函数的网络,无论是 sigmoid 还是 tanh 激活函数 [方程式 (6.19)], 或 ReLU 函数 (第 1.3 节和第 7.3 节)。 在输出层,人们经常使用具有不同激活函数的神经元,即所谓的 softmax 输出:

Oi=eαbi(L)k=1Meαbk(L). (7.36)

这里 bi(L)=jwij(L)Vj(L1)θi(L) 输出层的局部场。 在极限 α 中,我们看到 Oi=δii0 其中 i0 是获胜者的索引 输出神经元 ,具有最大值 bi(L) (第 10.1 章)。 对于 α=1,公式 (7.36) 是一个 版本的最大值标准,因此得名 softmax . 从现在开始,我们将 α 设置为 1。

Softmax 输出的两个重要属性是,首先, 0Oi1 其次,输出值的总和为 1,

i=1MOi=1. (7.37)

因此,softmax 单元的输出可以解释为概率。 考虑分类问题,其中输入必须 分配到 M 个类别之一。 在这种情况下,softmax 单元 i 的输出 Oi(μ) 被认为代表输入 𝒙(μ) 属于类别 i 的概率(根据 目标:ti(μ)=1tk(μ)=0 对于 ki)。 如果 Oi(μ)1,我们假设网络非常确定输入 𝒙(μ) 属于类别 i 另一方面,如果所有 Ok(μ)M1,我们将网络输出解释为不确定。 但请注意,神经网络可能像人类一样有时会出错:它们的输出可能非常确定但却是错误的(第 8.6 节)。

Softmax 单元与不同的能量 函数一起使用,

H=iμti(μ)logOi(μ). (7.38)

在这里和接下来的内容中,log 代表自然对数。 函数 (7.38) 在 Oi(μ)=ti(μ) 时最小(练习 7.5)。 为了找到能量函数 (7.38) 的正确反向传播公式,我们需要评估

Hwmn=iμti(μ)Oi(μ)Oi(μ)wmn. (7.39)

这里省略了表示输出层的标签,在下面的等式中,表示输入模式的索引 μ 也被省略了。 使用恒等式

Oibl=Oi(δilOl)andblwmn=δlmVn, (7.40)

可以得到

Oiwmn=lOiblblwmn=Oi(δimOm)Vn. (7.41)

所以

δwmn=ηHwmn=ηiμti(μ)(δimOm(μ))Vn(μ)=ημ(tm(μ)Om(μ))Vn(μ), (7.42)

因为 i=1Mti(μ)=1 用于那种每种输入都精确地属于一个类别的分类问题。 相应的学习规则为 阈值读取

δθm=ηHθm=ημ(tm(μ)Om(μ)). (7.43)

等式 (7.42) 和 (7.43) 突出了 softmax 输出神经元的另一个优势 (除了允许以概率解释输出的事实)。 6 节推导出的输出层的权重和阈值增量 [等式 (6.6a) 和 (6.11a)] 包含导数 g(Bm(μ)) 的因子。 正如之前提到的,当激活函数饱和时,这些导数趋于零,从而减缓学习速度。 但在这里,神经元学习的速度仅仅与输出误差 (tm(μ)Om(μ)) 成正比,没有任何可能很小的因子 g(b) Softmax 单元通常只用在输出层,因为学习速度的提高与能量函数 (7.38) 的使用相结合,并且因为习惯上要避免隐藏层内神经元之间的依赖关系。

存在一种与上述非常相似的能量函数的替代形式,但它使用 sigmoid 激活函数和 0/1 目标。 代替等式 (7.38),可以选择:

H=iμ[ti(μ)logOi(μ)+(1ti(μ))log(1Oi(μ))], (7.44)

with Oi=σ(bi), i=1,,M, 以及其中 σ 表示 sigmoid 函数 (6.19a)。 计算 权重增量,我们应用链式法则:

Hwmn =iμ(ti(μ)Oi(μ)1ti(μ)1Oi(μ))Olwmn=iμti(μ)Oi(μ)Oi(μ)(1Oi(μ))Olwmn. (7.45)

使用公式 (6.20) 我们得到

δwmn=ημ(tm(μ)Om(μ))Vn(μ), (7.46)

与公式 (7.42) 相同。 阈值 以类似的方式调整,公式 (7.43)。 但现在输出的解释略有不同,因为 输出层中 softmax 单元的取值之和为 1,而 使用 sigmoid 激活函数的那些则没有。 在任一 情况下,都可以使用定义 (6.30) 来表示分类误差 .

为了结束本节,我们简要讨论一下能量函数的意义 (7.38) 和 (7.44)。 在第 6 章中,我们了解了深度神经网络如何 通过最小化二次能量函数(6.4)来训练拟合输入输出函数(第7.1节)。 这让人想起数理统计中的回归分析,其中通过最小化误差平方和来提高模型的预测准确性。 现在考虑单个 sigmoid 输出的能量函数 (7.44) 目标 t=0t=1 在这种情况下,网络的输出被解释为观察到 O(μ)=Prob(t(μ)=1|𝒙(μ)) 的概率 t(μ)=1 相应的似然是观察到 t(μ) 的联合概率,对于 p 个独立输入 𝒙(μ)

=μ=1p(O(μ))t(μ)(1O(μ))1t(μ), (7.47)

在由网络的权重和阈值决定的模型下。 将负对数似然 (第 4.4 节)最小化等同于将 (7.44) 最小化。 这只是二元逻辑 回归 [94] 来预测二元结果 t=01 情况 M>1 对应于一个 多元回归问题 [94],其中 M 可能存在相关的结果变量 t1,,tM

目标描述M相互排斥的分类结果ti=0,1 具有 i=1Mti=1,softmax 输出 Oi 被解释为观察到 ti=1 的概率。 一个例子是手写数字分类问题(第 8.3 节)。 训练网络然后对应于 多项式回归 [94],对数似然为 (7.38)。 请注意,等式 (7.44),对于 M=1,等价于 (7.38) 对于 M=2,因为 O2=1O1t2=1t1 无论如何,这些论述说明了为什么能量函数 (7.38) 和 (7.44) 有时被称为对数似然。 等式 (7.44) 也被称为 交叉熵 , 因为它与交叉熵 [65] 具有相同的形式,交叉熵描述了两个伯努利分布之间的差异:网络输出 Oi 目标ti

7.6 正则化

更深的网络有更多的神经元,因此过度拟合的问题 (图 6.6)往往对更深的网络更严重 . 正则化 方案限制了过度拟合的趋势。 除了交叉验证 (第 6.4 节),许多其他正则化方案被证明对深度网络很有用: 权重衰减剪枝丢弃 训练集扩展,以及 批次规范化 . 本节总结了这些方法中最重要的一些方面。

7.6.1 权重衰减

回顾图 5.17,它展示了由布尔 XOR 函数定义的分类问题的解。 在这个图中说明的解决方案中,所有权重都等于 ±1,并且阈值也为单位量级。 如果使用反向传播算法来找到这个问题的解,可能会发现权重在训练过程中会不断增长。 如上所述,这可能存在问题,因为它可能暗示 局部字段变得太大,导致激活函数饱和。 然后 训练速度变慢,如第 7.2 节所述。

为了防止权重增长,可以在训练期间按一定比例缩小权重,无论是在每次迭代时还是在定期间隔时, wij(1ε)wij 对于 0<ε<1,或者

δwmn=εwmnfor0<ε<1. (7.48)

这是通过在能量函数中添加一项来实现的:

H=12iμ(ti(μ)Oi(μ))2H0+γ2ijwij2. (7.49)

H 的梯度下降给出:

δwmn=ηH0wmnεwmn (7.50)

ε=ηγ 可以包括一个相应的术语 阈值。 此处总结的方案有时被称为 L2 -正则化 . 另一种方案是 L1 -正则化。它相当于

H=12iμ(ti(μ)Oi(μ))2+γ2ij|wij|. (7.51)

这给出了学习规则

δwmn=ηH0wmnεsgn(wmn). (7.52)

学习规则在 wmn=0 处的间断性可以通过定义 sgn(0)=0 来解决。 通过比较方程 (7.50) 和 (7.52),我们发现 L1正则化与 L2方案 [5] 相比,将更多权重置为零。

这两种方法的替代方案是最大范数正则化 [95],其中权重被限制为保持小于给定常数:|wij|c 如果 |wij| 超过正常数 c,则 wij 将被重新调整,使得 |wij|=c

这些权重衰减方案被称为正则化方案,因为 它们倾向于帮助防止过度拟合 . 它是如何工作的? 权重衰减为最小化能量函数的问题添加了一个约束。 结果是 [5]H 的小值和小的权重值之间的一种折衷。 想法是具有较小权重的网络对噪声的影响更鲁棒。 当权重 很小时,某些模式的微小变化不会导致训练结果有实质性的差异。 相反,当网络具有较大的权重时,可能会出现输入的微小变化 在训练结果中产生显著差异,这些差异难以泛化 .

7.6.2 剪枝

术语 修剪 指的是从网络中删除不必要的权重或神经元,以提高其效率。 最简单的方法是 权重消除 通过 权重衰减 [96] 权重在 通过将它们设置为零并不再更新,这些训练被移除。 对于所有传入连接的权重为零的神经元,实际上就被移除了( 修剪)。 修剪是一种正则化方法:通过移除 不必要的权重,减少了过拟合的风险 . 与丢弃(第 7.6.3 节)相反,其中 隐藏神经元只是暂时被忽略,修剪 指的是永久删除隐藏神经元。 想法是训练 一个大型网络,然后修剪大量的神经元,以 获得一个更小的网络。 通常发现,这种经过修剪的网络 比没有经过修剪就训练的小网络具有更好的泛化性。 在某些情况下,可以移除高达 90% 的隐藏神经元。 通常,修剪 是为实时应用创建高效分类器的一种极好方法。

一种高效的修剪算法基于这样一个想法, 以这样一种方式移除权重,即对能量函数的影响尽可能小 [97] 想法是找到最佳权重,将其移除,并以能量函数增加尽可能少的方式改变其他权重。 该算法的工作原理如下。 假设 网络经过训练,以达到能量函数的(局部)最小值 H。 一个人 将能量函数扩展到这个最小值附近。 为了二阶,H 的展开写为:

H=Hmin+12δ𝒘𝕄δ𝒘+higher orders inδ𝒘. (7.53)

δ𝒘 中的线性项消失了,因为我们围绕 a 展开 局部最小值。 矩阵 𝕄 赫森矩阵 ,能量函数二阶导数的矩阵。

为了下一步,采用以下记号很方便 [97] 将网络中的所有权重分组为一个长权重向量 𝒘(而不是将它们分组为 权重矩阵 𝕎 ,就像我们在第 2 章中所做的那样。 从向量中提取特定组件wq 𝒘 如下所示:

wq=e^q𝒘wheree^q=[1]q. (7.54)

这里 e^q 是 方向 q 上的笛卡尔单位向量,其分量为 [e^q]j=δqj 在这种记号中, 𝕄 的元素是 Mpq=2H/wpwq 现在,消除权重 wq 等同于设置

δwq=wq. (7.55)

为了最大程度地减少对网络的损害,我们应该消除对 H 影响最小的权重,同时改变其他权重,使 H 尽可能地增加(图 7.15)。 这是通过最小化来实现的

minqminδ𝒘{12δ𝒘𝕄δ𝒘}subject to the constrainte^qδ𝒘+wq=0. (7.56)
\begin{overpic}[scale={0.57}]{Fig_7_15} \end{overpic}
图 7.15: 剪枝算法(示意图)。 H 的最小值位于 [w1,w2]𝖳 H 的二次近似的轮廓用黑色实线表示。 权重变化 δ𝒘=[w1,0]𝖳(灰色箭头) 导致 H 的增加小于 δ𝒘=[0,w2]𝖳 黑色箭头表示最优 δ𝒘q,它导致 H 的增加更小。

常数项 Hmin 被舍弃,因为它无关紧要。 现在我们首先针对给定的 q 值,将 H 相对于 δ𝒘 最小化。 线性约束使用 拉格朗日乘子 如第 6.3 节所述, 形成 拉格朗日函数

=12δ𝒘𝕄δ𝒘+λ(e^qδ𝒘+wq). (7.57)

满足约束的最小值 [δ𝒘,λ] 的必要条件是

δ𝒘=𝕄δ𝒘+λe^q=0andλ=e^qδ𝒘+wq=0. (7.58)

我们将这些方程的解表示为 δ𝒘λ 它通过求解线性系统获得

[𝕄e^qe^q𝖳0][δ𝒘λ]=[0wq]. (7.59)

如果 𝕄 可逆,那么方程式 (7.59) 的最上面几行给出

δ𝒘=𝕄1e^qλ. (7.60)

将此结果代入 e^q𝖳δ𝒘+wq=0 我们发现

δ𝒘=𝕄1e^qwq(e^q𝖳𝕄1e^q)1andλ=wq(e^q𝖳𝕄1e^q)1. (7.61)

我们看到 e^qδ𝒘=wq,因此权重 wq 被消去。 其他权重也发生了变化(图 7.15 中的黑色箭头)。 最后一步是通过最小化来找到最佳 q

(δ𝒘,λ;q)=12wq2(e^q𝖳𝕄1e^q)1. (7.62)

The 能量函数的海森矩阵计算代价很高, 它的逆矩阵也是如此。 通常情况下,人们 求助于 𝕄1 的近似表达式 [97] 一种可能性是将 𝕄 的非对角元素设置为零 [98] 但在这种情况下,其他权重不会调整,因为 e^qδ𝒘q=0 对于 qq 如果 𝕄 是对角的。 在这种情况下,需要在权重消除后重新训练网络。

该算法总结在算法 5 中。 它比通过重量衰减消除更成功 删除网络中不必要的权重[97] 权重衰减消除了最小的权重。 通过将 𝕄=𝕀 代入上述算法[方程式 (7.62)],可以消除最小的权重。 由于通常需要较小的权重才能获得较小的 训练误差, 这通常不是一个好的近似值。

算法 5 剪枝最小重要权重
   训练网络以达到 Hmin;
   计算 𝕄1 的近似值;
   确定 qq 的值,其中 (δ𝒘,λ;q) 最小;
  如果  (δ𝒘,λ;q)Hmin  然后
      使用 δ𝒘=wq𝕄1e^q(e^q𝖳𝕄1e^q)1 调整所有权重;
      转到 2;
  别的
结尾;
  结束如果

为了说明修剪对具有隐藏层的网络的影响,考虑 XOR 函数 . 回想一下,它 可以用一个有两个神经元的隐藏层表示(图 5.17)。 对于随机的 初始权重,反向传播需要很长时间才能找到有效的解决方案, 并且具有更多 隐藏神经元往往表现得更好 [99] 参考   [99] 中的数值实验表明 使用两个隐藏神经元,只有大约 49% 的网络在 10000 个随机梯度下降训练步骤中学习了任务,而具有更多隐藏层神经元的网络更容易学习 (对于 n=10 个隐藏神经元,学习率为 98.5%)。 参考   [99] 中的数据也表明 经过修剪的网络,最初使用 n=10 个隐藏神经元进行训练,仍然表现出出色的 训练成功率(如果只有 n=2 个隐藏神经元保留,成功率为 83.3%)。 这些网络在 训练过程中被迭代地修剪,删除平均幅度最大的神经元。 之后 训练,权重和阈值被重置为它们的初始值,即训练开始前的值。

从参考 [99] 中描述的数值实验可以得出三个结论。 首先, 训练期间的迭代式修剪会挑选出隐藏层中具有初始权重和阈值的神经元 从而导致正确的决策边界 (彩票网络 影响 [99])。 其次,经过修剪的具有两个隐藏神经元的网络比仅使用两个隐藏神经元训练的网络具有更好的训练 成功率。 第三,尽管修剪了超过 50% 的隐藏神经元, 但具有 n=4 个隐藏神经元的网络的性能几乎与具有 n=10 个隐藏神经元的网络一样好(训练成功率为 97.9%)。 训练深度网络时,通常从隐藏层中的许多神经元开始,并修剪 其中高达 90% 的神经元。 这将导致小型训练后的网络,能够高效且可靠地进行分类。

7.6.3 丢弃

在这种正则化方案中,一些隐藏神经元在 训练期间被忽略。 在 训练算法的每一步(对于每个 小型批次,或对于每个 单个模式),随机忽略每个隐藏层中的 q 个神经元 通过将其输出设置为零,以及通过 仅更新剩余神经元的权重和阈值。 对于下一个步骤 训练算法, 忽略的神经元被放回,并且另一组隐藏神经元被 忽略。 完成训练后,所有隐藏神经元都被激活, 但它们的输出乘以 1q,以确保 局部场独立于 q,平均而言。

该方法的动机是,机器学习算法的性能通常可以通过结合多个学习尝试的结果来提高 [5, 95],例如 通过分别训练具有不同布局的网络,并对其输出进行平均。 但是,对于深度网络,这在计算上非常昂贵。 丢弃是一种试图更有效地实现相同目标的方法。 这个想法是,丢弃对应于有效地 训练大量不同的网络。 如果有 k 个隐藏神经元, 那么就有 2k 种不同的神经元组合可以被打开或关闭。 希望 网络以这种方式学习到输入数据的更稳健的特征,并且 这可以减少过拟合 . 在实践中,该方法与最大范数正则化一起使用 (第 7.6.1 节)。

7.6.4 扩展训练集

如果用固定数量的隐藏神经元在更大的训练集上训练网络,会观察到网络以更高的精度(更好的分类成功率)泛化。 原因是 当训练集更大时,过拟合会减少。 因此, 扩展增强 训练集

有时有人认为,深度神经网络在图像识别和 在很大程度上是由于更大的训练集。 一个例子是 ImageNet,一个包含超过 10 个 7 手动分类的图像的数据库,分为超过 20 000 个类别 [100]

增强训练集很昂贵,因为它需要人工标注。 另一种方法是扩展训练集 人工地 . 例如,对于数字识别(图 2.1),可以通过移动、旋转和剪切数字,或添加噪声来创建更多输入模式。

7.6.5 批归一化

批归一化 [101] 可以显著加快使用反向传播训练深度网络的速度。 想法是为每一层隐藏层移动和归一化输入数据,不仅对于 输入模式 这个想法是对每个隐藏层的输入数据进行移位和标准化,而不仅仅是输入模式 (第 6.3 节)。 这是针对每个单独完成的 小批量,以及给定层输入的每个组件(算法6)。 Vj(μ)j=1,,jmax 表示馈入相关层的神经元的状态,计算每个神经元的平均值和方差 的平均值和方差

V¯j =1mBμ=1mBVj(μ)andσB2=1mBμ=1mB(Vj(μ)V¯j)2, (7.63)

Vj(μ) 中减去平均值,然后除以 σB2+ϵ 通常,新的参数 允许在层与层之间有所不同,ϵ>0σB2 隐藏层6中的隐藏神经元:随着前一层中神经元的参数改变,它们的输出也会发生移动 ,从而迫使层γj中的神经元进行适应。 然而,在参考文献 一般来说,新参数允许在层与层之间不同,γj()βj()

批量归一化最初的动机是认为它减少了隐藏神经元可能遇到的协变量偏移 层中的隐藏神经元:随着前一层1中神经元参数的变化,它们的输出发生变化,从而迫使层中的神经元进行适应。 然而在参考文献中。  [102] 有人认为批量归一化不会减少内部协变量偏移,而是通过有效地平滑 能量景观来加快训练速度。

批量归一化有助于对抗梯度消失问题 因为它可以防止隐藏神经元的局部 字段增长。 这使得在深度网络中使用 sigmoid 函数成为可能,因为输入的分布保持归一化。 在深层网络中,因为输入的分布保持标准化。 有时有人认为批量归一化具有正则化效果,并且有人建议[101]批量归一化可以取代 drop out (第 7.6.3 节)。 也有人认为,批量归一化可能有助于网络更好地泛化,特别是如果每个 小批量包含随机选择的输入。 然后批量归一化对应于对每个隐藏神经元的输入进行随机变换(通过随机改变均值和方差)。 这可能有助于使学习更加稳健。 没有任何理论可以证明这些说法中的任何一个,但经验事实是,批量归一化通常可以加快训练速度。

算法 6 批量归一化
    j=1,,jmax  执行
      计算均值 V¯j1mBμ=1mBVj(μ)
      计算方差 σB21mBμ=1mB(Vj(μ)V¯j)2
      标准化 V^j(μ)(Vj(μ)V¯j)/σB2+ϵ
      计算输出为: g(γjV^j(μ)+βj)
   结束 

7.7 摘要

具有许多层隐藏神经元的 神经网络被称为 深度网络。 深度网络中的 误差反向传播 存在 梯度消失问题。 可以通过使用 ReLU 单元,以特定方式初始化权重,以及包含跳过层的连接的网络来减少这种问题。 但是 消失 或 梯度爆炸 仍然是一个基本难题,在训练的初始阶段减慢了学习速度。 然而,深度神经网络在目标识别方面取得了巨大成功 ,显著优于其他算法。

由于深度网络包含许多自由参数,因此深度网络往往会过度拟合训练数据,因此必须对网络进行正则化。 除了交叉验证 之外,还有其他方法可以对问题进行正则化:权重衰减、丢弃、剪枝和数据集增强

7.8 进一步阅读

深度网络遭受 灾难性遗忘:当我们在新数据上训练网络时 输入分布与网络最初训练的分布有很大不同,那么网络往往会忘记最初学到的内容。 进一步阅读的一个良好起点是参考文献   [103]

随机梯度下降算法(无论是否使用小批量)都对输入数据分布进行均匀随机采样。 正如第 6.3节中提到的,更频繁地对那些最初导致较大输出误差的输入进行采样可能是有利的 . 更一般地说,该算法可以使用其他标准更频繁地选择某些输入数据,其目标是加速学习。 它甚至可以通过要求专门标记某些类型的输入数据来建议如何最有效地增强给定的训练集( 主动学习) [104]

另一个问题是关于结构的 多层感知器的能量景观。 看来 局部最小值对于深度网络可能不像对于Hopfield网络那样重要,因为深度网络的能量函数往往比最小值具有更多的鞍点 [105],就像高斯随机函数一样 [106] 最近的一项研究探讨了感知器网络的多层布局与感知器特性之间的关系 能量景观 [107] 之间的关系。

最后,当所有输入模式在训练集中以大致相同的频率出现时,训练往往效果最好。 与人类不同,神经网络可能难以处理稀有输入模式。 然而,特殊的技术允许网络通过与很好地表示的输入分布的特征进行比较来识别罕见的模式 (少样本 学习 [108])。 用于少样本学习的标准算法使用无监督学习的元素(第 10.1 章)。

第 8 章 卷积网络

\begin{overpic}[scale={0.57}]{Fig_8_1} \end{overpic}
图 8.1: (a) 特征图、内核和感受野(示意图)。 特征图(隐藏神经元的 8×8 数组)是通过将内核(过滤器)在输入图像(此处为 10×10 像素数组)上平移获得的,这里使用 3×3 感受野。 (b) 卷积层包含多个特征图,每个特征图对应于一个给定内核,该内核检测输入图像部分中的特定特征。 在参考文献中的数字之后。 [5]

卷积网络 从 1980 年代就开始存在了。 在 Krizhevsky 等。 [109] 赢得 ImageNet 挑战赛 (第 8.5 节)之后,卷积网络得到了广泛的应用。 卷积网络最近取得成功的其中一个原因是,它们与具有相同数量神经元的全连接网络相比,连接更少。 这有两个 优点。 首先,这种网络显然训练成本更低。 其次,如上所述, 减少连接数可以规范化网络,降低过度拟合的风险 .

卷积神经网络被设计用于对象识别 以及 图像分类。 它们将图像 作为输入(图 7.1),而不仅仅是属性列表(图 5.1)。 卷积网络与人脑视觉皮层中的神经元网络具有重要的共同特性 [4] 首先,存在一个空间数组 输入终端 . 对于图像分析,这是图 8.1a )中所示的二维比特数组。 其次,神经元 被设计为检测图像的局部特征(例如边缘或角点)。 这些神经元从输入到输出所学习的映射被称为 特征图。 由于这些特征出现在图像的不同部分,因此使用相同的 内核 (或 过滤器 ), 对于图像的不同部分,始终使用相同的权重和阈值。 由于这些内核是局部的,并且它们以 平移不变的方式工作 ,与全连接网络相比,二维输入数组的神经元数量大大减少。 特征图是通过对内核进行卷积得到的 与输入图像。 因此,由多个特征图组成的层(对应于不同的内核)也被称为 卷积层,图 8.1b)。

卷积网络可以具有许多卷积层。 该想法是,额外的层可以学习更多抽象的特征(第 8.7 节)。 除了特征图之外,卷积网络还包含其他类型的层。 池化层 对卷积层的输出进行局部平均,以减少变量数量,从而加快学习速度。 卷积网络也可能包含全连接层。

8.1 卷积层

8.1(a) 说明了如何通过将输入图像与内核进行卷积来获得特征图 它读取输入图像的 3×3 部分 [5] 类似于神经科学中使用的术语,这个 3×3 数组被称为 局部感受野 卷积核。 卷积核在输入图像不同部分的输出构成了特征图 ,其中 8×8 一个隐藏神经元数组:神经元 V11 连接到输入图像左上角的 3×3 区域。 神经元 V12 连接到一个偏移的区域,如图 8.1a )所示,依此类推。 由于输入有 10×10 个像素,在这个例子中,特征图的维度是 8×8 重要的是,神经元 V11V12,以及该卷积层中的所有其他神经元, 共享它们的权重和阈值。 在图 8.1( a) 因此只有九个独立的权重,以及一个阈值。由于不同的隐藏神经元共享 权重和阈值,它们的计算规则是一个离散的 卷积卷积 [4]

Vij=g(p=13q=13wpqxp+i1,q+j1θ). (8.1)

在图 8.1(a ) 局部感受野每次移动一个像素。 有时使用更大的 步长 [s1,s2], 移动 感受野水平移动 s1 像素,垂直移动 s2 像素。 此外,局部 感受区域的大小不必为 3×3 如果我们假设它们的大小为 Q×P,并且 s1=s2=s, 规则 (8.1) 采用以下形式

Vij=g(p=1Pq=1Qwpqxp+s(i1),q+s(j1)θ). (8.2)

8.1(a ) 描述了一个二维输入数组。 对于彩色图像,有三个颜色 通道 , 在这种情况下,输入数组是三维的,输入位由三个索引标记:两个用于位置,最后一个用于颜色,xpqr 通常,人们将几个具有不同内核的特征图连接到输入层,如 8.1 图所示 ( b )。 不同的 内核检测输入图像的不同特征,例如一个内核检测边缘,另一个内核检测角点,等等。 为了解决这些额外维度的因素,人们将权重(和阈值)分组到更高维度的数组中 ( 张量 )。 卷积 的形式为:

Vijk=g(p=1Pq=1Qr=1Rwpqrkxp+s(i1),q+s(j1),rθk) (8.3)

(参见图 8.2)。 给定卷积层中的所有神经元具有相同的 阈值。 软件包 TensorFlow [110] 被设计用于高效地执行张量 操作,如公式 (8.3) 中所示。

\begin{overpic}[scale={0.57}]{Fig_8_2} \end{overpic}
图 8.2: 公式 (8.3) 中求和的说明。 每个特征图的感受野的维度为 P×Q×R 存在 K 个特征图,每个特征图的维度为 I×J

如果将几个卷积层组合在一起,那么随着向右移动,这些层中的神经元数量会减少。 为了避免这种情况,可以 填充 对图像(和卷积层)进行填充,方法是在图像的左侧和右侧添加设置为零的位行和位列 [4] 例如,在图 8.1a )中,通过在图像的左侧和右侧各添加一列,以及在底部和顶部各添加两行,可以得到与原始图像尺寸相同的卷积层。 一般来说,行和列的数量不必相等,因此填充量由四个数字 [p1,p2,p3,p4] 指定。

卷积层使用反向传播进行训练。 考虑最简单的情况,方程(8.1)。 和往常一样,我们使用链式法则来评估梯度:

Vijwmn=g(bij)bijwmn (8.4)

其中局部场为 bij=pqwpqxp+i1,q+j1θ bij 的导数通过应用规则(5.25)进行评估:

bijwmn =pqδmpδnqxp+i1,q+j1 (8.5)

这样就可以训练具有多个堆叠卷积层的网络。 跟踪求和边界非常重要。 为此,填充图像和卷积层会有所帮助,以便在不同层中保持相同的上限。

细节暂且不谈,特征图的基本原理是,该图以相同形式应用于图像的不同部分(平移不变性)。 . 这样,给定特征图中的每个权重都可以在图像的不同部分进行训练。 这实际上增加了 特征图的训练集,并防止过拟合

\begin{overpic}[scale={0.57}]{Fig_8_3} \end{overpic}
图 8.3: 用于对象识别和图像分类的卷积神经网络的布局(示意图)。 输入存储在 10×10 数组中。 它们馈送到一个卷积层,该层具有四个不同的特征图,具有 3×3 核、步长 [1,1] 和零填充。 每个卷积层连接到一个 2×2 最大池化层, 步长为 [2,2],并进行零填充。 在这些层和输出层之间是两个完全连接的 隐藏层。 参考文献中的图后   [5]

8.2 池化层

池化层处理卷积层的输出。 池化层中的一个神经元接收几个相邻特征图的输出,并将它们的输出压缩成一个数字 [5] 池化层没有权重或 与之相关的阈值。 最大池化单元 例如,在几个附近的特征图输出中取最大值。 相反, 人们可以计算图值的均方根 (L2- 池化)。 与卷积层一样,我们需要指定步幅和填充 用于池化层。 其他池化方法在 Ref. 中讨论。   [4]

通常多个特征图连接到输入。 池化对每个特征图独立进行 [5] 网络布局看起来 就像图 8.3 中示意性地显示的那样。 在此图中,池化层连接到许多完全连接的隐藏层 馈入输出神经元。 输出神经元的数量 因为有要识别的类别。 此布局类似于 Krizhesvky 等人。 [109] ImageNet 挑战赛 (第 8.5 节) 中使用的布局。

8.3 学习阅读手写数字

\begin{overpic}[scale={0.3}]{Fig_8_4} \end{overpic}
图 8.4: 来自 MNIST 手写数字数据集 [111] 的数字示例。 这些图像是使用 MATLAB 生成的。 数据集版权:Y. LeCun 和 C. Cortes。

8.4 显示了来自 MNIST 手写数字数据集 [111] 的模式。 该数据集源自美国国家标准与技术研究院 (NIST) 汇编的数据集,该数据集包含高中生和美国人口普查局雇员手写数字。 该数据包含 60 000 张数字图像, 每张图像都包含 28×28 像素,以及 测试集 10 000 个数字。 这些图像是灰度图像,具有 8 位分辨率,因此每个像素都包含一个介于 0 到 255 之间的数值。 数据库中的图像已预处理。 该过程在 MNIST 主页上描述。 每个来自美国国家标准与技术研究院的原始二进制图像被表示为一个 20×20 灰度图像,保留了数字的纵横比。 所得图像被放置在一个 28×28 图像中,以便图像的质心与它的几何中心重合。 这些预处理步骤提高了学习算法的性能。

本节的目的是展示如何将迄今为止描述的原理应用于神经网络,以学习 MNIST 数据,并使分类误差降至最低 ,参考文献 [5] 正如第 6 章所述,将数据集划分为 训练集 和一个 验证集 ,这里分别有 50 000 个数字和 10 000 个数字 [5] 验证集用于 交叉验证。 测试 数据集允许测量 训练后的分类误差。 为此,必须使用一个未参与训练的数据集。 正如第 6.3 节所述,输入通过从每个输入图像中减去在整个训练集上平均的平均图像进行进一步预处理 [公式 (6.21)]。

在训练神经网络时,寻找合适的参数值和网络布局是主要难题之一,通常需要大量的实验。 有一些寻找特定参数的方案 [112],但总的来说,仍然需要不断尝试 [5] 首先考虑一个具有一个隐藏层,使用 ReLU 激活函数(第 7.3 节), 以及一个具有十个输出的 Softmax 输出层(第 7.5 节)Oi 和 能量函数 (7.38 ) 的网络。 输出 Oi 被解释为输入网络的模式属于类别 i 的概率。 这些网络使用带有 动量的随机梯度下降法进行训练,方程 (6.31 )。 学习率 设置为 η=0.001,并且 动量常数设置为 α=0.9 小批量大小 [方程 (6.18 )] 等于 8192。 交叉验证和提前停止的实现方式如下: 在 训练过程中,算法会跟踪迄今为止观察到的最小验证误差。 当验证误差超过最小值指定的次数时,训练停止,在本例中为 5 次。

\begin{overpic}[scale={0.57}]{Fig_8_5} \end{overpic}
图 8.5: MNIST 训练集(实线)和验证集(虚线)的能量函数,全连接隐藏层具有 30 个神经元,以及类似的算法,但隐藏层具有 100 个神经元。 数据经过平滑处理,图是示意图。 x 轴表示迭代次数。 一次迭代对应于输入一个样本批次。 一个 epoch 包含 50000/81926 次迭代。 示意图,基于 Oleksandr Balabanov 进行的模拟。
\begin{overpic}[scale={0.57}]{Fig_8_6} \end{overpic}
图 8.6: MNIST 数据集中手写数字进行分类的卷积网络(示意图)。
\begin{overpic}[scale={0.57}]{Fig_8_7} \end{overpic}
图 8.7: 来自 MNIST 测试集的一些手写数字,被一个卷积网络错误分类,该网络的整体分类准确率为 98%。 目标(右上角),网络输出(右下角)。 来自 Oleksandr Balabanov 的数据。 参考文献中的一个图形。   [5], 参见图 2(c) 中的参考文献。  [111]

8.5 显示了 训练和 验证能量 在训练过程中如何下降,对于具有 30100 个隐藏神经元的网络 [5]. 一个时期 相当于 应用 p 个模式或 p/mB=50000/8192 个迭代(第 6.1 节)。 能量 对于具有 100 个隐藏神经元的网络略低。 但可以观察到 过拟合 在这两种情况下:经过多次训练步骤后, 验证能量远高于 训练能量。 早停导致较大的网络在 135 个时期后中止训练,这对应于 824 个迭代。 对于具有 100 个隐藏神经元的网络,最终的分类准确率约为 97.2%。

通过添加更多隐藏层来提高分类精度很困难,很可能是因为 网络过度拟合数据(第 6.4 节)。 随着添加更多隐藏神经元,这个问题变得更加严重。 通过正则化(第 7.6 节)减少了网络过拟合的趋势。 对于具有 100 个 ReLU 神经元的一个隐藏层的网络,L2-正则化 提高 分类精度接近 98%。

卷积网络可以优化以产生更高的分类精度 比上面提到的要高。 一个卷积网络,具有一个带有 20 个特征图的卷积层,一个最大池化层 ,以及一个完全连接的隐藏层 具有 100 个 ReLU 神经元,类似于图 8.6 中示意性地显示的网络, 经过 60 个 epoch 的训练后,分类精度仅略高于 98%。 添加第二个卷积层和批次归一化(第 7.6.5 节) 经过 30 个 epoch 后,分类精度为 98.99%(此布局类似于 MathWorks [113] 中描述的布局)。 通过调整参数和网络布局,以及使用 卷积神经网络的集成 [111],可以进一步提高准确率。 通过这种方式找到的最佳分类精度为 99.77% [114] 人类也很难对几个 MNIST 数字进行分类(图 8.7), 因此我们得出结论,卷积网络确实非常有效。

上面的例子还表明,找到合适的参数和网络布局需要大量的实验,并且需要很长的训练时间才能达到最佳的分类精度。 可以说,人们已经达到了一个阶段 收益递减 因为分类 误差降到百分之一以下。

8.4 应对输入分布的变形

MNIST训练的卷积神经网络 能够多好地识别你自己的手写数字? 8.8( a ) 显示了哥德堡大学同事绘制的数字, 这些数字经过了与MNIST数据相同的预处理。

\begin{overpic}[scale={0.57}]{Fig_8_8} \end{overpic}
图 8.8: (a) 非 MNIST 手写数字,像 MNIST 数字一样进行预处理。 b) 相同的数字,除了笔画的粗细进行了规范化(见正文)。 数据来自 Oleksandr Balabanov。

使用MNIST训练的卷积神经网络 识别这些数字,得到的分类精度约为 90%,明显低于 前面的部分提到的分类错误。

一个可能的原因是 图 8.8a ) 的笔画更细 比图8.4中的笔画细。 在参考文献   [115] 中建议 笔画粗细的差异可能会混淆旨在读取手写文本的算法[116] 有不同的方法来规范化手写文本的笔画粗细。 将参考文献   [116] 中提出的方法应用于我们的数字,得到图 8.8b )。 该算法有一个自由参数,T, 指定线条粗细。 在 图 8.8b )中,它被取为 T=10,接近于 MNIST 数字的平均线条粗细,大约为 T9.7 如果我们在具有归一化线条粗细的 60 个数字数据集上运行一个 MNIST 训练过的卷积网络,它只会在两个数字上失败。 这对应于大约 97% 的分类精度,还不错 - 但不如第 8.3 节中的最佳结果。 但请注意,这个分类精度的估计并不精确,因为测试集只有 60 个数字。 为了获得更好的估计,需要更多测试数字。

当然,问题是我们的非 MNIST 手写数字与 MNIST 数据中的数字之间是否存在其他显着差异。 无论如何,本节的结果都指出了一个至关重要的点。 我们已经看到,卷积网络可以被训练来表示输入模式的分布 具有非常高的精度。 但是,该网络可能无法在 具有稍微不同的输入分布的数据集上运行良好,可能是因为模式的预处理方式不同, 或者因为它们以其他方式略微变形。

8.5 深度学习用于目标识别

深度学习 在过去的几年中变得如此流行,因为深度卷积网络擅长识别图像中的目标。 8.9 显示了数据采集车拍摄的电影的一帧。 卷积网络经过训练可以识别物体,并通过围绕物体的边界框来定位物体。

\begin{overpic}[scale={0.375}]{figures/png/Fig_8_9.png} \end{overpic}
图 8.9: 使用深度卷积网络进行目标识别。 图中显示的是来自 Zenseact 公司数据采集车拍摄的电影的一帧。 神经网络识别行人、汽车和卡车,并通过边界框将它们定位在图像中。 版权所有 © Zenseact AB 2020. 经许可转载。

卷积神经网络在该任务中表现出色,正如 ImageNet 大规模视觉识别挑战 (ILSVRC) [117],一个基于 ImageNet 的图像目标识别和定位比赛 数据库 [100] 挑战赛基于 ImageNet。 训练集包含超过 106 张图像,手动分类为 1000 个类别中的一个。 每个类别大约有 1000 张图像。 验证集 包含 50000 张图像。

ILSVRC 挑战包含多个任务。 一项任务是 图像分类 ,列出图像中发现的对象类别。 一种常见的准确性衡量方法是所谓的 top-5 错误 用于此分类任务 . 该算法列出了具有 最高 softmax 输出的五个对象类别。 如果 标注的类别在这五个类别中,则结果被定义为正确。 错误等于错误分类图像的比例。 为什么不简单地判断最有可能的类别是否正确? 原因是 ImageNet 中的图像 ImageNet 数据库是 由单个类别标识符进行标注。 通常情况下,这并不唯一。 例如,图 8.9 中的图像不仅显示了一辆汽车,还显示了树木,但图像 用类别标签标注 汽车。 通过考虑前五名 Softmax 输出,并检查 是否 标注的类别就在其中。

\begin{overpic}[scale={0.57}]{Fig_8_10} \end{overpic}
图 8.10: ImageNet 挑战中最小的分类错误 [117] 截至 2014 年的数据来自参考文献 [117] 2015 年的数据来自参考文献   [92], 2016 年的数据来自参考文献   [118], 2017 年的数据来自参考文献 [119] 从 2012 年起,卷积神经网络实现了最小的误差。 摘自 Goodfellow 等人 et al. [4] 中的图 1.12。

ILSVRC 挑战中的任务比第 8.3 节中描述的数字识别任务要困难得多。 原因之一是 ImageNet 类别被组织成一个深度子类别层次结构。 这导致了高度特定的子类别,这些子类别可能难以区分。 该算法必须 对类似子类别之间的细微差异非常敏感。 我们说该算法必须具有很高的 类间变异性 [120] 另一方面,同一子类别中的不同图像可能看起来很不相同。 该算法仍应识别它们 为相似,属于同一类别。 换句话说,该算法应该具有较小的 类内变异性 [120]

自 2012 年以来,基于深度卷积网络的算法赢得了 ILSVRC 挑战赛。 8.10 显示,直到 2017 年,该挑战赛的最后一年,错误率显着降低。 我们在前面的章节中看到,深度网络很难训练。 那么,这些算法是如何如此有效地工作的呢? 一般认为,深度卷积网络的近期成功主要归功于三个因素。

\begin{overpic}[scale={0.57}]{Fig_8_11} \end{overpic}
图 8.11: 摘自 xkcd.com/1897,根据知识共享署名-非商业性使用 2.5 许可证。

首先,现在有更大更好的带注释的 可用训练集。 ImageNet 就是一个例子。 优秀的训练数据 现在被认为是最重要的因素之一。 开发自动驾驶汽车软件和 有助于避免事故的系统的公司明白,良好的训练集是必不可少的。 同时,创建高质量的训练数据也是一个挑战,因为必须 手动 收集和 对数据进行标注(图 8.11)。 这很昂贵,也是因为为了减少过拟合,拥有尽可能大的数据集非常重要 . 此外,必须在收集的数据中追求较大的变异性。 其次,现在的硬件好多了。 深度网络如今是在单台或多台 图形处理器 (GPUs)。 甚至有专门的芯片用于此目的。 第三,改进的正则化 技术(第 7.6 节)有助于对抗过拟合 ,以及跳跃连接 (第 7.4 节)使网络 不太容易受到梯度消失问题的困扰 (第 7.2 节)。

2012 年的获胜算法基于一个具有五个卷积层和三个全连接层的网络,使用 dropout、ReLU 激活函数和数据集增强 [109] 该算法在 GPU 处理器上实现。 2013 年 ILSVRC 挑战赛也由一个 22 层的卷积网络 [121] 获胜。 尽管如此,该网络的自由参数(权重和阈值)比 2012 年的网络少得多:4×10 6 而不是 60 × 10 6. 2015 年,获胜算法 [92] 有 152 层。 布局中的一个重要新元素是允许跳过层的连接(第 7.4 节)。 2016 年 [122] 和 2017 年 [119] 最佳算法使用 卷积网络的集成,其中分类基于输出的集成平均值。

8.6 摘要

卷积网络可以被训练来识别图像中的物体,具有很高的准确性。 卷积网络的一个优点是,与具有相同数量神经元的全连接网络相比,它们的权重更少,并且给定特征图的权重是在输入图像的不同部分上训练的,有效地增加了 训练集的大小。 这有助于防止过拟合。 另一种观点是,隐藏的神经元被迫就权重的特定选择达成一致,它们必须妥协。 这产生了更稳健的训练结果。

有时人们会说卷积网络现在比人类更强大,因为它们在识别物体时具有更低的 分类错误率低于人类 [123] 这个以及类似的陈述指的是一个实验,该实验表明人类 在 ImageNet 数据库中识别物体的分类错误率。 ImageNet 数据库约为 5.1% [124],低于最新的卷积神经网络算法(图 8.10)。

这种观点并非没有问题,原因有以下几点。 首先,文章 [123] 提到了 2015 年 ILSVRC 竞赛,其中最高得分非常接近,而且人们一直在争论以不同的方式解释竞赛规则是否能让参赛者获得优势。 其次,更重要的是,很明显这些算法的学习方式与人类截然不同。 这些算法可以检测局部特征,但由于这些卷积网络依赖于平移不变性 , 它们不容易理解全局特征,可能会将豹纹沙发误认为豹子 [125] 包含更多豹纹沙发到训练集中可能会有所帮助,但根本的困难依然存在:平移不变性对卷积网络可以学习的内容施加了限制 [125] 从更根本的角度来看,人们可能会争论说人类的学习方式不同,是通过抽象而不是通过非常庞大的训练集来进行学习。

我们还发现卷积网络对输入数据的微小变化很敏感。 卷积网络擅长学习给定 输入分布的属性,但它们可能难以识别从略微不同的分布中采样的模式,即使这两个分布在人眼看来非常相似。 还要注意,这个问题不能通过 交叉验证,因为训练 验证集都来自同一个 输入分布,但这里我们关注的是网络应用于 与训练时不同的输入分布来解决。

这里还有一个例子说明了这一点:参考文献的作者   [126] 使用来自 ImageNet 数据集,在每个像素上独立地添加少量噪声 (白噪声 ) 之前对训练进行微调。 该网络无法识别以另一种方式轻微扰乱的图像,即通过将少量像素设置为白色或黑色。 但是当我们观察图像时,我们毫不费力地就能识别出噪音。

参考资料   [127, 128] 说明了卷积网络 [5] 的一些有趣的失败案例。 塞格迪 等人。 [127] 证明了卷积网络划分输入空间的方式 会导致意想不到的结果。 作者 对网络能够以高置信度正确分类的图像进行了一些微小的扰动。 扰动并非随机,而是专门设计用于将输入模式推过决策边界。 原始图像和扰动图像之间的差异 ( 对抗样本) 人眼无法识别,但网络却以高置信度错误地分类了扰动后的图像 [127] 这反映了决策边界 在高维输入空间中总是接近的 .

图 1 在参考文献   [128] 显示的图像对于人眼来说完全无法识别。 然而,卷积网络以很高的置信度对这些图像进行了分类。 这说明,如果输入远离 训练分布,网络可能会做什么,我们无法预料。 不幸的是,网络有时可能非常自信,但却是错误的。 尽管存在这些问题,但深度卷积网络在过去几年中在图像分类方面取得了巨大的成功,并且在工业和科学领域得到了广泛的应用。

最后,深度学习的基本机制已得到很好的理解,但仍有许多悬而未决的问题。 可以说, 深度学习的理论 有些落后于相关的实际成功,尽管近年来取得了一些进展。

8.7 进一步阅读

Nielsen 的在线书籍 [5] 是卷积神经网络的极佳介绍, 它引导读者完成编程卷积网络以识别 手写数字所需的所有步骤。 Nielsen 的章节 深度学习 [5] 是第 8.3 节的主要来源。

卷积层中的隐藏层实际上计算什么? 与输入直接耦合的特征图检测局部特征,例如边缘或角。 然而,尚不清楚隐藏卷积层如何帮助网络学习。 某个隐藏层中的神经元对哪些输入特征反应最强? 选择最大化给定层中神经元输出的输入模式 [129, 130] 揭示了难以解释的复杂几何结构。 本书封面上展示了一个例子,参见练习 8.7。

有人建议,当数据量足够大时 [131],通常用于自然语言处理的更通用模型可能在图像处理任务中胜过卷积网络。 这些模型的一个优点是,与卷积网络不同,它们不依赖于平移不变性。

第 9 章 监督循环网络

感知器的布局 在前几章中分析的特殊情况。 所有连接都是单向的,并且只连接到右边的层,因此,例如,第 i 层中第 个神经元的更新规则变为

Vi()=g(jwij()Vj(1)θi()). (9.1)

反向传播 算法依赖于这种 前馈 布局。 这意味着导数 Vj(1)/wmn() 为零。 这确保了输出是输入的嵌套函数,这反过来又意味着反向传播算法(第 6 章)的简单迭代结构。

在某些情况下,有必要或方便使用没有这种简单布局的网络。 The 在第一部分I中讨论的 Hopfield 网络是所有连接都对称的例子。 更一般的网络可能具有前馈布局,其中 反馈 ,如图 9.1 所示。 这些网络被称为 循环网络相关联。 反馈可以以多种不同的方式起作用:从输出层 到隐藏神经元 例如,或者在给定层的神经元之间可能存在连接。 9.1 中的神经元 34 是 输出神经元 ,它们与 目标,就像第 5 章到 7 章一样。 循环网络的布局非常通用,但由于反馈,我们必须考虑如何训练这些网络。

与将输入到输出映射表示为嵌套激活函数的多层感知器不同,循环网络用作 动态网络 , 其中迭代索引 t 替换层索引

Vi(t)=g(jwij(vv)Vj(t1)+kwik(vx)xkθi(v))fort=1,2,. (9.2)

请参见图 9.1,了解不同权重的定义, 参数 θi(v) 阈值。 公式 (9.2) 与 Hopfield 网络的确定性 McCulloch-Pitts 动力学类似 和玻尔兹曼机 [参见 方程(1.5)]。 与 Hopfield 网络(练习 2.10)的情况类似,人们也可以考虑 一个连续的网络动力学 :

τdVidt=Vi+g(jwij(vv)Vj(t)+kwik(vx)xkθi(v)), (9.3)

具有时间常数 τ 我们将在稍后看到,假设动力学在 t 中是连续的,正如等式 (9.3) 中那样,为什么很方便。

循环网络可以以不同的方式学习。 一种可能性是 使用 训练集的成对 [𝒙(μ),𝒚(μ)]μ=1,,p 为避免与迭代索引 t 混淆, 目标在本节中用 y 表示。 我们从该集合中提供一个模式,并针对给定的 𝒙(μ) 运行动态 (9.2) 或 (9.3),直到达到稳定状态 𝑽 (如果这种情况没有发生,则训练失败)。 然后,人们使用能量函数 通过一个梯度下降步骤调整权重

H=12k(Ek)2where Ek={yk(μ)Vkif Vk is an output neuron,0otherwise. (9.4)

此方程式中的星号表示 所有变量在稳态下,即在 𝑽=𝑽 处计算。 迭代这些步骤,人们输入另一个模式 𝒙(μ),找到稳态 𝑽,调整权重,依此类推。 而不是为所有输入模式定义能量函数 就均方输出误差而言,也可以使用负对数似然函数(7.44。 继续迭代这些步骤,直到稳态输出产生正确的 目标。 这让人想起第 5 章到 7 章中讨论的算法。

\begin{overpic}[scale={0.57}]{Fig_9_1} \end{overpic}
图 9.1: 带有反馈连接的网络。 神经元 12 是隐藏神经元。 从输入 xk 到 神经元 Vi 的权重用 wik(vx) 表示,从 神经元 Vj 到神经元 Vi 的权重为 wij(vv) 神经元 34 是输出神经元, 具有规定的目标值 yi 为了避免与迭代索引 t 混淆,本章将目标用 y 表示。

另一种可能性是输入和 目标随时间 t 变化,而网络动力学在运行。 这允许解决 时间分类任务 该网络在输入序列集 𝒙(t) 和相应的目标序列集 𝒚(t) 上进行训练。 这样,循环网络就可以翻译 书面文本或识别语音。 该网络可以通过展开其时间动力学来训练,如第 9.2 节所述,尽管该 算法存在第 7 章中讨论的梯度消失问题。

9.1 循环反向传播

本节总结了如何将算法 4 推广到具有反馈连接的循环网络。 回想图 9.1 中所示的循环网络。 神经元 Vi 具有 平滑的激活函数,它们通过 权重 wij(vv) 连接。 多个神经元可以链接到输入 xk(μ), 权重为 wik(vx) 其他神经元是输出单元 与之关联的 目标值 yi(μ)

一个人将动力学视为随时间连续的,方程 (9.3),并假设 𝑽(t) 进入稳态

𝑽(t)𝑽so thatdVidt=0. (9.5)

方程 (9.3) 意味着

Vi=g(jwij(vv)Vj+kwik(vx)xkθi(v)), (9.6)

并且假设 𝑽 是一个 线性稳定 稳态 动态 (9.3),因此小的扰动 δ𝑽 远离 𝑽 会随时间衰减。

同步 离散动力学 (9.2) 可能表现出不希望的稳定周期解 [133],如第 1.3 节所述。 这是使用连续动力学 (9.3) 的一个原因,但是 在这种情况下,也不能保证收敛到稳态。

方程 (9.6) 是 𝑽 组件的非线性自洽条件,通常难以求解。 然而,如果稳态 𝑽 是稳定的,我们可以使用动力学 (9.3) 自动选出稳态解 𝑽 此解决方案取决于模式 𝒙(μ) 请注意,上标 (μ) 在方程 (9.5) 和 (9.6) 以及本节的其余部分中都被省略了。

目标是找到权重,以便输出在稳态时给出正确的 目标值。为此,人们对能量函数使用梯度下降 (9.4)。 遵循参考文献   [1],首先考虑如何调整权重 wij(vv)

δwmn(vv)=ηHwmn(vv)=ηkEkVkwmn(vv). (9.7)

通过对方程 (9.6) 求导,计算出 𝑽 的梯度:

Viwmn(vv)=g(bi)biwmn(vv)=g(bi)(δimVn+jwij(vv)Vjwmn(vv)). (9.8)

这里 bi=jwij(vv)Vj+kwik(vx)xkθi(v) 是稳态下的局部场。 方程 (9.8) 是梯度的自洽方程,与我们在第 6 章中找到的显式表达式不同。 差异的原因是 递归网络存在反馈。

由于方程 (9.8) 在梯度上是线性的,因此可以通过矩阵求逆来求解,至少在形式上可以求解。 就具有元素的矩阵 𝕃 而言

Lij=δijg(bi)wij(vv), (9.9)

方程 (9.8) 可以写成

jLijVjwmn(vv)=δimg(bi)Vn. (9.10)

如果 𝕃 是可逆的,则将 i(𝕃1)ki 应用于 两边。 利用 i(𝕃1)kiLij=δkj 的事实,我们可以发现:

Vkwmn(vv)=(𝕃1)kmg(bm)Vn. (9.11)

将此结果代入 (9.7),我们得到:

δwmn(vv)=ηkEk(𝕃1)kmg(bm)Vn. (9.12)

此学习规则 可以写成反向传播规则 (6.10) 的形式,通过引入 误差

Δm=g(bm)kEk(𝕃1)km. (9.13)

然后学习规则 (9.12) 采用以下形式

δwmn(vv)=ηΔmVn. (9.14)

如果没有循环连接,则 Lij=δij 在这种情况下, 方程 (9.13) 简化为标准表达式 (6.6b),练习 9.1。

权重 wmn(vx) 的学习规则以类似的方式推导出来。 结果是:

δwmn(vx)=ηΔmxn. (9.15)

只有当矩阵 𝕃 可逆时,学习规则 (9.14) 和 (9.15) 才是明确定义的。 否则解 (9.11) 不存在。 此外,矩阵求逆是一个昂贵的操作。 正如第 5 章所述,可以尝试通过迭代求逆来避免此问题。 技巧 [1] 是为 Δi 写下一个动态方程,该方程具有一个稳态 在方程 (9.13) 的解中:

τddtΔj=Δj+g(bj)Ej+iΔiwij(vv)g(bj). (9.16)

作为练习(练习 9.2),请验证动态 (9.16) 是否具有满足方程 (9.13) 的稳态。 方程 (9.16) 以一种强调 (9.16) 和 (9.3) 表现出相同的形式编写 对偶性 就像算法 4 一样,在神经元状态的前向传播和误差的反向传播之间 . 方程 (9.16) 中的总和与算法 4 中误差的递归具有相同的形式,只是这里没有层索引

方程 (9.16) 允许 稳态 (9.13)。 但是 Δi(t) 是否收敛于 Δi 为了 收敛,必须稳态是线性稳定的。 这种情况是否发生取决于 线性稳定性分析 [85] 人们会问:在方程 (9.16) 下,与稳态的微小偏差是会增加还是减少? 换句话说,如果我们写

𝑽(t) =𝑽+δ𝑽(t)and𝚫(t)=𝚫+δ𝚫(t), (9.17)

δ𝑽(t)δ𝚫(t) 的大小会增长吗? 为了回答这个问题,我们将此 安萨兹 插入到 (9.3) 和 (9.16) 中, 并线性化:

τddtδVi=δVi+g(bi)jwij(vv)δVj jLijδVj, (9.18a)
τddtδΔj=δΔj+iδΔiwij(vv)g(bj) iδΔig(bi)Lij/g(bj). (9.18b)

公式 (9.18a) 表明:δ𝑽(t) 的范数是否增长取决于矩阵 𝕃 的特征值。 我们说,如果 𝕃 的所有特征值都具有 负实部,则 𝑽 是公式 (9.3) 的线性稳定稳态。 在这种情况下 |δ𝑽(t)|0 如果 至少一个特征值具有正实部,则 |δ𝑽| 增长。 在这种情况下,我们说 𝑽 是线性不稳定的。 由于具有元素 g(bi)Lij/g(bj) 的矩阵与 𝕃 具有相同的特征值, 因此,如果 𝑽 是 (9.3) 的稳定稳态,则 𝚫 是 (9.16) 的稳定稳态。 如果稳态不稳定,算法将不会收敛。

总之,如果网络有反馈连接,则不能保证循环反向传播 与分层前馈网络的误差反向传播 (算法 4) 相似, 有两个区别。 首先,非线性网络动力学 不再是 简单的输入到输出映射,其中嵌入了激活函数,而是一个非线性动力学,它可能(也可能不)收敛到稳态。 其次,反馈产生了线性自洽方程 稳态梯度Vj/wmn,可以被视为误差双动态的稳态条件。

本节的主要结论是 收敛 训练(对于没有反馈的层级前馈网络,循环反向传播简化为随机梯度下降,算法 4,参见习题 9.1)。 这解释了为什么 随机梯度下降主要用于具有前馈布局的多层网络。 该算法往往会对 具有反馈的网络失败。 然而,可以通过在时间上展开动力学来消除循环网络中的 反馈。 这将在下一节中介绍。

9.2 时间反向传播

循环神经网络可用于学习顺序输入,如语音识别和机器翻译。训练集 由时间序列 [𝒙(t),𝒚(t)] 组成 输入和 目标。该网络在序列上进行训练,并学习 预测 目标。 在这种情况下,布局与 上一节中描述的布局不同。 主要有两个区别。 首先,输入和 目标 取决于 t,并使用离散时间更新规则。其次,独立的输出神经元 Oi(t) 被添加到布局中。 更新规则采用以下形式

Vi(t) =g(jwij(vv)Vj(t1)+kwik(vx)xk(t)θi(v)), (9.19a)
Oi(t) =g(jwij(ov)Vj(t)θi(o)). (9.19b)

输出神经元的激活函数 Oi 可能与 隐藏神经元不同 Vj 一种可能性是使用 softmax 函数作为输出 [134, 135] 对于隐藏神经元,人们通常使用 tanh 激活。

\begin{overpic}[scale={0.57}]{Fig_9_2} \end{overpic}
图 9.2: 左侧: 具有一个输入端、一个隐藏神经元和一个输出神经元的循环神经网络。 右侧: 相同的网络,但在时间上展开。 权重 w(vv) 保持不变,如上图所示,权重 w(vx)w(ov) 也保持不变(未绘制)。 参考文献中图 7 和图 8 之后   [135]

为了训练具有时间相关输入和 具有动力学 (9.19) 的循环神经网络,人们使用 时间反向传播 . 想法是将网络 在时间上展开以消除反馈。 这样做的代价是,我们以这种方式获得大型网络,原始神经元的副本数量与时间步长相同。

该过程在图 9.2 中对具有一个隐藏神经元的循环网络 进行了说明,一个输入端,一个输出神经元 . 展开的网络有 T 个输入和输出。 它可以用通常的方式进行训练 随机梯度下降。 这些 错误使用反向传播计算,如算法 4 中所示, 但这里错误是按时间反向传播的,而不是从一层到另一层。 能量函数是所有时间步长的平方误差之和

H=12t=1TEt2withEt=ytOt. (9.20)

可以使用负对数似然函数 (7.38), 但这里我们使用平方 输出误差函数 (9.20)。 在我们的示例中只有一个隐藏神经元,输入和输出也是一维的。 在这里和以下,我们将时间参数写为下标,Ot 而不是 O(t) 等等,因为没有混淆时间索引和其他下标的风险。

首先考虑如何调整权重 w(vv) 梯度下降 (5.24) 产生

δw(vv)=ηt=1TEtOtw(vv)=ηt=1TΔtw(ov)Vtw(vv). (9.21a)

这里

Δt=Etg(Bt) (9.22)

是一个输出误差, 以及 Bt=w(ov)Vt1θ(o) 输出神经元的局部场 在时间 t [方程 (9.19)]. 方程 (9.21a) 类似于递归反向传播的学习规则, 方程 (9.7) 和 (9.8), 但导数 Vt/w(vv) 的计算方式不同。 方程 (9.19a) 产生递归

Vtw(vv)=g(bt)(Vt1+w(vv)Vt1w(vv)) (9.23)

对于 t1 由于 V0/w(vv)=0, 方程 (9.23) 意味着:

V1w(vv) =g(b1)V0,
V2w(vv) =g(b2)V1+g(b2)w(vv)g(b1)V0,
V3w(vv) =g(b3)V2+g(b3)w(vv)g(b2)V1+g(b3)w(vv)g(b2)w(vv)g(b1)V0
VT1w(vv) =g(bT1)VT2+g(bT1)w(vv)g(bT2)VT3+
VTw(vv) =g(bT)VT1+g(bT)w(vv)g(bT1)VT2+

方程 (9.21a) 表示我们必须对 t 求和。重新分组此和中的项得到:

Δ1V1w(vv)+Δ2V2w(vv)+Δ3V3w(vv)+
=[Δ1g(b1)+Δ2g(b2)w(vv)g(b1)+Δ3g(b3)w(vv)g(b2)w(vv)g(b1)+]V0
+[Δ2g(b2)+Δ3g(b3)w(vv)g(b2)+Δ4g(b4)w(vv)g(b3)w(vv)g(b2)+]V1
+[Δ3g(b3)+Δ4g(b4)w(vv)g(b3)+Δ5g(b5)w(vv)g(b4)w(vv)g(b3)+]V2
+[ΔT1g(bT1)+ΔTg(bT)w(vv)g(bT1)]VT2
+[ΔTg(bT)]VT1.

为了将学习规则写成通常的形式,我们定义 误差 δt 递归地:

δt={ΔTw(ov)g(bT)for t=T,Δtw(ov)g(bt)+δt+1w(vv)g(bt)for 0<t<T. (9.24)

那么学习规则 (9.21a) 就采取以下形式

δw(vv)=ηt=1TδtVt1, (9.25)

就像方程 (6.9),或者像算法 4 中的误差递归一样。 递归 (9.24) 中的因子 w(vv)g(bt1)T 很大时,在 δt 中产生了许多此类因子的乘积,这与第 7.2 节中对多层感知器的描述完全一致。 这意味着 循环网络的训练会受到不稳定梯度的影响,就像多层感知器的反向传播一样:如果因子 |w(vv)g(bp)| 小于 1,则当t变小时,错误δt变得非常小(消失梯度问题)。这意味着隐藏神经元的早期状态 不再对学习做出贡献,导致网络忘记了它所学习的关于早期输入的知识。 |w(vv)g(bp)|>1 时,另一方面,爆炸梯度使学习变得不可能。 总之,梯度不稳定 在循环神经网络中, 与多层感知器中的情况非常相似。 因此, 对于 训练循环神经网络的困难将在 第 9.3 节中更详细地讨论,另见参考文献。   [136]

上述算法的一个略微变体(截断的反向传播时间 )受爆炸梯度问题的困扰较少。 其思想是通过截断记忆来抑制爆炸梯度。 这是通过限制 误差向后传播的时间,误差被计算回 Tτ,而不是更远,其中 τ 是截断时间 [2] 自然地,这意味着 无法学习长时间相关性。

权重 w(vx) 的学习规则以类似的方式获得。 方程 (9.19a) 给出了递归

Vtw(vx)=g(bt)(xt+w(vv)Vt1w(vx)). (9.26)

这与方程 (9.23) 完全相同,只是 Vt1xt 替换了。 因此,我们有

δw(vx)=ηt=1Tδtxt. (9.27)

w(ov) 的学习规则更容易推导。 从等式 (9.19b) 中,我们通过对 w(ov) 进行微分得到:

δw(ov) =ηt=1TEtg(Bt)Vt=ηt=1TΔtVt. (9.28)

如何调整 阈值 θ(v) 调整? 经过上述推导,我们发现必须用 1 替换等式 (9.25) 中的 Vt1 它对输出阈值也以相同的方式起作用。

算法 7 时间反向传播
   初始化权重 wmn(vv)wmn(vx)wmn(ov) 和阈值 θm(v)θm(o)
  对于 τ=1,,τmax 
      选择输入序列 𝒙(1),,𝒙(T)
      初始化 Vj(0)=0
      为了  t=1,,T 
         前向传播:
         bi(t)jwij(vv)Vj(t1)+kwik(vx)xk(t)θi(v)Vi(t)g[bi(t)]
         计算输出:
         Bi(t)jwij(ov)Vj(t)θi(o)Oi(t)g[Bi(t)]
      结束 为了
      计算 t=T 的错误(目标 yi):
      Δi(T)[yiOi(T)]g[Bi(T)]δj(T)iΔi(T)wij(ov)g[bj(T)]
      为了  t=T,,2 
         反向传播: Δi(t)=[yiOi(t)]g[Bi(t)]
         δj(t1)iΔi(t)wij(ov)g(bj(t))+iδi(t+1)wij(vv)g(bj(t))
      结束 为了
      δwmn(vv)=0δwmn(vx)=0δwmn(ov)=0δθ(v)=0δθ(o)=0
     对于 t=1,,T 
        δwmn(vv)=δwmn(vv)+ηδm(t)Vn(t1)
        δwmn(vx)=δwmn(vx)+ηδm(t)xn(t)
        δwmn(ov)=δwmn(ov)+ηΔm(t)Vn(t)
        δθm(v)=δθm(v)ηδm(t)
        δθm(o)=δθm(o)ηΔm(t)
     结束对于
      调整权重和阈值: wmn(vv)=wmn(vv)+δwmn(vv),;
  结束对于

为了使公式保持简单,我们推导了单隐藏神经元、单输出神经元以及单分量输入的算法,这样我们就可以省略掉对不同隐藏神经元进行索引的部分 ,以及不同的输入和输出组件。 如果我们考虑多个隐藏神经元和输出神经元 和多维输入, 方程式的结构保持完全相同,只是在这些索引上增加了一些额外的求和:

δwmn(vv) =ηt=1Tδm(t)Vn(t1) (9.29)
δj(t) ={iΔi(T)wij(ov)g(bj(T))for t=T,iΔi(t)wij(ov)g(bj(t))+iδi(t+1)wij(vv)g(bj(t))for 0<t<T.

δj(t) 递归中的第二项类似于算法 4 中的错误递归。 这里的时序索引 t 在算法 4 中扮演着层索引 的角色。 与之不同的是,公式 (9.29) 中的权重对于所有时间步长都是相同的。 该算法在算法 7 中进行了总结。

总之,我们看到循环网络中的时间反向传播与多层感知器中的反向传播类似。 在展开循环网络以消除反馈连接之后,它可以通过反向传播进行训练。 时序索引 t 扮演层索引 的角色。 时间反向传播是训练循环网络的标准方法,尽管它存在梯度消失问题。 下一部分描述了如何改进布局,以便更有效地训练循环网络。 下一节将描述布局的改进如何能够更有效地训练循环网络。

9.3 梯度消失

Hochreiter 和 Schmidhuber [137] 建议替换隐藏神经元 该方法被称为 该方法被称为 长短期记忆 (LSTM)。基本组成部分与残差网络 (第 7.4 节):捷径减少了梯度消失问题。 有关 LSTM 的详细描述,请参见参考文献。 有关 LSTM 的详细描述,请参阅参考文献。  Hochreiter 和 Schmidhuber [137] 建议用

\begin{overpic}[scale={0.57}]{Fig_9_3} \end{overpic}
图 9.3: 门控循环单元。 (a) 符号指的是隐藏变量的标准递归 (9.19a), 如 图 9.2 的右面板所示。 (b) 为了克服梯度消失问题,标准单元被门控循环单元替换 (9.30)。

门控循环单元   [139] 与 LSTM 的作用相同,并且它们以类似的方式运行。 有人认为 LSTM 在某些任务上优于门控循环单元, 但由于它们比 LSTM 更简单,因此本节的其余部分将重点介绍门控循环单元。 如图 9.3 所示,这些单元用新规则替换了循环神经网络的隐藏神经元 [更新规则 (9.19a)]:

zm(t) =σ(kwmk(zx)xk(t)+jwmj(zv)Vj(t1)), (9.30a)
rn(t) =σ(kwnk(rx)xk(t)+jwnj(rv)Vj(t1)), (9.30b)
hi(t) =g(kwik(hx)xk(t)+jwij(hv)rj(t)Vj(t1)), (9.30c)
Vi(t) =[1zi(t)]hi(t)+zi(t)Vi(t1). (9.30d)

前两个方程被称为 因为它们调节 隐藏状态变量 Vi 的值如何通过单元传递。 这里 σ(b) 是 sigmoid 函数 (6.19a)。 如果 zm(t)=0 对于所有 m,并且 rn(t)=1 对于所有 n,方程 (9.30) 与标准更新规则 (9.19a) 相一致,除了 阈值 在方程 (9.30) 中省略了。 正如上面解释的那样, 由此产生的循环网络会遇到梯度消失问题。 这意味着 过去历史中的状态,𝑽(0),𝑽(1),, 对 当前状态 𝑽(t) 的影响很小,对于 t1 循环网络会遗忘早期的输入,因此无法从中学习。

相反,如果 zm(t)=1 对所有 m 成立,则输入将直接通过单元。 由于在这种情况下 Vi(t)/Vj(t1)=δij,当动态探索历史时,梯度不会下降。 然而,由于 𝑽(t1)=𝑽(t),循环网络会重现先前状态。 这类似于在残差网络中跳过层,尽管与方程 (7.35) 的比较揭示了一些细节上的差异。

为了让循环网络能够从过去的输入中以有意义的方式学习,方程 (9.30) 中的权重(以及 阈值)会进行调整,以使门控循环单元在这些两个极端限制之间运行。 这是通过将门控循环单元的权重和阈值包含在梯度下降最小化 能量函数 (9.20) 中来实现的。 权重(和阈值)的学习规则与之前相同。 使用方程 (9.19b) 我们可以得到:

δwmn(ab)=ηt=1TiΔi(t)wij(ov)Vj(t)wmn(ab), (9.31)

其中 w(ab) 代表 w(zx),w(zv),w(rx), 导数 Vj(t)/wmn(ab) 使用 链式法则和方程 (9.30) 计算。

当循环 网络在 训练后运行时,检查 zi(t)ri(t) 的值是有启发性的。 训练。 假设一个单元假设 zi(t)rj(t) 的值很小。 这意味着状态变量 Vi(t) 的更新完全由瞬时输入 xk(t) 决定。 由于该单元不参考隐藏状态变量的过去历史,它截断了动态记忆。 在相反的极限情况下,当 zi(t)ri(t)1 时,该单元可以有助于建立长期动态记忆。 这些论点表明,一个只有一个门的单元可以实现相同的目标 [140]

zm(t) =σ(kwmk(zx)xk(t)+jwmj(zv)Vj(t1)), (9.32a)
hi(t) =g(kwik(hx)xk(t)+jwij(hv)zj(t)Vj(t1)), (9.32b)
Vi(t) =(1zi)hi(t)+zi(t)Vi(t1). (9.32c)

这个单元更容易训练,因为它比标准门控循环单元 (9.30) 具有更少的参数。 然而,公式 (9.30) 中的额外参数可能有助于表示和利用不同时间尺度上的相关性。 LSTM 有更多参数。 训练容易与时间相关性的准确表示之间的这种权衡如何发挥作用,可能取决于具体的问题。 在接下来的部分中,我们描述了具有 LSTM 单元的循环网络,遵循参考文献。 在下面的部分中,我们将根据参考文献描述具有 LSTM 单元的循环网络。  9.4 用于机器翻译的循环网络

9.4 机器翻译的循环网络

\begin{overpic}[比例={0.57},角度={90}]{Fig_9_4} \end{overpic}
用于机器翻译的展开循环网络的示意图。 用于机器翻译的展开循环网络的示意图。 矩形框以长短期记忆(LSTM)单元的形式表示隐藏状态,请参见第 9.3 节。 Sutskever 等人 [134] 发现,如果从句子结尾开始反向读取句子,则网络的翻译效果会更好。 标签 表示句子结束标签。 在这里,它表示句子的开头。 参考文献中的图 1 之后。  [134]

循环神经网络用于机器翻译 [134, 135] 这是如何工作的? 网络使用反向传播时间进行训练。 梯度消失问题通过使用 LSTM(第 9.3 节)来解决。

网络的输入和输出是如何编码的? 对于机器翻译,人们将给定词典中的所有单词用代码表示。 从概念上讲,最简单的代码 是 100…表示词典中的第一个词,010…表示第二个词,以此类推。 该方案的缺点是,它没有考虑两个给定词之间可能存在或多或少的密切关系。 其他编码方案在参考文献中描述。 [135]

循环网络的每个输入都是一个向量,其分量数与字典中的单词数相同。 A 句子 对应一个序列 𝒙1,𝒙2,,𝒙T 每个 句子以一个 句子结束标签, 此标签告诉网络输入句子何时结束。 这是必要的,因为每个句子的单词数不固定。 现在假设一个可能的翻译是 𝒙1,𝒙2,,𝒙T 网络的任务是确定概率 p(𝒙1,,𝒙T|𝒙1,𝒙T),即翻译正确的概率。 想法是递归地估计这个概率,如

p(𝒙1,,𝒙T|𝒙1,𝒙T)=t=1Tp(𝒙t|𝒙1,,𝒙t1). (9.33)

Sutskever . [134] 描述了如何使用具有两个隐藏 LSTM 的循环网络来实现这一点。 The network uses softmax outputs 𝑶t, where j-th component of 𝑶t is interpreted as the probability that the j-th component of 𝒙t is the correct word at position t in the translated sentence. 如图 9.4 所示,第一个 LSTM 处理输入句子 𝒙1,,𝒙T,将其内容编码到隐藏状态中。 标签出现时,第二个 LSTM 接管,使用第一个 LSTM 编码的信息作为输入。 第二个 LSTM 使用公式 (9.33) 递归地输出逐词的翻译句子。

近年来,许多关于使用循环神经网络进行机器翻译的论文问世。 大多数研究都基于 9.2 节中描述的训练算法,即随时间反向传播。 不同的方法主要体现在网络结构的不同。 谷歌的机器翻译系统使用了一个深层网络,该网络具有多个隐藏单元层,这些层以双向布局排列 [141] 在这种双向网络中,不同的隐藏单元在时间上向前和向后展开,如图 9.5 所示。

\begin{overpic}[scale={0.57}]{Fig_9_5} \end{overpic}
图 9.5: 双向循环网络的示意图。 该网络包含两个隐藏神经元,U(t)V(t),它们以不同的方式展开。 参考文献中的图 12 后。   [135]

对于多个隐藏神经元和输出神经元以及多维输入,

Vi(t) =g(jwij(vv)Vj(t1)+kwik(vx)xk(t)θi(v)),
Ui(t) =g(jwij(uu)Uj(t+1)+kwik(ux)xk(t)θi(u)), (9.34)
Oi(t) =g(jwij(ov)Vj(t)+jwij(ou)Uj(t)θi(o)).

使用双向网络进行机器翻译是自然的,因为相关性在 句子, 向前和向后。 例如,在德语中,有限动词形式通常位于句子的末尾。 句子中是双向的。

Lipton 等人 描述了各种评分翻译准确性的方案 [135] 一个困难是,一个给定 句子通常有几种不同的有效翻译,并且得分 必须将机器翻译与所有翻译进行比较。 关于机器翻译的最新论文通常使用所谓的BLEU评分来评估翻译准确性。 首字母缩略词代表 双语评估研究。该方案由 Papieni 等人 提出 [142] 据认为,它评估翻译的准确性 与人类没有太大区别。

9.5 水库计算

\begin{overpic}[scale={0.57}]{Fig_9_6} \end{overpic}
图 9.6: 水库计算(示意图)。 并非所有连接都被绘制出来。 可以从所有输入到水库中的所有神经元(灰色)以及从 所有水库神经元到所有输出神经元建立连接。

循环网络中时间反向传播的另一种替代方法是 储层计算 [143] 此方法已成功用于预测混沌动力学 [144, 145] 和随机双稳态系统中的罕见跃迁 [146]

考虑以 形式的输入数据 时间序列 𝒙(0),𝒙(T1)N-维向量 𝒙(t),以及相应的 M-维 目标 𝒚(t) 目标是训练循环网络,使其输出 𝑶(t) 近似于 目标尽可能精确地,通过最小化 能量函数 H=12t=τT1i=1M[Ei(t)]2,其中 Ei(t)=yi(t)Oi(t) 是输出误差,并且 τ 代表一个被忽略的初始瞬变。

9.6 显示了此任务的布局。 N 个输入端 。它们用权重连接 wjk(in) 到隐藏神经元的储层 具有状态变量 rj(t) 该储层连接到 M 个线性输出单元 Oi(t) 的权重 wij(out) 水库本身是一个具有权重 wij 的大型循环网络。 更新规则 与公式 (9.19) 类似。 有很多不同的版本,它们在细节上有所不同 [147] 一种可能性是 [146]

ri(t+1) =g(jwijrj(t)+k=1Nwik(in)xk(t)), (9.35a)
Oi(t+1) =jwij(out)rj(t+1), (9.35b)

针对 t=0,,T1,其初始条件为 rj(0)

与 的主要区别 本章前几节中描述的训练算法的一个特点是,输入权重 wjk(in) 和水库权重 wjk 是随机初始化的, 然后保持不变。 只有输出权重 wjk(out) 被训练。 其思想是,足够大的水库的动力学可以找到输入数据的非线性、高维表示 [143] 类似于稀疏 表示 的二元分类问题 嵌入到高维空间中, 从而在这种方式下变得线性可分(第 5.4 节)。

此外,与第 5.4 节中描述的问题不同,水库是一个动态记忆。 这要求水库状态忠实地 表示输入序列:只要迭代足够长时间,类似的 输入序列应该产生类似的水库激活。 然而,对于随机权重,循环储层动力学可能是混沌的 [85] 在这种情况下,储层在经过多次迭代后的状态与输入序列无关。 为了避免这种情况,需要储层动力学线性稳定。 线性化 储层动力学 (9.35a) 给出

δ𝒓(t+1)=𝔻(t+1)𝕎δ𝒓(t), (9.36)

其中 𝔻(t+1) 是一个对角矩阵,其元素为 Dii(t+1)=g[bi(t+1)],并且其中 bi(t+1)=jwijrj(t)+kwik(in)xk(t) δ𝒓 是否增长取决于 𝕁t=𝔻(t)𝕎𝔻(t1)𝕎𝔻(1)𝕎 的奇异值, 如第 7.2 节所述。 𝕁t 的奇异值用 Λ1(n)Λ2(n) 表示。 在长时间内,当用平稳输入序列驱动时,最大 Lyapunov 指数 λ1=limtt1logΛ1(t) 必须为负数,以确保储层动力学稳定:

λ1<0. (9.37)

有时稳定性判据以 𝕎 的最大特征值表示。 如果使用 tanh 激活函数,并且如果局部 bi(t) 保持较小,那么 𝔻(t) 的对角元素将保持接近于 1。 在这种情况下,储层动力学的稳定性条件由权重矩阵 𝕎 决定。 通常,𝕎 的奇异值不同于它的特征值,但这里重要的是 𝕎t 的最大奇异值接近 etλ|ν1|,其中 ν1𝕎 的最大模特征值(练习 9.8)。

对于具有长时间相关性的输入 ,储层不能衰减得太快,以便它能够表示输入序列中的动力学相关性。 没有精确的数学理论说明如何优化储层。 在实际操作中,人们通过反复试验来调整最大李雅普诺夫指数。 它的最佳值取决于输入序列的特性,例如时间相关性。

建立一个储层有很多不同的方法。 通常情况下,储层是稀疏的 ,只有很少一部分权重是非零的。 重新缩放生成的权重矩阵 𝕎 的元素以调整 λ1 [145] Lukosevicius 𝕎(in) 对建立储层计算机的不同方案进行了概述。 Lukosevicius [147] 对设置水库计算机的不同方案进行了实用概述。

对于时间序列预测,人们在 输入系列 𝒙(0),, 𝒙(T1) 目标𝒚(t)=𝒙(t) 训练结束后, 人们继续迭代网络动力学 使用输入 𝒙(T+k)=𝑶(T+k) 来预测 𝒙(T+k+1),对于 k=0,1,2, 使用方程(9.35),我们看到在预测阶段储层动态采用ri(t+1)=g(j[wij+k=1Nwik(in)wkj(out)]rj(t))形式。 为了表示复杂的时空模式,Pathak 等人   [144] 发现有必要使用多个并行水库 。林等人 [146] 使用了一串水库 ,用一组嵌套的更新规则替换方程 (9.35a)。

田中等人 [148] 描述了基于电子 RC 电路、光学腔或谐振器、自旋扭矩振荡器或机械装置的水库计算机的不同物理实现。

9.6 摘要

有时人们说循环网络学习 动力系统,而多层感知器 学习 输入输出映射 . 这强调了这些网络通常使用方式的差异,但 我们应该牢记,它们是通过反向传播以类似的方式训练的。 任务也不一定是不同的:循环网络也被用于学习时间无关数据。 然而,确实有 动力系统理论 帮助分析循环网络的动力学 [149, 136]

循环神经网络可以通过在时间上展开网络来消除反馈连接,然后通过随机梯度下降进行训练。 这种算法存在梯度消失问题。 为了克服这一困难,循环网络中的隐藏神经元被替换为复合单元,这些单元经过训练,有时充当残差连接,直接传递信号,有时充当非线性单元,可以以有意义的方式学习相关性。 存在不同的版本,例如长短期记忆单元和门控循环单元。 它们的工作原理都类似。 机器翻译中成功的布局使用具有多层 LSTMs 的深度双向网络。

另一种方案是储层计算,其中使用大量隐藏神经元储层来表示输入数据中的相关性,以及一组线性输出单元 经过训练,可以从这些表示中学习原始序列。 想法是,从数据的稀疏高维表示中学习输入序列的复杂特征更容易。

9.7 进一步阅读

The 循环网络的训练在参考文献第 15 章中讨论。   [2], 另见参考文献   [150, 151] 循环反向传播 由 Hertz、Krogh 和 Palmer [1] 描述,用于非常类似的网络布局。 LSTMs 如何克服梯度消失问题在参考文献中解释。 [138] 有关循环神经网络的最新综述,请参见参考文献 [135] 这个 网页 [152] 对循环网络的应用能力进行了非常热情的概述。 博客 表达了一种更加悲观的观点。 有关储层计算的综述,请参见参考文献。   [143]

第三部分 无监督学习

5 章到 9 章描述了使用神经网络进行有监督学习 标注数据。 该网络接受训练, 以对每个输入模式再现正确的标签(目标)。 对未标注数据的分析需要不同的方法。 机器学习可以成功地应用于 大量高维未标注数据。 例如,机器可以 标记对于给定分布来说是典型的模式,或者 检测异常值。 其他任务包括检测相似性 ,寻找聚类 在数据中(图 10.1),以及确定高维数据的非线性、低维表示。 最近,这种 无监督 学习 算法已被用于生成合成数据,其模式类似于 在特定数据集中。 一种可能的应用是数据增强 用于监督学习。

没有标签的学习被称为 无监督学习 , 因为没有 目标,告诉网络它是否已正确学习。 没有明显的函数要拟合,也没有要学习的动力学。 相反,网络以相关的方式组织输入数据。 这需要 冗余 在输入数据中。 有时人们说无监督学习对应于没有老师的学习,这意味着 网络本身发现了组织输入数据的合适方法。 这是不准确的,因为无监督网络通常使用预定的学习规则进行操作 , 如 Hopfield 网络。

本书的III组织如下。 10.1 章介绍了无监督学习算法, 从无监督 Hebbian 学习开始,以检测 熟悉程度 以及输入模式的相似性 (第 10.1 节和第 10.2 节)。 相关的算法可用于 找到高维输入数据(自组织映射,第 10.3 节)的低维非线性投影。 在第 10.4 节中,这些算法与 标准无监督聚类算法,K-means 聚类进行了比较和对比。 10.5 节介绍了径向基函数网络,它们使用混合算法(包含监督和无监督元素)进行学习。 10.6 节解释了如何使用分层前馈网络进行无监督学习。

11 章处理介于监督学习和无监督学习之间的学习任务, 这些问题中 机器以惩罚或奖励的形式收到对其性能的部分反馈。 此类任务可以通过 强化学习算法 使神经网络或更一般地代理学习复制 倾向于产生积极奖励的输出。 描述了几种 强化学习算法,包括关联奖励-惩罚算法(第 11.1 节)、 时间差学习(第 11.2 节)和 Q-学习(第 11.3 节)。 Q-学习算法通过演示其如何使两位玩家学习在井字棋中相互竞争来进行说明。

第 10 章 无监督学习

\begin{overpic}[scale={0.57}]{Fig_10_1} \end{overpic}
图 10.1: 监督学习为标记数据找到决策边界, 如左侧所示的二元分类问题。 无监督学习可以在输入数据中找到聚类(右)。

10.1 Oja 规则

\begin{overpic}[scale={0.57}]{Fig_10_2} \end{overpic}
图 10.2: 用于无监督 Hebbian 学习的神经网络,带有单个线性输出单元,该单元具有权重向量 𝒘 在本章中,网络输出用 y 表示。

一个简单的无监督学习算法示例使用单个具有线性激活函数的 McCulloch-Pitts 神经元(图 10.2)。 神经元计算 1 11在本章中,我们遵循一种常见约定 [1],并将无监督学习算法的输出表示为 y y=𝒘𝒙 具有权重向量 𝒘=[w1,,wN]𝖳 现在考虑一个分布 Pdata(𝒙) 的输入模式 𝒙=[x1,,xN]𝖳 具有连续值组件 xi 模式从该分布中随机抽取,并一个接一个地馈送到网络。 对于每个模式 𝒙,权重 𝒘 如下调整:

𝒘=𝒘+δ𝒘withδ𝒘=ηy𝒙. (10.1)

该规则也被称为 Hebbian 无监督学习 规则 [1],因为它让人想起 Hebb 的规则 (第 2 章)。 像往常一样,η 是学习率。

这个规则可以从 输入分布 Pdata(𝒙) 由于我们不断地将模式向量的倍数 𝒙 添加到权重中(正如第 5.2 节中所述),输出的幅度 |y| 变得越大, 输入模式在分布 Pdata(𝒙) 中出现的频率越高。 所以最熟悉的模式产生最大的输出。 通过这种方式,网络可以检测到 熟悉的 某些输入模式的频率。

一个问题是,权重向量的分量在我们不断添加的过程中会继续增长。 这意味着简单的 Hebbian 学习规则 (10.1) 不会收敛到稳定状态 . 为了分析学习结果,我们希望学习收敛。 这是通过在等式 (10.1) 中添加一个权重衰减项(第 7.6.1 节),其系数与 y2 成正比来实现的:

δ𝒘=ηy(𝒙y𝒘). (10.2)

利用 y=𝒘𝒙=𝒘𝖳𝒙=𝒙𝖳𝒘,等式 (10.2) 可以改写成以下形式:

δ𝒘=η{𝒙𝒙𝖳𝒘[𝒘(𝒙𝒙𝖳)𝒘]𝒘}. (10.3)

这个学习规则被称为 Oja’s rule [155] 等式 (10.3) 确保 𝒘 保持归一化。 为了说明这一点,考虑一个类比:一个向量 𝒒,它遵循微分方程

ddt𝒒=𝔸(t)𝒒. (10.4)

对于一般的矩阵 𝔸(t),范数 |𝒒| 可能增加或减少,这取决于 𝔸 的奇异值。 我们可以确保 𝒒 保持归一化,方法是在等式 (10.4) 中添加一个项:

ddt𝒘=𝔸(t)𝒘[𝒘𝔸(t)𝒘]𝒘. (10.5)

向量 𝒘 的转向方式与 𝒒 相同。 , 如果我们最初设置 |𝒘|=1,那么 𝒘 保持 归一化,𝒘=𝒒/|𝒒| (练习 10.1)。 等式 (10.5) 描述了湍流中一根小棒的归一化方向向量动力学 [156],其中 𝔸(t) 是流体速度梯度矩阵。

回到等式 (10.2),我们注意到 (10.2) 和 (10.5) 的动力学在小学习率 η 的极限情况下是相同的。 因此,我们得出结论 即 𝒘 在 (10.3) 下保持归一化,只要学习率足够小。 Oja 算法总结在算法 8 中。 一个人画一个图案 𝒙 来自输入模式的分布 Pdata(𝒙),将其应用于网络,并按照公式 (10.2) 中的规定更新权重。 这种操作重复很多次。 在下面,我们将 T 输入模式的平均值表示为 =1Tt=1T

算法 8 Oja 规则
  随机初始化权重;
  对于 t=1,,T 
     绘制输入模式 𝒙 Pdata(𝒙) 中;
      使用 δ𝒘=ηy(𝒙y𝒘)调整所有权重;
   结束 对于

虽然规则 (10.1) 没有稳态,但 Oja 的规则 (10.3) 有。 对于零均值输入数据,其稳态 𝒘 对应于 输入数据的 principal component ,如图 10.3 所示。 这可以通过分析 稳态条件

0=δ𝒘𝒘. (10.6)

这里 𝒘 是在固定 𝒘 时,学习 规则 (10.3) 的迭代次数的平均值,即稳态 . 公式 (10.6) 说明, 权重增量 δ𝒘 必须 在稳态下平均为零,以确保权重从长远来看既不会增长也不会下降。 公式 (10.6) 是对 𝒘 的一个条件。 使用学习规则 (10.3), 可以写成:

0=𝒘(𝒘𝒘)𝒘with=𝒙𝒙𝖳. (10.7)

公式 (10.7) 表明 𝒘 必须是 矩阵的特征向量 2 22对于零均值输入数据, 等于数据协方差矩阵,公式 (6.24)。 ,归一化到 unity, |𝒘|=1 但是哪一个呢?

\begin{overpic}[scale={0.57}]{Fig_10_3} \end{overpic}
图 10.3: Oja 规则找到零均值数据的 principal component(示意)。 初始权重向量为 𝒘0,稳态权重向量为 𝒘

我们用 特征向量和 特征值表示 通过 𝒖αλα,并通过线性稳定性分析研究 𝒘=𝒖αα 的不同值下的稳定性 ,就像第 9.1 节一样。 为此,考虑从 𝒘=𝒖α 出发的微小扰动 𝜺t

𝒘t=𝒖α+𝜺t. (10.8)

与第 9.1 节中的分析不同,动力学是离散的。 下一步的扰动 𝜺t+1𝒘t+1=𝒖α+𝜺t+1 定义。 第二个区别是权重增量的序列取决于随机选择的输入模式。 为了确定线性稳定性 应该 迭代,然后将动力学线性化 (10.3),看看 𝜺t 是否增长。 然而, 在小学习率的极限下,对 𝒙 求平均就足够了(练习 10.4)。 到线性顺序 在 𝜺t 中,人们发现:

𝜺t+1𝜺t+η[𝜺t2𝒖α(𝒖α𝜺t)(𝒖α𝒖α)𝜺t]=𝕄(α)𝜺t, (10.9)

其中最后一个等号定义了矩阵 𝕄(α) 稳态 𝒘=𝒖α 如果所有 𝕄(α) 的特征值都具有小于 1 的幅度的实部,则线性稳定。 3 33对于时间连续动力学(第 9.1 节),当所有特征值的实部为负时,线性稳定性得到保证,对于离散动力学,它们的大小必须都小于 1 [85]确定 𝕄(α) 的特征值,我们使用以下事实 𝕄(α) 具有相同的 特征向量作为 由于 是对称的,因此这些 特征向量 形成一个 正交基,𝒖α𝒖β=δαβ 结果, 𝕄(α) 的特征值由以下给出

Λβ(α)=𝒖β𝕄(α)𝒖β=1+η[(λβλα)2λαδαβ]. (10.10)

由于 是一个半正定矩阵(其 特征值λα不能为负),方程(10.10)表明有 特征值与 |Λβ(α)|>1 除非 𝒘 是领先的 的特征向量, 对应于其最大 特征值。 这意味着算法 8 找到零均值数据的主成分,并且还意味着该算法在所有数据上最大化 y2 𝒘 |𝒘|=1,见 第 6.3 节。 注意对于零均值输入数据,y=0

现在考虑具有非零均值的输入。 在这种情况下,算法 8 仍然找到了 最大 特征值方向 但是对于具有非零均值的输入,该方向与主方向不同。 10.4 说明了这种差异。

\begin{overpic}[scale={0.57}]{Fig_10_4} \end{overpic}
图 10.4: 具有非零均值的输入数据。 算法 8 收敛 到 𝒖1,但主方向是 𝒖2

该图显示了二维输入平面中的三个数据点。 =𝒙𝒙𝖳 的元素是

=13[2112], (10.11)

带有特征值和特征向量

λ1=1,𝒖1=12[11]andλ2=13,𝒖2=12[11]. (10.12)

所以最大-的特征值方向为𝒖1 为了计算数据的主方向,我们必须确定数据协方差矩阵 ,方程(6.24)。 它是 最大特征值方向为𝒖2,这是主成分 数据如图10.4所示。

Oja 规则可以推广以确定 M 主成分 使用 M 输出神经元的零均值输入数据 计算 i=1,,Myi=𝒘i𝒙

δwij=ηyi(xjk=1Mykwkj) (10.13)

这称为 Oja 的 M 规则 [1] 对于 M=1,方程 (10.13) 简化为 Oja 规则。

10.2竞争性学习

Oja 的 M 规则 (10.13) 导致神经元同时激活。 任何输入通常会导致多个输出在同一时间yi0 同时取非零值。 在第4.5节和第7.1节 我们遇到了获胜神经元的概念 其中权重以这样一种方式训练,使得每个模式只激活一个神经元,而不同的模式激活不同的获胜神经元。 这使得用神经网络来表示输入模式的分布成为可能。

无监督学习算法可以对数据进行分类或 以这种方式对输入数据进行聚类:相似的输入被归类为属于同一类别,并激活相同获胜神经元。 这被称为 竞争学习 [1] 10.5( a) 显示了一个例子,单位圆上的输入模式,它们 聚集成两个不同的集群。

\begin{overpic}[scale={0.57}]{Fig_10_5} \end{overpic}
图 10.5: 无监督学习检测集群。 (a) 单位圆上的输入模式分布和两个随机角度初始化的单位长度权重向量。 模式𝒙 的获胜神经元是 权重向量𝒘2 的神经元。 (b) 更新 𝒘2=𝒘2+δ𝒘 将此权重向量移近 𝒙
算法 9 竞争性学习(图 10.5
   将权重初始化为具有随机角度和范数 |𝒘i|=1 的向量;
  对于 t=1,,T 
     绘制一个模式 𝒙 Pdata(𝒙)
      找到获胜神经元 i0𝒘i0 𝒙之间的最小角度);
      只调整获胜神经元 δ𝒘i0=η(𝒙𝒘i0) 的权重;
  结束对于

想法是找到权重向量 𝒘i,这些向量指向 聚类的方向。 为此,我们采用 M 线性输出单元 i,其权重向量分别为 𝒘ii=1,,M 我们提供一个模式 𝒙 Pdata(𝒙) 定义 获胜神经元 i0 作为与模式向量之间角度最小的那个。 𝒙. 这在图 10.5b )中有所示,i0=2 然后,通过添加模式向量与获胜神经元权重之间的一点点差异𝒙𝒘i0来更新权重向量。 其他权重保持不变:

δ𝒘i={η(𝒙𝒘i)fori=i0(𝒙,𝒘1𝒘M),0otherwise. (10.14)

换句话说,只有获胜神经元 被更新,𝒘i0=𝒘i0+δ𝒘i0 方程 (10.14) 被称为 竞争性学习规则

学习规则 (10.14) 具有以下 几何解释:获胜神经元的权重被拉向模式 𝒙. 在对 (10.14) 进行迭代时,权重向量被拉向 聚类 输入。 如果输入模式像图 10.5 中一样被标准化, 即使 |𝒘i0|=1 不意味着 |𝒘i0+δ𝒘i0|=1,权重最终还是会在平均上被标准化。 竞争性学习的算法在算法 9 中进行了总结。 当权重和输入向量被标准化时,获胜的神经元 i0 是具有最大标量积 𝒘i𝒙 的神经元。 对于线性输出单元 yi=𝒘i𝒙 (图 10.2),这仅仅是具有最大输出的单元。 等效地,获胜的神经元 是最小的 距离 |𝒘i𝒙| 具有 𝒘i 的输出单元,它们距离任何模式非常远,可能永远不会被更新 ( 死单元 )。 有几种策略可以避免这种情况 [1] 一种可能性是将权重初始化为在输入中找到的方向。 此外,如何选择权重向量的数量是一个反复试验的问题。 很明显,最好从太多开始,而不是从太少开始。

最后,考虑竞争学习规则 (10.14) 与 Oja 规则之间的关系 (10.13)。 如果我们定义

yi=δii0={1fori=i0,0otherwise. (10.15)

那么规则 (10.14) 可以写成 Oja 的 M 规则的形式:

δwij=ηyi(xjk=1Mykwkj). (10.16)

公式 (10.16) 使人想起 Hebb 规则 (第 2 章)并带权重衰减。

\begin{overpic}[scale={0.57}]{Fig_10_6} \end{overpic}
图 10.6: 主成分分析(第 6.3 节) 找到数据的线性主方向(虚线) (). 自组织映射可以找到 主流形(实线),数据的非线性 近似值。

10.3 自组织映射

为了分析高维数据,将高维输入模式映射到 低维输出空间通常是有用的,以获得输入模式的低维表示 输入分布。 主成分分析(第 6.3 节)正是这样做的。 但是,它不 一定保留距离 。为了可视化输入模式的聚类或其他排列, 类似的模式或在输入空间中相近的模式应该映射到输出空间中的附近点 并且,相距甚远的模式应该映射到彼此远离的输出。 达到此目的的映射被称为 语义拓扑映射。

此外,主成分分析是一种线性方法。 如第 6.3 节所述,它将数据投影到由领先 相关矩阵的特征向量。 相关矩阵跨越的空间。 然而,在许多情况下,数据可能并不位于线性子空间中,如图 10.6 所示。 为了将数据投影到非线性 主流形 (实线)上,需要非线性映射。

在神经科学中,地形图一词指的是 刺激和哺乳动物大脑某些部位的激活模式。 类似的视觉模式 例如,视网膜上刺激的空间排列,激活视觉皮层中的相邻区域 [157] 其他认知 刺激,包括听觉和感觉刺激,都以类似的方式映射。 哺乳动物大脑皮层中的复杂神经网络 包含大量此类映射,以层次化的方式排列。 它们以空间定位的神经激活方式表示局部 刺激。 这种复杂结构是如何形成的? 一种可能性是,映射被编码在遗传序列中,换句话说,连接是硬连线的。 然而,人们观察到,这些映射会随着时间的推移而发生变化 [158],导致人们假设 它们是学习的,而我们的 DNA 仅仅编码了一组相当简单的 学习规则

这激励了 Kohonen [158, 159] 等人提出并分析地形图的学习规则。 该术语 自组织映射 [18, 160] 强调映射是响应于它映射的 刺激而发展起来的,它以无监督的方式学习。

\begin{overpic}[scale={0.57}]{Fig_10_7} \end{overpic}
图 10.7: Kohonen 的自组织映射。 如果模式 𝒙(1)𝒙(2) 在输入空间中彼此接近,那么这两个模式 将激活输出数组中相邻的获胜神经元 (坐标为 𝒓=[r1,r2]𝖳)。 通常,输出数组的维数远低于输入空间的维数。

Kohonen 的非线性自组织映射模型依赖于输出神经元的排序数组 ,如图 10.7 所示。 该映射学习激活附近的输出神经元 用于类似的输入。 这是使用竞争性学习规则实现的 ,类似于上一节中描述的学习规则 (10.14)。 为了表示输入的接近度或相似性,该规则赋予了输出数组中距离的概念 ,通过 不仅更新获胜的神经元,还更新输出数组中与其相邻的神经元。 为此,用竞争性学习规则 (10.14) 代替

δ𝒘i=ηh(i,i0)(𝒙𝒘i), (10.17)

其中 i0 是获胜神经元的索引,即权重向量最接近输入的神经元 𝒙。 邻域函数邻域函数 函数 h(i,i0) 取决于距离 神经元 i 的距离,以及输出数组中 i0 的距离。 邻域函数在 i=i0 处达到最大值,并随着距离的增加而减小 ii0 之间的距离增加。 一种可能性是为最近邻、 次近邻等 h(i,i0) 分配递减的值(图 10.8)。

\begin{overpic}[scale={0.57}]{Fig_10_8} \end{overpic}
图 10.8: 输出数组中心 () 的神经元最近邻 () 和次近邻 ()。

另一种可能性是使用 欧几里德距离欧几里德距离 的高斯函数 输出数组中的 |𝒓i𝒓i0| [1]:

h(i,i0)=exp(12σ2|𝒓i𝒓i0|2). (10.18)

这里 𝒓i 是神经元 i 在输出数组中的位置(图 10.7)。 高斯 [2] 的不同归一化可以包含在不同的学习速率中。

Kohonen 规则有两个参数:学习速率 η 和 邻域函数的宽度 σ 通常在学习过程中调整这些参数。 通常从 ησ 的较大值开始( 排序阶段),然后随着弹性网络的演变(收敛阶段)降低这些参数 : 一开始快速调整,然后以更小的步幅进行,直到算法收敛 [158, 1, 2]

根据公式 (10.17) 和 (10.18), 相似的模式在输出空间中激活附近的的神经元 ,它们的权重向量以类似的方式变化。 Kohonen 规则将获胜权重向量 𝒘i0 拉向 𝒙,就像竞争学习规则 (10.14),但也将相邻的权重向量拉在一起。 10.9 说明了 Kohonen 规则 [18] 的几何解释。 我们可以将权重向量视为指向一个节点 的 弹性网络 它具有与输出数组相同的布局。 当人们从 输入分布中输入模式时, 权重会更新,导致网络的节点移动。 这会改变弹性网络的形状,直到它类似于由输入模式分布定义的形状。 10.6 显示了另一个示例,其中输出数组的维数(一维)低于输入空间的维数 (二维)。该算法找到数据的非线性近似,即主流形 . 与主成分分析中的主方向相反,主流形不必是线性的。 因此,它可以更精确地近似数据,从而导致更小的残差方差(练习 10.7)。

总之,Kohonen 算法通过将输出神经元的权重向量分布 以反映输入模式的分布。 一般来说,这工作得很好,但问题 出现在边界处。 为什么会出现这种情况很清楚(图10.9): 由于平行四边形外侧的模式密度很低,弹性网络无法被拉得很靠近边界。 为了分析边界如何影响 Kohonen 规则的学习,考虑稳态 条件

δ𝒘i=ηTt=1Th(i,i0)(𝒙(t)𝒘i)=0. (10.19)

这个条件比乍看起来要复杂,因为i0取决于权重和模式,如上所述。 稳态条件(10.19)一般来说很难分析。 原因之一是全局几何信息很难学习。 通常,学习局部结构要容易得多。 这在 连续极限 中尤其如此,我们可以使用泰勒展开式分析局部学习过程。

\begin{overpic}[scale={0.57}]{Fig_10_9} \end{overpic}
图 10.9: 使用 Kohonen 算法学习二维实值输入𝒙的分布Pdata(𝒙)(灰色)。 自组织映射动力学的说明,以弹性网络为例。 (a) 初始条件。 (b) 中间阶段。 (c) 在稳态下,弹性网络类似于由输入分布Pdata(𝒙)定义的形状。

在连续极限下分析条件 (10.19) 由 Ritter 和 Schulten [161]完成, 并由 Hertz、Krogh 和 Palmer [1]详细描述。 假设输出神经元网络非常密集 ,因此可以近似 i𝒓i0𝒓0𝒘i𝒘(𝒓)h(i,i0)h(𝒓𝒓0(𝒙))1Ttd𝒙Pdata(𝒙) 在此连续极限下 ,方程 (10.19) 写作

d𝒙Pdata(𝒙)h(𝒓𝒓0(𝒙))[𝒙𝒘(𝒓)]=0. (10.20)

这是稳态学习结果的条件, 函数𝒘(𝒓)

在连续统中,限制获胜神经元在模式输出数组中的位置 𝒓0(𝒙) 𝒙 由下式给出

𝒘(𝒓0)=𝒙. (10.21)

我们使用此关系将方程 (10.20) 写成:

d𝒙Pdata(𝒙)h(𝒓𝒓0(𝒙))[𝒘(𝒓0(𝒙))𝒘(𝒓)]=0. (10.22)

方程 (10.21) 定义了一个从输入空间到输出空间的映射 𝒓0(𝒙),即自组织映射 (图 10.7). 假设此映射是一对一的,我们将积分变量从 𝒙 更改为 𝒓0:

d𝒓0|det𝕁|Q(𝒓0)h(𝒓𝒓0)[𝒘(𝒓0)𝒘(𝒓)]=0, (10.23)

其中 Q(𝒓0)Pdata(𝒙(𝒓0)),并且其中行列式 表示变量变换的体积元素。 使用方程 (10.21),变换的雅可比行列式 𝕁 的元素为

Jij=wi(𝒓0)rj. (10.24)

邻域函数在 𝒓=𝒓0 处急剧峰值, 这使得能够近似地评估稳态条件 (10.23),

\begin{overpic}[scale={0.57}]{Fig_10_10} \end{overpic}
图 10.10: 为了找出稳态映射 w(r)r 附近 (灰色线) 如何变化, 将 wδr 围绕 r 进行展开, w(r+δr)=w(r)+dwdrδr+12d2wdr2δr2+

假设 𝒘(𝒓) 是 一个平滑函数,将被积函数在 δ𝒓=𝒓0𝒓 处展开。 这在图 10.10 中得到了说明,适用于一维 输入和输出。 我们考虑这种特殊情况不仅是为了简化符号,也是因为它是在数学上可以进行分析的少数情况之一 (练习 10.9)。 w(r+δr) 按照图 10.10 所示展开得到

w(r+δr)w(r)=ddrw(r)δr+12d2dr2w(r)δr2+. (10.25)

方程 (10.23) 中的其他因子以类似的方式展开:

J(r+δr) =dwdr+d2wdr2δr+, (10.26a)
Q(r+δr) =Pdata(w)+δrdwdrddwPdata(w). (10.26b)

将这些表达式插入方程式 (10.20),丢弃高于 δr2 阶的项,并将积分变量更改为 δr,可以发现

0 =w[32w′′Pdata(w)+(w)2ddwPdata(w)]dδrδr2h(δr), (10.27)

其中我们引入了简写符号 w=ddrw(r),删除了星号,并使用了邻域函数 (10.18) 对称,h(δr)=h(δr) 由于方程式 (10.27) 中的积分非零,因此我们必须有

w=0or32w′′Pdata(w)+(w)2ddwPdata(w)=0. (10.28)

第一个解可以排除,因为它对应于奇异权重分布,该分布不包含有关 的任何几何信息 输入分布 Pdata 第二个解给出

w′′w=23wddwPdata(w)Pdata(w). (10.29)

换句话说,ddrlog|w|=23ddrlogPdata(w),这意味着 |w|[Pdata(w)]23 输出权重的密度可以计算为

ϱ(w)=drδ[ww(r)], (10.30)

其中 δ(w) 是狄拉克 δ 函数 [162] 更改 δ 函数中的变量

δ[ww(r)]=j|w=w(rj)1|w|δ(rrj), (10.31)

并假设函数 w(r) 是单射的,可以发现

ϱ(w)=1|w|=[Pdata(w)]23. (10.32)

这告诉我们自组织映射以以下方式学习输入分布:稳态下输出权重的分布 反映了输入模式的分布。 方程式 (10.32) 表明这两个分布并不相等(相等将是一个完美的结果)。 相反,权重分布与 [Pdata(w)]23 成正比。 在更高维度上知之甚少,但总体思路是弹性网络难以到达域的角和边,在这些角和边上, 输入分布不为零。

自组织映射的输出可以以不同的方式解释。 对于低维输入和输出,可以简单地绘制映射w(𝒓),如图10.7所示。 权重的密集区域指向输入空间中的区域 具有高 输入密度。

\begin{overpic}[scale={0.5}]{Fig_10_11} \end{overpic}
图 10.11: 手写数字的聚类 (MNIST 数据集) 与 具有 30×30输出数组的自组织映射。 在阴影区域,输出非常确定: 这里获胜神经元在 80% 的情况下被指示的数字激活。 白色区域对应于输出,其中大多数数字在不到 80% 的情况下出现, 或者对应于从未激活或仅激活一次的输出。 示意图,基于 由 Juan Diego Arango 执行的模拟。

输出维度通常被认为远低于输入空间的维度。在这种情况下,自组织映射执行非线性 降维, 并且它可以用来找到 高维输入数据中的聚类 [163] 分析分两步进行。 首先,运行 Kohonen 算法,直到映射收敛到稳态。 其次,将所有输入馈送到网络,并针对每个输入确定获胜神经元在输出数组中的位置。 输出数组中的空间激活模式代表 相似输入的聚类。 10.11 说明了这一点,它展示了自组织映射如何表示来自 MNIST 数据集的手写数字。 为了揭示语义映射, 图中标注 与相同数字相对应的输出聚类(由标签决定 训练集)。 我们看到,自组织映射将相同的数字分组在一起,但它在区分数字 3 和 8 以及 4 和 9 时遇到了一些困难。

10.4 K-means 聚类

\begin{overpic}[scale={0.57}]{Fig_10_12} \end{overpic}
图 10.12: K-means 聚类算法的示意图 具有两个权重向量 𝒘1𝒘2 圆盘的半径等于 s1s2,公式 (10.34)。

10.2 节和 10.3 节描述了在输入数据中查找聚类的不同方法。 特别是,它展示了 自组织映射如何在高维输入数据中找到聚类,并在低维非线性投影中表示它们。 K-means 聚类 [2] 是一种用于在输入数据中查找聚类的替代无监督学习算法。 让我们将该算法与 Kohonen 的自组织映射进行比较和对比。 目标是将输入模式 𝒙(μ)μ=1,,p 聚集成 K 个簇。 通常 K 远小于输入数量 p 和输入维度 N

聚类任务的解决方案是映射 k(μ),它将每个输入 𝒙(μ) 与其中一个簇 k=1,,K 关联起来。 函数 k(μ) 是通过最小化能量函数

H(𝒘1,,𝒘K)=12k=1K(μ|k(μ)=k|𝒙(μ)𝒘k|2). (10.33)

第二个求和是对所有满足 k(μ)=kμ 值进行的。 向量 𝒘k 变成了簇 k 中所有模式向量的平均值,括号中的表达式是与该簇相关的方差:

σk2=μ|k(μ)=k|𝒙(μ)𝒘k|2. (10.34)

换句话说,H 度量的是簇方差 σk2 的总和。 聚类问题的解决方案对应于 H 的局部最小值。 为了确定簇向量 𝒘k 和相应的方差 σk2,从 k(μ) 的初始猜测开始。 对于每个簇,首先调整 𝒘k 以最小化簇方差:

argmin𝒘k=μ|k(μ)=k|𝒙(μ)𝒘k|2. (10.35)

在第二步中,优化编码函数

k(μ)=argmin1kK|𝒙(μ)𝒘k|2, (10.36)

给定向量 𝒘k 重复这些步骤,直到找到满意的解决方案。 该解决方案不是唯一的, 通常算法会收敛到一个 H 的局部最小值。在实践中,应该尝试不同的随机初始化, 以找到最佳的局部最小值。

所有三种算法,竞争学习、自组织映射和 K 均值聚类,将权重向量 移向输入空间中的聚类。自组织映射与其他两种算法之间的区别在于 自组织映射使用邻域函数(这样相似的输入会在输出数组中激活附近的**神经元**),并以类似的方式更新它们的权重向量。 通过这种方式,具有大型输出数组的自组织映射可以找到主多方面的平滑参数化。 如果我们将邻域函数缩小到图 10.8 中的中心点,则所有几何信息都会丢失,并且自组织映射将等效于竞争学习(算法 9)。 从本质上讲,竞争学习和 K 均值聚类是相同算法的顺序和批次 版本 [1] 因此,当邻域范围趋于零时,自组织映射将等效于 K 均值聚类。

10.5 径向基函数

非线性可分的问题 可以通过具有隐藏层的感知器来解决, 正如我们在第 5 章中所看到的。 例如,图 5.13b )显示了由隐藏**神经元**参数化的分段线性决策边界。

通过对输入空间进行非线性变换,也可以实现可分离性。 . 10.13 显示了如何通过变换将 XOR 问题转换为线性可分问题

u1(𝒙)=(x2x1)212andu2(𝒙)=x2. (10.37)

该图显示了在 x1-x2 平面和新坐标 u1u2 中的不可分离问题。

\begin{overpic}[scale={0.57}]{Fig_10_13} \end{overpic}
图 10.13: 通过非线性映射 (10.37) 对 XOR 函数进行线性分离。 (a) 在输入平面上,该问题不是线性可分离的。 (b) 在 u1-u2 平面中,该问题是均匀线性可分离的。

该问题在 u1-u2 平面中是均匀线性可分离的。 我们可以通过一个带有权重的单 McCulloch-Pitts 神经元来解决它 𝑾 和零 阈值,将决策边界参数化为 𝑾𝒖(𝒙)=0

将模式(非线性地)映射 到更高维度的空间,因为 Cover 定理(第 5.4 节)表明,在更高维度空间中更容易分离模式: 考虑一个 𝒖(𝒙)=[u1(𝒙),,um(𝒙)]𝖳 集,包含有限阶的 m 个多项式函数,这些函数 嵌入 N维输入空间 在一个 m 维空间中。 那么 p 问题在 N 维输入空间中指向 𝒙(μ) 的概率 可由多项式决策边界分离,由 P(p,m) [方程 (5.29)] [72, 2] 给出。 请注意,此概率与输入空间的维数 N 无关。

问题当然是如何找到 非线性 映射 𝒖(𝒙) 一种可能性是使用 径向基函数 . 想法是用权重向量 𝒘j 对函数 uj(𝒙) 进行参数化,并使用无监督学习算法来查找分离输入数据的权重。 一个常见的选择 [2] 是使用 径向基函数 的形式:

uj(𝒙)=exp(12sj2|𝒙𝒘j|2). (10.38)

请注意,这些函数不是上面假设的有限阶多项式形式。 所以严格来说,我们不能调用 Cover 定理。 在实践中,映射 uj(𝒙) 仍然相当有效。 参数 sj 宽度 径向基函数进行参数化。 在算法的最简单版本中,它们被设置为统一。 Hertz、Krogh 和 Palmer [1] 讨论了具有 归一化径向基函数

uj(𝒙)=exp(12sj2|𝒙𝒘j|2)k=1mexp(12sk2|𝒙𝒘k|2). (10.39)

Haykin [2] 给出了径向基函数的其他选择。

\begin{overpic}[scale={0.57}]{Fig_10_14} \end{overpic}
图 10.14: 径向基函数网络用于 N=2 个输入 和 m=4 个径向基函数 (10.38)。 输出神经元具有线性激活函数,权重为 𝑾,阈值为零。
\begin{overpic}[scale={0.57}]{Fig_10_15} \end{overpic}
图 10.15: 径向基函数网络与感知器之间的比较。 左侧: 径向基函数的输出在输入空间中是局部的。 右侧: 要使用 sigmoid 单位实现局部输出,需要 两个隐藏层(图 7.5)。

10.14 显示了一个用于 N=2m=4 的径向基函数网络。 隐藏层中的四个神经元代表四个径向基函数 (10.38),它们将输入 映射到四维 𝒖 -空间。 该网络看起来像一个感知器 (第 5 章)。 但这里隐藏层以不同的方式工作。 感知器具有隐藏的 McCulloch-Pitts 神经元,可以计算 非局部 输出 σ(𝒘j𝒙θ) 相反,径向基函数的输出是 uj(𝒙) 局部化在输入空间中 [图 10.15(左)]。 我们在第7.1节中看到,如何利用带有S型激活函数的McCulloch-Pitts神经元 σ(b)创建局部基函数,但是 需要两层隐藏层才能做到这一点 [图 10.15(右)]。

径向基函数用单个隐藏层产生局部输出,它们将输入空间划分成 分成局部区域,每个区域对应一个径向基函数。 想象一下,我们拥有与输入模式一样多的径向基函数。 在这种情况下,我们可以简单地取 𝒘ν=𝒙(ν) 作为 ν=1,,p 10.14 中的线性输出计算 O(μ)=𝑾𝒖(𝒙(μ)),因此 u 空间中的分类问题采用以下形式

μ=1p𝑾μUμν=t(ν) (10.40)

Uμν=uν(𝒙(μ)) 如果所有模式都是成对不同的,则 𝒙(μ)𝒙(ν)μν,则矩阵 𝕌 是可逆的 [2] 在这种情况下,分类问题的解决方案如下

Wμ=ν=1pt(ν)[𝕌1]νμ, (10.41)

其中 𝕌 是一个对称的 p×p 矩阵,其元素为 Uμν

在实践中,可以通过选择 将它们的权重指向 的方向来减少径向基函数的数量 输入数据的聚类。 为此,人们使用 无监督竞争学习 (算法 10),其中索引 j0 获胜神经元 被定义为具有最大 uj 的那个。 宽度 sj 如何确定? 径向基函数 uj(𝒙) 的宽度 sj 被认为等于最小距离 𝒘j 和周围径向基函数的中心之间。 一旦找到径向基函数的权重和宽度,输出神经元的权重 由最小化确定

H=12μ(t(μ)O(μ))2 (10.42)

关于 𝑾 . 即使 𝕌 不可逆,这也适用。 可以通过对 H 进行随机梯度下降来获得近似解,同时保持径向基函数的参数不变。 Cover 的定理表明,如果 嵌入维度 m 较高。

算法 10 径向基函数
   初始化权重 wjk[1,1] 中随机独立地进行;
   将所有宽度设置为 sj=0
   对于  t=1,,T  执行
      馈送随机选择的模式 𝒙(μ)
      确定获胜神经元 j0uj0ujfor all values of j
      更新宽度:sj=minjk|𝒘j𝒘k|
      仅更新获胜神经元:δ𝒘j0=η(𝒙(μ)𝒘j0)
   结束 对于

径向基函数网络与第 5 章到 7 章中描述的感知器类似,因为它们都是用于解决分类问题的前馈网络。 一个根本区别在于,径向基函数的参数由无监督学习确定,而感知器则使用监督学习来训练,用于 所有 单位。 虽然 McCulloch-Pitts 神经元计算权重以最小化其从给定目标的输出,但径向基函数通过最大化输出 uj 作为 j 的函数来计算权重。 寻找径向基函数权重的算法总结在算法 10 中。 此外,与第 7 章的深度网络不同,径向基函数网络只有一层隐藏层,以及一个线性输出神经元 。 总之,径向基函数网络使用 混合 方案:径向基函数参数的无监督学习,以及输出神经元权重的监督学习。

10.6 自动编码器

多层感知器,分层前馈网络, 是为监督学习而开发的,如第二部分 II 所述。 这种布局也可以用于无监督学习。 例子是 自动编码器生成对抗网络

\begin{overpic}[scale={0.57}]{Fig_10_16} \end{overpic}
图 10.16: 自动编码器(示意图)。 编码器和解码器 都包含多个全连接层或卷积层(以方块表示)。 在所示的布局中,瓶颈由一层具有 非常少的神经元组成。 稀疏自动编码器具有许多神经元的瓶颈,但只有少数被激活。

自编码器 使用分层前馈网络来对未标记的输入模式数据集进行无监督学习 ,使用输入作为目标, 𝒕(μ)=𝒙(μ) 布局如图 10.16 所示。 该网络由两部分组成,一个 编码器 (在左边)和一个解码器 (在右边)。 编码器,例如,由几个完全连接或卷积层组成,并将输入映射到 瓶颈层,其神经元数量 M 远小于输入维度 MN 我们用 zj 表示瓶颈神经元的状态。 编码器对应于非线性映射 𝒛=𝒇e(𝒙) 解码器 将 瓶颈(或 潜在 ) 变量映射回输入 𝒙=𝒇d(𝒛) 人们通过反向传播调整权重和 阈值,直到网络学会近似 输入为

𝒙=𝒇d[𝒇e(𝒙)]. (10.43)

能量函数为:

H=12μ|𝒙(μ)𝒇d[𝒇e(𝒙(μ))]|2, (10.44)

其中 |𝒙|2=𝒙𝖳𝒙. 换句话说,自编码器学习恒等函数。 关键在于恒等函数是用两个非线性函数表示的, 即 编码器 𝒇e 解码器 𝒇d. 虽然恒等函数是微不足道的,但编码和解码函数不必是。 瓶颈确保网络不会简单地学习 𝒇e(𝒙)=𝒇d(𝒙)=𝒙.

潜在变量 𝒛 可以编码输入模式的有趣属性。 如果神经元的数量远小于模式位的数量,正如术语 瓶颈 所示,则编码器是低维度的(压缩的 ) 输入数据的表示。 这样,自编码器可以执行非线性降维 ,例如自组织映射(第 10.3 节)。 如果 编码器和 解码器是具有零阈值的线性函数,然后 H=12μ|𝒙(μ)𝕎d𝕎e𝒙(μ))|2 在这种情况下, z1(𝒙),,zM(𝒙) 只是前 M 个主成分 零均值输入数据 [164] (练习 10.14)。

稀疏自动编码器 [165] 瓶颈中具有大量神经元,可能比模式位的数量还要多。 但只允许少数 瓶颈神经元同时激活。 想法是稀疏表示 输入数据比密集表示更健壮,并且泛化更可靠。 至少高维但稀疏的二元分类问题表示 更可能线性可分(第 5.4 节)。 有不同的方法可以强制稀疏性,例如使用 L1- 或 L2- 正则化(第 7.6.1 节)。 另一种方法 [165] 是确保 每个 的平均激活 具有 sigmoid 激活函数的瓶颈神经元,

aj=1pμ=1pσ(bj(μ)), (10.45)

保持较小。 这是通过添加项

λjalogaaj+(1a)log1a1aj (10.46)

对能量函数,其中 拉格朗日乘子 λ(第 6.3 节)。 该项惩罚 ajaj=a1 的任何偏差,其中 a>0 是稀疏性参数。 总和中的每一项都是非负的,并且当所有 jaj=a 时消失,因为每一项都可以解释为 Kullback-Leibler 散度 (第 4.4 节)具有参数 aaj 的两个伯努利分布之间的关系。

变分自动编码器   [166, 167, 168] 具有类似于图 10.16 中示意性显示的布局,但它们的用途完全不同。 变分自动编码器是生成模型 (第 4.5 节):就像受限玻尔兹曼机一样 它们近似 输入 Pdata(𝒙) 的数据分布,并允许从中进行采样。 作为一个例子,考虑 MNIST 手写数字数据集。 这些模式定义了一个数据分布,该分布根据协方差和高阶相关性对数字的属性进行编码。 问题是如何从该分布中生成新的数字,这些数字与数据集中的数字不同,但具有其定义的属性。 换句话说,机器如何学习生成看起来像手写数字的图像?

变分自动编码器的理念 是以高斯分布 PL(𝒛) 的形式来表示数据分布 𝒛 潜在变量,利用一个事实,即可以近似 任何给定的数据分布 Pdata(𝒙)PL(𝒛) 的形式下,通过合适的非线性变换 𝒇(𝒛) [167] 变分自动编码器的训练与神经网络类似,但与第 II 部分描述的算法的关键区别在于, 变分自动编码器学习概率,而不是确定性输入-输出映射。

给定高斯分布PL(𝒛) 潜在变量,目标是最大化对数似然(第 4.5 节):

=logP(𝒙)=logd𝒛P(𝒙|𝒛)PL(𝒛). (10.47)

这里 P(𝒙|𝒛) 是生成 𝒙 给定 𝒛 . 在最简单的情况下,该分布 被假定为均值为 𝝁P(𝒛)=𝒇(𝒛) 的高斯分布,并且具有相关矩阵 P(𝒛) The 解码器以多层感知器或卷积神经网络的形式表示这些函数。 权重和 阈值被确定为通过梯度上升最大化 为此,我们必须找到一种有效的方法 来计算 及其梯度。 一种可能性是蒙特卡罗采样(第 4.2 节), 但这效率不高,因为大多数值 𝒛 PL(𝒛) 中提取的样本会导致不太可能的模式 𝒙 ,对 的贡献微乎其微。 为了解决这个问题,我们需要知道哪些值 𝒛 很可能产生给定的模式 𝒙 . 这个想法是学习第二个近似分布Q(𝒛|𝒙) 𝒛 给定 𝒙 . 可以将 Q(𝒛|𝒙) 视为一个 编码器。 因此, Q(𝒙|𝒛) 对应于 上面讨论了𝒇e,而P(𝒛|𝒙)对应于解码器𝒇d 一个重要的区别是 PQ 是概率,而不是确定性函数。

为了确定一个好的近似值 Q(𝒛|𝒙),最小化 Q(𝒛|𝒙) 和未知的精确分布 P(𝒛|𝒙) 之间的差异,

DKL[Q(𝒛|𝒙),P(𝒛|𝒙)]=logQ(𝒛|𝒙)logP(𝒛|𝒙)Q. (10.48)

第一个技巧是使用 贝叶斯定理 [29] 重写这个表达式,

P(𝒛|𝒙)=P(𝒙|𝒛)PL(𝒛)/P(𝒙). (10.49)

这样就得到:

DKL[Q(𝒛|𝒙)|P(𝒛|𝒙)]=logP(𝒙|𝒛)DKL[Q(𝒛|𝒙)|PL(𝒛)]Q. (10.50)

第二个技巧是注意到方程 (10.50) 的左端是一个合适的目标函数,需要最大化。 我们希望在未知函数 Q(𝒛|𝒙) 近似概率的约束下最大化 𝒛 编码模式 𝒙 . 通常情况下,人们将 Q(𝒛|𝒙) 设为均值为 𝝁Q、协方差矩阵为 Q 的高斯分布。 因此,任务是通过调整两个神经网络(编码器和解码器)的权重来确定函数 𝝁P(𝒛),P(𝒛),𝝁Q(𝒛)Q(𝒛)

这项任务,最大化 r.h.s. 方程 (10.50) 的计算并不像看起来那么简单,因为目标函数 (10.50) 涉及分布 Q 的平均值,其中反过来又取决于权重。 问题是如何将 导数 /wmn 放入平均值 Q 中,以获得权重更新 δwmn 的无偏表达式。 换句话说,目标是确保平均权重增量与目标函数 (10.50) 的梯度成正比。 在训练二元随机神经元时会遇到一个相关 问题(第 11.1 节)。 参考文献中描述了相似点 和不同点。   [169]

一个解决方案是使用 随机反向传播 [168] 在最简单的形式中,该算法利用了关于测试函数 F(𝒛) 的平均值的梯度与取决于权重 wij 的高斯概率 Q(𝒛;wij) 之间的关系:

wmnF(𝒛)Q=𝒃wmn𝝁Q+12tr𝔸wmnQ. (10.51)

这里 𝒃 以及 𝔸 是函数 F(𝒛) 的梯度和海森矩阵。 一个挑战是这些导数往往难以可靠地计算。 在参考文献 [168] 中描述了合适的近似值。 公式 (10.51) 中平均值内的表达式是无偏权重增量。 通过迭代学习规则,可以确定 P(𝒙|𝒛)Q(𝒛|𝒙) 的参数。 这允许高效地采样 𝒙 通过 对潜在变量进行采样,然后应用解码器。

生成对抗网络 [170] 是基于与上面为变分自编码器描述的学习规则类似的学习规则的生成模型,但细节上有一些差异。 生成对抗网络由两个多层感知器组成,一个生成器和一个判别器。 生成对抗网络由两个多层感知器、一个生成器和一个鉴别器组成。 生成网络根据给定的数据分布产生新的输出( 伪造 ) 中产生新的输出, 而判别器的任务是将这些输出分类为两类:真实数据或虚假数据。 生成器和判别器一起训练。 生成器的权重被调整以最大化 判别器的分类错误,而判别器的权重则被训练以最小化此错误 [171]

10.7 摘要

10.1 节和 10.2 节中描述的无监督学习算法基于 Hebb 规则。 这些算法可以学习未标记输入数据的不同特征:它们可以检测输入的熟悉度,执行主成分分析 ,以及识别 输入数据中的聚类。

自组织映射也依赖于 Hebb 规则。 一个重要的区别是输出排列在一个数组中,并且输出神经元 在输出数组中彼此靠近的以类似的方式更新。 因此,自组织映射可以表示拓扑和语义映射,其中彼此靠近或相似的输入映射到附近的输出。 当输出数组的维度远低于输入维度时,自组织映射执行非线性降维。

径向基函数网络是分类器,就像多层感知器一样。 它们的神经元 使用标记的输入数据以相同的方式训练。 然而,径向基函数网络的决策边界是多项式函数(不仅仅是超平面),它们的参数由无监督学习确定。

自动编码器是多层感知器。 它们可以通过使用输入模式作为目标来学习编码未标记输入数据的非线性特征。 最后,生成对抗网络不需要标记输入,因此可以被认为是无监督学习机器。 它们用于生成合成数据以扩展 用于监督学习的训练集,并构成伦理困境,因为它们可以用来生成 深度伪造 [172],其中某人的面部表情和语音被另一个人替换的操纵视频。

总之,本章描述的简单算法提供了一个概念证明:机器如何在没有标签的情况下学习。

10.8 进一步阅读

10.1 节和 10.2 节的主要来源是 Hertz、Krogh 和 Palmer 的书 [1] 关于自组织映射的良好参考资料是 Kohonen 的书 [159] Haykin 在其书 [2] 的第 5 章中讨论了径向基函数网络。 人们认为径向基函数网络的泛化能力不如感知器 [173] 为了解决这个问题,Poggio 和 Girosi [174] 建议通过监督学习确定径向基函数的参数 𝒘j ,使用随机梯度下降。

自编码器可以生成输入分布的非线性、低维表示。 输入分布。 与主成分分析的关系在参考文献中讨论   [164, 175]

Doersch [167] 的教程是关于变分自动编码器的推荐入门资料。 他还提到,变分自动编码器的底层数学原理与亥姆霍兹机器类似 (第 4.7 节),

尽管这两种机器的学习方式截然不同。 参考文献   [176] 建议使用变分自动编码器进行主动学习 (第 7.8 节)。 想法是表示 输入分布,以低维形式表示 潜在变量,并使用 K 均值聚类(第 10.4 节)来识别应该标记的模式组。 变分自动编码器也被用于异常值检测 [177] 和语言生成 [178]

第 11 章 强化学习

监督学习 需要标记数据,其中每个输入都带有网络应该学习的目标。 无监督学习 相反,不需要标记数据。 强化学习 介于这两者之间。 强化 描述了通过 奖励函数 学习的原理。此函数分配 惩罚奖励 到网络输出,取决于输出 与学习目标的相关性。 对于具有向量输出的 神经网络, 奖励函数 可以是

r={+1reward if all outputs correct ,1penalty otherwise . (11.1)

目标是学习生成 比触发惩罚的输出更频繁地接收奖励的输出。 我们说,奖励输出是 强化的。 反馈 可能是随机的,由网络最初未知的分布给出。

奖励函数反映了学习目标 训练过程以及学习结果都严重依赖于此函数。 假设用更宽松的替代方法替换奖励函数 (11.1):r=1 如果至少有一个输出是正确的,并且 r=1 否则。 自然,这会导致更多错误,如果目标是教机器人飞行,这可能不是一个好主意。

人们区分两种不同类型的强化问题,关联的非关联的 任务 [179] 非关联任务的一个例子是 N 臂老虎机问题 [16] 想象一下 N 台老虎机,它们有不同的奖励分布 ,最初对玩家来说是未知的。 考虑到有限的资金,问题是按什么顺序玩这些机器才能最大化总利润。 困境在于是否 坚持一台能带来良好回报的机器,还是尝试其他机器,这些机器最初可能带来低回报,但最终可能带来更高的回报 ( 利用-探索 困境)。 在这类问题中,玩家只接收强化信号 ,没有其他输入。 相反,在关联任务中,代理接收输入,或者 刺激, 它应该学会关联 每次刺激都会产生产生最高回报的输出。 这些任务例如在行为心理学中出现 ,其中问题是 区分不同的刺激,并将正确行为与每个刺激联系起来。

\begin{overpic}[scale={0.57}]{Fig_11_1} \end{overpic}
图 11.1: 顺序决策过程(示意图)。 图 3.1 之后,参考  [16]

一般而言,这种联想任务可以描述为 顺序决策过程 (图 11.1), 其中 代理 探索了一系列状态 𝒔0,𝒔1,𝒔2, 通过一系列动作 𝒂0,𝒂1,𝒂2,. 例如,考虑在湍流海洋中应该尽快游到水面的一种有动力的微生物 [180]. 它 通过观察局部环境来确定其状态。 该微生物可能会测量流动的局部应变和涡度。 环境提供强化信号 (例如到表面的距离),并且有机体根据其状态和确定采取哪个动作 强化信号。 它应该转弯、停止游泳还是加速? 该生物学会将动作与最大化奖励的特定状态相关联。 这听起来与将最佳输出与刺激相关联非常相似。 一个概念上的区别是代理的动作会改变环境:它的动作使它在湍流中到达不同的位置,具有不同的涡度和不同的应变。 第二点是 动作的奖励可能不是立即的。 在这种情况下,挑战是根据迄今为止收集的信息来评估优化预期未来奖励的动作。 这是一个 信用分配问题 [181]

有两种不同的联想任务: 连续片段 的。 在连续任务中,状态和动作的交织序列没有自然的结束,因此必须以一种 特定 时尚或引入权重因子以确保预期未来奖励保持有限。 相反,在情景任务中,学习被划分为情节 在有限步骤后结束。 一个例子是学习赢得棋盘游戏的策略。 在这种情况下,每个 情节对应于一轮游戏,并且奖励在每个情节结束时产生。 每轮的步骤数量, 情节长度 T,可能在不同回合之间有所不同。 为了估计预期奖励,通常需要很多 集。 第二个非常简单的例子是上面描述的刺激问题,其中状态(刺激)与动作无关。 每个 环节仅包含一个步骤,因此 T=1 响应随机选择的状态 𝒔0,代理学习执行最大化即时奖励的动作 𝒂0 。 这可以通过 关联奖励-惩罚算法(第 11.1 节)。 它使用具有通过梯度上升训练的权重的随机神经元 以最大化预期即时奖励。

要估计预期的未来奖励 T>1 时,必须使用不同的方法,通常是 时间差学习 . 它允许 在 T 步后估计预期的未来奖励, 通过将学习分解为时间步长 t=1,,T 想法是 在迭代时调整对未来奖励的预测比等待 T 次迭代后再更新预测要好。 在时间差学习中,人们用时间步长 t+1t [182] 的差异来表示时间 T 的奖励。

时间差分学习建立查找表 that summarises the best actions for each state, the Q V-table Q(𝒔,𝒂). Given Ns states 𝒔 and Na possible actions 𝒂 , Q(𝒔,𝒂) is a Ns×Na table. 它的元素包含每个状态-动作对的预期未来奖励。 为了实现时间差异学习,必须采用一种 政策策略. 它指定针对每个状态采取的操作。 In total there are NaNs possibilities of assigning actions to states. 当有很多状态和动作时,通过简单采样很快就不可能确定最佳策略,因为需要考虑的东西太多了。

时间差异学习和相关算法的优点是它们不依赖于对所有可能策略的评估。 Instead, the policy is updated using iterated estimates of the Q table. We write Qt for the estimate at time step t. There are different ways of deriving a policy from a Q-table. 贪婪策略 Q 是一个 确定性 策略,它对应于选择与 Q 表中给定行中最大 Q 元素相对应的动作: 𝒂=argmax𝒂Qt(𝒔,𝒂) 此策略最大化了对未来奖励的当前估计。

随机 策略通常更好,特别是在非平稳 或随机环境 , 因为它们允许代理探索可能更好的替代方案。 此外,对于确定性环境 中,确定性策略可能会导致循环。这可以用随机策略避免 . 随机策略的一个例子是 ε 贪婪策略 . 1ε 的概率,它选择贪婪动作 𝒂=argmax𝒂Qt(𝒔,𝒂),但 以很小的概率 ε 它采取次优动作 。另一个例子是 softmax 策略 , 其中 argmax 被 softmax 函数替换(第 7.5 节)。 Softmax 策略可以处理以连续变量描述的动作。

通常,策略可以在算法迭代时发生变化。 一个常见的选择 是随着迭代次数的增加,在 ε 贪婪策略中减少参数 ε, 以便算法收敛到最优的确定性策略。

Q学习 是对时间差分算法的近似。 Q 学习中,Q 表格 会被更新 假设代理始终遵循贪婪策略,即使它实际上可能遵循不同的策略。 Q 学习允许代理学习玩战略游戏 [183] 一个简单的例子 是井字棋游戏 (第 11.3 节)。 诸如国际象棋或围棋之类的游戏需要跟踪大量的状态,如此之大,以至于 Q 学习以其最简单的形式变得不切实际。 另一种方法是用深度神经网络来表示状态-动作映射 [184]

11.1 关联奖励-惩罚算法

联想奖励-惩罚算法 使用 随机神经元 经过训练以最大限度地提高平均即时奖励。 在第 5 章到 9 章中,输出神经元 是其输入的确定性函数。 相比之下,对于强化学习,最好使用随机神经元。 想法与第 3 章和 4 章相同:随机神经元可以探索更广泛的可能状态,这最终可能导致更好的解决方案。 神经元 i 的状态 yi 随机更新规则 (3.1):

yi={+1with probability 𝓅(bi),1with probability 1𝓅(bi), (11.2)

其中 bi=𝒘i𝒙 局部场(没有阈值),并且 𝓅(b)=(1+e2βb)1 回想一下参数 β1 是噪声水平 . 由于输出只能取两个值,yi=±1,公式(11.2)描述了一个 二进制 随机神经元。

preward y=1 y=+1
𝒙(1)=[1,0]𝖳 0.6 0.8AAB
𝒙(2)=[1,1]𝖳 0.3 0.1
\begin{overpic}[scale={0.57}]{Fig_11_2} \end{overpic}
图 11.2: 奖励条件化 [185] 一个随机神经元对刺激 𝒙(1)𝒙(2) 的响应输出不同,分别为 y=±1,并获得奖励(11.1):r=+1 的概率为 preward(𝒙,y)r=1 的概率为 1preward(𝒙,y) 目标是始终以使预期奖励最大化的输出响应。 表格:奖励分布。 面板 (a):问题的或然空间 [185], 表示每个输入 𝒙 在以 preward(𝒙,+1)preward(𝒙,1) 为坐标的平面上。 (b) 关联奖励惩罚规则的奖励与迭代次数 (11.10). 基于 Phillip Graefensteiner 模拟的示意图 在 100 个独立的实现中取平均值。

为了说明 单个二元随机神经元的关联奖励惩罚算法,考虑 一个代理人经历不同的刺激 𝒙 从输入分布中以相等的概率绘制。 接收刺激后 𝒙 , 随机神经元输出 y=1y=1. 给定 𝒙 y, 环境提供了一个随机奖励 r(𝒙,y)=±1 从一个 奖励分布 preward(𝒙,y)

r(𝒙,y)={+1with probability preward(𝒙,y),1with probability 1preward(𝒙,y). (11.3)

目标是调整权重,使神经元产生的输出以高概率被奖励。 11.2( a ) 展示了一个只有两个刺激的例子, 𝒙(1)=[1,0]𝖳𝒙(2)=[1,1]𝖳. preward(𝒙,y) 的数值表明,当神经元对 𝒙(1) 输出 y=1,对 𝒙(2) 输出 y=1 时,预期奖励最大化。 由于 𝒙(1)𝒙(2) 出现的概率相等,最大预期奖励

rmax=12[r(𝒙(1),+1)reward+r(𝒙(2),1)reward]=0.1. (11.4)

在此,我们使用 r(𝒙,y)reward=preward(𝒙,y)[1preward(𝒙,y)],以及图 11.2a 中给出的 preward(𝒙,y) 的数值。

图 11.2 (b) 显示了 偶然性空间 [185] 该问题的解决方案,表示输入 𝒙 在一个坐标为 preward(𝒙,+1)preward(𝒙,1) 的平面中。 对于位于阴影区域内的输入,学习将正确的输出与其相关联更容易,其中 preward(𝒙,+1)>12preward(𝒙,1)<12,反之亦然。 在这种情况下,可以通过固定 y=+1 并对所有 preward(𝒙,+1) 进行采样来解决问题。 𝒙. 如果 preward(𝒙,+1)>12y=+1 是最佳输出 𝒙 否则为 y=1 这种策略无法在阴影区域之外使用。 例如,如果两个 奖励概率都大于二分之一,则需要对 preward(𝒙,1)preward(𝒙,+1) 进行充分的采样,以确定哪一个更大:必须找到 两个商品中较大的一个 根据 Barto [185] 这说明了强化学习的基本困境:一个一开始看起来能产生高回报的输出,从长远来看可能并非最佳输出。 为了找到最佳输出,必须精确地估计两个 奖励概率。 这意味着必须经常尝试所有可能的输出,而不仅仅是当前看起来最优的输出。

为了推导出一个学习规则 我们需要一个成本函数。 一种可能是使用给定刺激的直接奖励的平均值 𝒙,

r=y1=±1,,yM=±1r(𝒙,𝒚)P(𝒚|𝒙)reward. (11.5)

这里 reward 是环境响应的平均值 由奖励分布决定 preward(𝒙,𝒚) 假设奖励分布 是固定的。 此外,

P(𝒚|𝒙)=i=1M{𝓅(bi)foryi=1,1𝓅(bi)foryi=1 (11.6)

是网络在给定情况下产生输出 𝒚=[y1,,yM]𝖳 的概率 局部场 bi=jwijxj

为了找到 r 的最大值,我们使用梯度上升法。 关于 r,类似于最大化玻尔兹曼机的对数似然(第 4.4 节),以及监督学习中感知器的能量函数的梯度下降(第 6 章)。 梯度通过应用链式法则计算 ,像往常一样。 计算类似于玻尔兹曼机(第 4 章)。 在一些代数运算之后(练习 11.2)人们发现 对于给定的 𝒙𝒚 P(𝒚|𝒙) 关于 wmn 的导数等于 P(𝒚|𝒙)β[ymtanh(βbm)]xn 我们得出结论

rwmn=βr(𝒙,𝒚)[ymtanh(βbm)]xn (11.7)

bm=jwmjxj 一样,和以前一样。 平均值是在网络的输出和奖励分布上取的, 就像公式 (11.5) 中一样。

现在我们寻求一个学习规则来增加预期的即时奖励 r 换句话说,我们需要 权重增量 δwmn 是一个无偏的 预期即时奖励 [179] 的梯度的:

δwmn=ηrwmn. (11.8)

与公式 (11.7) 进行比较得到:

δwmn=αr[ymtanh(βbm)]xn, (11.9)

,其中 α=ηβ 此学习规则属于 Williams [179] 推导出的更一般规则集。 规则 (11.9) 收敛到稳态是合理的,因为 权重增量随着网络 学会产生输出 max𝒚{preward(𝒙,𝒚)} 而接近零,独立于 𝒚 ,使得 𝒚𝒚 平均为零。 但是没有收敛性的证明。

另一种选择是关联奖励-惩罚 规则[185]

δwmn=α{[ymtanh(βbm)]xnforr=+1,δ[ym+tanh(βbm)]xnforr=1, (11.10)

0<δ1 对于 r=1,学习规则 (11.9) 和 (11.10) 给出相同的结果 权重增量,但对于 r=1 增量是不同的。 根据规则 (11.10),代理主要从正反馈中学习。这种不对称规则的一个优点 是可以证明在δ0[185]极限内收敛。 然而,一般来说, δ 很小时,收敛变得非常慢。 11.2c)显示了即时奖励的模拟结果,对学习过程的 100 个独立实现进行平均,与规则的迭代次数 (11.10) 相比。 我们看到平均即时奖励接近稳定状态。 即时奖励的稳态平均值小于 rmax=0.1,但正如预期的那样,随着 δ 的减小,它接近 rmax

平均学习曲线 仍然表现出相当大的波动 . 它们反映了个人认识内部和个人认识之间的显着差异。 此外, 收敛证明假设输入模式 是线性无关的。 这意味着模式的数量不能超过输入尺寸N。具有线性相关输入的关联强化问题可以通过嵌入来解决 将输入模式嵌入到更高维度的输入空间中 (第 5.4 节)。

关联奖励-惩罚规则说明了代理如何使用 强化信号以最大化预期即时奖励。 例如,该算法可以作为动物如何学习以不同方式对不同刺激做出反应的模型。

然而,在许多问题中,奖励并非立即获得。 当我们下棋时, 奖励在比赛结束时才会出现,例如,r=+1 如果我们赢了,r=1 如果我们输了,并且 r=0 如果比赛以平局结束。 更一般地说,在复杂环境中导航的代理不应该只考虑即时奖励,还应该考虑特定行为如何影响未来的潜在奖励。 估计此类任务的未来奖励的一种方法是时差学习,将在下一节讨论。

11.2 时差学习

时间差分学习如何 允许代理优化其预期的未来奖励? 对于一个情节任务 ,给定一个 T步的情节中,智能体访问有限的状态序列𝒔0,,𝒔T1,并收集奖励r1,,rT 未来的奖励 定义为

Rt=τ=tT1rτ+1. (11.11)

连续任务 ,相比之下,没有定义的端点。 由于 (11.11) 中的总和可能随着 T 的增加而发散,因此在奖励总和中引入一个权重因子 0γ1 是惯例:

Rt=τ=tγτtrτ+1. (11.12)

权重因子 降低了远期未来对估计的贡献。 较小的 γ 值赋予更近的未来更大的权重, 并且极限 γ0+ 对应于 Rt=rt+1 等式 (11.12) 中的总和被称为 未来的折现奖励

我们使用一个输入为 𝒔t 的神经网络来估计 Rt 通常,网络输出是输入的非线性函数,由权重参数化,权重可以排列成几层隐藏神经元 (第 II 部分)。 最简单的选择是使用单个线性单元 ,就像公式 (5.19) 中一样:

O(𝒔t)=𝒘𝒔t. (11.13)

权重向量的分量 wj 𝒘 确定网络输出 O(𝒔t) 近似于 Rt 这可以通过最小化能量函数来实现

H=12t=0T1[RtO(𝒔t)]2 (11.14)

使用梯度下降 . 相应的学习规则如下:

δwm=αt=0T1[RtO(𝒔t)]Owm. (11.15)
\begin{overpic}[scale={0.57}]{Fig_11_3} \end{overpic}
图 11.3: 公式 (11.17) 中的双重求和扩展到以黑色表示的项上。 对应的项可以以两种方式相加,如两个面板中所示,对于 T=6

时间差异学习[182]的思想是将误差RtO(𝒔t)表示为时间差异之和:

RtO(𝒔t)=τ=tT1[rτ+1+O(𝒔τ+1)O(𝒔τ)], (11.16)

其中 O(𝒔T) 定义为零, O(𝒔T)0 使用梯度下降规则 (11.15) 得到

δ𝒘=αt=0T1τ=tT1[rτ+1+O(𝒔τ+1)O(𝒔τ)]𝒔t. (11.17)

此双重求和中的项可以以不同的方式相加,如 图 11.3 所示:

δ𝒘=ατ=0T1t=0τ[rτ+1+O(𝒔τ+1)O(𝒔τ)]𝒔t. (11.18)

交换求和变量并引入 权重因子 0λ1 得到:

δ𝒘=αt=0T1[rt+1+O(𝒔t+1)O(𝒔t)]τ=0tλtτ𝒔τ. (11.19)

权重因子的目的 是为了降低过去状态在总和 [186] 中的权重。 或者也可以在每个时间步更新 𝒘 (因此 O),增量为 [182]

δ𝒘t=α[rt+1+O(𝒘t,𝒔t+1)O(𝒘t,𝒔t)]τ=0tλtτ𝒔τ. (11.20)

这是时差学习规则,也称为 TD(λ)。 [186] 时差学习允许机器学习西洋双陆棋[17, 187],使用深层网络 和反向传播。 (第 6.1 节)来确定权重。

\begin{overpic}[scale={0.57}]{Fig_11_4} \end{overpic}
图 11.4: 顺序强化学习中的状态 𝒔t 序列。 动作 𝒂t𝒔t 导向 𝒔t+1,其中代理收到强化 rt+1 Q 表,其中元素 Q(𝒔t,𝒂t) 估计未来折现奖励。

规则 TD(0) 类似于学习规则 (6.6a),目标为 rt+1+O(𝒘t,𝒔t+1) 它允许学习一步预测 时间序列。 使用方程式 (11.13),我们可以看到 TD(0) 学习规则对应于以下输出 O 的学习规则:

Ot+1(𝒔t)=Ot(𝒔t)+α[rt+1+Ot(𝒔t+1)Ot(𝒔t)]. (11.21)

下标 tOt 中强调输出函数是迭代更新的。 学习规则 (11.21) 适用于估计情节任务的未来奖励 (11.11)。 如果环境是稳定的,人们可以对许多连续的 情节,使用来自 情节 k 作为情节 k+1 的初始权重值进行平均。 对于连续任务,估计未来折现奖励 (11.12) 的对应规则如下:

Ot+1(𝒔t)=Ot(𝒔t)+α[rt+1+γOt(𝒔t+1)Ot(𝒔t)]. (11.22)

回到本章开头概述的问题,考虑一个在复杂环境中探索的智能体。 任务可能是尽快从位置 A 到达位置 B,或者尽可能少地消耗能量。 在时间 t,智能体位于位置 𝒙t,速度为 𝒗t 这些变量以及环境的局部状态 在状态向量中总结 𝒔t 给定 𝒔t,智能体可以采取某些行动:例如,它可以减速、加速或转向。 这些可能的行动在向量 𝒂t 中总结。 在每个时间步,agent 执行动作 𝒂t,该动作在给定当前状态 𝒔t 的情况下,优化了预期的未来折扣奖励 (11.12)。 任何状态-动作对的估计预期未来奖励 在表格中总结:Q -表格 具有元素 Qt(𝒔t,𝒂t)Ot(𝒔t) 的模拟。 Q 表格的不同行对应不同的状态,不同的列对应不同的动作。 Q 表格的 TD(0) 规则如下:

Qt+1(𝒔t,𝒂t) =Qt(𝒔t,𝒂t)+αt[rt+1+γQt(𝒔t+1,𝒂t+1)Qt(𝒔t,𝒂t)]. (11.23)

该算法被称为 SARSA,因为它需要 𝒔t,𝒂t,rt+1,𝒔t+1 𝒂t+1 更新 Q 表格(图 11.4)。 该规则的困难之处 (11.23) 是它不仅取决于当前状态-动作对 [𝒔t,𝒂t], 而且还取决于下一个动作 𝒂t+1,因此间接地取决于策略。 有时这用写作来表示 Qπ 代表给定策略的 Q 表格 π

算法 11 Q -学习用于具有 ε 贪婪策略的 episodic 任务
   初始化 Q;
   为了  k=1,,K 
      初始化 𝒔0;
      为了  t=0,,Tk1 
         选择 𝒂tQ(𝒂t,𝒔t) 中,根据 ε 贪婪策略;
         计算 𝒔t+1 并记录 rt+1;
         更新 Q(𝒔t,𝒂t)Q(𝒔t,𝒂t)+α[rt+1+max𝒂Q(𝒔t+1,𝒂)Q(𝒔t,𝒂t)];
      结束 为了
   结束 为了

11.3 Q 学习

Q 学习规则 [188] 是对公式 (11.23) 的近似,它 不依赖于 𝒂t+1 相反 人们假设下一个动作, 𝒂t+1,是最优的:

Qt+1(𝒔t,𝒂t) =Qt(𝒔t,𝒂t)+αt[rt+1+γmax𝒂Qt(𝒔t+1,𝒂)Qt(𝒔t,𝒂t)], (11.24)

无论当前采用的策略如何。 虽然公式 (11.24) 没有提到任何策略, 但学习结果仍然取决于策略,因为策略决定了状态和动作的序列 [𝒔t,𝒂t] 对于贪婪策略, 等式 (11.24) 等效于 (11.23), 但一般来说,这两种算法是不同的,并且 收敛到不同的解。 Q - 表在 Q - 学习中收敛到贪婪策略的预期未来奖励时, 对于 SARSA,它收敛到对应于训练中使用的策略的预期未来奖励。 训练。 当训练期间的性能很重要时,这可能是一个优势,例如,当训练一个昂贵的机器人时,它不应该经常发生故障, 或者对于一只通过做学习飞行的鸟来说。 Q - 学习更简单,可以用于最终策略基于 argmax𝒂Q(𝒔,𝒂) 重要的问题,但 训练期间的奖励不太重要。 例如,棋盘游戏,其中只有最终策略的质量很重要,而不是在训练期间输了多少次。 总之, Q - 学习更简单,如果在训练期间采取 ε0,它将产生最佳策略以及 SARSA,但它可能在训练期间给出更低的奖励。 训练。

Q - 学习算法在算法 11 中总结。 通常将 Q - 表中的初始条目设置为大的正值( 乐观 初始化), 因为这促使代理探索许多不同的动作,至少在开始时。 如果代理处于状态 𝒔t,它会从 Qt(𝒔t,𝒂t) 中根据给定策略选择动作 𝒂t 例如,对于ε-贪婪策略,代理从相应的行中选择一个随机动作 Q 表的概率为 ε 它以概率 1ε 选择产生最大结果的操作 𝒂t1 11如果相关行中的几个元素具有相同的最大值,则它们中的任何一个都以相等的概率被选中。 Qt(𝒔t,𝒂t) 给定 𝒔t 动作 𝒂t 的选择决定了下一个状态 𝒔t+1,这反过来允许更新 Q 表:给定由动作 𝒂t 产生的新状态 𝒔t+1, 使用公式 (11.24) 更新 Qt(𝒔t,𝒂t) 对于情节性任务,在 (11.24) 中放入 γ=1,并在许多 情节中使用来自情节 k 的结果 QTk 作为情节 k+1Q 表的初始条件,进行平均。 每个新情节都可以从一个新的初始状态 𝒔0 开始。 如果 𝒔0 是学习算法很少访问的状态之一,则这有助于探索过程。

当序列 𝒔0,𝒔1,𝒔2, 是马尔可夫链时 (第 4.2 节),那么可以证明 Q 学习算法 [189, 186] 收敛 如果使用依赖于时间的学习率 αt 满足

t=0αt=andt=0αt2<. (11.25)

通常 Q 学习与 ε 贪婪策略相结合。 此策略与 具有随机神经元的关联奖励惩罚算法:随机性允许更广泛的响应范围,其中一些在长期内可能被证明是有益的。 ε 非常小时,代理会选择看起来最佳的操作。 因此,次优 Q 元素的采样频率较低,因此更容易受到更大误差的影响。 因此,最好从一个相对较大的 ε 值开始。 随着算法的迭代,降低 ε 是惯例,因为这加速了 收敛到贪婪策略。

重要的是要记住,如上所述,学习结果取决于奖励函数。 一般来说,分析最佳策略如何随着奖励函数的变化而变化是一个好主意。 有时我们会面临逆问题: 考虑一个微生物 在湍流的海洋中游动,如何应对不同的刺激。 这种行为是如何通过遗传进化塑造的 ? 优化了哪些量? 最重要的是减少 推进的能量成本 ?还是避免捕食更重要

另一个挑战是确定合适的州和行动。 在复杂环境中导航的代理可能具有一系列连续的位置和速度,并且可能会从环境中体验到连续值的信号。 为了在Q表中表示相应的状态,必须进行离散化。 为此,必须确定这些变量的适当范围和分辨率,以及动作的范围和分辨率。 如果状态和动作过多,Q学习就会变得效率低下。 这被称为 维数灾难 [190, 16]

让我们看看Q学习如何用于一个非常简单的例子,即关联任务 如图11.2所示。 个事件对应于计算神经元在其初始状态下的输出,因此T=1 没有状态序列,任务是估计即时奖励 . 在这种情况下,学习规则 (11.24) 简化为

δQ(𝒔,a) =α[r(𝒔,a)Q(𝒔,a)]. (11.26)

由于每个事件只包含一个时间步长,我们省略了下标t。此外,方程(11.24)中的项max𝒂Q(𝒔t+1,𝒂)没有出现在(11.26)中,因为Q估计了即时奖励。 此问题只有两种状态,𝒔=𝒙(1)𝒔=𝒙(2),可能的动作是a=±1 换句话说,在本例中,Ns=Na=2 在每一轮中,随机选择其中一个状态,且每个状态被选择的概率相等。 该动作由当前对即时奖励的估计决定, argmaxaQ(𝒔,a) 概率为 1ε,否则均匀随机。 这些步骤被迭代 多次( 集),使用情节 k 的结果作为情节 k+1 的初始条件。 规则 (11.26) 描述了指数松弛 到目标 对于小的学习率 α 在此极限情况下,方程 (11.26) 近似于随机微分方程

ddkQ(𝒔,a)=αfε(𝒔,a)[r(𝒔,a)Qk(𝒔,a)], (11.27)

其中 fε(𝒔,a) 是状态-动作对的平稳频率 [𝒔,a] 使用 ε -贪婪策略访问:

fε(𝒔,a)=1Ns{1ε+εNaif a=argmaxaQk(𝒔,a),εNaotherwise. (11.28)

该频率被归一化为 1,1=s,afε(𝒔,a) 对方程 (11.27) 的解取平均值 初始条件为 Q0(𝒔,a)=1 在奖励分布上得到:

Qk(𝒔,a)=exp[αfε(𝒔,a)k]+αfε(𝒔,a)0kdkr(𝒔,a)exp[fε(𝒔,a)α(kk)]. (11.29)
\begin{overpic}[scale={0.57}]{Fig_11_5} \end{overpic}
图 11.5: Q -学习用于图 11.2 中描述的任务。 (a) Q 表的条目与方程 (11.26) 迭代次数的关系 α=0.01ε=1 (b) 相同,但对于 ε=0.05 基于 Navid Mousavi 模拟的示意图,对 5000 个独立的学习曲线实现取平均值。

对于 ε>0Qt(𝒔,𝒂) 平均收敛于

[Q(𝒙(1),1)Q(𝒙(1),+1)Q(𝒙(2),1)Q(𝒙(2),+1)]=[0.20.60.40.8]. (11.30)

在这里,我们使用的是 r(𝒙,y)=2preward(𝒙,y)1,以及 11.2 中的奖励概率。 11.5 说明了收敛速度 如何取决于参数 ε 的值。 对于 ε=1,所有状态-动作对被访问和评估的频率相同,与 Q 表的当前元素无关。 公式 (11.28) 和 (11.29) 表明 Q 表的所有元素都以相同的速率收敛到它们的 稳态值,等于 α4 相反,对于 ε 的较小值, 算法倾向于采取最优动作,argmaxaQk(𝒔,a) 因此,它 以 α2 的速率更快地找到 Q 表的最优元素。 但是,其他元素 收敛得慢得多。 最初,理论 (11.29) 不适用,因为 Q 表每一行中的最优和次优 Q 元素 没有很好地分离。 因此,所有元素的衰减率最初是相似的。 但一旦最优元素和次优元素存在显著差异,次优元素将按照 εα/4 的速率衰减,正如理论所预测的。

此示例说明了 Q 学习与 ε 贪婪策略结合的优势。 对于较小的 ε 值,该算法往往比暴力算法更快地收敛到最优策略,暴力算法会以相同的频率访问每个状态-动作对。 公式 (11.28) 表明,这种优势随着 Na 值的增大而变得更大。 唯一的代价是 Q 表中次优条目的收敛速度 更慢。

对于具有 T>1 步的回合式任务,这种收益更为显著。 在这种情况下,Q 表的学习规则取决于 argmax𝒂Qt(𝒔,𝒂) 如上所述,有 NaNs 种方法可以将最大元素分配到 Q 表的行中。 要通过完全枚举找到最优确定性 策略 , 必须 运行大量 集数 对于 NaNs 种可能性中的每一种, 找出哪一种可以获得最大的奖励。 这在 NaNs 或两者都变得太大时是不可行的。 相反,具有较小 ε 值的 Q 学习往往会探索那些似乎在当前估计的 Q 值的情况下能够产生最大预期未来奖励的动作。 通过这种方式使用经验,该算法可以同时 改进其策略和 Q 值,使其趋于最优。 因此,Q 学习 可以找到最优策略,或至少是良好的策略, 当完全枚举所有可能性失败时。

11.6展示了Q学习的第二个例子,即井字棋游戏。 . 这是一款非常简单的游戏,两位玩家轮流在3×3棋盘上放置棋子。 首先在横排、竖排或对角线上获得三个棋子的玩家获胜,并获得奖励r=+1 平局将获得r=0,玩家在输掉回合时会获得r=1 目标是尽可能多地获胜,以最大限度地提高预期未来回报。 然而,双方玩家都有一种策略可以确保他们不会输。 如果两位玩家都试图最大限度地提高他们预期的未来回报,那么他们最终会遵循这种策略。 因此,每一局游戏都必须以平局告终[191] 结果,游戏相当无聊。

然而,询问玩家如何使用Q学习和ε贪婪策略来学习找到这种策略是有启发性的。 为此,我们让两位代理相互对战许多回合。 The 状态空间是所有棋盘配置的集合。 玩家×先开始,因此总是看到棋盘上有偶数个棋子,而玩家看到的棋子数是奇数。 由于玩家遇到的状态集不同,因此每个玩家必须跟踪他们自己的Q表。 任务是情节性的,T步数可能在回合之间变化。 每次回合结束时才获得反馈。

我们使用公式 (11.24) 并使用一个恒定的学习率 α 由于每轮的步数是有限的,我们可以设置 γ=1

\begin{overpic}[scale={0.57}]{Fig_11_6} \end{overpic}

图 11.6: 井字棋。 两个玩家,×,轮流在 3×3 格的空地上放置棋子。 目标是第一个完成由三个自己的棋子组成的行、列或对角线的人。 在所示的示例中,玩家 × 先手并最终赢得了比赛。 玩家 × 遇到的状态用 𝒔t 表示,玩家 遇到的状态用 𝒔t 表示。 他们的行动用 𝒂t𝒂t 表示。

Q 是一个 2×n 表,其中每个条目都是一个 3×3 数组。 这里 n 是玩家迄今遇到的状态数量。 第一行为状态列表,每个状态都是一个 3×3 数组,其中包含条目 1 ()、1 (×) 或 0 (空)。 第二行包含 Q 值。 给定棋盘的某个状态,玩家可以在任何空地上放置棋子。 对预期未来奖励的相应估计存储在第二行中相应的 3×3 数组中。 由于不能将棋子放在已占用的方格上,因此在 Q 表中分配 NaN 给相应的条目。

在一轮中,玩家的Q表会轮流更新,始终是下棋的玩家。 一轮比赛结束后,两位玩家的 Q 表都会更新。 在第一轮比赛中,遇到的 Q 表的元素被初始化为零并保持为零。 Q 的第一个更改发生在本轮的最后一步。 例如,如果玩家 × 获胜,则更新对应于导致最终状态 𝒔T1 的状态-动作对的元素 QT1(𝒔T1,aT1),对于获胜玩家,并将 QT2(𝒔T2,𝒂T2) 设置为 1 对于玩家

两位玩家都遵循 ε 贪婪策略 . 他们以概率 1ε 采取最佳行动(如果相关行中的最大 Q 元素是退化的,则随机选择最大元素之一)。 以概率 ε 选择随机行动。 当玩家继续互相玩游戏时,奖励会传播到 Q 的其他元素。 假设再次遇到状态 𝒔T1,即允许玩家 ×𝒂T1 赢得第一轮。 然后,项 maxaQT1(𝒔T1,𝒂) 导致先前状态的 Q 元素发生变化,即第二次从该状态到达 𝒔T1 的状态。 然而,随着时间的推移,这个过程会减慢,因为后来的更新会乘以学习率的更高幂 α 此外,如果对手在上一轮输了,它将尝试不同的行动,这些行动可能会阻止其他玩家的获胜行动。

\begin{overpic}[scale={0.57}]{Fig_11_7} \end{overpic}
图 11.7: 学习曲线,其中两个玩家使用 Q 学习和 ε 贪婪策略学习玩井字棋。 图中显示的是游戏以平局结束、玩家 × 获胜和玩家 获胜的频率。 使用学习率 α=0.1 可以得到类似的曲线。 参数 ε 在前 104 轮等于 1,然后每 100 轮减少 0.9 倍,并在 30 轮的滑动窗口上对每条曲线进行平均。 基于 Navid Mousavi 执行的模拟的示意图。

11.7 说明了玩家在相互对抗了许多轮后是如何学习的。 由于双方都试图在稳定状态下最大化他们预期的未来奖励 根据Q学习算法,在这种情况下所有游戏都以平局结束。 对应的 Q 表包含了每个玩家应该采取的策略,以最大化他们的奖励。 每个玩家都应该采取最大化他们的奖励的方式。 假设玩家放置了第一颗棋子,如下所示:

\begin{overpic}[scale={0.35}]{Eq_11_31.jpg}\put(-35.0,8.0){\footnotesize board}\put(-35.0,-13.0){\footnotesize$Q$-table}\end{overpic}[1.001.001.000.34NaNNaN1.001.001.00][NaN0.571.000.69NaNNaN0.590.73NaN][NaN1.00NaN0.86NaNNaNNaN0.027NaN]. (11.31)

比赛如何继续? 玩家 × 有几种不同的方式试图获胜。 公式 (11.31) 中的左侧 Q-表表明,一种可能性是将棋子放在顶部或底部行,因为这会创造出在下一步中创建 的机会,这种配置无法被对手阻挡,从而使 ×获胜。 右侧 Q-表显示,如果玩家 ×走错棋,他仍然会输掉比赛或最终以平局结束。 对应的 Q-条目尚未完全收敛到 10 对应于次优状态的 Q-条目估计不准确,因为它们访问的频率较低。 这里 ε=0.3 选择的相当大。 与公式 (11.31) 中的那些相比,ε 的较小值对于次优 Q-元素给出了更不准确的估计,在 相同轮数的训练后。

如上所述,学习结果取决于奖励函数。 . 如果将获胜的奖励增加到例如 r=+2,最佳策略似乎是轮流获胜。 如果对平局施加惩罚 r=+1 (获胜), r=1 (平局, 失败),则预期会得到相同的学习结果。 练习 11.8。 参考文献中描述了机器人学和自然科学中强化学习问题的更多示例。   [192]

当状态和动作的数量不太多时,上面描述的 Q-学习算法非常有效。 对于非常大的 Q-表,算法变得相当慢。 在这种情况下,用一个近似的 Q 函数代替 Q 表来映射状态到动作可能更有效。 如第 11.2 节所述,可以使用神经网络来表示 Q 函数 [184] ( 深度强化学习) . 该方法的一个应用是 AlphaGo,这是一种机器学习算法,它学会了玩围棋游戏 [183] Q 函数用卷积神经网络表示 . 这使得即使状态数量巨大,也可以使用 Q 学习的变体。

近年来,许多原理性研究证明了强化学习在广泛的科学问题中的可能性。 深度强化学习的最新进展为未来工程科学中的现实世界控制问题带来了希望。

11.4 摘要

强化学习介于无监督学习(第 10.1 章)和监督学习(第 5 章到第 9 章)之间。 在强化学习中,没有标记的数据集。 相反,神经网络或智能体通过环境以奖励或惩罚的形式提供的反馈来学习。 目标是找到一个策略来最大化预期奖励。 强化学习应用于从心理学到机械工程的广泛领域,使用各种各样的算法。 The 关联奖励-惩罚算法和许多时间差分学习版本最初是使用神经网络制定的。 Q-学习是针对顺序决策过程的时间差学习的近似方法。 在其最简单的形式中,它不依赖于神经网络。 然而,当状态和动作的数量很大时,该算法会变慢。 在这种情况下,用神经网络来近似Q-函数可能更有效。

11.5 进一步阅读

强化学习的标准参考是 强化学习:入门 由萨顿和巴托 [16] 撰写。 收敛的原始参考 Q-学习算法的参考文献。 [189] 关于强化学习的更数学的介绍在参考文献[186] 中给出。 统计和非线性物理学中强化学习的例子总结在参考文献   [192] 中。

一个悬而未决的问题是何时以及如何 对称性 可以用来简化强化学习问题。 对于一个微小的微生物学习在湍流中导航,一些方面在参考文献   [193] 中进行了讨论,但总体上知之甚少。 另一个悬而未决的问题涉及 Q-学习算法的收敛。 如果状态序列是一个马尔可夫链,则保证收敛到最优策略。 。然而,大多数现实世界的问题都不是马尔可夫的,因此 收敛不能保证。 尽管如此,该算法似乎表现良好(本书中反复出现的主题),但它在哪些情况下可能失败是一个悬而未决的问题。

*

参考文献

  • Hertz et al. [1991] Hertz, J, Krogh, A & Palmer, R 1991 Introduction to the Theory of Neural Computation. Addison-Wesley.
  • Haykin [1999] Haykin, S 1999 Neural Networks: a comprehensive foundation, 2nd edn. New Jersey: Prentice Hall.
  • Horner [2001] Horner, H, Neuronale Netze, www.tphys.uni-heidelberg.de/~horner, [Last accessed 8-November-2018].
  • Goodfellow et al. [2016] Goodfellow, I. J, Bengio, Y & Courville, A, Deep learning, www.deeplearningbook.org, [Last accessed 5-September-2018].
  • Nielsen [2017] Nielsen, M, Neural networks and deep learning,
    http://neuralnetworksanddeeplearning.com
    , [Last accessed 13-August-2018].
  • McCulloch & Pitts [1943] McCulloch, W & Pitts, W 1943 A logical calculus of the ideas immanent in nervous activity. Bull. Math. Biophys. 5, 115.
  • Carnap [1937] Carnap, R 1937 The logical syntax of language. London: K. Paul, Trench, Trubner & Co., Limited.
  • McCulloch & Pitts [1947] McCulloch, W & Pitts, W 1947 How we know universals the perception of auditory and visual forms. Bull. Math. Biophys. 9, 127–147.
  • Hebb [1949] Hebb, D. O 1949 The organization of behavior: A neuropsychological theory. New York: Wiley.
  • Rosenblatt [1958] Rosenblatt, F 1958 The perceptron: A probabilistic model for information storage and organization in the brain. Psychological Rev. 65, 386.
  • Minsky & Papert [1969] Minsky, M & Papert, S 1969 Perceptrons. An Introduction to Computational Geometry. MIT Press.
  • Rumelhart et al. [1986] Rumelhart, D. E, Hinton, G. E & Williams, R. J 1986 Learning internal representations by error propagation. In Parallel distributed processing: explorations in the microstructure of cognition (ed. D. E Rumelhart & J. L MCClelland).
  • Hopfield [1982] Hopfield, J. J 1982 Neural networks and physical systems with emergent collective computational abilities. Proceedings of the National Academy of Sciences 79 (8), 2554–2558.
  • Hinton [2010] Hinton, G. E 2010 Boltzmann machines. In Encyclopedia of Machine Learning (ed. C Sammut & G. I Webb), pp. 132–136. Boston, MA: Springer US.
  • Hinton & Sejnowski [1986] Hinton, G. E & Sejnowski, T. J 1986 Learning and Relearning in Boltzmann Machines, pp. 282–317. Cambridge, MA, USA: MIT Press.
  • Sutton & Barto [2018] Sutton, R. S & Barto, A. G 2018 Reinforcement Learning: An Introduction, 2nd edn. The MIT Press.
  • Tesauro [1995] Tesauro, G 1995 Temporal difference learning and TD-Gammon. Communications of the ACM 38, 58–68.
  • Kohonen [1990] Kohonen, T 1990 The self-organizing map. Proceedings of the IEEE 78, 1464–1480.
  • Senior et al. [2020] Senior, A. W, Evans, R, Jumper, J et al. 2020 Improved protein structure prediction using potentials from deep learning. Nature 577, 2076–710.
  • nob [2020] The Nobel Prize in Physiology or Medicine 1906, www.nobelprize.org, [Last accessed 1-October-2020].
  • Newman et al. [2017] Newman, E. A, Araque, A & Dubinsky, J. M, ed. 2017 The beautiful brain. The drawings of Santiago Ramón y Cajal. New York: Abrams.
  • Gabbiani & Metzner [1999] Gabbiani, F & Metzner, W 1999 Encoding and processing of sensory information in neuronal spike trains. Journal of Experimental Biology 202 (10), 1267.
  • Kanal [2001] Kanal, L 2001 Perceptrons. In International Encyclopedia of the Social & Behavioral Sciences (ed. N. J Smelser & P. B Baltes), pp. 11218 – 11221. Oxford: Pergamon.
  • Little [1974] Little, W 1974 The existence of persistent states in the brain. Mathematical Biosciences 19, 101 – 120.
  • Fischer & Igel [2014] Fischer, A & Igel, C 2014 Training restricted Boltzmann machines: An introduction. Pattern Recognition 47 (1), 25–39.
  • Sherrington [2005] Sherrington, D, Spin glasses: a perspective,
    arxiv.org/abs/cond-mat/0512425
    , [Last accessed 5-December-2020].
  • Sherrington & Kirkpatrick [1975] Sherrington, D & Kirkpatrick, S 1975 Solvable model of a spin-glass. Phys. Rev. Lett. 35, 1792–1796.
  • Lippmann [1987] Lippmann, R 1987 An introduction to computing with neural nets. IEEE ASSP Magazine 4, 4–22.
  • Mathews & Walker [1964] Mathews, J & Walker, R. L 1964 Mathematical Methods of Physics. New York: W.A. Benjamin.
  • Feller [1968] Feller, W 1968 An introduction to probability theory and its applications, 3rd edn. New York: John Wiley & Sons.
  • Weisstein [2019] Weisstein, E. W, WolframMathWorld - a Wolfram web resource, mathworld.wolfram.com/Erf.html, [Last accessed 17-September-2019].
  • Kadanoff [2009] Kadanoff, L. P, More is the same: phase transitions and mean field theories, arxiv.org/abs/0906.0653, [Last accessed 3-September-2020].
  • Amit et al. [1985] Amit, D. J, Gutfreund, H & Sompolinsky, H 1985 Spin-glass models of neural networks. Phys. Rev. A 32, 1007.
  • Amit & Gutfreund [1987] Amit, D. J & Gutfreund, H 1987 Statistical mechanics of neural networks near saturation. Ann. Phys. 173, 30.
  • Hopfield [1984] Hopfield, J. J 1984 Neurons with graded response have collective computational properties like those of two-state neurons. Proceedings of the National Academy of Sciences 81 (10), 3088–3092.
  • Hinton & Sejnowski [1983] Hinton, G. E & Sejnowski, T. J 1983 Optimal perceptual inference. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pp. 444–453.
  • Müller et al. [1999] Müller, B, Reinhardt, J & Strickland, M. T 1999 Neural Networks: An Introduction. Heidelberg: Springer.
  • Geszti [1990] Geszti, T 1990 Physical models of neural networks. World Scientific.
  • Steffan & Kühn [1994] Steffan, H & Kühn, R 1994 Replica symmetry breaking in attractor neural network models. Zeitschrift für Physik B Condensed Matter 95, 249–260.
  • Volk [1998] Volk, D 1998 On the phase transition of Hopfield networks – another Monte Carlo study. Int. J. Mod. Phys. C 9, 693.
  • Löwe [1998] Löwe, M 1998 On the storage capcaity of Hopfield models with correlated patterns. Ann. Prob. 8, 1216.
  • Engel & Van den Broeck [2001] Engel, A & Van den Broeck, C 2001 Statistical Mechanics of Learning. Cambridge University Press.
  • Watkin et al. [1993] Watkin, T. L. H, Rau, A & Biehl, M 1993 The statistical mechanics of learning a rule. Rev. Mod. Phys. 65, 499–556.
  • Kirkpatrick et al. [1983] Kirkpatrick, S, Gelatt, C. D & Vecchi, M. P 1983 Optimization by simulated annealing. Science 220, 671–680.
  • Hinton [2007a] Hinton, G. E, Boltzmann machine,
    www.scholarpedia.org/article/Boltzmann_machine
    , [Last accessed 21-September-2019].
  • Hinton [2007b] Hinton, G. E, A practical guide to training restricted Boltzmann machines, www.cs.toronto.edu/~hinton/absps/guideTR.pdf, [Last accessed 18-September-2019].
  • MacKay [2003] MacKay, D. J. C 2003 Information Theory, Inference and Learning Algorithms. New Jersey: Cambridge University Press.
  • Van Kampen [2007] Van Kampen, N. G 2007 Stochastic processes in physics and chemistry. North Holland.
  • Sokal [1997] Sokal, A 1997 Monte Carlo methods in statistical mechanics: Foundations and new algorithms. In Functional Integration: Basics and Applications (ed. C DeWitt-Morette, P Cartier & A Folacci), pp. 131–192. Boston, MA: Springer US.
  • Mehlig et al. [1992] Mehlig, B, Heermann, D. W & Forrest, B. M 1992 Hybrid Monte Carlo method for condensed-matter systems. Phys. Rev. B 45, 679–685.
  • Metropolis et al. [1953] Metropolis, N, Rosenbluth, A. W, Rosenbluth, M. N, Teller, M & Teller, E 1953 Equation of state calculations by very fast computing machine. Journal of Chemical Physics 21, 1087–1092.
  • Binder [1986] Binder, K, ed. 1986 Monte-Carlo Methods in Statistical Physics, 2nd edn. Berlin: Springer.
  • Press et al. [1992] Press, W. H, Teukolsky, S. A, Vetterling, W. T & Flannery, W. P 1992 Numerical Recipes in C: The Art of Scientific Computing, second edition. New York: Cambridge University Press.
  • Hopfield & Tank [1985] Hopfield, J. J & Tank, D. W 1985 Neural computation of decisions in optimisation problems. Biol. Cybern. 52, 141.
  • Waterman [1995] Waterman, M. S 1995 Introduction to Bioinformatics. Prentice Hall.
  • Lander et al. [2001] Lander, E, Linton, L, Birren, B et al. 2001 Initial sequencing and analysis of the Human genome. Nature 409, 860–921.
  • Smolensky [1987] Smolensky, P 1987 Information Processing in Dynamical Systems: Foundations of Harmony Theory, pp. 194–281. MITP.
  • Le Roux & Bengio [2008] Le Roux, N & Bengio, Y 2008 Representational power of restricted Boltzmann machines and deep belief networks. Neural Computation 20, 1631–1649.
  • Le Roux & Bengio [2010] Le Roux, N & Bengio, Y 2010 Deep belief networks are compact universal approximators. Neural Computation 22, 2192–2207.
  • Montúfar & Ay [2011] Montúfar, G. F & Ay, N 2011 Refinements of universal approximation results for deep belief networks and restricted Boltzmann machines. Neural Computation 23, 1306–1319.
  • Montúfar et al. [2011] Montúfar, G. F, Rauh, J & Ay, N 2011 Expressive power and approximation errors of restricted Boltzmann machines. In Advances in Neural Information Processing Systems (ed. J Shawe-Taylor, R Zemel, P Bartlett, F Pereira & K. Q Weinberger), , vol. 24, pp. 415–423.
  • Montúfar et al. [2013] Montúfar, G. F, Rauh, J & Ay, N 2013 Maximal information divergence from statistical models defined by neural networks. In Geometric Science of Information (ed. F Nielsen & F Barbaresco), pp. 759–766. Berlin, Heidelberg: Springer Berlin Heidelberg.
  • Carleo & Troyer [2017] Carleo, G & Troyer, M 2017 Solving the quantum many-body problem with artificial neural networks. Science 355 (6325), 602–606.
  • Gubernatis [2005] Gubernatis, J. E 2005 Marshal Rosenbluth and the Metropolis algorithm. Physics of Plasmas 12, 057303.
  • Murphy [2012] Murphy, K. P 2012 Machine Learning: A Probabilistic Perspective. Cambridge, Massachusetts: MIT Press.
  • Fischer & Igel [2012] Fischer, A & Igel, C 2012 An introduction to restricted Boltzmann machines. In Progress in Pattern Recognition, Image Analysis, Computer Vision, and Applications (ed. L Alvarez, M Mejail, L Gomez & J Jacobo), pp. 14–36. Berlin, Heidelberg: Springer Berlin Heidelberg.
  • Bengio [2009] Bengio, Y 2009 Learning deep architectures for AI. Foundations and Trends in Machine Learning 2, 1–127.
  • Dayan et al. [1995] Dayan, P, Hinton, G. E, Neal, R. M & Zemel, R. S 1995 The Helmholtz machine. Neural Computation 7, 889–904.
  • Dayan & Hinton [1996] Dayan, P & Hinton, G. E 1996 Varieties of Helmholtz machine. Neural Networks 9, 1385–1403.
  • Dua & Graff [2017] Dua, D & Graff, C, UCI machine learning repository, archive.ics.uci.edu/ml, [Last accessed 18-August-2018].
  • Fisher [1936] Fisher, R. A 1936 The use of multiple measurements in taxonomic problems. Ann. Eugenics 7, 179.
  • Cover [1965] Cover, T. M 1965 Geometrical and statistical properties of systems of linear inequalities with applications in pattern recognition. IEEE Trans. on electronic computers p. 326.
  • Sompolinsky [2013] Sompolinsky, H, Introduction: the perceptron, web.mit.edu, [Last accessed 9-October-2018].
  • Sloane [2020] Sloane, N. J. A, Online encyclopedia of integer sequences, oeis.org/A000609, [Last accessed 9-November-2020].
  • Greub [1981] Greub, W 1981 Linear Algebra. New York: Springer.
  • LeCun et al. [1998] LeCun, Y, Bottou, L, Orr, G. B & Müller, K.-R 1998 Efficient back prop. In Neural networks: tricks of the trade (ed. G. B Orr & K.-R Müller). Springer.
  • Nesterov [1983] Nesterov, Y 1983 A method of solving a convex programming problem with convergence rate o(1/k2). Soviet Mathematics Doklady 27, 372.
  • Sutskever [2013] Sutskever, I 2013 Training recurrent neural networks. PhD thesis, University of Toronto.
  • Hornik et al. [1989] Hornik, K, Stinchcombe, M & White, H 1989 Neural networks are universal approximators. Neural Networks 2, 359.
  • Lapedes & Farber [1988] Lapedes, A & Farber, R 1988 How neural nets work. In Neural Information Processing Systems (ed. D Anderson), pp. 442–456. American Institute of Physics.
  • Franco & Cannas [2001] Franco, L & Cannas, S 2001 Generalization properties of modular networks: implementing the parity function. IEEE Transactions on Neural Networks 12, 1306–1313.
  • Crisanti et al. [1993] Crisanti, A, Vulpiani, A & Paladin, G 1993 Products of random matrices in Statistical Physics. Berlin: Springer.
  • Cvitanovic et al. [2015] Cvitanovic, P, Artuso, G, Mainieri, R, Tanner, G & Vattay, G, Lyapunov exponents, chaosbook.org/chapters/Lyapunov.pdf, [Last accessed 30-September-2018].
  • Eckmann & Ruelle [1985] Eckmann, J. P & Ruelle, D 1985 Ergodic theory of chaos and strange attractors. Rev. Mod. Phys. 57, 617–656.
  • Strogatz [2000] Strogatz, S. H 2000 Nonlinear Dynamics and Chaos: With Applications to Physics, Biology, Chemistry and Engineering. Westview Press.
  • Storm [2020] Storm, L, Unstable gradients in deep neural nets, MSc thesis Chalmers University of Technology (2020).
  • Pennington et al. [2017] Pennington, J, Schoenholz, S. S & Ganguli, S 2017 Resurrecting the sigmoid in deep learning through dynamical isometry: theory and practice. In Advances in Neural Information Processing Systems (ed. I Guyon, U. V Luxburg, S Bengio, H Wallach, R Fergus, S Vishwanathan & R Garnett), , vol. 30, pp. 4785–4795. Curran Associates, Inc.
  • Sutskever et al. [2013] Sutskever, I, Martens, J, Dahl, G & Hinton, G. E 2013 On the importance of initialization and momentum in deep learning. In Proceedings of the 30th International Conference on Machine Learning - Volume 28, pp. III–1139–III–1147.
  • Glorot & Bengio [2010] Glorot, X & Bengio, Y 2010 Understanding the difficulty of training deep feedforward neural networks. In Proceedings of the Thirteenth International Conference on Artificial Intelligence and Statistics (ed. Y. W Teh & M Titterington), Proceedings of Machine Learning Research, vol. 9, pp. 249–256. Chia Laguna Resort, Sardinia, Italy: JMLR Workshop and Conference Proceedings.
  • Schoenholz et al. [2016] Schoenholz, S. S, Gilmer, J, Ganguli, S & Sohl-Dickstein, J, Deep information propagation, arxiv.org/abs/1611.01232, [Last accessed 5-December-2020].
  • Glorot et al. [2011] Glorot, X, Bordes, A & Bengio, Y 2011 Deep sparse rectifier neural networks. In Proceedings of the Fourteenth International Conference on Artificial Intelligence and Statistics (ed. G Gordon, D Dunson & M Dudík), Proceedings of Machine Learning Research, vol. 15, pp. 315–323. Fort Lauderdale, FL, USA: JMLR Workshop and Conference Proceedings.
  • He et al. [2016] He, K, Zhang, X, Ren, S & Sun, J 2016 Deep residual learning for image recognition. In 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pp. 770–778.
  • res [????] Residual neural network, wikipedia.org/wiki/Residual_neural_network, [Last accessed 25-May-2021].
  • Kleinbaum et al. [2008] Kleinbaum, D, Kupper, L & Nizam, A 2008 Applied regression analysis and other multivariable methods, 3rd edn. Belmont: Thomson Higher Education.
  • Srivastava et al. [2014] Srivastava, N, Hinton, G. E, Krizhevsky, A, Sutskever, I & Salakhutdinov, R 2014 Dropout: A simple way to prevent neural networks from overfitting. Journal of Machine Learning Research 15 (56), 1929–1958.
  • Hanson & Pratt [1989] Hanson, S & Pratt, L 1989 Comparing biases for minimal network construction with back-propagation. In Advances in Neural Information Processing Systems (ed. D Touretzky), , vol. 1, pp. 177–185. Morgan-Kaufmann.
  • Hassibi & Stork [1993] Hassibi, B & Stork, D 1993 Second order derivatives for network pruning: Optimal brain surgeon. In Advances in Neural Information Processing Systems (ed. S Hanson, J Cowan & C Giles), , vol. 5, pp. 164–171. Morgan-Kaufmann.
  • LeCun et al. [1990] LeCun, Y, Denker, J & Solla, S 1990 Optimal brain damage. In Advances in Neural Information Processing Systems (ed. D Touretzky), , vol. 2, pp. 598–605. Morgan-Kaufmann.
  • Frankle & Carbin [2018] Frankle, J & Carbin, M, The lottery ticket hypothesis: Finding small, trainable neural networks, arxiv.org/abs/1803.03635, [Last accessed 5-December-2020].
  • Deng et al. [2009] Deng, J, Dong, W, Socher, R, Li, L. J, Li, K & Li, F. F 2009 ImageNet: A large-scale hierarchical image database. In 2009 IEEE Conference on Computer Vision and Pattern Recognition, pp. 248–255. [Last accessed 3-September-2018].
  • Ioffe & Szegedy [2015] Ioffe, S & Szegedy, C, Batch normalization: Accelerating deep network training by reducing internal covariate shift, arxiv.org/abs/1502.03167, [Last accessed 5-December-2020].
  • Santurkar et al. [2018] Santurkar, S, Tsipras, D, Ilyas, A & Madry, A, How does batch normalization help optimization? (No, it is not about internal covariate shift), arxiv.org/abs/1805.11604, [Last accessed 5-December-2020].
  • Kirkpatrick et al. [2017] Kirkpatrick, J, Pascanu, R, Rabinowitz, N et al. 2017 Overcoming catastrophic forgetting in neural networks. Proceedings of the National Academy of Sciences 114, 3521–3526.
  • Settles [2009] Settles, B, Active learning literature survey,
    burrsettles.com/pub/settles.activelearning.pdf
    , [Last accessed 5-December-2020].
  • Choromanska et al. [2015] Choromanska, A, Henaff, M, Mathieu, M, Arous, G. B & LeCun, Y 2015 The loss surfaces of multilayer networks. In Proceedings of the Eighteenth International Conference on Artificial Intelligence and Statistics (ed. G Lebanon & S. V. N Vishwanathan), Proceedings of Machine Learning Research, vol. 38, pp. 192–204. San Diego, California, USA: PMLR.
  • Fyodorov [2004] Fyodorov, Y. V 2004 Complexity of random energy landscapes, glass transition, and absolute value of the spectral determinant of random matrices. Phys. Rev. Lett. 92, 240601.
  • Becker et al. [2020] Becker, S, Zhang, Y & Lee, A. A 2020 Geometry of energy landscapes and the optimizability of deep neural networks. Phys. Rev. Lett. 124, 108301.
  • Wang et al. [2020] Wang, Y, Yao, Q, Kwok, J & Ni, L. M 2020 Generalizing from a few examples: A survey on few-shot learning. ACM Computing Surveys 53, 63.
  • Krizhevsky et al. [2012] Krizhevsky, A, Sutskever, I & Hinton, G. E 2012 ImageNet classification with deep convolutional neural networks. In Advances in Neural Information Processing Systems (ed. F Pereira, C. J. C Burges, L Bottou & K. Q Weinberger), , vol. 25, pp. 1097–1105. Curran Associates, Inc.
  • Abadi et al. [2015] Abadi, M, Agarwal, A, Barham, P et al., TensorFlow: Large-scale machine learning on heterogeneous systems, www.tensorflow.org, [Last accessed 3-September-2018].
  • LeCun et al. [2018] LeCun, Y, Cortes, C & Burges, C. J, The MNIST database of handwritten digits, yann.lecun.com/exdb/mnist, [Last accessed 3-September-2018].
  • Smith [2017] Smith, L. N 2017 Cyclical learning rates for training neural networks. In 2017 IEEE Winter Conference on Applications of Computer Vision (WACV), pp. 464–472.
  • Mat [2018] Deep learning in MATLAB, se.mathworks.com, [Last accessed 14-January-2020].
  • Ciregan et al. [2012] Ciregan, D, Meier, U & Schmidhuber, J 2012 Multi-column deep neural networks for image classification. In 2012 IEEE Conference on Computer Vision and Pattern Recognition, pp. 3642–3649.
  • Picasso [2017] Picasso, J. P, Pre-processing before digit recognition for NN and CNN trained with MNIST dataset, stackoverflow.com, [Last accessed 26-September-2018].
  • Kozielski et al. [2012] Kozielski, M, Forster, J & Ney, H 2012 Moment-based image normalization for handwritten text recognition. In 2012 International Conference on Frontiers in Handwriting Recognition, pp. 256–261.
  • Russakovsky et al. [2015] Russakovsky, O, Deng, J, Su, H, Krause, J, Satheesh, S, Ma, S, Huang, Z, Karpathy, A, Khosla, A, Bernstein, M, Berg, A. C & Li, F. F 2015 ImageNet large scale visual recognition challenge. International Journal of Computer Vision 115, 211–252.
  • Li et al. [2019] Li, F. F, Johnson, J & Yeung, S, CNN architectures, http://cs231n.stanford.edu, [Last accessed 4-December-2020].
  • Hu et al. [2018] Hu, J, Shen, L & Sun, G 2018 Squeeze-and-excitation networks. In 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition, pp. 7132–7141.
  • Seif [2018] Seif, G, Deep learning for image recognition: why it’s challenging, where we’ve been, and what’s next, towardsdatascience.com, [Last accessed 26-September-2018].
  • Szegedy et al. [2015] Szegedy, C, Wei Liu, Yangqing Jia, Sermanet, P, Reed, S, Anguelov, D, Erhan, D, Vanhoucke, V & Rabinovich, A 2015 Going deeper with convolutions. In 2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pp. 1–9.
  • Zeng et al. [2018] Zeng, X, Ouyang, W, Yan, J et al. 2018 Crafting gbd-net for object detection. IEEE Transactions on Pattern Analysis and Machine Intelligence 40 (9), 2109–2123.
  • Hern [2015] Hern, A, Computers now better than humans at recognising and sorting images, www.theguardian.com, [Last accessed 26-September-2018].
  • Karpathy [2014] Karpathy, A, What I learned from competing against a convnet on imagenet, karpathy.github.io, [Last accessed 26-September-2018].
  • Khurshudov [2015] Khurshudov, A, Suddenly, a leopard print sofa appears, rocknrollnerd.github.io, [Last accessed 23-August-2018].
  • Geirhos et al. [2018] Geirhos, R, Medina Temme, C. R, Rauber, J, Schütt, H. H, Bethge, M & Wichmann, F. A 2018 Generalisation in humans and deep neural networks. In Advances in Neural Information Processing Systems (ed. S Bengio, H Wallach, H Larochelle, K Grauman, N Cesa-Bianchi & R Garnett), , vol. 31, pp. 7538–7550. Curran Associates, Inc.
  • Szegedy et al. [2013] Szegedy, C, Zaremba, W, Sutskever, I, Bruna, J, Erban, D, Goodfellow, I. J & Fergus, R, Intriguing properties of neural networks, arxiv.org/abs/1312.6199, [Last accessed 5-December-2020].
  • Nguyen et al. [2015] Nguyen, A, Yosinski, J & Clune, J 2015 Deep neural networks are easily fooled: High confidence predictions for unrecognizable images. In 2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pp. 427–436.
  • Yosinski et al. [2015] Yosinski, J, Clune, J, Nguyen, A, Fuchs, T & Lipson, H, Understanding neural networks through deep visualization, arxiv.org/abs/1506.06579, [Last accessed 5-December-2020].
  • Graetz [2019] Graetz, F. M, How to visualize convolutional features in 40 lines of code, https://towardsdatascience.com, [Last accessed 30-December-2020].
  • Dosovitskiy et al. [2020] Dosovitskiy, A, Beyer, L, Kolesnikov, A et al., An image is worth 16x16 words: Transformers for image recognition at scale, arxiv.org/abs/2010.11929, [Last accessed 5-December-2020].
  • Krizhevsky [2009] Krizhevsky, A, Learning multiple layers of features from tinyimages, www.cs.toronto.edu/k̃riz, [Last accessed 1-November-2020].
  • Ott [2002] Ott, E 2002 Chaos in Dynamical Systems, 2nd edn. Cambridge University Press.
  • Sutskever et al. [2014] Sutskever, I, Vinyals, O & Le, Q. V 2014 Sequence to sequence learning with neural networks. In Advances in Neural Information Processing Systems (ed. Z Ghahramani, M Welling, C Cortes, N Lawrence & K. Q Weinberger), , vol. 27, pp. 3104–3112. Curran Associates, Inc.
  • Lipton et al. [2015] Lipton, Z. C, Berkowitz, J & Elkan, C, A critical review of recurrent neural networks for sequence learning, arxiv.org/abs/1506.00019, [Last accessed 5-December-2020].
  • Pascanu et al. [2013] Pascanu, R, Mikolov, T & Bengio, Y 2013 On the difficulty of training recurrent neural networks. In Proceedings of the 30th International Conference on International Conference on Machine Learning - Volume 28, pp. III–1310–III–1318.
  • Hochreiter & Schmidhuber [1997] Hochreiter, S & Schmidhuber, J 1997 Long short-term memory. Neural Computation 9, 1735.
  • Olah [2015] Olah, C, Understanding lstm networks, colah.github.io, [Online; accessed 30-September-2020].
  • Cho et al. [2014] Cho, K, van Merriënboer, B, Gulcehre, C, Bahdanau, D, Bougares, F, Schwenk, H & Bengio, Y 2014 Learning phrase representations using RNN encoder–decoder for statistical machine translation. In Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP), pp. 1724–1734. Doha, Qatar: Association for Computational Linguistics.
  • Heck & Salem [2017] Heck, J. C & Salem, F. M 2017 Simplified minimal gated unit variations for recurrent neural networks. In 2017 IEEE 60th International Midwest Symposium on Circuits and Systems (MWSCAS), pp. 1593–1596.
  • Wu et al. [2016] Wu, Y, Schuster, M, Chen, Z et al., Google’s neural machine translation system: bridging the gap between Human and machine translation, arxiv.org/abs/1609.08144, [Last accessed 5-December-2020].
  • Papineni et al. [2002] Papineni, K, Roukos, S, Ward, T & Zhu, W.-J 2002 BLEU: a method for automatic evaluation of machine translation. In Proceedings of the 40th annual meeting on association for computational linguistics, p. 311.
  • Lukosevicius & Jaeger [2009] Lukosevicius, M & Jaeger, H 2009 Reservoir computing approaches to recurrent neural network training. Computer Science Review 3, 127.
  • Pathak et al. [2018] Pathak, J, Hunt, B, Girvan, M, Lu, Z & Ott, E 2018 Model-free prediction of large spatiotemporally chaotic systems from data: A reservoir computing approach. Phys. Rev. Lett. 120, 024102.
  • Jaeger & Haas [2004] Jaeger, H & Haas, H 2004 Harnessing nonlinearity: Predicting chaotic systems and saving energy in wireless communication. Science 304, 78–80.
  • Lim et al. [2019] Lim, S. H, Giorgini, L. T. T, Moon, W & Wettlaufer, J. S, Predicting critical transitions in multiscale dynamical systems using reservoir computing, arxiv.org/abs/1908.03771, [Last accessed 5-December-2020].
  • Lukosevicius [2012] Lukosevicius, M 2012 A practical guide to applying echo state networks. In Neural Networks: Tricks of the Trade (ed. G Montavon, G Orr & K Müller). Berlin,Heidelberg: Springer.
  • Tanaka et al. [2019] Tanaka, G, Yamane, T, Héroux, J. B et al. 2019 Recent advances in physical reservoir computing: A review. Neural Networks 115, 100 – 123.
  • Doya [1993] Doya, K 1993 Bifurcations of recurrent neural networks in gradient descent learning. IEEE Transactions on Neural Networks 1, 75.
  • Williams & Zipser [1995] Williams, R. J & Zipser, D 1995 Gradient-based learning algorithms for recurrent networks and their computational complexity. In Back-propagation: Theory, Architectures and Applications (ed. Y Chauvin & D. E Rumelhart), pp. 433–486. Hillsdale, NJ: Erlbaum.
  • Doya [1995] Doya, K 1995 Recurrent networks: supervised learning. In The Handbook of Brain Theory and Neural Networks (ed. M. A Arbib), pp. 796–799. Cambridge MA: MIT Press.
  • Karpathy [2015] Karpathy, A, The unreasonable effectiveness of recurrent neural networks, karpathy.github.io, [Online; accessed 4-October-2018].
  • Ikeda et al. [1980] Ikeda, K, Daido, H & Akimoto, O 1980 Optical turbulence: Chaotic behaviour of transmitted light from a ring cavity. Physical Review Letters 45, 709–712.
  • Kantz & Schreiber [2004] Kantz, H & Schreiber, T 2004 Nonlinear Time Series Analysis. Cambridge: Cambridge University Press.
  • Oja [1982] Oja, E 1982 A simplified neuron model as a principal component analyzer. J. Math. Biol. 15, 267.
  • Wilkinson et al. [2009] Wilkinson, M, Bezuglyy, V & Mehlig, B 2009 Fingerprints of random flows? Phys. Fluids 21, 043304.
  • Weliky et al. [1996] Weliky, M, Bosking, W. H & Fitzpatrick, D 1996 A systematic map of direction preference in primary visual cortex. Nature 379, 1476–4687.
  • Kohonen [2013] Kohonen, T 2013 Essentials of the self-organizing map. Neural Networks 37, 52 – 65.
  • Kohonen [1995] Kohonen, T 1995 Self-Organizing Maps. Berlin: Springer.
  • Martin & Obermayer [2009] Martin, R & Obermayer, K 2009 Self-organizing maps. In Encyclopedia of Neuroscience (ed. L. R Squire), p. 551. Oxford: Academic Press.
  • Ritter & Schulten [1986] Ritter, H & Schulten, K 1986 On the stationary state of kohonen’s self-organizing sensory mapping. Biological Cybernetics 54, 99–106.
  • Jackson [1999] Jackson, J. D 1999 Classical electrodynamics, 3rd edn. New York, NY: Wiley.
  • Snyder et al. [1991] Snyder, W, Nissman, D, Van den Bout, D & Bilbro, G 1991 Kohonen networks and clustering: Comparative performance in color clustering. In Advances in Neural Information Processing Systems (ed. R. P Lippmann, J Moody & D Touretzky), , vol. 3, pp. 984–990. Morgan-Kaufmann.
  • Bourlard & Kamp [1988] Bourlard, H & Kamp, Y 1988 Auto-association by multilayer perceptrons and singular value decomposition. Biological Cybernetics 59, 201.
  • Ng [2011] Ng, A, Sparse autoencoder, web.stanford.edu/class/cs294a, [Online; accessed 13-October-2020].
  • Kingma & Welling [2013] Kingma, D. P & Welling, M, Auto-encoding variational Bayes, arxiv.org/abs/1312.6114, [Last accessed 5-December-2020].
  • Doersch [2016] Doersch, C, Tutorial on variational autoencoders, arxiv.org/abs/1606.05908, [Last accessed 5-December-2020].
  • Jimenez Rezende et al. [2014] Jimenez Rezende, D, Mohamed, S & Wierstra, D 2014 Stochastic backpropagation and approximate inference in deep generative models. In Proceedings of the 31st International Conference on Machine Learning (ed. E. P Xing & T Jebara), Proceedings of Machine Learning Research, vol. 32, pp. 1278–1286. Bejing, China: PMLR.
  • Jankowiak & Obermeyer [2018] Jankowiak, M & Obermeyer, F, Pathwise derivatives beyond the reparameterization trick, arxiv.org/abs/1806.01851, [Last accessed 25-May-2021].
  • Goodfellow et al. [2014] Goodfellow, I. J, Pouget-Abadie, J, Mirza, M, Xu, B, Warde-Farley, D, Ozair, S, Courville, A & Bengio, Y 2014 Generative adversarial nets. In Advances in Neural Information Processing Systems (ed. Z Ghahramani, M Welling, C Cortes, N Lawrence & K. Q Weinberger), , vol. 27, pp. 2672–2680. Curran Associates, Inc.
  • Rocca [2019] Rocca, J, Understanding generative adversarial networks, towardsdatascience.com, [Last accessed 15-October-2020].
  • Sample [2020] Sample, I, What are deepfakes – and how can you spot them?, theguardian.com, [Last accessed 30-September-2020].
  • Wettschereck & Dietterich [1992] Wettschereck, D & Dietterich, T 1992 Improving the performance of radial basis function networks by learning center locations. In Advances in Neural Information Processing Systems (ed. J Moody, S Hanson & R. P Lippmann), , vol. 4, pp. 1133–1140. Morgan-Kaufmann.
  • Poggio & Girosi [1990] Poggio, T & Girosi, F 1990 Networks for approximation and learning. Proceedings of the IEEE 78 (9), 1481–1497.
  • Bourlard [2000] Bourlard, H, Auto-association by multilayer perceptrons and singular value decomposition, publications.idiap.ch/downloads/reports/2000/rr00-16.pdf, [Last accessed 16-October-2020].
  • Pourkamali-Anaraki & Wakin [2019] Pourkamali-Anaraki, F & Wakin, M. B, The effectiveness of variational autoencoders for active learning, arxiv:1911.07716, [Last accessed 5-December-2020].
  • Eduardo et al. [2019] Eduardo, S, Nazabal, A, Williams, C. K. I & Sutton, C, Robust variational autoencoders for outlier detection and repair of mixed-type data, arxiv.org/abs/1907.06671, [Last accessed 5-December-2020].
  • Li et al. [2020] Li, C, Gao, X, Li, Y, Peng, B, Li, X, Zhang, Y & Gao, J, Optimus: Organizing sentences via pre-trained modeling of a latent space, arxiv.org/abs/2004.04092, [Last accessed 5-December-2020].
  • Williams [1992] Williams, R. J 1992 Simple statistical gradient-following algorithms for connectionist reinforcement learning. Machine Learning 8, 229–256.
  • Colabrese et al. [2017] Colabrese, S, Gustavsson, K, Celani, A & Biferale, L 2017 Flow navigation by smart microswimmers via reinforcement learning. Phys. Rev. Lett. 118, 158004.
  • Minsky [1961] Minsky, M 1961 Steps toward artificial intelligence. Proceedings of the IRE pp. 8–30.
  • Sutton [1988] Sutton, R. S 1988 Learning to predict by the methods of temporal differences. Machine Learning 3, 9–44.
  • Silver et al. [2016] Silver, D, Huang, A, Maddison, C. J et al. 2016 Mastering the game of go with deep neural networks and tree search. Nature 529, 484–489.
  • Mnih et al. [2015] Mnih, V, Kavukcuoglu, K, Silver, D et al. 2015 Human-level control through deep reinforcement learning. Nature 518, 1476–4687.
  • Barto [1985] Barto, A. G 1985 Learning by statistical cooperation of self-interested neuron-like computing elements. Hum. Neurobiol. 4, 229–56.
  • Szepesvari [2010] Szepesvari, C 2010 Algorithms for reinforcement learning. In Synthesis Lectures on Artificial Intelligence and Machine Learning (ed. R. J Brachmann & T Dietterich). Morgan and Claypool Publishers.
  • McClelland [2015] McClelland, J. L 2015 Explorations in Parallel Distributed Processing: A Handbook of Models, Programs, and Exercises. New Jersey: Prentice Hall, [Online; accessed 19-November-2019].
  • Watkins [1989] Watkins, C. J. C. H 1989 Learning from delayed rewards. PhD thesis, University of Cambridge, [Online; accessed 25-December-2019].
  • Watkins & Dayan [1992] Watkins, C. J. C. H & Dayan, P 1992 Q-learning. Machine learning 8, 279–292.
  • Bellman [1957] Bellman, R. E 1957 Dynamic Programming. Dover Publications.
  • Crowley & Siegler [1993] Crowley, K & Siegler, R. S 1993 Flexible strategy use in young children’s tic-tac-toe. Cognitive Science 17, 531–561.
  • Cichos et al. [2020] Cichos, F, Gustavsson, K, Mehlig, B & Volpe, G 2020 Machine learning for active matter. Nature Machine Intelligence 2, 94–103.
  • Qiu et al. [2021] Qiu, J, Mousavi, N, Gustavsson, K, Xu, C, Mehlig, B & Zhao, L, Navigation of a micro-swimmer in steady vortical flow: the importance of symmetries, arxiv.org/abs/arxiv:2104.11303, [Last accessed 25-May-2021].
  • Klopf [1982] Klopf, A. H 1982 The Hedonistic Neuron: Theory of Memory, Learning and Intelligence. Taylor and Francis.
  • Morgan [2014] Morgan, J, How to win at rock-paper-scissors, bbc.com/news/science-environment-27228416, [Last accessed 7-September-2020].
  • Allis [1988] Allis, V, A knowledge-based approach of connect-four, Report IR-163, Faculty of Mathematics and Computer Science at the Vrije Universiteit Amsterdam.

恭喜你,你已经读完了这本书。 这是第一集的结束。 你获得了 +1 的奖励。 请将你学到的所有知识乘以 α=0.01 并添加到你的知识库中。 然后从第一页开始阅读,开始新的一集。