文章目录
Data, Models, and Learning
The title contains three major components of a machine learning system.
Data as Vectors
First, we need to make information as number, so as to we can use it as training data.
Models as Functions
There are two main school relative to the machine learning, function and probabilistic model. The former one gives a specific value, the later one would give the distribution of the result.
And in order to value a model, we use cost function or loss function to discribe it.
经验风险最小化(Empirical Risk Minimization)
本节主要探讨几个问题:那些函数可以被用作预测函数?如何衡量一个模型的好坏?如何让一个从已知训练集中训练出来的模型很好地预测未见得数据?在找合适的模型时,应该遵循什么样的步骤?
假设函数的种类(Hypothesis Class of Functions)
我们训练的目的是找到一个参数列表
θ
∗
\theta^*
θ∗,使得函数的输出结果能够更接近真实值,即:
f
(
x
n
,
θ
∗
)
≈
y
n
f
o
r
a
l
l
a
=
1
,
⋯
,
N
f(x_n,\theta^*)\approx y_n\quad for \ all\ \ a = 1,\cdots,N
f(xn,θ∗)≈ynfor all a=1,⋯,N
在本节中使用
y
^
n
=
f
(
x
n
,
θ
∗
)
\hat y_n=f(x_n,\theta^*)
y^n=f(xn,θ∗)代表模型的预测值。
代价函数(Loss Function for Training)
经验风险(empirical risk):真实值与预测值的偏差
对于一个给定的训练集
{
(
x
1
,
y
1
)
,
⋯
,
(
x
N
,
y
N
)
}
\{(x_1,y_1),\cdots,(x_N,y_N) \}
{(x1,y1),⋯,(xN,yN)},实例矩阵(example matrix):
X
:
=
[
x
1
,
⋯
,
x
N
]
⊤
∈
R
N
×
D
\boldsymbol X :=[x_1,\cdots,x_N]^\top\in \mathbb R^{N\times D}
X:=[x1,⋯,xN]⊤∈RN×D,标签矩阵
y
:
=
[
y
1
,
⋯
,
y
N
]
⊤
∈
R
N
y:=[y_1,\cdots,y_N]^\top\in \mathbb R^N
y:=[y1,⋯,yN]⊤∈RN,对应的平均损失为:
R
e
m
p
(
f
,
X
,
y
)
=
1
N
∑
n
−
1
N
l
(
y
n
,
y
^
n
)
R_{emp}(f,\boldsymbol X, y)=\frac{1}{N}\sum\limits^N_{n-1} l(y_n,\hat y_n)
Remp(f,X,y)=N1n−1∑Nl(yn,y^n)
我们希望模型不仅仅能够很好地拟合训练数据,还希望模型能够很好地预测数据,所以能够找到一个期望风险(Expected Risk)
R
t
r
u
e
(
f
)
=
E
x
,
y
[
l
(
y
,
f
(
x
)
)
]
\bold R_{true}(f)=\boldsymbol{\mathbb E_{x,y}}[l(y,f(\boldsymbol x))]
Rtrue(f)=Ex,y[l(y,f(x))]
正则化减小过拟合(Regularization to Reduce Overfitting)
如果有足够的参数,给定地模型一般能够很好地拟合测试数据,但是预测数据却与实际数据有较大的偏差,这时候就是模型发生了过拟合。
一般情况下,已知的数据分为测试数据和训练数据,分别用于测试和训练模型。
Regularization is a way to compromise between accurate solution of empirical risk minimization and the size or complexity of the solution.
对于一个最小二乘问题: min θ 1 N ∥ y − X θ ∥ 2 \min\limits_\theta\frac{1}{N}\|y-X\theta\|^2 θminN1∥y−Xθ∥2,加上正则项则是:
min θ 1 N ∥ y − X θ ∥ 2 + λ ∥ θ ∥ \min\limits_\theta\frac{1}{N}\|y-X\theta\|^2+\lambda \|\theta\| θminN1∥y−Xθ∥2+λ∥θ∥
用交叉验证评估泛化性能(Cross-Validation to Assess the Generalization Performance)
我们将已知数据进行拆分,一部分用于模型训练,一部分用于模型性能测试,这个称为验证集(validation set)。但是如果训练数据太少,可能导致得不到好的模型,如果训练数据太少可能导致噪声估计。所以应该对已有的数据进行合理的划分,这就有K-折交叉验证(K-fold cross-validation)
这样得到的期望泛化误差(expected generalization error)为:
E
V
[
R
(
f
,
V
)
]
≈
1
K
∑
k
=
1
K
R
(
f
(
k
)
,
V
(
k
)
)
\mathbb E_\mathcal V[R(f,\mathcal V)]\approx\frac{1}{K}\sum^K_{k=1}R(f^{(k)},\mathcal V^{(k)})
EV[R(f,V)]≈K1k=1∑KR(f(k),V(k))
其中,
R
(
f
(
k
)
,
V
(
k
)
)
R(f^{(k)},\mathcal V^{(k)})
R(f(k),V(k))为预测值与真实值之间的误差。
但是这个方法有几个缺点,首先是不合理的数据划分可能会导致的几个不好的结果,与之前的训练集和测试集之间的大小关系导致不同后果一致。同时需要对模型进行K次训练,可能需要大量的计算资源。
Evaluating the quality of the model, depending on these hyperparameters, may result in a number of training runs that is exponential in the number of model parameters.
参数估计(Parameter Estimation)
最大似然估计(Maximum Likelihood Estimation)
定义一个关于参数的函数,去评估模型对数据的拟合的好坏。一般使用负对数似然(negative log-likelihood):
L
x
(
θ
)
=
−
log
p
(
x
∣
θ
)
\mathcal L_x(\boldsymbol\theta)=-\log p(\boldsymbol x|\boldsymbol\theta)
Lx(θ)=−logp(x∣θ)
在上式中,样品值是固定的,变化的是参数,这个函数彰显的是给定参数的情况下,取得样品值的概率。
假设两个相互独立且均匀分布的数据集,
X
=
{
x
1
,
⋯
,
x
N
}
\mathcal X=\{x_1,\cdots,x_N \}
X={x1,⋯,xN},
Y
=
{
y
1
,
⋯
,
y
N
}
\mathcal Y=\{y_1,\cdots,y_N \}
Y={y1,⋯,yN},他们的似然方程可以呗分解为:
p
(
Y
∣
X
,
θ
)
=
∏
n
=
1
N
p
(
y
n
∣
x
n
,
θ
)
p(\mathcal Y|\mathcal X,\theta)=\prod^N_{n=1}p(y_n|\boldsymbol x_n,\boldsymbol\theta)
p(Y∣X,θ)=n=1∏Np(yn∣xn,θ)
但是从优化的角度来看,和比乘积更容易处理:
L
(
θ
)
=
−
log
p
(
Y
∣
X
,
θ
)
=
−
∑
n
=
1
N
log
p
(
y
n
∣
x
n
,
θ
)
\mathcal L(\theta)=-\log p(\mathcal Y|\mathcal X, \theta)=-\sum^N_{n=1}\log p(y_n|x_n,\theta)
L(θ)=−logp(Y∣X,θ)=−n=1∑Nlogp(yn∣xn,θ)
hence should be interpreted as observed and fixed, this interpretation is incorrect.
最大后验估计(Maximum A Posteriori Estimation)
如果我们有关于参数的先验知识,这样可以利用贝叶斯公式更新后验概率,以对参数进行估计。这个与之前提到的正则项类似,在似然概率之后乘以一个对参数的先验概率分布。
这部分需要补充
模型拟合(Model Fitting)
拟合的意思就是优化模型的参数,以最小化代价函数。
参数化(arametrization):一种描述模型的方式。
y
=
a
x
+
b
→
θ
:
=
{
a
,
b
}
y = ax+b\rightarrow \theta:=\{a,b\}
y=ax+b→θ:={a,b}
书中使用
M
θ
M_\theta
Mθ表示参数化的模型,
M
∗
M^*
M∗为真实值,上图中的红线可以认为是代价函数。
拟合的三种结果:
泛化线性模型(generalized generalized linear):
In statistics, the generalized linear model (GLM) is a flexible generalization of ordinary linear regression that allows for response variables that have error distribution models other than a normal distribution.
连接函数(Link Function):
The link function provides the relationship between the linear predictor and the mean of the distribution function.
贝叶斯推断(Bayesian Inference)
之前提到的极大似然估计和极大后验估计最后都是在解决一个优化问题,通过解决这个优化问题,我们可以得到模型参数,利用这个参数我们可以得到预测值的分布
p
(
x
∣
θ
∗
)
p(x|\theta^*)
p(x∣θ∗)
由于仅仅是关注于部分数据的后验分布会损失部分的信息,而损失的信息可能对决策系统至关重要,所以得到一个完成数据的后验分布十分重要
这部分需要补充,关于信息损失
对于一个数据集
X
\mathcal X
X、一个参数先验
p
(
θ
)
p(\theta)
p(θ)和一个似然方程的后验分布为:
p
(
θ
∣
X
)
=
p
(
X
∣
θ
)
p
(
θ
)
p
(
X
)
,
p
(
X
)
=
∫
p
(
X
∣
θ
)
p
(
θ
)
d
θ
p(\theta|\mathcal X)=\frac{p(\mathcal X|\theta)p(\theta)}{p(\mathcal X)},\quad p(\mathcal X)=\int p(\mathcal X|\theta)p(\theta)d\theta
p(θ∣X)=p(X)p(X∣θ)p(θ),p(X)=∫p(X∣θ)p(θ)dθ
利用参数的后验分布,我们可以将对参数的不确定性转移到数据上,也就是我们的预测值不再依赖于参数了:
p
(
x
)
=
∫
p
(
x
∣
θ
)
p
(
θ
)
d
θ
=
E
θ
[
p
(
x
∣
θ
)
]
p(\boldsymbol x)=\int p(\boldsymbol x|\boldsymbol\theta)p(\boldsymbol\theta)d\boldsymbol\theta=\mathbb E_\boldsymbol\theta[p(\boldsymbol x|\boldsymbol\theta)]
p(x)=∫p(x∣θ)p(θ)dθ=Eθ[p(x∣θ)]
上式说明,预测值是所有参数下的预测值的均值。
潜变量模型(Latent-Variable Models)
Mathematical models that aim to explain observed variables in terms of latent variables are called latent variable models
潜变量(Latent-Variable)
These could in principle be measured, but may not be for practical reasons. In this situation, the term hidden variables is commonly used (reflecting the fact that the variables are meaningful, but not observable).
想要简化模型,最简单的方法就是减少模型的参数的数量。但是利用潜变量模型(expectation maximization (EM) algorithm),可以更加规范地简化模型。
潜变量模型能够帮助我们描述从参数中获取预测值地过程:
将数据表示为
x
\boldsymbol x
x,模型的参数表示为
θ
\boldsymbol\theta
θ,潜变量表示为
z
z
z,我们可以得到条件分布:
p
(
x
∣
z
,
θ
)
p(\boldsymbol x|\boldsymbol z,\boldsymbol\theta)
p(x∣z,θ)
想要得到给定模型参数下的预测数据,我们需要消去潜变量:
p
(
x
∣
θ
)
=
∫
p
(
x
∣
z
,
θ
)
p
(
z
)
d
z
p(x|\theta)=\int p(x|z,\theta)p(z)dz
p(x∣θ)=∫p(x∣z,θ)p(z)dz
注意到似然方程与潜变量无关,有了上面这个式子,我们可以直接使用极大似然估计来进行参数估计。
用上式带入到贝叶斯公式中:
p
(
θ
∣
X
)
=
p
(
X
∣
θ
)
p
(
θ
)
p
(
X
)
p(\theta|\mathcal X)=\frac{p(\mathcal X|\theta)p(\theta)}{p(\mathcal X)}
p(θ∣X)=p(X)p(X∣θ)p(θ)
其中,
X
\mathcal X
X为给定的数据集。这样得到了后验概率分布,可以用于贝叶斯推断。
与上式类似,我们可以得到潜变量的后验分布:
p
(
z
∣
X
)
=
p
(
X
∣
z
)
p
(
z
)
p
(
X
)
,
p
(
X
∣
z
)
=
∫
p
(
X
∣
z
,
θ
)
p
(
θ
)
d
θ
p(z|\mathcal X)=\frac{p(\mathcal X|z)p(z)}{p(\mathcal X)},\quad p(\mathcal X|z)=\int p(\mathcal X|z,\theta)p(\theta)d\theta
p(z∣X)=p(X)p(X∣z)p(z),p(X∣z)=∫p(X∣z,θ)p(θ)dθ
但是还是遇到了积分。而且同时将参数和潜变量消掉也非常困难。
下面这个式子相对好计算:
p
(
z
∣
X
,
θ
)
=
p
(
X
∣
z
,
θ
)
p
(
z
)
p
(
X
∣
θ
)
p(z|\mathcal X,\theta)=\frac{p(\mathcal X|z,\theta)p(z)}{p(\mathcal X|\theta)}
p(z∣X,θ)=p(X∣θ)p(X∣z,θ)p(z)
补充一下这部分?含义?
有向图模型(Directed Graphical Models/Bayesian networks)
将一个随机变量表示为一个有向图的节点,随机变量之间的关系表示为有向图的边,这样可以很好的得出随机变量之间的关系,而且可以将随机变量之间的关系变换转换成有向图的操作.
图的语义(Graph Semantics)
下图表示的是a、b、c三个随机变量,边代表条件概率分布,例如a、b节点,代表
p
(
b
∣
a
)
p(b|a)
p(b∣a)
所以,一个联合概率分布可以表示为:
p
(
x
)
=
∏
k
=
1
K
p
(
x
k
∣
P
a
k
)
p(\boldsymbol x)=\prod^K_{k=1}p(x_k|Pa_k)
p(x)=k=1∏Kp(xk∣Pak)
其中,
P
a
k
Pa_k
Pak表示节点
x
k
x_k
xk的父节点。
对于一个重复N次的伯努利实验的联合概率分布为:
图(b)是一种更加紧凑的表示方法,图 (c)中的
α
、
β
\alpha 、\beta
α、β是潜变量
μ
\mu
μ的超参数(Hyperparameter)也是
μ
\mu
μ的一个超前驱(hyperprior)
条件概率分布和d-分离(有向分离)(Conditional Independence and d-Separation)
假设一个互不相交的节点集,
A
,
B
,
C
\mathcal A,\mathcal B,\mathcal C
A,B,C,在
C
\mathcal C
C下,
A
\mathcal A
A与
B
\mathcal B
B条件独立,表示为:
A
⊥
⊥
B
∣
C
\mathcal A \perp \!\!\!\perp\mathcal B\ |\ \mathcal C
A⊥⊥B ∣ C
有向分离
(d-separation)的基本思想:通过贝叶斯网中看两个事件的关系(两个事件是否条件独立),从而简化概率计算。(利用两时间的相互独立的性质)
当三个节点满足下面地条件之一的时候,则表示
A
,
B
\mathcal A,\mathcal B
A,B是d-分离的。
下面的参考博客中有对应结论的推导
参考
这里两种情况:
- 若
C
\mathcal C
C不观测,则
P
(
X
,
Y
)
=
Σ
Z
(
X
,
Y
,
Z
)
P(\mathcal X, \mathcal Y)=\Sigma_\mathcal Z(\mathcal X,\mathcal Y,\mathcal Z)
P(X,Y)=ΣZ(X,Y,Z),只有
P
(
X
,
Y
)
=
P
(
X
)
P
(
Y
)
P(\mathcal X,\mathcal Y)=P(\mathcal X)P(\mathcal Y)
P(X,Y)=P(X)P(Y)才能说明
X
,
Y
\mathcal X,\mathcal Y
X,Y相互独立,也就是
X
,
Y
X,Y
X,Y
有向独立
(d-separation) - 若观测
C
\mathcal C
C,则使用条件概率公式
P
(
X
,
Y
∣
C
)
=
P
(
X
)
P
(
C
∣
X
)
P
(
Y
∣
C
)
P
(
C
)
P(\mathcal X,\mathcal Y|\mathcal C)=\frac{P(\mathcal X)P(\mathcal C|\mathcal X)P(\mathcal Y|\mathcal C)}{P(\mathcal C)}
P(X,Y∣C)=P(C)P(X)P(C∣X)P(Y∣C),只有满足
P
(
X
,
Y
∣
C
)
=
P
(
X
∣
Z
)
P
(
Y
∣
C
)
P(\mathcal X,\mathcal Y|\mathcal C)=P(\mathcal X|\mathcal Z)P(\mathcal Y|\mathcal C)
P(X,Y∣C)=P(X∣Z)P(Y∣C)才能说明
X
,
Y
\mathcal X,\mathcal Y
X,Y相互独立,也就是
X
,
Y
\mathcal X,\mathcal Y
X,Y
有向独立
(d-separation)
模型选择(Model Selection)
越复杂的模型能够表示的数据之间的关系就越多,例如一个二次函数模型,除了能够表示线性关系之外,还可以表示数据之间的二次关系。虽然复杂的模型能够表示更多的数据关系,但是有时候因为数据量比较小,可能会导致过拟合
的现象。我们还需要知道如何评估模型在泛化数据下的性能。
嵌套交叉验证(Nested Cross-Validation)
将数据分为三个部分,第一部分用于训练模型,第二部分用于计算误差:
E
V
[
R
(
V
∣
M
)
]
≈
=
1
K
∑
k
=
1
K
R
(
V
(
k
)
∣
M
)
\mathbb E_\mathcal V[\boldsymbol R(\mathcal V| M)]\approx = \frac{1}{K}\sum^K_{k=1}\boldsymbol R(\mathcal V^{(k)}|M)
EV[R(V∣M)]≈=K1k=1∑KR(V(k)∣M)
其中
R
\boldsymbol R
R代表的是经验风险(empirical risk)
计算所有模型的经验风险,然后选取经验风险最小的模型作为最终模型,然后利用测试数据计算模型的泛化误差。
贝叶斯模型选择(Bayesian Model Selection)
简单的模型较复杂的模型不容易出现过拟合的现象,所以在能够合理拟合数据的情况下,应该尽可能选取简单的模型,这被称为奥卡姆剃刀(Occam’s razor)。在贝叶斯概率的应用过程中,定量地体现了一个“自动奥卡姆剃刀”
上图中,横坐标表示所有的可能的数据集,纵坐标表示模型对对应数据的拟合程度。我们会选用拟合程度更好的模拟作为最终的模型。
下图是数据生成过程:
第一个表示模型的先验概率,表示模型被选取的概率,第二个表示模型对应的参数的分布,最后一个是模型的生成数据。
用贝叶斯网可以表示为:
我们可以利用贝叶斯公式计算后验分布:
p
(
M
k
∣
D
)
∝
p
(
M
k
)
p
(
D
∣
M
k
)
,
(
∗
)
p(M_k|\mathcal D)\propto p(M_k)p(\mathcal D|M_k),\quad(*)
p(Mk∣D)∝p(Mk)p(D∣Mk),(∗)
其中的后验分布不依赖于参数
θ
i
\boldsymbol\theta_i
θi,因为:
p
(
D
∣
M
k
)
=
∫
p
(
D
∣
θ
k
)
p
(
θ
k
∣
M
k
)
d
θ
k
p(\mathcal D|M_k)=\int p(\mathcal D|\boldsymbol \theta_k)p(\boldsymbol \theta_k|M_k)d\boldsymbol \theta_k
p(D∣Mk)=∫p(D∣θk)p(θk∣Mk)dθk
这个式子被称为边际似然(marginal likelihood)
利用(*)式,可以得到极大后验估计:
M
∗
=
arg
max
M
k
p
(
M
k
∣
D
)
M^*=\operatorname {arg}\max_{M_k}p(M_k|\mathcal D)
M∗=argMkmaxp(Mk∣D)
似然与边际似然有些不同点,前者更容易出现过拟合的现象,后者因为参数被边际化掉了,出现过拟合的现象更小。而且边际似然中嵌套着模型复杂度和数据拟合之间的一个折中。
模型比较中的贝叶斯因子(Bayes Factors for Model Comparison)
在给定数据集
D
\mathcal D
D和两个模型
M
1
,
M
2
M_1,M_2
M1,M2,想要计算后验分布
p
(
M
1
∣
D
)
&
p
(
M
2
∣
D
)
p(M_1|\mathcal D) \& \ p(M_2|\mathcal D)
p(M1∣D)& p(M2∣D)
p
(
M
1
∣
D
)
p
(
M
2
∣
D
)
⏟
posterior odds(后验相对风险)
=
p
(
D
∣
M
1
)
p
(
M
1
)
p
(
D
)
p
(
D
∣
M
2
)
p
(
M
2
)
p
(
D
)
=
p
(
M
1
)
p
(
M
2
)
⏟
prior odds
p
(
D
∣
M
1
)
p
(
D
∣
M
2
)
⏟
Bayes factor
\underbrace{\frac{p\left(M_{1} \mid \mathcal{D}\right)}{p\left(M_{2} \mid \mathcal{D}\right)}}_{\text {posterior odds(后验相对风险) }}=\frac{\frac{p\left(\mathcal{D} \mid M_{1}\right) p\left(M_{1}\right)}{p(\mathcal{D})}}{\frac{p\left(\mathcal{D} \mid M_{2}\right) p\left(M_{2}\right)}{p(\mathcal{D})}}=\underbrace{\frac{p\left(M_{1}\right)}{p\left(M_{2}\right)}}_{\text {prior odds }} \underbrace{\frac{p\left(\mathcal{D} \mid M_{1}\right)}{p\left(\mathcal{D} \mid M_{2}\right)}}_{\text {Bayes factor }}
posterior odds(后验相对风险)
p(M2∣D)p(M1∣D)=p(D)p(D∣M2)p(M2)p(D)p(D∣M1)p(M1)=prior odds
p(M2)p(M1)Bayes factor
p(D∣M2)p(D∣M1)
???
如果选择每一个模型的概率相等,即 p ( M 1 ) p ( M 2 ) = 1 \frac {p(M_1)}{p(M_2)}=1 p(M2)p(M1)=1,则可以根据贝叶斯因子与1的关系,选择模型。
信息准则(information criteria):
Akaike information criterion: log p ( x ∣ θ ) − M \log p(x|\theta)-M logp(x∣θ)−Mcorrects for the bias of the maximum likelihood estimator by addition of a penalty term to compensate for the overfitting of more complex models with lots of parameters.
其中,M表示参数的个数
Bayesian information criterion (BIC)log p ( x ) = log ∫ p ( x ∣ θ ) p ( θ ) d θ ≈ log p ( x ∣ θ ) − 1 2 M log N \log p(x)=\log\int p(x|\boldsymbol\theta)p(\boldsymbol\theta)d\boldsymbol\theta\approx\log p(x|\boldsymbol\theta)-\frac{1}{2}M\log N logp(x)=log∫p(x∣θ)p(θ)dθ≈logp(x∣θ)−21MlogN
这里N表示数据集,M表示参数个数
这部分遇到的时候在详细学习