深度学习入门:从人工智能到神经网络——邱锡鹏《神经与深度学习》第一章读书笔记
本文是邱锡鹏老师《神经网络与深度学习》第一章的读书笔记与个人理解整理。适合深度学习初学者,帮你用最短时间搞懂 AI → 机器学习 → 表示学习 → 深度学习 → 神经网络 这条线。
一、人工智能:让机器拥有智能
1.1 什么是人工智能?
人工智能(Artificial Intelligence, AI)简单说就是让机器具有人类的智能。
但"智能"本身没有明确定义。1950 年,阿兰·图灵发表了著名的论文《Computing Machinery and Intelligence》,提出了图灵测试:
一个人在不接触对方的情况下,通过一种特殊的方式和对方进行一系列问答。如果在相当长时间内,他无法根据这些问题判断对方是人还是计算机,那么就可以认为这个计算机是智能的。
图灵测试的意义在于:它把"什么是智能"这个哲学问题转化成了一个可操作的科学问题。
1.2 人工智能的发展历史
AI 的发展经历了三个大的时期:
推理期 → 知识期 → 学习期
(1956-) (1970s-) (1980s-)
推理期(1956-1970s): 1956 年达特茅斯会议,“人工智能"正式诞生。研究者基于逻辑和事实归纳规则,开发了定理证明器、语言翻译器等。过于乐观,有人预言"二十年内,机器将能完成人能做到的一切工作”。
知识期(1970s-1980s): 研究者意识到知识的重要性,专家系统兴起。专家系统 = 知识库 + 推理机,在特定领域取得了成果。
学习期(1980s-至今): 很多智能行为(语言理解、图像理解)的原理我们不知道,也无法描述背后的"知识"。于是研究者开始让计算机从数据中自己学习,即机器学习。
1.3 人工智能的两大流派
| 流派 | 核心思想 | 优点 | 缺点 |
|---|---|---|---|
| 符号主义 | 信息用符号表示,通过显式规则操作 | 可解释性强 | 难以处理不确定性 |
| 连接主义 | 认知过程是大量简单神经元组成的信息处理过程 | 非线性、分布式、并行 | 可解释性差 |
深度学习的主要模型——神经网络,就是一种连接主义模型。
二、机器学习:从数据中学习规律
2.1 什么是机器学习?
Tom Mitchell 的经典定义:
机器学习是对能通过经验自动改进的计算机算法的研究。
通俗讲:让计算机从数据中进行自动学习,得到某种知识(或规律)。
比如从历史病例中总结出症状和疾病之间的规律,当有新病人时,利用学到的规律判断得了什么病。
2.2 传统机器学习的流程
原始数据 → 数据预处理 → 特征提取 → 特征转换 → 预测 → 结果
↑
人工设计特征(特征工程)
传统机器学习的主要工作量都花在预处理、特征提取、特征转换上。不同预测模型的性能相差不大,而特征处理对最终系统的准确性有着十分关键的作用。
这就是所谓的特征工程问题——需要大量人工经验来设计好的特征。
2.3 机器学习的三要素
机器学习方法可以粗略地分为三个基本要素:
(1)模型
确定输入空间 X 和输出空间 Y,假设特征 x 和标签 y 之间的关系可以通过一个未知的真实映射函数 y = f(x) 来描述。
模型就是一个参数化的函数族:
F = {f(x; θ) | θ ∈ R^m}
常见模型分为线性模型和非线性模型。
(2)学习准则
一个好的模型应当有比较小的期望风险(期望错误)。但由于不知道真实的数据分布,实际可计算的是经验风险(训练集上的平均损失):
R_emp(θ) = (1/N) Σ L(y⁽ⁱ⁾, f(x⁽ⁱ⁾; θ))
常用损失函数:
| 损失函数 | 公式 | 适用场景 |
|---|---|---|
| 0-1 损失 | I(y ≠ f(x)) | 理论分析,不可微 |
| 平方损失 | ½(y - f(x))² | 回归问题 |
| 交叉熵损失 | -log f_y(x) | 分类问题 |
| Hinge 损失 | max(0, 1 - y·f(x)) | SVM |
过拟合问题: 模型在训练集上表现很好,但在新数据上表现差。解决方案是正则化:
θ* = arg min (1/N) Σ L(y⁽ⁱ⁾, f(x⁽ⁱ⁾; θ)) + (λ/2)||θ||²
(3)优化算法
最常用的是梯度下降法:
θ(t+1) = θ(t) - η · ∂R(θ)/∂θ
其中 η 为学习率。
实际应用中常用小批量梯度下降(Mini-Batch SGD):每次随机选取一小部分训练样本来计算梯度并更新参数。
三、表示学习:让机器自己设计特征
3.1 为什么需要表示学习?
传统机器学习中,特征工程依赖人工经验,费时费力,且不一定有效。如果有一种算法可以自动地学习出有效的特征,并提高最终机器学习模型的性能,这种学习就叫作表示学习(Representation Learning)。
3.2 语义鸿沟
表示学习的关键是解决语义鸿沟(Semantic Gap)问题:输入数据的底层特征和高层语义信息之间的不一致性和差异性。
比如给定一些"车"的图片,每辆车的颜色和形状都不同,像素级别的底层特征差异很大,但我们理解这些图片是建立在比较抽象的高层语义概念上的。
3.3 局部表示 vs 分布式表示
以颜色表示为例:
局部表示(one-hot 向量):
| 颜色 | 局部表示 |
|---|---|
| 琥珀色 | [1, 0, 0, 0]ᵀ |
| 天蓝色 | [0, 1, 0, 0]ᵀ |
| 中国红 | [0, 0, 1, 0]ᵀ |
| 咖啡色 | [0, 0, 0, 1]ᵀ |
缺点:维数高且不能扩展;不同颜色之间的相似度都为 0。
分布式表示(RGB 值):
| 颜色 | 分布式表示 |
|---|---|
| 琥珀色 | [1.00, 0.75, 0.00]ᵀ |
| 天蓝色 | [0.00, 0.5, 1.00]ᵀ |
| 中国红 | [0.67, 0.22, 0.12]ᵀ |
| 咖啡色 | [0.44, 0.31, 0.22]ᵀ |
优点:低维稠密向量,容易计算相似度,容易表示新颜色。
在机器学习中,将高维局部表示空间映射到低维分布式表示空间的过程称为嵌入(Embedding)。自然语言处理中词的分布式表示也叫词嵌入。
四、深度学习:多层表示的自动学习
4.1 什么是深度学习?
深度学习是将原始的数据特征通过多步的特征转换得到一种特征表示,并进一步输入到预测函数得到最终结果。
所谓"深度"是指原始数据进行非线性特征转换的次数。
原始数据 → 底层特征 → 中层特征 → 高层特征 → 预测 → 结果
↑
多层非线性变换(深度学习)
和"浅层学习"不同,深度学习需要解决的关键问题是贡献度分配问题(Credit Assignment Problem, CAP):一个系统中不同的组件或参数对最终系统输出结果的贡献或影响。
4.2 端到端学习
传统方法将输入和输出之间人为地切割成很多子模块,每个子模块分开学习。比如自然语言理解任务,一般需要分词、词性标注、句法分析、语义分析、语义推理等步骤。
这种学习方式有两个问题:
- 每一个模块都需要单独优化,优化目标和任务总体目标不一定一致
- 错误传播,前一步的错误会对后续模型造成很大影响
端到端学习(End-to-End Learning)是指在学习过程中不进行分模块或分阶段训练,直接优化任务的总体目标。不需要明确给出不同模块或阶段的功能,中间过程不需要人为干预。
五、神经网络:深度学习的核心模型
5.1 人脑神经网络
人类大脑是人体最复杂的器官,包含近 860 亿个神经元,每个神经元有上千个突触和其他神经元连接。
典型神经元结构:
- 细胞体(Soma): 接收和处理信息
- 树突(Dendrite): 接收刺激并传入细胞体
- 轴突(Axon): 将兴奋状态传递到另一个神经元
- 突触(Synapse): 神经元之间的连接"接口"
1949 年,Donald Hebb 提出了赫布理论:如果两个神经元总是相关联地受到刺激,它们之间的突触强度增加。这就是赫布规则——“一起激发的神经元连在一起”。
5.2 人工神经网络
人工神经网络是为模拟人脑神经网络而设计的一种计算模型,由多个节点(人工神经元)互相连接而成。
不同节点之间的连接被赋予了不同的权重,每个权重代表了一个节点对另一个节点的影响大小。每个节点代表一种特定函数,来自其他节点的信息经过其相应的权重综合计算,输入到一个激活函数中并得到一个新的活性值。
关键性质:
- 人工神经网络可以看作一个通用的函数逼近器(一个两层的神经网络可以逼近任意的函数)
- 网络容量(Network Capacity):神经网络构造复杂函数的能力
- 通过反向传播算法(Backpropagation)来学习参数
5.3 神经网络的发展历史
神经网络的发展大致经过五个阶段:
第一阶段:模型提出(1943-1969)
- 1943 年:McCulloch 和 Pitts 提出 MP 模型(基于逻辑运算的人工神经网络)
- 1958 年:Rosenblatt 提出感知器(Perceptron),第一个具有机器学习思想的神经网络
第二阶段:冰河期(1969-1983)
- 1969 年:Minsky 出版《感知器》,指出神经网络的两个关键缺陷:无法处理"异或"问题;当时的计算机无法支持大型神经网络
第三阶段:反向传播算法引起的复兴(1983-1995)
- 1974 年:Paul Werbos 发明反向传播算法(BP)
- 1986 年:PDP 模型流行,BP 算法成为主要学习算法
- 1989 年:LeCun 将 BP 引入卷积神经网络(CNN),在手写数字识别上取得成功
第四阶段:流行度降低(1995-2006)
- 支持向量机(SVM)等更简单的方法流行度超过神经网络
- 神经网络理论基础不清晰、优化困难、可解释性差
第五阶段:深度学习的崛起(2006-至今)
- 2006 年:Hinton 通过逐层预训练来学习深度信念网络
- 2012 年:深度神经网络在语音识别和图像分类上取得巨大成功
- GPU 普及 + 大数据 → 神经网络迎来第三次高潮
六、本书的知识体系
邱锡鹏老师的这本书分为三大块:
机器学习(第2-3章,第9-10章,第14章)
├── 基本概念、线性模型
├── 无监督学习、模型独立的学习方法
└── 深度强化学习
神经网络(第4-8章)
├── 前馈神经网络(全连接网络)
├── 卷积神经网络
├── 循环神经网络
├── 图网络
├── 优化与正则化
└── 注意力机制与外部记忆
概率图模型(第11-13章,第15章)
├── 概率图模型基础
├── 深度信念网络、玻尔兹曼机
├── 深度生成模型(VAE、GAN)
└── 序列生成模型
七、常用的深度学习框架
| 框架 | 开发者 | 特点 |
|---|---|---|
| PyTorch | Facebook/NVIDIA/Twitter | 动态计算图,适合复杂推理任务 |
| TensorFlow | 静态/动态计算图,工业部署成熟 | |
| 飞桨 PaddlePaddle | 百度 | 支持动态/静态图,超大规模并行训练 |
| Keras | 已集成到 TensorFlow 2.0 | 高度模块化,搭积木一样容易 |
目前 PyTorch 在学术界最流行,TensorFlow 在工业界部署最广泛。
八、总结
从人工智能到深度学习,核心脉络是:
人工智能(让机器有智能)
└── 机器学习(从数据中学习规律)
└── 特征工程(人工设计特征)→ 累、不一定好
└── 表示学习(自动学习特征)→ 解决语义鸿沟
└── 深度学习(多层表示的自动学习)→ 端到端
└── 神经网络(深度学习的核心模型)→ 反向传播
用一句话总结:深度学习 = 用神经网络做多层表示学习,端到端地解决问题。
马克思说"金银天然不是货币,但货币天然不是金银",类似地:神经网络天然不是深度学习,但深度学习天然需要神经网络。
参考资料
- 邱锡鹏.《神经网络与深度学习》. 机械工业出版社, 2020. https://nndl.github.io/
- Goodfellow I, Bengio Y, Courville A. Deep Learning. MIT Press, 2016. http://www.deeplearningbook.org/
- 斯坦福 CS231n: http://cs231n.stanford.edu
- 斯坦福 CS224n: http://web.stanford.edu/class/cs224n/
如果觉得有帮助,点个 👍 收藏一下,有问题评论区见!下一章我们聊机器学习的基本概念和线性回归。
更多推荐
所有评论(0)