课程主页:https://nndl.github.io/

第一章 绪论

  • 神经网络:一种以(人工)神经元为基本单元的模型。

  • 深度学习:一类机器学习问题,主要解决负献度分配问题。

  • image-20250227142111089

1.1 本书的知识体系

image-20250227141850858

image-20250227143125590

1.2 人工智能

人工智能的诞生

1956 年的达特茅斯(Dartmouth)会议:
在这次会议上,“人工智能”被提出并作为本研究领域的名称.同时,人工智能研究的使命也得以确定.John McCarthy提出了人工智能的定义:人工智能就是要让机器的行为看起来就像是人所表现出的智能行为一样

目前,人工智能的主要领域大体上可以分为以下几个方面:

(1) 感知:模拟人的感知能力,对外部刺激信息(视觉和语音等)进行感知和加工.主要研究领域包括语音信息处理和计算机视觉等.

(2) 学习:模拟人的学习能力,主要研究如何从样例或从与环境的交互中进行学习.主要研究领域包括监督学习、无监督学习和强化学习等.

(3) 认知:模拟人的认知能力,主要研究领域包括知识表示、自然语言理解、推理、规划、决策等.

人工智能的发展历史

人工智能从诞生至今,经历了一次又一次的繁荣与低谷,其发展历程大体上可以分为推理期、知识期和学习期:

image-20250227150434590

推理期

1956 年达特茅斯会议之后,研究者对人工智能的热情高涨,之后的十几年是人工智能的黄金时期.大部分早期研究者都通过人类的经验,基于逻辑或者事实归纳出来一些规则,然后通过编写程序来让计算机完成一个任务。但此后,人工智能经历了一段低谷期。

知识期

到了 20 世纪 70 年代,研究者意识到知识对于人工智能系统的重要性.特别是对于一些复杂的任务,需要专家来构建知识库.在这一时期,出现了各种各样的 专家系统(Expert System),并在特定的专业领域取得了很多成果。

专家系统也被称为基于知识的系统
可以简单理解为“知识库 + 推理机”,是一类具有专门知识和经验的计算机智能程序系统.
一个专家系统必须具备三要素:
1)领域专家级知识;
2)模拟专家思维;
3)达到专家级的水平.

在这一时期,Prolog(Programming in Logic)语言是主要的开发工具,用来建造专家系统、智能知识库以及处理自然语言理解等.

学习期

机器学习开始流行:研究者开始将研究重点转向让计算机从数据中自己学习,即机器学习。
在人工智能领域,机器学习从一开始就是一个重要的研究方向.但直到1980年后,机器学习因其在很多领域的出色表现,才逐渐成为热门学科。

人工智能的流派

  1. 符号主义(Symbolism),又称逻辑主义、心理学派或计算机学派,是指通过分析人类智能的功能,然后用计算机来实现这些功能的一类方法.

  2. 连接主义(Connectionism),又称仿生学派或生理学派,是认知科学领域中的一类信息处理的方法和理论.在认知科学领域,人类的认知过程可以看作一种信息处理过程

关于人工智能的流派并没有严格的划分定义,也不严格对立.有很多文献将人工智能流派分为符号主义、连接主义和行为主义三 种,其中行为主义(Actionism)主要从生物进化的角度考虑,主张从和外界环境的互动中获取智能.

符号主义方法的一个优点是可解释性,而这也正是连接主义方法的弊端.

深度学习的主要模型神经网络就是一种连接主义模型.

随着深度学习的发展,越来越多的研究者开始关注如何融合符号主义和连接主义,建立一种高效并且具有可解释性的模型.

1.3 机器学习

机器学习 ≈ 构建一个映射函数(规则)

机器学习(Machine Learning,ML)是指从有限的观测数据中学习(或“猜测”)出具有一般性的规律,并利用这些规律对未知数据进行预测的方法。

传统的机器学习主要关注如何学习一个预测模型.一般需要首先将数据表示为一组特征(Feature),特征的表示形式可以是连续的数值、离散的符号或其他形式.然后将这些特征输入到预测模型,并输出预测结果.这类机器学习可以看作浅层学习(Shallow Learning).浅层学习的一个重要特点是不涉及特征学习,其特征主要靠人工经验或特征转换方法来抽取

  • 在实际任务中使用机器学习模型一般会包含以下几个步骤:

(1) 数据预处理:对数据的原始形式进行初步的数据清理(比如去掉一些有缺失特征的样本,或去掉一些冗余的数据特征等)和加工(对数值特征进行缩放和归一化等),并构建成可用于训练机器学习模型的数据集

(2) 特征提取:从数据的原始特征中提取一些对特定机器学习任务有用的高质量特征.比如在图像分类中提取边缘、尺度不变特征变换(Scale InvariantFeature Transform,SIFT)特征,在文本分类中去除停用词等.

(3) 特征转换:对特征进行进一步的加工,比如降维和升维. 很多特征转换方法也都是机器学习方法.降维包括特征抽取(Feature Extraction)和特征选择(Feature Selection)两种途径.常用的特征转换方法有主成分分析(Principal Components Analysis,PCA),线性判别分析(Linear Discriminant Analysis,LDA)等.

(4) 预测:机器学习的核心部分,学习一个函数并进行预测.

很多的机器学习问题变成了**特征工程(Feature Engineering)**问题.开发一个机器学习系统的主要工作量都消耗在了预处理、特征提取以及特征转换上.

1.4 表示学习

表示学习(Representation Learning):可以自动地学习出有效的特征,并提高最终机器学习模型的性能。表示学习的关键是解决语义鸿沟(Semantic Gap)问题。

语义鸿沟:输入数据的底层特征和高层语义信息之间的不一致性和差异性。

如果一个预测模型直接建立在底层特征之上,会导致对预测模型的能力要求过高.如果可以有一个好的表示在某种程度上能够反映出数据的高层语义特征,那么我们就能相对容易地构建后续的机器学习模型.

在机器学习中,我们经常使用两种方式来表示特征:局部表示(Local Representation)和分布式表示(Distributed Representation).

局部表示–>onehot

分布式表示–>分散式表示,一种语义分散到语义空间中的不同基向量上

我们可以使用神经网络来将高维的局部表示空间Rvℝ^{|v|} 映射到一个非常低维的分布式表示空间 R𝐷ℝ^𝐷, 𝐷v𝐷 ≪ |v|

这个过程也称为嵌入(Embedding)

要学习到一种好的高层语义表示(一般为分布式表示),通常需要从底层特征开始,经过多步非线性转换才能得到.深层结构的优点是可以增加特征的重用性,从而指数级地增加表示能力.因此,表示学习的关键是构建具有一定深度的多层次特征表示。

1.5 深度学习

image-20250228090533253

图1.4给出了深度学习的数据处理流程.通过多层的特征转换,把原始数据变成更高层次、更抽象的表示.这些学习到的表示可以替代人工设计的特征,从而避免“特征工程”.

深度学习是将原始的数据特征通过多步的特征转换得到一种特征表示,并进一步输入到预测函数得到最终结果.和“浅层学习”不同,深度学习需要解决的关键问题是贡献度分配问题(Credit Assignment Problem,CAP),即一个系统中不同的组件(component)或其参数对最终系统输出结果的贡献或影响.

以下围棋为例,每当下完一盘棋,最后的结果要么赢要么输.我们会思考哪几步棋导致了最后的胜利,或者又是哪几步棋导致了最后的败局.如何判断每一步棋的贡献就是贡献度分配问题.

  • 从某种意义上讲,深度学习可以看作一种强化学习(Reinforcement Learning,RL).

贡献度分配

贡献度分配问题(Credit Assignment Problem)是深度学习中一个核心概念,其核心在于确定神经网络中不同层、不同参数对最终输出误差的具体影响程度

目前,深度学习采用的模型主要是神经网络模型,其主要原因是神经网络模型可以使用误差反向传播算法,从而可以比较好地解决贡献度分配问题. 只要是超过一层的神经网络都会存在贡献度分配问题。

为何“超过一层的神经网络存在贡献度分配问题”,而单层网络不存在?

  • 单层网络因结构简单、无中间参数依赖,误差可直接映射到权重,故无贡献度分配问题;而多层网络通过反向传播的链式法则更新参数时,梯度需跨越多个非线性变换层传递,导致各层参数的贡献度需要通过动态计算分配,且易受梯度不稳定性的干扰。这一问题的存在,既是深度模型强大表示能力的代价,也是推动算法改进的核心动力。

端到端学习

端到端学习(End-to-End Learning),也称端到端训练,是指在学习过程中不进行分模块或分阶段训练,直接优化任务的总体目标.在端到端学习中,一般不需要明确地给出不同模块或阶段的功能,中间过程不需要人为干预.

端到端学习的训练数据为“输入-输出”对的形式,无须提供其他额外信息

因此,端到端学习和深度学习一样,都是要解决贡献度分配问题.目前,大部分采用神经网络模型的深度学习也可以看作一种端到端的学习.

1.6 神经网络

神经网络天然不是深度学习,但深度学习天然是神经网络。

人工神经网络

人工神经网络主要由大量的神经元以及它们之间的有向连接构成。搭建一个神经网络需要考虑三方面因素:

  • 神经元的激活规则

​ 主要是指神经元输入到输出之间的映射关系,一般为非线性函数。

  • 网络的拓扑结构

​ 不同神经元之间的连接关系。

  • 学习算法

    通过训练数据来学习神经网络参数。

目前的神经网络可以分为三种类型:

image-20250310140246489

神经网络的发展历史

第一阶段:模型提出

第一阶段为1943年~1969年,是神经网络发展的第一个高潮期。在此期间,科学家们提出了许多神经元模型和学习规则。

提出概念:MP 模型、Hebbian 法则、感知机。

第二阶段:冰河期

第二阶段为1969年~1983年,是神经网络发展的第一个低谷期。在此期间,神经网络的研究处于长年停滞及低潮状态。
反向传播算法被提出,但未被重视。
1980年,新知机被提出,带卷积和子采样的多层神经网络但没有反向传播。

第三阶段:反向传播算法引起的复兴

第三阶段为1983年~1995年,是神经网络发展的第二个高潮期.这个时期中,反向传播算法重新激发了人们对神经网络的兴趣.

用于联想记忆(Associative Memory)的神经网络,称为Hopfield网络
玻尔兹曼机:就是一种随机化版本的Hopfield网络。

真正引起神经网络第二次研究高潮的是反向传播算法。

乐昆首次将反向传播算法引入了卷积神经网络,并在手写体数字识别任务上取得了巨大成果。然而梯度消失问题,成为了神经网络进一步发展的阻碍。

第四阶段流行度降低(统计机器学习方法为主流)

第四阶段为 1995 年~2006 年,在此期间,支持向量机和其他更简单的方法(例如线性分类器)在机器学习领域的流行度逐渐超过了神经网络。

第五阶段深度学习的崛起

第五阶段为从 2006 年开始至今,在这一时期研究者逐渐掌握了训练深层神经网络的方法,使得神经网络重新崛起。

Hinton开启的时代:

image-20250326152627300