深度学习的另一个最大大成就是其在强化学习领域的扩展。
在强化学习中,一个自主的智能体必须在没有人类操作者指导的情况下,通过试错来完成任务。
第一部分 应用数学与机器学习基础
线性代数
范数
在机器学习中,我们经常使用被称为范数的函数衡量向量大小。
p=2时,
L
2
L^2
L2范数被称为欧几里得范数。它表示从原点出发到向量
x
x
x确定的点的欧几里得距离。
概率与信息论
不确定性有三种可能的来源:
- 被建模系统内在的随机性
- 不完全观测
- 不完全建模
随机变量
随机变量是可以随机地取不同值的变量。
我们通常用无格式字体中的小写字母来表示随机变量本身,而用手写体中的小写字母来表示随机变量能够取到的值。
概率分布
概率分布用来描述随机变量或一簇随机变量在每一个可能取到的状态的可能性大小。我们描述概率分布的方式取决于随机变量是离散的还是连续的。
离散型变量和概率质量函数
离散型变量的概率分布可以用概率质量函数来描述。通常用大写字母
P
P
P来表示。
概率质量函数可以同时作用于多个随机变量。这种多个变量的概率分布被称为联合概率分布。
连续型变量和概率密度函数
当我们研究的对象是连续型随机变量时,我们用概率密度函数来描述概率分布。
概率密度函数
p
(
x
)
p(x)
p(x)并没有直接对特定状态给出概率,相对的,它给出了落在面积为
σ
x
\sigma x
σx的无限小的区域内的概率为
p
(
x
)
σ
x
p(x)\sigma x
p(x)σx。
边缘概率
有时,我们知道了一组变量的联合概率分布,但想要了解其中一个子集的概率分布。这种定义在子集上的概率分布被称为边缘概率分布。
例如,假设有离散型随机变量x和y,并且我们知道
P
(
x
,
y
)
P({\rm x},{\rm y})
P(x,y)。我们可以依据下面的求和法则来计算
P
(
x
)
P(x)
P(x):
∀
x
∈
x
,
P
(
x
=
x
)
=
∑
y
P
(
x
=
x
,
y
=
y
)
{\forall}x\in {\rm x},P({\rm x}=x )=\sum_{y}P({\rm x}=x, {\rm y}=y)
∀x∈x,P(x=x)=y∑P(x=x,y=y)
“边缘概率”的名称来源于手算边缘概率的计算过程。当
P
(
x
,
y
)
P({\rm x},{\rm y})
P(x,y)的每个值被写在由每行表示不同的
x
x
x值,每列表示不同的
y
y
y值形成的网络中时,对网格中的每行求和,然后将求和的结果
P
(
x
)
P(x)
P(x)写在每行右边的纸的边缘处。
对于连续型变量,我们需要用积分替代求和:
p
(
x
)
=
∫
p
(
x
,
y
)
d
y
.
p(x)=\int p(x,y)dy.
p(x)=∫p(x,y)dy.
条件概率
条件概率的链式法则
独立性和条件独立性
常用概率分布
许多简单的概率分布在机器学习的众多领域中都是有用的。
Bernoulli分布
Bernoulli分布是单个二值随机变量的分布。
它由单个参数
ϕ
∈
[
0
,
1
]
\phi\in[0,1]
ϕ∈[0,1]控制,
ϕ
\phi
ϕ给出了随机变量等于1的概率。
它具有如下的一些性质:
P
(
x
=
1
)
=
ϕ
P({\rm x}=1)=\phi
P(x=1)=ϕ
P
(
x
=
0
)
=
1
−
ϕ
P({\rm x}=0)=1-\phi
P(x=0)=1−ϕ
P
(
x
=
x
)
=
ϕ
x
(
1
−
ϕ
)
1
−
x
P({\rm x}=x)={\phi}^x (1-{\phi})^{1-x}
P(x=x)=ϕx(1−ϕ)1−x
E
x
[
x
]
=
ϕ
\Epsilon_{\rm x}[{\rm x}]=\phi
Ex[x]=ϕ
V
a
r
x
[
x
]
=
ϕ
(
1
−
ϕ
)
Var_{\rm x}[{\rm x}]=\phi(1-\phi)
Varx[x]=ϕ(1−ϕ)
Multinoulli分布
Multinoulli分布或者范畴分布是指在具有
k
k
k个不同状态的单个离散型随机变量上的分布,其中
k
k
k是一个有限值。
Multinoulli分布由向量
p
∈
[
0
,
1
]
k
−
1
p\in[0,1]^{k-1}
p∈[0,1]k−1参数化,其中每个分量
p
i
p_i
pi表示第
i
i
i个状态的概率。
最后的第
k
k
k个状态的概率可以通过1-
1
⊤
p
1^\top p
1⊤p给出。
注意,我们必须限制
1
⊤
≤
1
1^\top \le1
1⊤≤1。
高斯分布
实数上最常用的分布就是正态分布,也称为高斯分布:
N
(
x
;
μ
,
σ
2
)
=
1
2
π
σ
2
3
e
x
p
(
−
1
2
σ
2
(
x
−
μ
)
2
)
\mathcal N(x;\mu,\sigma^2)=\sqrt[3]{\frac{1}{2\pi\sigma^2}}{\rm exp}(-\frac{1}{2\sigma^2}(x-\mu)^2)
N(x;μ,σ2)=32πσ21exp(−2σ21(x−μ)2)
采用正态分布在很多应用中都是一个明智的选择。当我们由于缺乏关于某个实数上分布的先验知识而不知道该选择怎样的形式时,正态分布是默认的比较好的选择,其中有两个原因:
第一,中心极限定理说明很多独立随机变量的和近似服从正态分布。
这意味着在实际中,很多复杂系统都可以被成功地建模成正态分布的噪声,即使系统可以被分解成一些更结构化的部分。
第二,在具有相同方差的所有可能的概率分布中,正态分布在实数上具有最大的不确定性。
正态分布可以推广到
R
n
R^n
Rn空间,这种情况下被称为多维正态分布。
指数分布和Laplace分布
在深度学习中,我们经常会需要一个在
x
=
0
x=0
x=0点处取得边界点的分布。
为了实现这一目的,我们可以使用指数分布:
p
(
x
;
λ
)
=
λ
1
x
≥
0
e
x
p
(
−
λ
x
)
.
p(x;\lambda)=\lambda1_{x\ge0}{\rm exp}(-\lambda x).
p(x;λ)=λ1x≥0exp(−λx).
一个联系紧密的概率分布是Laplace分布,它允许我们在任意一点
μ
\mu
μ处设置概率质量的峰值
Laplace
(
x
;
μ
,
γ
)
=
1
2
γ
e
x
p
(
−
∣
x
−
μ
∣
γ
)
(x;\mu,\gamma)=\frac{1}{2\gamma}{\rm exp}(-\frac{\vert x-\mu\vert}{\gamma})
(x;μ,γ)=2γ1exp(−γ∣x−μ∣)
Dirac分布和经验分布
在一些情况下,我们希望概率分布中的所有质量都集中到一个点上。这可以通过Dirac delta 函数
δ
(
x
)
\delta(x)
δ(x)定义概率密度来实现:
p
(
x
)
=
δ
(
x
−
μ
)
p(x)=\delta(x-\mu)
p(x)=δ(x−μ)
Dirac delta 函数不像普通函数一样对
x
x
x的每一个值都有一个实数值的输出,它是一种不同类型的数学对象,被称为广义函数,广义函数是依据积分性质定义的数学对象。
Dirac分布经常作为经验分布的一个组成部分出现。
分布的混合
一个非常强大且常见的混合模型是高斯混合模型。
常用函数的有用性质
某些函数在处理概率分布时经常会出现,尤其是深度学习的模型中用到的概率分布。
其中一个函数是logistic sigmoid 函数:
σ
(
x
)
=
1
1
+
e
x
p
(
−
x
)
.
\sigma(x)=\frac{1}{1+{\rm exp}(-x)}.
σ(x)=1+exp(−x)1.
另外一个经常用到的函数是softplus函数:
ζ
(
x
)
=
l
o
g
(
1
+
e
x
p
(
x
)
)
.
\zeta(x)=log(1+{\rm exp}(x)).
ζ(x)=log(1+exp(x)).
信息论
信息论是应用数学的一个分支,主要研究的是对一个信号包含信息的多少进行量化。
…我们想用这种基本想法来量化信息。特别地,
- 非常可能发生的时间信息量要比较少,并且极端情况下,确保能够发生的事件应该没有信息量。
- 较不可能发生的事件具有更高的信息量。
- 独立事件应具有增量的信息。
为了满足上述三个性质,我们定义一个时间
x
=
x
{\rm x}=x
x=x的自信息为:
I
(
x
)
=
−
l
o
g
P
(
x
)
.
I(x)=-logP(x).
I(x)=−logP(x).
本书中,我们用log来表示自然对数,其底数为
e
e
e。因此,我们定义的
I
(
x
)
I(x)
I(x)单位是奈特。
一奈特是以
1
e
\frac{1}{e}
e1的概率观测到一个事件时获得的信息量。
其他的材料中使用底数为2的对数,单位是比特或者香农。
自信息只处理单个的输出。我们可以用香农熵来对整个概率分布中的不确定性总量进行量化。
如果我们对同一个随机变量x有两个单独的概率分布P(x)和Q(x),我们可以使用KL散度来衡量这两个分布的差异。
结构化概率模型
机器学习的算法经常会涉及到在非常多的随机变量上的概率分布。
我们可以把概率分布分解成许多因子的乘积形式,而不是使用单一的函数来表示概率分布。
我们可以用图来描述这种分解。这里我们使用的是图论中的“图”的概念:由一些可以通过边互相连接的顶点的集合构成。当我们用图来表示这种概率分布的分解,我们把它称为结构化概率模型或者图模型
有两种主要的结构化概率模型:有向的和无向的。
数值计算
上溢和下溢
必须对上溢和下溢进行数值稳定的一个例子是softmax函数,该函数经常用于预测与Multinoulli分布相关联的概率。
基于梯度的优化算法
我们把要最小化或最大化的函数称为目标函数或准则。当我们对其进行最小化时,我们也把它称为代价函数、损失函数或误差函数
梯度之上:Jacobian和Hessian矩阵
有时我们需要计算输入和输出都为向量的函数的所有偏导数。包含所有这样的偏导数的矩阵被称为Jacobian矩阵。
当我们的函数具有多维输入时,二阶导数也有很多。我们可以将这些导数合并为一个矩阵,称为
Hessian矩阵。
仅使用梯度信息的优化算法被称为一阶优化算法,如梯度下降。
使用Hessian矩阵的优化算法被称为二阶最优化算法,如牛顿法。
机器学习基础
算法
通常机器学习任务定义为机器学习系统应该如何处理样本。样本是指我们从某些希望机器学习系统处理的对象或事件中收集到的已经量化的特征的集合。
一些常见的机器学习任务列举如下:
- 分类
- 输入缺失分类
- 回归
- 转录
- 机器翻译
- 结构化输出
- 异常检测
- 合成与采样
- 缺失值填补
- 去噪
- 密度估计或概率质量函数估计
根据学习过程中的不同经验,机器学习算法可以大致分类为无监督算法和监督算法。
无监督学习算法训练含有很多特征的数据集,然后学习出这个数据集上有用的结构性质。在深度学习中,我们通常要学习生成数据集的整个概率分布,显式地,比如密度估计,或者是隐式地,比如合成或去噪。还有一些其他类型的无监督学习任务,例如聚类,将数据集分成相似样本的集合。
监督学习算法训练含有很多特征的数据集,不过数据集中的样本都有一个标签或目标。
有些机器学习算法并不是训练于一个固定的数据集上。例如,强化学习算法会和环境进行交互,所以学习系统和它的训练过程会有反馈回路。
贝叶斯误差
没有免费午餐定理
机器学习的没有免费午餐定理表明,在所有可能的数据生成分布上平均之后,每一个分类算法在未实现观测的点上都有相同的错误率。
正则化是指我们修改学习算法,使其降低泛化误差而非训练误差。
估计、偏差和方差
点估计
点估计试图为一些感兴趣的量提供单个“最优”预测。
函数估计
偏差
无偏
渐进无偏
样本方差
无偏样本方差
最大似然估计
在合适的条件下,最大似然估计具有一致性,意味着训练样品数目趋向无穷大时,参数的最大似然估计会收敛到参数的真实值。
贝叶斯统计
先验概率分布
监督学习算法
概率监督学习
逻辑回归
支持向量机
支持向量机是监督学习中最有影响力的方法之一。支持向量机不输出概率,只输出类别。
支持向量机的一个重要创新是核技巧
最常用的核函数是高斯核
k
(
μ
,
ν
)
=
N
(
μ
−
ν
;
0
,
σ
2
I
)
k(\mu,\nu)=\mathcal N(\mu-\nu;0,\sigma^2I)
k(μ,ν)=N(μ−ν;0,σ2I)
这个核也被称为径向基函数核,因为其值沿
ν
\nu
ν中从
μ
\mu
μ向外辐射的方向减小。
其他简单的监督学习算法
最近邻回归——k-最近邻
决策树及其变种是另一类将输入空间分成不同的区域,每个区域有独立参数的算法。
无监督学习算法
主成分分析
k
−
k-
k−均值聚类
k − k- k−均值聚类算法将训练集分成 k k k个靠近彼此的不同样本聚类。
随机梯度下降
随机梯度下降的核心是,梯度是期望。期望可使用小规模的样本近似估计。
流形学习
流形是指连接在一起的区域。