最近在学机器学习,用的是cs229,打算边学习边翻译,加深理解。
CS229-notes
监督式学习(supervised learning problems)
让我们以一些监督式学习问题的例子来开始吧。假设我们有一个数据集,给出了俄勒冈州波特兰市47栋房屋的居住面积和价格:
我们可以绘制出如下的数据:
有了这样的一组数据,我们如何才能利用这些数据预测出波特兰市其它房屋的价格,就像输入一个以房屋面积为自变量的函数获得价格的输出一样。
先确立一些接下来会用到的标记。x(i)用来表示输入的变量(在这个例子中x(i)就是房子的面积),也可以叫做输入的特征值。y(i)用来表示输出或者是我们尽力去预测的目标变量(在这个例子中这个目标变量是价格)。一对(x(i),y(i))叫做训练样本,m组训练样本{(x(i),y(i));i = 1, . . . , m}叫做训练集。需要注意的是,上标“(i)”在这个标记中只是单纯的数据集的索引,并不是幂次。我们用X表示输入值域,用Y表示输出的值域。在这个例子中,X=Y=R。
对于监督式学习的问题,进一步地说,我们的目标是给定一个训练集,能够训练出一个函数h:X→Y,这个函数可以比较好地预测出y的值。按照过去的说法,函数h被称为假设,这个过程可以用下面这种图表示:
当我们预测的目标变量是连续的,就像我们这个例子中的价格。我们称这类学习问题是一个回归问题。当y只能取少量的离散的值时(例如,给出房屋的面积,判断这住房是居民房还是公寓,等等),我们称这类学习问题是分类问题。
Part I 线性回归(Linear Regression)
为了使这个房屋的例子更有趣一些,让我们再添加一些数据集,假设我们还知道每个房屋起居室的数量:
这里的x是一个R2空间中的二维向量。例如,x1(i)是训练集中第 i 个房子的面积,x2(i)是起居室数量。(一般来说,当设计一个学习问题的时候,它需要你去决定选取哪些特征值,如果你去收集波特兰市的房屋数据的话,你可以选择收集其它的特征值,比如,是否拥有壁炉,卫生间的数量等等。我们将会在之后谈到特征值的选取,目前先让我们使用这些给定的数据。)
为了实现监督学习,我们必须确定如何在计算机上表示函数/假设 h 。作为一开始的尝试,我们把y近似地看作是关于x的线性函数:
…
Part II 分类和逻辑回归(Classification and logistic regression)
…
Part III 广义线性模型(Generalized Linear Models)
…
Part IV 生成学习算法(Generative Learning algorithms)
目前为止,我们主要讨论的是基于y受到x限制的p(y|x;θ)模型的学习算法。例如,在逻辑回归中构造的p(y|x;θ)是hθ(x)=g(θTx),其中的 g 是sigmoid函数就是一种范围的限制。在这一部分里,我们将会讨论一种不同的学习算法。
考虑一个这样的分类问题:我们需要利用一些动物的模型学习区分大象(y=1)和狗(y=0)。给定一个数据集和算法,例如逻辑回归或者感知器算法(基本的),去寻找一条决策边界直线区分大象和狗。然后用这个去区分一个新的动物,看它落在大象的一边还是狗的一边,以此给出预测。
这里给出另一种区分方法。首先,观察大象,我们可以建立一个关于大象特征的模型。之后,观察狗,我们可以建立另一个关于狗特征的模型。最后,把新的动物的特征和大象模型以及狗的模型比较,看看它和我们从数据集里得出的大象的模型更像还是和狗的模型更像。
有一类算法是想要直接学习得出p(y|x)(例如逻辑回归),还有一类算法想要通过输入空间 χ \chi χ到{0,1}的映射直接学习得出特征分布(例如感知器算法),这两类算法统称为判别学习算法(discriminative learning algorithms)。在此,我们将会用讨论另一种算法来构造p(x|y)(以及p(y))。这种算法叫做生成学习算法(generative learning algorithms)。例如,如果 y 表示一个例子是狗(0)或是大象(1),那p(x|y=0)表示狗的特征,p(x|y=1)表示大象的特征。
在构造完p(y)(类先验)和p(x|y)之后,我们的算法可以用贝叶斯规则得到y关于x的后验分布:
这里,分母是给定的p(x) = p(x|y=1)p(y=1) + p(x|y=0)p(y=0)(你应该能够用概率论证明这是正确的),因此这也可以表示成我们已知数量的p(x|y)和p(y)。其实,如果计算p(y|x)做预测,那么我们就不需要计算分母了,因为:
高斯判别分析(Gaussian discriminant analysis)
我们将要学习的第一个生成学习算法是高斯判别分析(GDA)。在这个模型里,根据多元正态分布,我们假设p(x|y)是分布式的。在讨论GDA模型之前,让我们先简短地了解一下多元正态分布的性质。
多元正态分布(The multivariate normal distribution)
n维多元正态分布也称为多元高斯分布,可以参数化表示:一个均值向量 μ ∈ R 2 \mu\in\R^2 μ∈R2和一个协方差矩阵 Σ ∈ R n ∗ n \Sigma\in\R^{n*n} Σ∈Rn∗n,其中 Σ ≥ 0 \Sigma\ge0 Σ≥0是对称正半定义的(symmetric and positive semi-definite)。也可以写成“ N ( μ , Σ ) \Nu(\mu,\Sigma) N(μ,Σ)”,它的概率密度如下:
p ( x ; μ , Σ ) = 1 ( 2 π ) n / 2 ∣ Σ ∣ 1 / 2 e x p ( − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) ) p(x;\mu,\Sigma)= \cfrac{1}{(2\pi)^{n/2} |\Sigma|^{1/2}} exp\bigg( -\cfrac{1}{2}(x-\mu)^T \Sigma^{-1}(x-\mu) \bigg) p(x;μ,Σ)=(2π)n/2∣Σ∣1/21exp(−21(x−μ)TΣ−1(x−μ))
在上面的等式中,“ ∣ Σ ∣ |\Sigma| ∣Σ∣”表示矩阵“ Σ \Sigma Σ”的行列式。
对于一个随机变量
X
X
X满足
N
(
μ
,
Σ
)
N(\mu,\Sigma)
N(μ,Σ)分布,它的均值(并不以外的)可以由
μ
\mu
μ表示:
E
[
X
]
=
∫
x
p
(
x
;
μ
,
Σ
)
d
x
=
μ
E[X]=\int xp(x;\mu,\Sigma)dx=\mu
E[X]=∫xp(x;μ,Σ)dx=μ
向量值随机变量
Z
Z
Z的协方差定义为
C
o
v
(
Z
)
=
E
[
(
Z
−
E
[
Z
]
)
(
Z
−
E
[
Z
]
)
T
]
Cov(Z)=E[(Z-E[Z])(Z-E[Z])^T]
Cov(Z)=E[(Z−E[Z])(Z−E[Z])T]。这概括了实值随机变量的概念。协方差同样可以被定义为
C
o
v
(
Z
)
=
E
[
Z
Z
T
]
−
(
E
[
Z
]
)
(
E
[
Z
]
)
T
Cov(Z)=E[ZZ^T]-(E[Z])(E[Z])^T
Cov(Z)=E[ZZT]−(E[Z])(E[Z])T。(你可以自己证明这两个定义是等价的)。如果
X
∽
N
(
μ
,
Σ
)
X\backsim N(\mu,\Sigma)
X∽N(μ,Σ),那么
C
o
v
(
X
)
=
Σ
.
Cov(X)=\Sigma.
Cov(X)=Σ.
这里是一些高斯分布密度的样例图:
最左边的图片表示一个均值为零(2x1的零向量)和协方差矩阵
Σ
=
I
\Sigma=I
Σ=I(2x2单位矩阵)的高斯分布。一个均值为零,协方差是单位矩阵的高斯分布也叫做正态分布。中间这幅图表示一个均值为零,
Σ
=
0.6
I
\Sigma=0.6I
Σ=0.6I的高斯分布。最右边这幅图表示一个均值为零,
Σ
=
2
I
\Sigma=2I
Σ=2I的高斯分布。我们可以看到随着
Σ
\Sigma
Σ的变大,高斯分布变得越来越“扩散”,同时变得越来越小,这个分布越来越“扁”。
让我们看更多的例子:
上面这些图表示的高斯分布为零,协方差矩阵如下:
Σ = [ 1 0 0 1 ] \Sigma=\begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} Σ=[1001]; Σ = [ 1 0.5 0.5 1 ] \Sigma=\begin{bmatrix} 1 & 0.5 \\ 0.5 & 1 \end{bmatrix} Σ=[10.50.51]; Σ = [ 1 0.8 0.8 1 ] \Sigma=\begin{bmatrix} 1 & 0.8 \\ 0.8 & 1 \end{bmatrix} Σ=[10.80.81].
左边这幅图看上去很像正态分布,我们可以看到随着
Σ
\Sigma
Σ斜对角线值的增加,密度分布向45o方向压缩(给定x1=x2)。通过观看这三幅图的等高线,我们可以更清楚的观察到这一点:
下面是改变最后一组例子的
Σ
\Sigma
Σ生成的等高线图像:
上面的图使用的
Σ
\Sigma
Σ如下,
Σ = [ 1 − 0.5 − 0.5 1 ] \Sigma=\begin{bmatrix} 1 & -0.5 \\ -0.5 & 1 \end{bmatrix} Σ=[1−0.5−0.51]; Σ = [ 1 − 0.8 − 0.8 1 ] \Sigma=\begin{bmatrix} 1 & -0.8 \\ -0.8 & 1 \end{bmatrix} Σ=[1−0.8−0.81]; Σ = [ 3 0.8 0.8 1 ] \Sigma=\begin{bmatrix} 3 & 0.8 \\ 0.8 & 1 \end{bmatrix} Σ=[30.80.81].
通过最左边和中间这幅图,我们可以看到,减小协方差矩阵斜对角线的值,这个密度分布图像再次变“扁”,不过是朝相反方向。最后,随着参数的改变,等高线普遍情况下会变成椭圆(最右边这幅图就是一个例子)。
最后一组例子,固定
Σ
=
I
\Sigma=I
Σ=I,通过改变
μ
\mu
μ,我们也可以移动密度分布附件的均值。
上面的图是用
Σ
=
I
\Sigma=I
Σ=I生成的,使用的
μ
\mu
μ如下:
μ
=
[
1
0
]
\mu=\begin{bmatrix} 1 \\ 0 \end{bmatrix}
μ=[10];
μ
=
[
−
0.5
0
]
\mu=\begin{bmatrix} -0.5 \\ 0 \end{bmatrix}
μ=[−0.50];
μ
=
[
−
1
−
1.5
]
\mu=\begin{bmatrix} -1 \\ -1.5 \end{bmatrix}
μ=[−1−1.5].
高斯判别分析模型(The Gaussian Discriminant Analysis model)
当我们有一个输入的特征值
x
x
x 是连续随机变量的分类问题时,我们可以使用高斯判别分析(GDA)模型,这个模型
p
(
x
∣
y
)
p(x|y)
p(x∣y)使用多元正态分布。模型如下:
y
∽
B
e
r
n
o
u
l
l
i
(
ϕ
)
x
∣
y
=
0
∽
N
(
μ
)
y\backsim Bernoulli(\phi) x|y=0\backsim N(\mu)
y∽Bernoulli(ϕ)x∣y=0∽N(μ)
x
∣
y
=
0
∽
N
(
μ
0
,
Σ
)
x|y=0\backsim N(\mu_0,\Sigma)
x∣y=0∽N(μ0,Σ)
x
∣
y
=
1
∽
N
(
μ
1
,
Σ
)
x|y=1\backsim N(\mu_1,\Sigma)
x∣y=1∽N(μ1,Σ)