大部分机器学习算法都有超参数(必须在学习算法外设定)。机器学习本质上属于应用统计学,更多地关注于如何用计算机统计地估计复杂函数,不太关注为这些函数提供置信区间,因此会介绍两种统计学的主要方法:频率派估计和贝叶斯推断。
5.1 学习算法
对于某类任务T和性能度量P,一个计算机程序被认为可以从经验E中学习是指,通过经验E改进后,它在任务T上由性能度量P衡量的性能有所提升。
5.1.1 任务T
从“任务”的相对正式的定义上说,学习过程本身不能算是任务。学习是所谓的获取完成任务的能力。
通常机器学习任务定义为机器学习系统应该如何处理样本(sample)。
样本为从某些希望机器学习系统处理的对象或事件中收集到的已经量化的特征(feature)的集合。通常会将样本表示成一个向量
x
∈
R
n
x\in \mathbb R^n
x∈Rn,其中向量的每一个元素
x
i
x_i
xi是一个特征。
常见的机器学习任务举例如下:
- 分类
- 输入缺失分类
- 回归:对于给定输入预测数值。
- 转录:将观测到的非结构化表示的数据,转录成信息为离散的文本形式。
- 机器翻译
- 结构化输出
- 异常检测
- 合成和采样
- 缺失值填补
- 去噪
- 密度估计或概率质量函数估计
5.1.2 性能度量P
性能度量P是特定于系统执行的任务T而言的。
对于分类、缺失输入分类和转录任务,通常度量模型的准确率(accuracy)。与之对应的是错误率(errorrate)。
5.1.3 经验E
根据学习过程中的不同经验,机器学习算法可以大致分为无监督(unsupervised)算法和监督(supervised)算法。
- 无监督学习算法:训练含有很多特征的数据集,然后学习出这个数据集上有用的结构性质。
- 监督学习算法:训练含有很多特征的数据集,数据集中的样本都有一个标签(label)或目标(target)。
大致来说,无监督学习涉及观察随机向量
x
\bm x
x的好几个样本,试图显式或隐式地学习出概率分布
p
(
x
)
p(x)
p(x),或者是该分部一些有意思的性质;而监督学习包含观察随机向量
x
\bm x
x及其相关联系的值或向量
y
\bm y
y,然后从
x
\bm x
x预测
y
\bm y
y,通常是估计
p
(
y
∣
x
)
p(\bm y\ |\ \bm x)
p(y ∣ x)。
强化学习(reinforcement learning)算法会和环境进行交互,所以学习系统和它的训练过程会有反馈回路。
5.1.4 示例:线性回归
线性回归(linear regression)解决回归问题。建立一个系统,将向量
x
∈
R
n
\bm x\in \mathbb R^n
x∈Rn作为输入,预测标量
y
∈
R
y \in \mathbb R
y∈R作为输出。线性回归的输出是其输入的线性函数。令
y
^
\hat y
y^表示模型预测
y
y
y应该取的值。定义输出为:
y
^
=
w
T
x
\hat y=w^Tx
y^=wTx其中
w
∈
R
n
w \in \mathbb R^n
w∈Rn是参数(parameter)向量。
度量模型性能的一种方法是计算模型在测试集上的均方误差(mean squared error)。如果
y
^
(
t
e
s
t
)
\hat y^{(test)}
y^(test)表示模型在测试集上的预测值,那么均方误差表示为:
M
S
E
t
e
s
t
=
1
m
∑
i
(
y
^
(
t
e
s
t
)
−
y
(
t
e
s
t
)
)
i
2
\mathtt{MSE}_{test}=\frac{1}{m}\sum_i(\hat y^{(test)}-y^{(test)})_i^2
MSEtest=m1i∑(y^(test)−y(test))i2直观上,当
y
^
(
t
e
s
t
)
=
y
(
t
e
s
t
)
\hat y^{(test)}=y^{(test)}
y^(test)=y(test)时,误差为0,也可以观察出:
M
S
E
t
e
s
t
=
1
m
∥
y
^
(
t
e
s
t
)
−
y
(
t
e
s
t
)
∥
2
2
\mathtt{MSE}_{test}=\frac{1}{m}\parallel \hat y^{(test)}-y^{(test)}\parallel_2^2
MSEtest=m1∥y^(test)−y(test)∥22所以当预测值和目标值之间的欧几里得距离增加时,误差也会增加。
为了构建一个机器学习算法,需要设计一个算法,通过观察训练集
(
X
(
t
r
a
i
n
)
,
y
(
t
r
a
i
n
)
)
(X^{(train)},y^{(train)})
(X(train),y(train))获得经验,减少
M
S
E
t
e
s
t
\mathtt{MSE}_{test}
MSEtest以改进权重
w
w
w。一种直观方式是最小化训练集上的均方误差,即
M
S
E
t
r
a
i
n
\mathtt {MSE}_{train}
MSEtrain。
∇
w
M
S
E
t
r
a
i
n
=
0
\nabla _w \mathtt {MSE}_{train}=0
∇wMSEtrain=0
⇒
∇
w
1
m
∥
y
^
(
t
e
s
t
)
−
y
(
t
e
s
t
)
∥
2
2
=
0
\Rightarrow \nabla_w\frac{1}{m}\parallel \hat y^{(test)}-y^{(test)}\parallel_2^2=0
⇒∇wm1∥y^(test)−y(test)∥22=0
⇒
1
m
∇
w
∥
X
(
t
r
a
i
n
)
w
−
y
(
t
r
a
i
n
)
∥
2
2
=
0
\Rightarrow \frac{1}{m}\nabla_w\parallel X^{(train)}w-y^{(train)}\parallel_2^2=0
⇒m1∇w∥X(train)w−y(train)∥22=0
⇒
∇
w
(
X
(
t
r
a
i
n
)
w
−
y
(
t
r
a
i
n
)
)
T
(
X
(
t
r
a
i
n
)
w
−
y
(
t
r
a
i
n
)
)
=
0
\Rightarrow \nabla_w(X^{(train)}w-y^{(train)})^T(X^{(train)}w-y^{(train)})=0
⇒∇w(X(train)w−y(train))T(X(train)w−y(train))=0
⇒
∇
w
(
w
T
X
(
t
r
a
i
n
)
T
X
(
t
r
a
i
n
)
w
−
2
w
T
X
(
t
r
a
i
n
)
T
y
(
t
r
a
i
n
)
+
y
(
t
r
a
i
n
)
T
y
(
t
r
a
i
n
)
)
=
0
\Rightarrow \nabla_w(w^TX^{(train)T}X^{(train)}w-2w^TX^{(train)T}y^{(train)}+y^{(train)T}y^{(train)})=0
⇒∇w(wTX(train)TX(train)w−2wTX(train)Ty(train)+y(train)Ty(train))=0
⇒
2
X
(
t
r
a
i
n
)
T
X
(
t
r
a
i
n
)
w
−
2
X
(
t
r
a
i
n
)
T
y
(
t
r
a
i
n
)
=
0
\Rightarrow 2X^{(train)T}X^{(train)}w-2X^{(train)T}y^{(train)}=0
⇒2X(train)TX(train)w−2X(train)Ty(train)=0
⇒
w
=
(
X
(
t
r
a
i
n
)
T
X
(
t
r
a
i
n
)
)
(
−
1
)
X
(
t
r
a
i
n
)
T
y
(
t
r
a
i
n
)
\Rightarrow w=(X^{(train)T}X^{(train)})^{(-1)}X^{(train)T}y^{(train)}
⇒w=(X(train)TX(train))(−1)X(train)Ty(train)给出解的系统方程被称为正规方程(normal equation)。
线性回归通常用来指稍微复杂一些,附加额外参数(截距项)。在这个模型中,
y
^
=
w
T
x
+
b
\hat y=w^Tx+b
y^=wTx+b
5.2 容量、过拟合和欠拟合
以下是决定机器学习算法效果是否好的因素:
- 降低训练误差。
- 缩小训练误差和测试误差的差距。
这两个因素对应机器学期的两个主要挑战:欠拟合(underfitting)和过拟合(overfitting)。欠拟合是指模型不能在训练集上获得足够低的误差,而过拟合是指训练误差和测试误差之间的差距太大。
通过调整模型的容量(capacity),可以控制模型是否偏向于过拟合或者欠拟合。模型的容量是指其拟合各种函数的能力。容量低的模型可能很难拟合训练集。容量高的模型可能会过拟合,因为记住了不适用于测试集的训练集性质。
一种控制训练算法容量的方法是选择假设空间(hypothesis space),即学习算法可以选择为解决方案的函数集。
容量不仅取决于模型的选择。模型规定了调整参数降低训练目标时,学习算法可以从哪些函数中选择函数,即模型的表示容量(representational capacity)。在很多情况下,从这写函数中挑选出最优函数是非常困难的优化问题。实际中,学习算法不会真的找到最优函数,而仅是找到一个可以大大降低训练误差的函数。额外的限制因素,比如优化算法的不完美,意味着学习算法的有效容量(effective capacity)可能小于模型族的表示容量。
5.2.1 没有免费午餐定理
机器学习的没有免费午餐(no free lunch theorem)表明,在所有可能的数据生成分布上平均之后,每一个分类算法在未事先观测的点上都有相同的错误率。即,没有一个机器学习算法总是比其他的要好。
5.2.2 正则化
在假设空间中,相比于某一个学习算法,可能更偏好另一个学习算法。意味着两个函数都是符合条件的,但是更偏好其中一个。只有非偏好函数比偏好函数在训练数据集上效果明显好很多时,我们才会考虑非偏好函数。
例如,可以加入权重衰减(weight decay)来修改线性回归的训练标准。带权重衰减的线性回归最小化训练集上的均方误差和正则项的和
J
(
w
)
J(w)
J(w),其偏好于平方
L
2
L^2
L2范数较小的权重:
J
(
x
)
=
M
S
E
t
r
a
i
n
+
λ
w
T
w
J(x)=\mathtt {MSE}_{train}+\lambda w^Tw
J(x)=MSEtrain+λwTw其中
λ
\lambda
λ是提前选好的值,控制偏好小范数权重的程度。当
λ
=
0
\lambda=0
λ=0时,没有任何偏好。越大的
λ
\lambda
λ偏好范数越小的权重。
更一般地,正则化一个学习函数
f
(
x
;
θ
)
f(x;\theta)
f(x;θ)的模型,可以给代价函数添加正则化项的惩罚。
正则化(regularization)是指修改学习算法,使其降低泛化误差而非训练误差。重要性与优化相提并论。
5.3 超参数和验证集
超参数用来控制算法行为。超参数的值不是通过学习算法本身学习出来的(尽管可以设计一个嵌套的学习过程,一个学习算法为另一个学习算法学出最优超参数)。
用于挑选超参数的数据子集被称为验证集(validation set)。验证集是训练算法观测不到的样本。
5.3.1 交叉验证
k折交叉验证:将数据集分成k个不重合的自己。测试误差可以估计为k此计算后的平均测试误差。在第i个测试时,数据的第i个自己用于测试集,其他的数据用于训练集。但会带来一个问题:不存在平均误差方差的无偏估计,一般用近似来解决。
Define KFoldXV( D , A , L , k \mathbb D, A,L,k D,A,L,k)
Require: D \mathbb D D为给定数据集,其中元素为 z ( i ) z^{(i)} z(i)
Require: A为学习算法,可等价为一个函数
Require: L为损失函数,可等价为来自学好的函数 f f f,将样本 z ( i ) ∈ D z^{(i)}\in \mathbb D z(i)∈D映射到 R \mathbb R R中标量的函数
Require: k为折数
将 D \mathbb D D分为 k k k个互斥子集 D i \mathbb D_i Di,并集为 D \mathbb D D
for i i i from 1 to k k k do
f i \quad \quad f_i fi=A( D \mathbb D D\ D i \mathbb D_i Di)
\quad \quad for z ( j ) z^{(j)} z(j) in D i \mathbb D_i Di do
e j = L ( f i , z ( i ) ) \quad \quad \quad \quad e_j=L(f_i,z^{(i)}) ej=L(fi,z(i))
\quad \quad end for
end for
Return e e e
5.4 估计、偏差和方差
5.4.1 点估计
令
{
x
(
1
)
,
…
,
x
(
m
)
}
\{x^{(1)},\dots,x^{(m)}\}
{x(1),…,x(m)}是
m
m
m个独立同分布(i.i.d.)的数据点。点估计(point estimator)或统计量(statistics)是这些数据的任意函数:
θ
^
m
=
g
(
x
(
1
)
,
…
,
x
(
m
)
)
\hat \theta_m=g(x^{(1)},\dots,x^{(m)})
θ^m=g(x(1),…,x(m))点估计可以指输入和目标变量之间关系的估计,这种点估计被称为函数估计。
5.4.2 偏差
估计的偏差被定义为:
b
i
a
s
(
θ
^
m
)
=
E
(
θ
^
m
)
−
θ
bias(\hat \theta _m)=\mathbb E(\hat \theta _m)-\theta
bias(θ^m)=E(θ^m)−θ
θ
\theta
θ是用于定义数据生成分布的
θ
\theta
θ的真实值。如果
b
i
a
s
(
θ
^
m
)
=
0
bias(\hat \theta _m)=0
bias(θ^m)=0,那么估计量
θ
^
m
\hat \theta _m
θ^m被称为无偏(unbiased),意味着
E
(
θ
^
m
)
=
θ
\mathbb E(\hat \theta _m)=\theta
E(θ^m)=θ。如果
lim
m
→
∞
b
i
a
s
(
θ
^
m
)
=
0
\lim _{m\rightarrow\infty}bias(\hat \theta _m)=0
limm→∞bias(θ^m)=0,那么估计量
θ
^
m
\hat \theta _m
θ^m被称为渐进无偏(asymptotically unbiased),意味着
lim
m
→
∞
E
(
θ
^
m
)
=
θ
\lim _{m\rightarrow\infty}\mathbb E(\hat \theta _m)=\theta
limm→∞E(θ^m)=θ。
示例伯努利分布:考虑一组服从均值为
θ
\theta
θ的伯努利分布的独立同分布的样本
{
x
(
1
)
,
…
,
x
(
m
)
}
\{x^{(1)},\dots,x^{(m)}\}
{x(1),…,x(m)}:
P
(
x
(
i
)
;
θ
)
=
θ
x
(
i
)
(
1
−
θ
)
(
1
−
x
(
i
)
)
P(x^{(i)};\theta)=\theta^{x^{(i)}}(1-\theta)^{(1-x^{(i)})}
P(x(i);θ)=θx(i)(1−θ)(1−x(i))这个分布中参数
θ
\theta
θ的常用估计量是训练样本的均值:
θ
^
m
=
1
m
∑
i
=
1
m
x
i
\hat \theta_m=\frac{1}{m}\sum_{i=1}^mx^{i}
θ^m=m1i=1∑mxi判断这个估计量是否有偏,可以计算:
b
i
a
s
(
θ
^
m
)
=
E
(
θ
^
m
)
−
θ
bias(\hat \theta _m)=\mathbb E(\hat \theta _m)-\theta
bias(θ^m)=E(θ^m)−θ
=
E
[
1
m
∑
i
=
1
m
x
(
i
)
−
θ
]
\quad\quad\quad\quad\quad\quad\ \ \ \ \ =\mathbb E[\frac{1}{m}\sum_{i=1}^mx^{(i)}-\theta]
=E[m1i=1∑mx(i)−θ]
=
1
m
∑
i
=
1
m
E
[
x
(
i
)
]
−
θ
\quad\quad\quad\quad\quad\quad\quad\ \ =\frac{1}{m}\sum_{i=1}^m\mathbb E[x^{(i)}]-\theta
=m1i=1∑mE[x(i)]−θ
=
1
m
∑
i
=
1
m
∑
x
(
i
)
=
0
1
(
x
(
i
)
θ
(
x
(
i
)
)
(
1
−
θ
(
1
−
x
(
i
)
)
)
)
−
θ
\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\ \ \ =\frac{1}{m}\sum_{i=1}^m\sum_{x^{(i)}=0}^1(x^{(i)}\theta^{(x^{(i)})}(1-\theta^{(1-x^{(i)})}))-\theta
=m1i=1∑mx(i)=0∑1(x(i)θ(x(i))(1−θ(1−x(i))))−θ
=
1
m
∑
i
=
1
m
(
θ
)
−
θ
\quad\quad\quad\quad\quad\quad=\frac{1}{m}\sum_{i=1}^m(\theta)-\theta
=m1i=1∑m(θ)−θ
=
θ
−
θ
=
0
\quad\quad\quad\quad\ \ =\theta-\theta=0
=θ−θ=0因为
b
i
a
s
(
θ
^
)
=
0
bias(\hat\theta)=0
bias(θ^)=0,则称估计
θ
^
\hat\theta
θ^为无偏的。
示例高斯分布均值估计
考虑一组独立同分布的样本
{
x
(
1
)
,
…
,
x
(
m
)
}
\{x^{(1)},\dots,x^{(m)}\}
{x(1),…,x(m)}服从高斯分布
p
(
x
(
i
)
)
=
N
(
x
(
i
)
;
μ
,
σ
2
)
p(x^{(i)})=N(x^{(i)};\mu,\sigma^2)
p(x(i))=N(x(i);μ,σ2),其中
i
∈
{
1
,
…
,
m
}
i\in\{1,\dots,m\}
i∈{1,…,m}:
p
(
x
(
i
)
;
μ
,
σ
2
)
=
1
2
π
σ
2
e
−
1
2
σ
2
(
x
(
i
)
−
μ
)
2
p(x^{(i)};\mu,\sigma^2)=\sqrt{\frac{1}{2\pi\sigma^2}}e^{-\frac{1}{2\sigma^2}(x^{(i)}-\mu)^2}
p(x(i);μ,σ2)=2πσ21e−2σ21(x(i)−μ)2高斯均值参数的常用估计量被称为样本均值(sample mean):
μ
^
m
=
1
m
∑
i
=
1
m
x
(
i
)
\hat\mu_m=\frac{1}{m}\sum_{i=1}^mx^{(i)}
μ^m=m1i=1∑mx(i)计算它的期望:
b
i
a
s
(
μ
^
m
)
=
E
(
μ
^
m
)
−
μ
bias(\hat \mu _m)=\mathbb E(\hat \mu _m)-\mu
bias(μ^m)=E(μ^m)−μ
=
E
[
1
m
∑
i
=
1
m
x
(
i
)
−
μ
]
\quad\quad\quad\quad\quad\quad\ \ \ \ \ =\mathbb E[\frac{1}{m}\sum_{i=1}^mx^{(i)}-\mu]
=E[m1i=1∑mx(i)−μ]
=
1
m
∑
i
=
1
m
E
[
x
(
i
)
]
−
μ
\quad\quad\quad\quad\quad\quad\quad\ \ =\frac{1}{m}\sum_{i=1}^m\mathbb E[x^{(i)}]-\mu
=m1i=1∑mE[x(i)]−μ
=
1
m
∑
i
=
1
m
(
μ
)
−
μ
\quad\quad\quad\quad\quad\quad=\frac{1}{m}\sum_{i=1}^m(\mu)-\mu
=m1i=1∑m(μ)−μ
=
μ
−
μ
=
0
\quad\quad\quad\quad\ \ =\mu-\mu=0
=μ−μ=0样本均值是高斯均值参数的无偏估计量。
示例高斯分布方差分布:比较高斯分布方差参数
σ
2
\sigma^2
σ2的两个不同估计。
第一个方差估计被称为样本方差(sample variance):
σ
^
m
2
=
1
m
∑
i
=
1
m
(
x
(
i
)
−
μ
^
m
)
2
\hat\sigma_m^2=\frac{1}{m}\sum_{i=1}^m(x^{(i)}-\hat\mu_m)^2
σ^m2=m1i=1∑m(x(i)−μ^m)2其中
μ
^
m
\hat\mu_m
μ^m是样本均值。
b
i
a
s
(
σ
^
m
2
)
=
E
[
σ
^
m
2
]
−
σ
2
bias(\hat\sigma_m^2)=\mathbb E[\hat\sigma_m^2]-\sigma^2
bias(σ^m2)=E[σ^m2]−σ2首先估计项
E
[
σ
^
m
2
]
\mathbb E[\hat\sigma_m^2]
E[σ^m2]:
E
[
σ
^
m
2
]
=
E
[
1
m
∑
i
=
1
m
(
x
(
i
)
−
μ
^
m
)
2
]
\mathbb E[\hat\sigma_m^2]=\mathbb E[\frac{1}{m}\sum_{i=1}^m(x^{(i)}-\hat\mu_m)^2]
E[σ^m2]=E[m1i=1∑m(x(i)−μ^m)2]
=
m
−
1
m
σ
2
=\frac{m-1}{m}\sigma^2\quad\quad\
=mm−1σ2 可以得出
σ
^
m
2
\hat\sigma_m^2
σ^m2的偏差是
−
σ
2
-\sigma^2
−σ2\
m
m
m。因此样本方差是有偏估计。
无偏差样本方差(unbiased sample variance)估计:
σ
~
m
2
=
1
m
−
1
∑
i
=
1
m
(
x
(
i
)
−
μ
^
m
)
2
\widetilde\sigma_m^2=\frac{1}{m-1}\sum_{i=1}^m(x^{(i)}-\hat\mu_m)^2
σ
m2=m−11i=1∑m(x(i)−μ^m)2可以发现
E
[
σ
~
m
2
]
=
σ
2
\mathbb E[\widetilde\sigma_m^2]=\sigma^2
E[σ
m2]=σ2:
E
[
σ
~
m
2
]
=
E
[
1
m
−
1
∑
i
=
1
m
(
x
(
i
)
−
μ
^
m
)
2
]
\mathbb E[\widetilde\sigma_m^2]=\mathbb E[\frac{1}{m-1}\sum_{i=1}^m(x^{(i)}-\hat\mu_m)^2]
E[σ
m2]=E[m−11i=1∑m(x(i)−μ^m)2]
=
m
m
−
1
E
[
σ
^
m
2
]
=\frac{m}{m-1}\mathbb E[\hat\sigma_m^2]\quad\quad\ \
=m−1mE[σ^m2]
=
m
m
−
1
(
m
−
1
m
σ
2
)
=\frac{m}{m-1}(\frac{m-1}{m}\sigma^2)\
=m−1m(mm−1σ2)
=
σ
2
=\sigma^2\quad\quad\quad\quad\quad\quad\ \ \
=σ2 有偏估计和无偏估计根据具体情况而分别使用。
5.4.3 方差和标准差
估计量的方差(variance)就是一个方差
V
a
r
(
θ
^
)
\mathtt {Var}(\hat\theta)
Var(θ^),其中随机变量是训练集。方差的平方根被称为标准差(standard error),记做
S
E
(
θ
^
)
\mathtt {SE}(\hat\theta)
SE(θ^)。
均值的标准差记做:
S
E
(
μ
^
m
)
=
V
a
r
[
1
m
∑
i
=
1
m
x
(
i
)
]
=
σ
m
\mathtt {SE}(\hat\mu_m)=\sqrt{\mathtt {Var}[\frac{1}{m}\sum_{i=1}^mx^{(i)}]}=\frac{\sigma}{\sqrt m}
SE(μ^m)=Var[m1i=1∑mx(i)]=mσ
示例伯努利分布,关注其方差:
V
A
R
(
θ
^
m
)
=
V
a
r
(
1
m
∑
i
=
1
m
x
(
i
)
)
\mathtt {VAR}(\hat\theta_m)=\mathtt {Var}(\frac{1}{m}\sum_{i=1}^mx^{(i)})
VAR(θ^m)=Var(m1i=1∑mx(i))
=
1
m
2
∑
i
=
1
2
V
a
r
(
x
(
i
)
)
\quad\quad\quad\quad\ \ =\frac{1}{m^2}\sum_{i=1}^2\mathtt{Var}(x^{(i)})
=m21i=1∑2Var(x(i))
=
1
m
2
∑
i
=
1
m
θ
(
1
−
θ
)
\quad\quad\quad\quad\ =\frac{1}{m^2}\sum_{i=1}^m\theta(1-\theta)
=m21i=1∑mθ(1−θ)
=
1
m
2
m
θ
(
1
−
θ
)
\quad\quad\quad\ \ =\frac{1}{m^2}m\theta(1-\theta)
=m21mθ(1−θ)
=
1
m
θ
(
1
−
θ
)
\quad\quad\ =\frac{1}{m}\theta(1-\theta)
=m1θ(1−θ)
5.4.4 权衡偏差和方差以最小化均方误差
当偏差和方差不同并需要进行选择时,判断这种权衡最常用的方法是交叉验证。另一种方法是:比较这些估计的均方误差:
M
S
E
=
E
[
(
θ
^
m
−
θ
)
2
]
\mathtt {MSE}=\mathbb E[(\hat\theta_m-\theta)^2]
MSE=E[(θ^m−θ)2]
=
B
i
a
s
(
θ
^
m
)
2
+
V
a
r
(
θ
^
m
)
\quad\quad\quad\quad\quad\quad=\mathtt {Bias}(\hat\theta_m)^2+\mathtt{Var}(\hat\theta_m)
=Bias(θ^m)2+Var(θ^m)MSE度量着估计和真实参数
θ
\theta
θ之间平方误差的总体期望偏差。
5.4.5 一致性
希望当数据集中数据点的数量
m
m
m增加时,点估计会收敛到对应参数的真实值。即:
p
l
i
m
m
→
∞
θ
^
m
=
θ
\mathtt{plim}_{m\rightarrow\infty}\hat\theta_m=\theta
plimm→∞θ^m=θ符号plim表示依概率收敛,即对于任意的
ϵ
>
0
\epsilon>0
ϵ>0,当
m
→
∞
m\rightarrow \infty
m→∞时,有
P
(
∣
θ
^
m
−
θ
∣
>
ϵ
)
→
0
P(|\hat\theta_m-\theta|>\epsilon)\rightarrow0
P(∣θ^m−θ∣>ϵ)→0。上述公式表示的条件为一致性(consistency)。有时它是指弱一致性,强一致性是指几乎必然(almost sure)从
θ
^
\hat\theta
θ^收敛到
θ
\theta
θ。几乎必然收敛(almost sure convergence)是指当
p
(
l
i
m
m
→
∞
x
(
m
)
=
x
)
=
1
p(lim_{m\rightarrow\infty}x^{(m)}=x)=1
p(limm→∞x(m)=x)=1时,随机变量序列,
x
(
1
)
,
x
(
2
)
,
…
\mathtt x^{(1)},\mathtt x^{(2)},\dots
x(1),x(2),…收敛到
x
x
x。
一致性保证了估计量的偏差会随着数据样本数目的增多而减少。反之不成立:渐进无偏并不意味着一致性。
5.5 最大似然估计
最大似然估计准则可以从不同模型中得到特定函数作为好的估计。
考虑一组含有
m
m
m个样本的数据集
X
=
{
x
(
1
)
,
…
,
x
(
m
)
}
\mathbb X=\{x^{(1)},\dots,x^{(m)}\}
X={x(1),…,x(m)},独立第由位置的真是数据生成分布
p
d
a
t
a
(
x
)
p_{data}(\mathtt x)
pdata(x)生成。
令
p
m
o
d
e
l
(
x
;
θ
)
p_{model}(\mathtt x;\theta)
pmodel(x;θ)是一族
θ
\theta
θ确定在相同空间上的概率分布。也即,
p
m
o
d
e
l
(
x
;
θ
)
p_{model}(\mathtt x;\theta)
pmodel(x;θ)将任意输入
x
x
x映射到实数来估计真实概率
p
d
a
t
a
(
x
)
p_{data}(x)
pdata(x)。
对
θ
\theta
θ的最大似然估计定义为:
θ
M
L
=
a
r
g
m
a
x
θ
p
m
o
d
e
l
(
X
;
θ
)
\theta_{\mathtt {ML}}=\mathtt {arg\ max}_\theta p_{model}(\mathbb X;\theta)
θML=arg maxθpmodel(X;θ)
=
a
r
g
m
a
x
θ
∏
i
=
1
m
p
m
o
d
e
l
(
x
(
i
)
,
θ
)
\quad\quad\quad\quad=\mathtt {arg\ max}_\theta\prod_{i=1}^mp_{model}(x^{(i)},\theta)
=arg maxθi=1∏mpmodel(x(i),θ)转换成便于计算的求和形式:
θ
M
L
=
a
r
g
m
a
x
θ
∑
i
=
1
m
l
o
g
p
m
o
d
e
l
(
x
(
i
)
,
θ
)
\theta_{\mathtt {ML}}=\mathtt {arg\ max}_\theta\sum_{i=1}^m\ \mathtt{log}\ p_{model}(x^{(i)},\theta)
θML=arg maxθi=1∑m log pmodel(x(i),θ)因为重新缩放代价函数时,
a
r
g
m
a
x
\mathtt{arg}\ \mathtt{max}
arg max不会改变,可除以
m
m
m得到和训练数据经验分布
p
^
d
a
t
a
\hat p_{data}
p^data相关的期望作为准则:
θ
M
L
=
a
r
g
m
a
x
θ
E
x
−
p
^
d
a
t
a
l
o
g
p
m
o
d
e
l
(
x
,
θ
)
\theta_{\mathtt {ML}}=\mathtt {arg\ max}_\theta\mathbb E_{\mathtt x-\hat p_{data}}\ \mathtt{log}\ p_{model}(x,\theta)
θML=arg maxθEx−p^data log pmodel(x,θ)==一种解释最大似然估计的观点是将它看做最小化训练集上的经验分布
p
^
d
a
t
a
\hat p_{data}
p^data和模型分布之间的差异,两者之间的差异程度可以通过KL三度度量。KL散度定义为:
D
K
L
(
p
^
d
a
t
a
∥
p
m
o
d
e
l
)
=
E
x
−
p
^
d
a
t
a
[
l
o
g
p
^
d
a
t
a
(
x
)
−
l
o
g
p
m
o
d
e
l
(
x
)
]
D_{\mathtt {KL}}(\hat p_{data}\parallel p_{model})=\mathbb E_{\mathtt x-\hat p_{data}}[\mathtt{log}\ \hat p_{data}(x)-\mathtt {log}\ p_{model}(x)]
DKL(p^data∥pmodel)=Ex−p^data[log p^data(x)−log pmodel(x)]
p
^
d
a
t
a
(
x
)
\hat p_{data}(x)
p^data(x)仅与数据生成相关,与模型无关。意味着当训练模型最小化KL散度时,只需最小化:
−
E
x
−
p
^
d
a
t
a
[
l
o
g
p
m
o
d
e
l
(
x
)
]
-\mathbb E_{\mathtt x-\hat p_{data}}[\mathtt {log}\ p_{model}(x)]
−Ex−p^data[log pmodel(x)]与
θ
M
L
\theta_{\mathtt {ML}}
θML的最大化是一致的。
最小化KL散度就是在最小化分部之间的交叉熵。 任何一个由负对数似然组成的损失都是定义在训练集上的经验分布和定义在模型上的概率分布之间的交叉熵。例如,均方误差是经验分布和高斯模型之间的交叉熵。
5.5.1 条件对数似然估计和均方误差
最大似然估计很容易扩展到估计条件概率
P
(
y
∣
x
;
θ
)
P(\mathtt y \ |\mathtt x;\theta)
P(y ∣x;θ),从而给定
x
\mathtt x
x预测
y
\mathtt y
y。实际上这是最常见的情况,因为构成了大多数监督学习的基础。如果
X
\mathtt X
X表示所有的输入,
Y
\mathtt Y
Y表示观测到的目标,那么条件最大似然估计是:
θ
M
L
=
a
r
g
max
θ
P
(
Y
∣
X
;
θ
)
\theta_{\mathtt {ML}}=\mathtt {arg\ \max}_\theta P(\mathtt Y \ |\mathtt X;\theta)
θML=arg maxθP(Y ∣X;θ)如果假设样本是独立同分布的,那么可以分解成:
θ
M
L
=
a
r
g
max
θ
∑
i
=
1
m
l
o
g
P
(
y
(
i
)
∣
x
(
i
)
;
θ
)
\theta_{\mathtt {ML}}=\mathtt {arg\ \max}_\theta \sum _{i=1}^m \mathtt {log}\ P(y^{(i)} \ |x^{(i)};\theta)
θML=arg maxθi=1∑mlog P(y(i) ∣x(i);θ)
示例线性回归作为最大似然:
定义
p
(
y
∣
x
)
=
N
(
y
;
y
^
(
x
,
w
)
,
σ
2
)
p(y\ |\ x)=N(y;\hat y(x,w),\sigma^2)
p(y ∣ x)=N(y;y^(x,w),σ2),假设样本是独立同分布的,条件对数似然如下:
∑
i
=
1
m
l
o
g
p
(
y
(
i
)
∣
x
(
i
)
;
θ
)
\sum _{i=1}^m \mathtt {log}\ p(y^{(i)} \ |x^{(i)};\theta)
i=1∑mlog p(y(i) ∣x(i);θ)
=
−
m
l
o
g
σ
−
m
2
l
o
g
(
2
π
)
−
∑
i
=
1
m
∥
y
^
(
i
)
−
y
(
i
)
∥
2
2
σ
2
=-m\mathtt {log}\ \sigma-\frac{m}{2}\mathtt{log\ (2\pi)}-\sum_{i=1}^m\frac{\parallel \hat y^{(i)}-y^{(i)}\parallel ^2}{2\sigma^2}
=−mlog σ−2mlog (2π)−i=1∑m2σ2∥y^(i)−y(i)∥2其中
y
^
(
i
)
\hat y^{(i)}
y^(i)是线性回归在第
i
i
i个输入
x
(
i
)
x^{(i)}
x(i)上的输出,
m
m
m是训练样本的数目。对于均方误差和对数似然:
M
S
E
t
e
s
t
=
1
m
∑
i
=
1
m
∥
y
^
(
i
)
−
y
(
i
)
∥
2
2
\mathtt{MSE}_{test}=\frac{1}{m}\sum_{i=1}^m\parallel \hat y^{(i)}-y^{(i)}\parallel_2^2
MSEtest=m1i=1∑m∥y^(i)−y(i)∥22最大化
w
w
w的对数似然和最小化均方误差会得到相同的参数估计
w
w
w。但是对于相同的最优
w
w
w,两个准则有着不同的值。
5.5.2 最大似然的性质
在合适的条件下,最大似然估计具有一致性,意味着训练样本数目趋向于无穷大时,参数的最大似然估计会收敛到参数的真实值。条件如下:
- 真实分布 p d a t a p_{data} pdata必须在模型族 p m o d e l ( ⋅ ; θ ) p_{model}(\cdot;\theta) pmodel(⋅;θ)中,否则,没有估计可以还原 p d a t a p_{data} pdata。
- 真实分布 p d a t a p_{data} pdata必须刚好对应一个 θ \theta θ值,否则,最大似然估计恢复出真实分布 p d a t a p_{data} pdata后,也不能决定数据生成过程使用哪个 θ \theta θ。
5.6 贝叶斯统计
已经讨论了频率派统计(frequentist statistics)方法和基于估计单一值
θ
\theta
θ的方法,然后基于该估计作所有的预测。另一种方法是在预测时会考虑所有可能的
θ
\theta
θ。后者属于贝叶斯统计(Bayesian statistics)。
假设有一组数据样本
{
x
(
1
)
,
…
,
x
(
m
)
}
\{x^{(1)},\dots,x^{(m)}\}
{x(1),…,x(m)},通过贝叶斯规则结合数据似然
p
(
x
(
1
)
,
…
,
x
(
m
)
∣
θ
)
p(x^{(1)},\dots,x^{(m)}|\theta)
p(x(1),…,x(m)∣θ)和先验,可以恢复:
p
(
θ
∣
x
(
1
)
,
…
,
x
(
m
)
)
=
p
(
x
(
1
)
,
…
,
x
(
m
)
∣
θ
)
p
(
θ
)
p
(
x
(
1
)
,
…
,
x
(
m
)
)
p(\theta |x^{(1)},\dots,x^{(m)})=\frac{p(x^{(1)},\dots,x^{(m)}|\theta)p(\theta)}{p(x^{(1)},\dots,x^{(m)})}
p(θ∣x(1),…,x(m))=p(x(1),…,x(m))p(x(1),…,x(m)∣θ)p(θ)相对于最大似然估计,贝叶斯有两个重要区别。
- 第一,不像最大似然方法预测时使用 θ \theta θ的点估计,贝叶斯方法使用 θ \theta θ的全分布。
- 第二个区别由贝叶斯先验分布造成。先验能够影响概率质量密度向参数空间中偏好先验的区域偏移。实践中,先验通常表现为偏好更简单或更光滑的模型,对贝叶斯方法的批判认为,先验是人为主观判断影响预测的来源。
5.6.1 最大后验(MAP)估计
原则上,应该使用参数
θ
\theta
θ的完整贝叶斯后验分布进行预测,但单点估计常常也是需要,因为对于贝叶斯后验的计算非常复杂,点估计提供给了一个可行的近似解。
最大后验(Maximum A Posteriori,MAP)点估计。MAP估计选择后验概率最大的点:
θ
M
A
P
=
a
r
g
m
a
x
θ
p
(
θ
∣
x
)
=
a
r
g
m
a
x
θ
p
(
x
∣
θ
)
+
l
o
g
p
(
θ
)
\theta_{\mathtt {MAP}}=\mathtt {arg\ max}_\theta\ p(\theta\ |\ x)=\mathtt {arg\ max}_\theta\ p(x\ |\ \theta)+\mathtt {log}\ p(\theta)
θMAP=arg maxθ p(θ ∣ x)=arg maxθ p(x ∣ θ)+log p(θ)许多正规化估计方法,例如权重衰减正则化的最大似然学习,可以被解释为贝叶斯推断的
M
A
P
\mathtt{MAP}
MAP近似。
5.7 监督学习算法
5.7.1 概率监督学习
大部分监督学习算法都是基于估计概率分布
p
(
y
∣
x
)
p(y\ |\ x)
p(y ∣ x),可以使用最大似然估计找到对于有参分布族
p
(
y
∣
x
;
θ
)
p(y\ |\ x;\theta)
p(y ∣ x;θ)。
逻辑回归(logistic regression),用于分类而非回归。
5.7.2 支持向量机
支持向量机(support vector machine,SVM)是监督学习中最有影响力的方法之一。
5.7.3 其他简单的监督学习算法
非概率监督学习算法,最近邻回归。
决策树。
5.8 无监督学习算法
无监督算法只处理“特征”,不操作监督信号。
最常见的三种表示:
- 低维表示:尝试将 x x x中的信息尽可能压缩在一个较小的表示中。
- 稀疏表示:将数据集嵌入到输入项大多数为零的表示中。通常用于需要增加表示维度的情况。使得大部分为零的表示不会丢失很多信息。这会使得表示的整体结构倾向于将数据分布在表示空间的坐标轴上。
- 独立表示:示图分开数据分布中变化的来源,使得表示的维度是统计独立的。
5.8.1 主成分分析
PCA学习一种比原始输入维度更低的表示,也学习了一种元素之间彼此没有线性相关的表示。这是学习表示中元素统计独立标准的第一步。要实现完全独立性,表示学习算法也必须去掉变量间的非线性关系。
5.8.2 k-均值聚类
k-均值聚类算法将训练集分为k个靠近彼此的不同样本聚类。
k-均值聚类提供的one-hot编码是一种稀疏表示。
5.9 随机梯度下降
随机梯度下降(stochastic gradient descent,SGD)
机器学习中反复出现的一个问题是好的泛化需要大的训练集,但是大的训练集的计算代价也更大。
机器学习算法中的代价函数通常可以分解成每个样本的代价函数的总和。
5.10 构建机器学习算法
深度学习算法包括:特定的数据集、代价函数、优化过程和模型
5.11 促使深度学习发展的挑战
5.11.1 维数灾难
当数据的维度很高时,很多机器学习问题变得相当困难,这种现象被称为维数灾难(curse of dimensionality)。需要注意的是,一组变量不同的可能配置数量会随着变量数目的增加而指数级增长。
由维数灾难带来的一个挑战是统计挑战,统计挑战产生于
x
x
x的可能配置数目远大于训练样本的数目。
5.11.2 局部不变性和平滑正则化
为了更好的泛化,机器学习算法需要由先验信念引导应该学习什么类型的函数。其中使用最广泛的隐式“先验”平滑先验(smoothness prior),或局部不变形先验(local constancy prior)。这个先验表明学习的函数不应该在小区域内发生很大变化。
5.11.3 流形学习
流形(manifold)指连接在一起的区域。数学上,是指一组点,且每个点都有其邻域。例如,数字“8”形状的流形在大多数位置只有一维,但是在中心的相交处有两维。
如果希望机器学习算法学习整个
R
n
\mathbb R^n
Rn上又去变化的函数,那么很多问题看上去都是无望的。流行学习(manifold learning)算法通过一个假设来克服这个障碍,该假设认为
R
n
\mathbb R^n
Rn中大部分区域都是无效的输入,有意义的输入只分布在包含少量数据点的子集构成的一组流形中,而学习函数的输出中,有意义的变化都沿着流行呢的方向或仅发生在切换到另一流形时。流行学习最初用于连续数值和无监督学习的环境,尽管这个概率集中的想法也能够泛化到离散数据和监督学习的设定下:关键假设仍然是概率质量高度集中。