监督学习
一个很典型的例子就是已知房子的面积估计房子的价格。当然前提是要统计大量的房价与房子面积的数据。
下面就是一个例子:
面积 (
feet2
) |
价格(1000$s) |
2014 |
400 |
1600 |
330 |
2400 |
369 |
1416 |
232 |
… |
… |
在坐标系中画出这些数据为:
那我们如何通过以上的数据,通过房子的面积来估计房子的价格呢?
建立符号系统
x(i)
:输入变量,也叫做输入特征。
y(i)
: 输出,也叫目标变量。
(x(i),y(i))
:训练样本
{(x(i),y(i));i=1,...,m}
:训练集
上标
(i)
是训练集中的index
χ
:表示输入样本空间
Y
:表示输出空间
在监督学习中,我们的目标是:对于给定的训练集,学习得到一个函数
h:χ→Y
这个函数我们叫做假设函数(hypothesis),这个过程用框图可以表示为:

回归与分类
当目标值为连续值时,这样的学习问题叫做回归问题。当目标值为离散的时,我们把这类学习问题叫做回归问题。
线性回归
为了让我们的房子价格预测更加有趣和贴近实际,我们在添加一个房子信息(房间数目)
这里
x
是一个二维向量
x(i)1
表示训练集中的第
i
个样本的房间的面积,
x(i)2
表示训练集中的第
i
个样本的房间的卧室的数目。
为了训练函数
h
我们首先得确定函数的形式,我们选择线性函数作为最初的选择。即:
hθ(x)=θ0+θ1x1+θ2x2
这里
θi
是参数(也叫做权重)
通常我们会将
hθ(x)
简写为
h(x)
,为了进一步简化我们的符号表达,按照一般的惯例,我们令
x0=1
所以有:
h(x)=Σni=0θixi=θTx
θ和x
是向量,
n
是训练样本特征的个数(不包括
x0
)
如何通过学习得到训练参数
一个合理的做法是让
h(x)
尽可能的接近
y
.至少对于训练样本来说要尽可能的接近。为了度量这个接近程度我们定义损失函数(cost function):
J(θ)=12∑i=1m(hθ(x(i))−y(i))2
这个函数实际上是最小二乘的损失函数
LMS(least squares regression model)算法
我们想选择合适的
θ
使得
J(θ)
最小,为了达到这个目标,我们假定从一个随机初始化的
θ
开始进行搜索。当然了,这里的搜索也不是瞎搜索,这里通过梯度下降法让
θ
不断逼近我们想要的值最终收敛到我们想要的那个值使得
J(θ)
最小。这里采用的策略是梯度下降法,为什么要选用梯度下降呢?因为函数值沿梯度方向变化最快,这样可以更快的收敛。这里用的是负梯度因为是下降嘛!梯度下降的更新公式为:
θj:=θj−α∂∂θjJ(θ)
这个更新是同时对所有的
θj;j=1,2,⋯,n
进行更新的。这里
α
是
学习率。.
为了实现这个算法,我们首先得计算出等式右边的偏微分。我们先考虑只有一个训练样本
(x,y)
的情形,这样我们就可以忽略原
J(θ)
定义中的求和公式了。因此有:
∂∂θjJ(θ)=∂∂θj12(hθ(x)−y)2=2⋅12(hθ(x)−y)…∂∂θj(hθ(x)−y)=(hθ(x)−y)⋅∂∂θj(Σni=0θixi−y)=(hθ(x)−y)xj
所以对于只有一个训练样本来说,更新公式为:
θj:=θj+α(y−hθ(x))xj
其中
j=0,⋯,n
为样本中特征的个数。我们称这个规则为
LMS(least mean squares)规则,也被称作
Widrow-Hoff学习规则。这个规则很符合我们的直观感受,因为对于一个预测值和真实值很相近的训练样本来说,我们只需要对参数做细微的更改而对于预测值和真实值相差很远的训练样本我们要对参数做较大的更改。
以上的更新公式只针对只有一个训练样本的情况,对于有很多训练样本的情况,这里有两种处理方式。
方式一:批梯度下降法(batch gradient descent)
在一次更新时将所有训练样本的误差都计算出来并累加起来。
批梯度下降更新公式:
重复以下公式直到收敛
{
θj:=θj+α∑i=1m(y(i)−hθ(x(i)))x(i)j(对于所有的j)
}
m
指的是样本的个数
注意:梯度下降法很可能得到一个局部最优的结果,但是我们这里的最优化线性回归问题只有一个全局最优结果(因为
J(θ)
是一个二次凸函数),没有其他的局部最优。下面是一个利用梯度下降法求解二次方程最下值的一个例子:
方式二:随机梯度下降法
( stochastic gradient descent (also incremental gradient descent). )
每次更新都是针对一个训练样本。
更新公式:
Loop
{
for
i=1 to m
{
θj:=θj+α(y(i)−hθ(x(i)))x(i)j (for every j)
}
}
批梯度下降法和随机梯度下降法的主要区别:
批梯度下降法要访问所有的训练样本,当训练样本数十分大时将十分耗时。通常,随机梯度下降法会更快的收敛到我们所要的最小值,但是随机梯度下降法可能永远不会收敛到最小值,而在最小值周围震荡。
标准方程
梯度下降法是最小化损失函数
J(θ)
的方法之一。接下来我们讨论另外一种方法,在这种方法中我们将不再求助于迭代算法,我们直接对
θj
进行处理。为了在接下来的内容中不是长篇的矩阵公式的推导,我们先介绍一些矩阵的基础知识。
矩阵求导
对于一个函数
f:Rm×n⟼R
将一个
m×n
的矩阵映射到实数域,我们定义
f
关于A的导数为:
∇Af(A)=⎡⎣⎢⎢⎢⎢⎢⎢⎢∂f∂A11⋮∂f∂Am1⋯⋱⋯∂f∂A1n⋮∂f∂Amn⎤⎦⎥⎥⎥⎥⎥⎥⎥
梯度
∇Af(A)
本身也是一个
m×n
的矩阵,它的第
(i,j)
个元素为
∂f/∂Aij
。举个例子:
假定一个矩阵
A=[A11A21A12A22]
以及
f(A)=32A11+5A212+A21A22
对矩阵A求梯度有:
∇Af(A)=⎡⎣32A2210A12A21⎤⎦
矩阵的迹(trace)
对于一个
n×n
的矩阵A,它的迹定义为其对角元素之和:
trA=∑i=1nAii
矩阵迹的性质:
对于方阵A,B,实数a 有
trAB=trBAtrABC=trCAB=trBCAtrABCD=trDABC=trCDAB=trBCDAtrA=trATtr(A+B)=trA+trBtraA=atrA
接下来是矩阵导数的一些等式:
∇AtrAB=BT∇ATf(A)=(∇Af(A))T∇AtrABATC=CAB+CTABT∇A|A|=|A|(A−1)T
最小二乘法回顾
有了矩阵求导的工具之后,我们将
J(θ)
重写为矩阵形式。给定一个决策矩阵
Xmn
(实际上应该为
m×(n+1)
因为要加上截距元素也就是
x0
)假定训练样本是按行放置,则:
X=⎡⎣⎢⎢⎢⎢⎢−(x(1)T)−−(x(2)T)−⋮−(x(m)T)−⎤⎦⎥⎥⎥⎥⎥
假定
y⃗
是一个包含所有训练样本目标值的
m
维的向量:
y⃗ =⎡⎣⎢⎢⎢⎢⎢y(1)y(1)⋮y(m)⎤⎦⎥⎥⎥⎥⎥
由于
hθ(x(i))=(x(i))Tθ
,所以我们可以得到:
Xθ−y⃗ =⎡⎣⎢⎢⎢⎢⎢(x(1)Tθ)(x(1)Tθ)⋮(x(m)Tθ)⎤⎦⎥⎥⎥⎥⎥−⎡⎣⎢⎢⎢⎢⎢y(1)y(2)⋮y(m)⎤⎦⎥⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢⎢hθ(x(1))−y(1)hθ(x(2))−y(1)⋮hθ(x(m))−y(1)⎤⎦⎥⎥⎥⎥⎥
对于一个向量
z
,我们有
zTz=Σiz2i
,所以:
12(Xθ−y⃗ )T(Xθ−y⃗ )=12∑i=1m(hθ(x(i))−y(i))2=J(θ)
为了最小化
J
,我们求其关于
θ
的导数:
由:
∇ATf(A)=(∇Af(A))T∇AtrABATC=CAB+CTABT
可以推导出:
∇ATtrABATC=BTATCT+BATC
因此:
∇θJ(θ)=∇θ12(Xθ−y⃗ )T(Xθ−y⃗ )=12∇θ(θTXTXθ−θTXTy⃗ −y⃗ TXθ+y⃗ Ty⃗ )=12∇θtr(θTXTXθ−θTXTy⃗ −y⃗ TXθ+y⃗ Ty⃗ )=12∇θ(trθTXTXθ−2try⃗ TXθ)=12(XTXθ+XTXθ−2XTy⃗ )=XTXθ−XTy⃗
第三步是基于这样一个事实:一个数实数的迹就是这个实数,第四步:
trA=trAT
,第五步:利用了式子
∇ATtrABATC=BTATCT+BATC
AT=θ,B=BT=XTX and C=I
所以我们得到:
XTXθ=XTy⃗
所以:
θ=(XTX)−1XTy⃗
概率解释
当我们面对一个回归问题时,为什么线性回归或者更精确一点说最小二乘得到的损失函数
J
是一个合理的选择。在本节中,我们将做一系列概率假设,这将使得我们很自然的推导出最小二乘回归得到的解。
我们假定目标值和输入之间的联系由以下方程决定:
y(i)=θTx(i)+ϵ(i)
其中:
ϵ(i)
是错误项用于表示我们建模时没有考虑的影响因素以及干扰因素。我们在做进一步的假设,假设
ϵ(i)
满足独立同分布(IID),且为均值为0方差为
σ2
的高斯分布(也叫做正态分布)记作:
ϵ(i)∼N(0,σ2)
。所以:
ϵ(i)
的概率密度函数为:
p(ϵ(i))=12π−−√σexp(−(ϵ(i))22σ2)
这意味着:
p(y(i)|x(i);θ)=12π−−√σexp(−(y(i)−θTx(i))22σ2)
p(y(i)|x(i);θ)
表示在给定
x(i)
和参数
θ
后
y(i)
的分布。由于
θ
不是一个随机变量,因此我们不能假定它的分布情况。我们可以将上面的分布函数简记为:
y(i)|x(i);θ∼N(θTx(i),σ2)
给定决策矩阵
X
(包含所有的
y(i)
)以及
θ
,
y(i)
的分布是怎样的呢?对于给定的数据,有
p(y⃗ |X;θ)
这个函数通常看作是
y⃗
或是
X
的函数,但是现在我们要把它看做是
θ
的函数,并把它叫做似然函数(likelihood function):
L(θ)=L(θ;X,y⃗ )=p(y⃗ |X;θ)
由于
ϵ(i)
的独立性假设,
L(θ)
可以写作:
L(θ)=∏i=1mp(y(i)|x(i);θ)=∏i=1m12π−−√σexp(−(y(i)−θTx(i))22σ2)
现在我们得到了与
y(i)
和
x(i)
相关的概率模型,那该如何去选择最佳的参数
θ
呢?
最大似然规则告诉我们,我们应该选择使似然函数
L(θ)
最大的参数
θ
。由于这里的
L(θ)
全是乘法操作,我们通过将其进行转换,这里采用的是
log
操作,由于
log
函数是严格单调递增的所以不会影响我们之后的分析。所以我们得到
log
似然函数( log likelihood )
ℓ(θ)
:
ℓ(θ)=logL(θ)=log∏i=1m12π−−√σexp(−(y(i)−θTx(i))22σ2)=∑i=1mlog12π−−√σexp(−(y(i)−θTx(i))22σ2)=mlog12π−−√σ−1σ2⋅12∑i=1m(y(i)−θTx(i))2
因此最大化
ℓ(θ)
等价于最小化:
12∑i=1m(y(i)−θTx(i))2
这就是最小二乘得到的损失函数
J(θ)
局部加权线性回归
假定我们通过
x
来预测
y
的值,下图中的左图使用函数
y=θ0+θ1x1
对数据集的拟合结果,我们可以看到数据集中的数实际上并不是在一条直线上,因此拟合效果并不是很好。
但是如果我们增加一个额外的特征
x2
,以及用函数
y=θ0+θ1x1+θ2x2
对数据进行拟合,我们可以得到更好的拟合效果(如中间那副图像所示)。简单的看,我们可能会觉得添加添加更多的特征会得到更好的拟合效果。但是最右边的图就要打脸了,右图是使用5阶多项式
y=∑5i=0θjxj
对数据进行拟合的结果,我们可以看到所有的数据点都完美的落到了拟合曲线上,但是这并不是一个好的预测器。我们把左图所示的情况叫做欠拟合把右图所示的情况叫做过拟合。
正如我们之前讨论的,特征的选择在很大程度上会影响学习算法的性能。(在讨论模型选择时,我们会看到自动选择好的特征的算法)。在这节,我们简要的介绍一下局部加权线性回归(LWR),假定我们有足够多的训练数据,这让特征选择不那么严格。接下来的处理很简单。
在原始的线性回归算法,为了预测一个未知点
x
的值,会有一下几步:
1.选择合适的
θ
使
∑i(y(i)−θTx(i))2
最小
2.输出预测值
θTx
相应的,LWR做了一下两步:
1.选择合适的
θ
使
∑iw(i)(y(i)−θTx(i))2
最小
2.输出预测值
θTx
这里
w(i)
是一个非负的权重值,直观开来,对于某个样本
i
如果
w(i)
很大的话,我们就会尽力选择一个合适的
θ
来使
(y(i)−θTx(i))2
尽量小,但是当
w(i)
很小时,误差项
(y(i)−θTx(i))2
就不用考虑太多了。通常我们使用下面的公式的值来选择权重值:
w(i)=exp(−(x(i)−x)22τ2)ifxisvectorthen:w(i)=exp(−(x(i)−x)TΣ−1(x(i)−x)2τ2)
从上式中我们可以看到,
w(i)
的值取决于我们要预测的
x
的值,更确切的来说:如果
|x(i)−x|
很小的话那么
w(i)
的值将趋近于1,但是当
|x(i)−x|
很大时
w(i)
的值将趋近于0.也就是说对于和
x
相近的训练样本我们在训练时会看的更重,对于远离
x
的训练样本我们就会尽可能的忽略。参数
τ
被称作
带宽,它决定了我们选择的训练样本到
x
的距离。
局部加权线性回归算法使我们接触的第一个非参数算法(每次预测都要使用训练样本),之前的线性回归算法是典型的参数算法(有限的参数,训练完后训练数据就可以不需要了)
分类和逻辑回归
接下来我们将讨论分类问题,分类问题和回归问题很像,除了
y
只取几个离散的值。在初期,我们只考虑二值分类问题,
y
只取0和1.比方说,我们想把邮件分为垃圾邮件和正常邮件,那么
x(i)
表示邮件的一些特征,
y
d的可能取值为1(垃圾邮件)和0(正常邮件)。对于给定的训练样本
x(i)
,
y(i)
称作其标签。
逻辑回归
我们可以忽略
y
的取值为离散值这个事实,而直接将之前的老的线性回归算法用于预测
y
值。但是显然
hθ(x)
的取值很可能大于1,小于0,但是
y∈{0,1}
。为了纠正这个问题,我们改变了假设函数
hθ(x)
的形式:
hθ(x)=g(θTx)=11+e−θTx
其中:
g(z)=11+e−z
这个函数被称为
逻辑函数(ogistic function)或者
sigmoid function下图是它的函数图像。
我们可以看到,当
z→∞时g(z)→1;当z→−∞时g(z)→0
;所以
g(z)
也就是
h(z)
都被限定在
0∼1
。
从现在起,函数
g
为我们选定的sigmoid函数(也可以选用其它在(0,1)之间连续递增的函数)。这里的g函数的导数有一个很好的特性:
g′(z)=ddz11+e−z=1(1+e−z)2(e−z)=g(z)(1−g(z))
那么对于给定的逻辑回归模型,我们如何确定
θ
呢?由之前的学习我们基于一系列的假设,通过最大似然估计推导出了最小二乘回归。接下来,我们也将通过一系列的概率假设,利用最大似然推导出拟合参数
θ
。
首先,假设:
p(y=1|x;θ)=hθ(x)p(y=0|x;θ)=1−hθ(x)
上式可以写成一个紧凑的式子:
p(y|x;θ)=(hθ(x))y(1−hθ(x))1−y
假定
m
个训练样本是独立的,所以,关于
θ
的似然函数为:
L(θ)=p(y⃗ |X;θ)=∏i=1mp(y(i)|x(i);θ)=∏i=1m(hθ(x(i)))y(i)(1−hθ(x(i)))1−y(i)
由此很容易得到log似然函数:
ℓ(θ)=logL(θ)=∑i=1my(i)logh(x(i))+(1−y(i))log(1−h(x(i)))
接下来要考虑的问题是如何最大化似然函数呢?与我们在线性回归中的做法相似,使用梯度下降法。写成矩阵形式的话,更新公式为:
θ:=θ+α∇θℓ(θ)
(注意,更新公式是加号而不是减号,因为我们求的是最大值)。同样我们先考虑只有一个训练样本的情况,然后再推导出随机梯度下降法:
∂∂θjℓ(θ)=(y1g(θTx)−(1−y)11−g(θTx))∂∂θjg(θTx)=(y1g(θTx)−(1−y)11−g(θTx))g(θTx)(1−g(θTx))∂∂θjθTx=(y(1−g(θTx))−(1−y)g(θTx))xj=(y−g(θTx))xj=(y−hθ(x))xj
因此得到随机梯度下降的规则为:
θj:=θj+α(y(i)−hθ(x(i)))x(i)j
对比最小二乘的更新规则,可以发现这两者是如此的一致。但是这两者并不是同一个算法,因为在这里
hθ(x(i))
是
θTx(i)
的非线性函数。
感知器学习算法
在逻辑回归方法中,我们强行输出0或1,我们可能会很自然的将函数
g(z)
换成阈值函数:
g(z)={01if z≥0if z<0
若我们令
hθ(x)=g(θx)
,我们将得到感知学习算法的更新规则:
θj:=θj+α(y(i)−hθ(x(i)))x(i)j
感知器算法很从概率学给出一个合理的解释。
另外一个最大化
ℓ(θ)
的算法(牛顿法)
重新回到
g(z)
为sigmoid函数的的逻辑回归,我们现在考虑另外一个最大化
ℓ(θ)
的算法。首先我们考虑牛顿法来寻找一个函数的零点,假定我们有一个函数
f:R⟼R
,我们希望找到一个
θ
值使得
f(θ)=0
这里
θ∈R
是一个实数。牛顿算法的更新规则为:
θ:=θ−f(θ)f′(θ)
牛顿法的思想就是不断的用直线来拟合原函数,用拟合直线函数方程算出其零点,然后不断更新知道拟合的直线方程与原函数有相同的零点。下图展示了这一过程:
牛顿法提供了一种计算函数零点的方法,那么我们应该如何使用它,来使函数
ℓ
的值最大呢?使
ℓ
最大的点对应着
ℓ′(θ)
的零点。所以我们可以让
f(θ)=ℓ′(θ)
所以得到如下的更新规则:
θ:=θ−ℓ′(θ)ℓ′′(θ)
在我们的逻辑回归算法中,
θ
是一个向量,将牛顿法扩展到向量的情形之下,有:
θ:=θ−H−1∇θℓ(θ)
这里
H
是海森(Hessian)矩阵,它的元素可以由下式得到:
Hij=∂2ℓ(θ)∂θi∂θj
当n(特征数目)不是很大时,牛顿法总体来说还是很快的。当牛顿法运用于最大化逻辑回归的log似然函数
ℓ(θ)
时,我们称这种方法为 Fisher scoring。
广义线性模型(Generalized Linear Models)
至此,我们已经看到了回归和分类的例子。在分类的例子中,我们有
y|x;θ∼N(μ,σ2)
,对于分类问题,
y|x;θ∼Bernoulli(ϕ)
,其中
μ
和
ϕ
是关于
x
和
θ
的函数。在本节中,我们将看到以上两个模型是一个模型家族中的两个特例,这个模型家族我们称为广义线性模型。我们也将看到广义线性模型家族的其他模型是如何推导出来的以及如何应用到其它的分类和回归问题当中。
指数家族(The exponential family)
为了进行我们的GLMs的研究,我们首先要定义指数族分布。当分布满足下式时我们把这类分布叫做指数族分布:
p(y;η)=b(y)exp(ηTT(y)−a(η))
其中,
η
叫做分布的自然参数(natural parameter)也叫做典范参数(canonical parameter);
T(y)
叫做分布的充分统计量(sufficient statistic ,对于我们考虑的类型,通常有
T(y)=y
);
a(η)
称作log配分函数(log partition function),式子
e−a(η)
通常用作为归一化常量,这让分布
p(y;η)
关于y的累加和或是积分的值为1.
固定的
T,a以及b
使得我们定义了一族以
η
为参数的分布族,对于不同的
η
,我们得到这个族中不同的一个分布。
现在我们来看一下这个族中的两个例子:伯努利分布(Bernoulli )和高斯分布(Gaussian )。对于均值为
ϕ
的伯努利分布记作Bernoulli(
ϕ
);特别的,对于一个
y∈{0,1}
的伯努利分布有:
p(y=1;ϕ)=ϕ;p(y=0;ϕ)=1−ϕ
,那么Bernoulli(
ϕ
)分布的指数族形式的
T,a.b
是多少呢?我们把伯努利分布重写为:
p(y;ϕ)=ϕy(1−ϕ)1−y=exp(ylogϕ+(1−y)log(1−ϕ))=exp((log(ϕ1−ϕ))y+log(1−ϕ))
p(y;η)=b(y)exp(ηTT(y)−a(η))
对比两者可得:自然参数
η=log(ϕ/(1−ϕ))
,如果我们将
ϕ
表示为
η
的函数有:
ϕ=1/(1+e−η)
,这就是我们熟悉的sigmoid函数(震惊),为了完整的将伯努利分布表示为指数族分布的公式有:
T(y)a(η)b(y)=y=−log(1−ϕ)=log(1+eη)=1
接下来我们在看一下高斯分布的情况,回想一下,我们在推导线性回归的时候,
σ2
的值对我们最终选择的
θ和hθ(x)
并没有影响。因此我们可以给
σ2
赋予一个任意值,这里我们令
σ2=1
。我们有:
p(y;μ)=12π−−√exp(−12(y−μ)2)=12π−−√exp(−12y2)exp(μy−12μ2)
因此,我们可以看到高斯分布是指数族中的一员,以及有:
ηT(y)a(η)b(y)=μ=y=η2/2=η/2=(1/2π−−√)exp(−y2/2)
常见的指数族分布:多项式分布(multinomial );泊松分布;伽马分布;贝塔分布;狄立克雷分布。
构建GLMs
假定你将要构建一个模型用于预测在任意给定时间访问你商店的顾客人数,对于给定的特征x(商店的促销情况,现在的广告情况,天气状况,礼拜几等等)。我们知道泊松分布可以很好的预测访问人数,知道这些后,我们该如何构建模型来解决我们的问题呢?幸运的是,泊松分布是指数分布族的一员,因此我们可以应用广义线性模型。在本节中我们将介绍对于此类问题构建广义线性模型的方法。
在考虑一个回归或者分类问题时,我们通常把要预测的随机变量看成是x的函数。为了推导GLM,我们将做一下三个假设:
1.
y|x;θ∼ ExponentialFamily(η)
.也就是说,给定
x和θ
,
y
将服从以
η
为参数的指数分布族总的某一个。
2.对于给定
x
我们希望预测T(y)的期望值。在大多数的例子中,通常有:
T(y)=y
,这意味着预测值
h(x)
满足
h(x)=E[y|x].
(在逻辑回归中:
hθ(x)=p(y=1|x;θ)=0⋅p(y=0|x;θ)+1⋅p(y=1|x;θ)=E[y|x;θ]
)
3.自然参数
η
是线性相关:
η=θTx
(如果
η
是向量那么
ηi=θTix
)
第三个假设可能是以上三个假设中最不可能成立的,我们最好将这想成使我们故意设计好的结果而不是作为一个假设。这三个假设/人为设计将使得我们推导出一些优雅的学习算法也就是GLMs,这些算法由有很多我们想要的特性:比方说易于学习。除此之外,由此产生出的模型可以很高效的对
y
的不同分布类型进行建模:我们之前已经简要的介绍了逻辑回归和传统的最小二乘都可以从GLMs推导得到。
传统的最小二乘
为了展示传统的最小二乘法是GLM家族中的一个特例,考虑在目标变量
y
(也叫做因变量)是连续值的情况,我们假定给定的
x
时,
y
的条件分布服从高斯分布
N(μ,σ2)
,这里的
μ
可能由x决定。因此,正如之前看到的,我们可以将高斯分布写成指数族的形式,且有
μ=η
hθ(x)=E[y|x;θ]=μ=η=θTx.
第一个等式满足假设2,第二个等式满足这样一个事实:
y|x;θ∼N(μ,σ2)
,因此期望值为
μ
第三个等式 满足假设1(我们之前的推导表明
μ=η
),最后一个等式由假设3推导得到。
逻辑回归
现在我们再来看看逻辑回归,这里我们只关注二分类问题,因此
y∈{0,1}
,这让我们很自然的想到用伯努利分布来作为给定
x
后
y
的条件分布。将伯努利分布写成指数形式有:
ϕ=1/(1+e−η)
,而且,当
y|x;θ∼Bernoulli(ϕ)
时有:
E[y|x;θ]=ϕ
.因此与传统的最小二乘的推导类似,有:
hθ(x)=E[y|x;θ]=ϕ=1/(1+e−η)=1/(1+e−θTx).
这告诉了我们假设函数的形式为:
hθ(x)=1/(1+eθTx)
,这给出了为什么sigmoid函数的形式是
1/(1+e−z)
.
一些术语的简单介绍:函数
g
满足
g(η)=E[T(y);η]
叫做规范响应函数,它的逆,
g−1
叫做规范链接函数。
Softmax 回归
我们在考虑这样一个分类问题,响应变量
y
有
k
个不同的取值情况
y∈{1,2,⋯,k}
.这里响应变量
y
仍然是一个离散值,但是有超过两个的可能取值,这让我们很容易想到多项式分布。
在对这类数据进行建模之前,我们先得将多项式分布表示成指数族的形式。为了将有
k
个输出的多项式进行参数表达。通常用
k
个参数
ϕ1,⋯,ϕk
表示每个输出可能的概率,但是其实这样表示是很冗余的(比如,我们只要知道任意的
k−1
个
ϕi
那么最后一个结果的可能性我们是知道的因为我们有
∑ki=1ϕi=1
),因此我们可以只用
k−1
个参数来表示多项式分布
ϕi,⋯,ϕk−i
另外也有
ϕk=1−∑k−1i=1ϕi
但是记住它不是参数。
首先我们定义:
T(y)∈Rk−1
:
T(1)=⎡⎣⎢⎢⎢⎢⎢⎢⎢100⋮0⎤⎦⎥⎥⎥⎥⎥⎥⎥,T(2)=⎡⎣⎢⎢⎢⎢⎢⎢⎢010⋮0⎤⎦⎥⎥⎥⎥⎥⎥⎥,⋯,T(k−1)=⎡⎣⎢⎢⎢⎢⎢⎢⎢000⋮1⎤⎦⎥⎥⎥⎥⎥⎥⎥,T(k)=⎡⎣⎢⎢⎢⎢⎢⎢⎢000⋮0⎤⎦⎥⎥⎥⎥⎥⎥⎥.
和我们之前看到的例子不一样,这里
T(y)≠y,以及T(y)
现在是一个
k−1
维的向量 。我们用
(T(y))i
表示向量
T(y)
中的第
i
个元素。我们再引入一个有用的记号,
指示函数
1{⋅}
,当大括号内给定的论据为真时输出为1,否则为零。即:
1{Ture}=1,1{False}
,比如:
1{2=3}=0
。因此
T(y)
和