机器学习(二)——广义线性模型、生成学习算法
2016-09-19 09:26
387 查看
http://antkillerfarm.github.io/
虽然对于Fisher来说,数理统计只是他研究工作的一个副产品,但他在1925年所著《研究工作者的统计方法》(Statistical Methods for Research Workers),其影响力超过了半个世纪,几乎当代所有自然科学和社会科学领域都在应用他所创立的理论。F分布就是以他的名字命名的。
Karl Pearson,1857~1936,英国人,毕业于剑桥大学。英国皇家学会会员。发现了χ2分布。
William Sealy Gosset,1876~1937,英国人,毕业于牛津大学。笔名Student,发现了Student’s t-distribution。
这三人被后人合称现代统计学的三大创始人。他们都不是博士,毕业后从事的职业,也不是数学。Fisher和Pearson研究遗传学,Gosset研究化学。可见,统计学的诞生,有着很强的应用属性。
我们假设:
P(y=1|x;θ)=hθ(x),P(y=0|x;θ)=1−hθ(x)
则该伯努利分布(Bernoulli distribution)的概率密度函数为:
p(y|x;θ)=(hθ(x))y(1−hθ(x))1−y
其似然估计函数为:
L(θ)=p(y⃗ |X;θ)=∏i=1m(hθ(x(i)))y(i)(1−hθ(x(i)))1−y(i)
两边都取对数,得到对数化的似然估计函数:
ℓ(θ)=logL(θ)=∑i=1my(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))
∂ℓ(θ)∂θj=(y−hθ(x))xj
按照随机梯度下降法,计算迭代公式:
θj:=θj+α(y(i)−hθ(x(i)))x(i)j
可以看出,这和线性回归的迭代公式(公式4)完全相同。
g(z)还可以取以下函数:
g(z)={1,0,z≥0z<0
这时又被叫做感知器学习(perceptron learning)算法。
指数类分布(exponential family distributions)的标准形式如下:
p(y;η)=b(y)exp(ηTT(y)−a(η))
其中,η被称作自然参数(natural parameter)或正准参数(canonical parameter),T(y)被称作充分统计量(sufficient statistic)。
a(η)是对数配分函数(log partition function),它存在的目的是利用e−a(η)进行约束,以使:
∑Yp(y;η)=1或∫Yp(y;η)=1
伯努利分布到指数类分布的变换过程如下:
p(y:ϕ)=ϕy(1−ϕ)1−y=exp(log(ϕy(1−ϕ)1−y))=exp(ylog(ϕ)+(1−y)log(1−ϕ))=exp(ylog(ϕ1−ϕ)+log(1−ϕ))
可见:
b(y)=1η=log(ϕ1−ϕ)⇒ϕ=11+e−ηT(y)=ya(η)=−log(1−ϕ)
高斯分布到指数类分布的变换过程如下:
p(y;μ)=12π−−√exp(−12(y−μ)2)=12π−−√exp(−12y2)⋅exp(μy−12μ2) ˙
可见:
η=μT(y)=ya(η)=μ22b(y)=12π−−√exp(−12y2)
除此之外,Dirichlet分布、Poisson分布、多项分布、β分布、γ分布都是指数类分布。
y|x;θ∼ExponentialFamily(η)(1)
h(x)=E[T(y)|x](2)
η=θTx(3)
下面以多项分布为例展示一下GLM的处理方法。
y的取值为k个离散值的分布,被称为k项分布。显然k=2时,就是二项分布了。
这里将k个离散值出现的概率记作ϕ1,…,ϕk。由于∑ki=1=1,因此,k项分布的自由度为k−1。
定义k−1维空间上的向量T(y):
T(1)=⎡⎣⎢⎢⎢⎢⎢⎢⎢100⋮0⎤⎦⎥⎥⎥⎥⎥⎥⎥,T(2)=⎡⎣⎢⎢⎢⎢⎢⎢⎢010⋮0⎤⎦⎥⎥⎥⎥⎥⎥⎥,T(k−1)=⎡⎣⎢⎢⎢⎢⎢⎢⎢000⋮1⎤⎦⎥⎥⎥⎥⎥⎥⎥,T(k)=⎡⎣⎢⎢⎢⎢⎢⎢⎢000⋮0⎤⎦⎥⎥⎥⎥⎥⎥⎥
我们使用(T(y))i表示T(y)的第i个元素。
定义函数1{True}=1,1{False}=0,则(T(y))i=1{y=i},E[(T(y))i]=P(y=i)=ϕi。
p(y:ϕ)=ϕ1{y=1}1ϕ1{y=2}2⋯ϕ1{y=k}k=ϕ1{y=1}1ϕ1{y=2}2⋯ϕ1−∑k−1i=11{y=i}k=ϕ(T(y))11ϕ(T(y))22⋯ϕ1−∑k−1i=1(T(y))ik=exp((T(y))1log(ϕ1)+(T(y))2log(ϕ2)+⋯+(1−∑i=1k−1(T(y))i)log(ϕk))=exp((T(y))1log(ϕ1ϕk)+(T(y))2log(ϕ2ϕk)+⋯+(T(y))k−1log(ϕk−1ϕk)+log(ϕk))
可见,
η=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢log(ϕ1ϕk)log(ϕ2ϕk)⋮log(ϕk−1ϕk)⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥,a(η)=−log(ϕk),b(y)=1
ηi=log(ϕiϕk)(4)
⇒eηi=ϕiϕk⇒ϕkeηi=ϕi
⇒ϕk∑i=1keηi=∑i=1kϕi=1
⇒ϕk=1∑ki=1eηi(5)
由公式4、5可得:
ϕi=eηi∑kj=1eηj=eθTix∑kj=1eθTjx
这种从η映射到ϕ的函数,被称作softmax函数。
hθ(x)=E[T(y)|x;θ]=⎡⎣⎢⎢⎢⎢⎢ϕ1ϕ2⋮ϕk−1⎤⎦⎥⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢exp(θT1x)∑kj=1exp(θTjx)exp(θT2x)∑kj=1exp(θTjx)⋮exp(θTk−1x)∑kj=1exp(θTjx)⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥
最大似然估计对数函数:
ℓ(θ)=∑i=1mlogp(y(i)|x(i);θ)=∑i=1mlog∏l=1k⎛⎝exp(θTlx(i))∑kj=1exp(θTjx(i))⎞⎠1{y(i)=l}
例如,Interior Point Method的发明被认为是Optimization中的重要里程碑,这一类的方法能够保证在多项式次迭代内收敛。但是在机器学习中,特别是现在的所谓“大数据”的趋势下,这类算法却没法工作,一方面由于机器学习中所处理的数据通常维度非常高,从而相应的优化问题的变量个数变得很巨大,传统的方法虽然保证多项式迭代收敛,但是其中每一步迭代的计算代价却是随着变量个数的平方甚至三次方增长,结果是连算法的一次迭代都无法在可接受的时间内完成。于是(机器学习方面的)人们逐渐将注意力集中到主要基于first-order oracle的单次迭代计算量非常小的算法上。另一方面,数据点的个数的爆炸性增长也使得stochastic类的算法受到更多的关注——同样是降低单次迭代的计算复杂度。
换一种思路,我们可以根据山羊的特征首先学习出一个山羊模型,然后根据绵羊的特征学习出一个绵羊模型。然后从这只羊中提取特征,放到山羊模型中看概率是多少,再放到绵羊模型中看概率是多少,哪个大就是哪个。这种方法叫做生成学习算法(GLA,Generative Learning Algorithms)。其形式化的写法是:建立模型——p(x|y),应用模型——p(y)。
由贝叶斯(Bayes)公式可知:
p(y|x)=p(x|y)p(y)p(x|y=1)p(y=1)+p(x|y=0)p(y=0)=p(x|y)p(y)p(x)(6)
其中,p(x|y)称为后验概率,p(y)称为先验概率。
注:Thomas Bayes,1701~1761,英国统计学家。
由于我们关注的是y的离散值结果中哪个概率大(比如山羊概率和绵羊概率哪个大),而并不是关心具体的概率,因此公式6可改写为:
argmaxyp(y|x)=argmaxyp(x|y)p(y)p(x)=argmaxyp(x|y)p(y)(7)
p(x;μ,Σ)=1(2π)n/2∣Σ∣1/2exp(−12(x−μ)TΣ−1(x−μ))
其中,μ表示均值向量(Mean Vector),Σ表示协方差矩阵(Covariance Matrix),∣Σ∣表示协方差矩阵的行列式。
首先,定义排列A的反序向量V(Inversion Vector)。下面举一个包含6个元素的例子:
序列 | 4 1 5 2 6 3
反序向量 | 0 1 0 2 0 3
Vi=∑j=1i−1f(i,j),f(i,j)={1,0,Ai<AjAi>Aj
反序向量的模被称为总序数(Total Order),例如上面例子的总序数为1+2+3=6。
总序数为奇数的排列被称为奇排列(Odd Permutations),为偶数的排列被称为偶排列(Even Permutations)。
定义勒维奇维塔符号(Levi-Civita symbol)如下:
εa1a2a3…an=⎧⎩⎨+1−10if (a1,a2,a3,…,an) is an even permutation of (1,2,3,…,n)if (a1,a2,a3,…,an) is an odd permutation of (1,2,3,…,n)otherwise
注:Tullio Levi-Civita,1873~1941,意大利数学家。他在张量微积分领域的贡献,帮助了相对论的确立。
莱布尼茨公式:
det(A)=∑i1,i2,…,in=1nεi1⋯ina1,i1⋯an,in
y∼Bernoulli(ϕ)
x|y=0∼N(μ0,Σ)
x|y=1∼N(μ1,Σ)
注:这里只讨论y有两种分类的情况,且假设两种分类的Σ相同。
相应的概率密度函数为:
p(y)=ϕy(1−ϕ)1−y
p(x|y=0)=1(2π)n/2∣Σ∣1/2exp(−12(x−μ0)TΣ−1(x−μ0))=1Aexp(f(μ0,Σ,x))
p(x|y=1)=1(2π)n/2∣Σ∣1/2exp(−12(x−μ1)TΣ−1(x−μ1))=1Aexp(f(μ1,Σ,x))
逻辑回归(续)
注:Ronald Aylmer Fisher,1890~1962,英国人,毕业于剑桥大学。英国皇家学会会员。尽管他被称作“一位几乎独自建立现代统计科学的天才”,然而他的本职工作是遗传学。他最大的贡献是利用统计分析的方法,揭示了孟德尔的遗传定律在达尔文自然选择学说中的作用,为后来遗传物质DNA的发现奠定了理论基础。虽然对于Fisher来说,数理统计只是他研究工作的一个副产品,但他在1925年所著《研究工作者的统计方法》(Statistical Methods for Research Workers),其影响力超过了半个世纪,几乎当代所有自然科学和社会科学领域都在应用他所创立的理论。F分布就是以他的名字命名的。
Karl Pearson,1857~1936,英国人,毕业于剑桥大学。英国皇家学会会员。发现了χ2分布。
William Sealy Gosset,1876~1937,英国人,毕业于牛津大学。笔名Student,发现了Student’s t-distribution。
这三人被后人合称现代统计学的三大创始人。他们都不是博士,毕业后从事的职业,也不是数学。Fisher和Pearson研究遗传学,Gosset研究化学。可见,统计学的诞生,有着很强的应用属性。
我们假设:
P(y=1|x;θ)=hθ(x),P(y=0|x;θ)=1−hθ(x)
则该伯努利分布(Bernoulli distribution)的概率密度函数为:
p(y|x;θ)=(hθ(x))y(1−hθ(x))1−y
其似然估计函数为:
L(θ)=p(y⃗ |X;θ)=∏i=1m(hθ(x(i)))y(i)(1−hθ(x(i)))1−y(i)
两边都取对数,得到对数化的似然估计函数:
ℓ(θ)=logL(θ)=∑i=1my(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))
∂ℓ(θ)∂θj=(y−hθ(x))xj
按照随机梯度下降法,计算迭代公式:
θj:=θj+α(y(i)−hθ(x(i)))x(i)j
可以看出,这和线性回归的迭代公式(公式4)完全相同。
g(z)还可以取以下函数:
g(z)={1,0,z≥0z<0
这时又被叫做感知器学习(perceptron learning)算法。
指数类分布
线性回归和对数回归的迭代公式相同不是偶然的,它们都是指数类分布的特例。指数类分布(exponential family distributions)的标准形式如下:
p(y;η)=b(y)exp(ηTT(y)−a(η))
其中,η被称作自然参数(natural parameter)或正准参数(canonical parameter),T(y)被称作充分统计量(sufficient statistic)。
a(η)是对数配分函数(log partition function),它存在的目的是利用e−a(η)进行约束,以使:
∑Yp(y;η)=1或∫Yp(y;η)=1
伯努利分布到指数类分布的变换过程如下:
p(y:ϕ)=ϕy(1−ϕ)1−y=exp(log(ϕy(1−ϕ)1−y))=exp(ylog(ϕ)+(1−y)log(1−ϕ))=exp(ylog(ϕ1−ϕ)+log(1−ϕ))
可见:
b(y)=1η=log(ϕ1−ϕ)⇒ϕ=11+e−ηT(y)=ya(η)=−log(1−ϕ)
高斯分布到指数类分布的变换过程如下:
p(y;μ)=12π−−√exp(−12(y−μ)2)=12π−−√exp(−12y2)⋅exp(μy−12μ2) ˙
可见:
η=μT(y)=ya(η)=μ22b(y)=12π−−√exp(−12y2)
除此之外,Dirichlet分布、Poisson分布、多项分布、β分布、γ分布都是指数类分布。
广义线性模型
广义线性模型(Generalized Linear Model,GLM)是解决指数类分布的回归问题的通用模型。它基于以下三个假设:y|x;θ∼ExponentialFamily(η)(1)
h(x)=E[T(y)|x](2)
η=θTx(3)
下面以多项分布为例展示一下GLM的处理方法。
y的取值为k个离散值的分布,被称为k项分布。显然k=2时,就是二项分布了。
这里将k个离散值出现的概率记作ϕ1,…,ϕk。由于∑ki=1=1,因此,k项分布的自由度为k−1。
定义k−1维空间上的向量T(y):
T(1)=⎡⎣⎢⎢⎢⎢⎢⎢⎢100⋮0⎤⎦⎥⎥⎥⎥⎥⎥⎥,T(2)=⎡⎣⎢⎢⎢⎢⎢⎢⎢010⋮0⎤⎦⎥⎥⎥⎥⎥⎥⎥,T(k−1)=⎡⎣⎢⎢⎢⎢⎢⎢⎢000⋮1⎤⎦⎥⎥⎥⎥⎥⎥⎥,T(k)=⎡⎣⎢⎢⎢⎢⎢⎢⎢000⋮0⎤⎦⎥⎥⎥⎥⎥⎥⎥
我们使用(T(y))i表示T(y)的第i个元素。
定义函数1{True}=1,1{False}=0,则(T(y))i=1{y=i},E[(T(y))i]=P(y=i)=ϕi。
p(y:ϕ)=ϕ1{y=1}1ϕ1{y=2}2⋯ϕ1{y=k}k=ϕ1{y=1}1ϕ1{y=2}2⋯ϕ1−∑k−1i=11{y=i}k=ϕ(T(y))11ϕ(T(y))22⋯ϕ1−∑k−1i=1(T(y))ik=exp((T(y))1log(ϕ1)+(T(y))2log(ϕ2)+⋯+(1−∑i=1k−1(T(y))i)log(ϕk))=exp((T(y))1log(ϕ1ϕk)+(T(y))2log(ϕ2ϕk)+⋯+(T(y))k−1log(ϕk−1ϕk)+log(ϕk))
可见,
η=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢log(ϕ1ϕk)log(ϕ2ϕk)⋮log(ϕk−1ϕk)⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥,a(η)=−log(ϕk),b(y)=1
ηi=log(ϕiϕk)(4)
⇒eηi=ϕiϕk⇒ϕkeηi=ϕi
⇒ϕk∑i=1keηi=∑i=1kϕi=1
⇒ϕk=1∑ki=1eηi(5)
由公式4、5可得:
ϕi=eηi∑kj=1eηj=eθTix∑kj=1eθTjx
这种从η映射到ϕ的函数,被称作softmax函数。
hθ(x)=E[T(y)|x;θ]=⎡⎣⎢⎢⎢⎢⎢ϕ1ϕ2⋮ϕk−1⎤⎦⎥⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢exp(θT1x)∑kj=1exp(θTjx)exp(θT2x)∑kj=1exp(θTjx)⋮exp(θTk−1x)∑kj=1exp(θTjx)⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥
最大似然估计对数函数:
ℓ(θ)=∑i=1mlogp(y(i)|x(i);θ)=∑i=1mlog∏l=1k⎛⎝exp(θTlx(i))∑kj=1exp(θTjx(i))⎞⎠1{y(i)=l}
机器学习的优化问题
优化理论和算法是机器学习用于处理问题的重要工具,但是机器学习有自己独特的看待问题的视角,并且其中也有很多和 Optimization 并不直接相关的部分,反过来Machine Learning也对Optimization产生影响。例如,Interior Point Method的发明被认为是Optimization中的重要里程碑,这一类的方法能够保证在多项式次迭代内收敛。但是在机器学习中,特别是现在的所谓“大数据”的趋势下,这类算法却没法工作,一方面由于机器学习中所处理的数据通常维度非常高,从而相应的优化问题的变量个数变得很巨大,传统的方法虽然保证多项式迭代收敛,但是其中每一步迭代的计算代价却是随着变量个数的平方甚至三次方增长,结果是连算法的一次迭代都无法在可接受的时间内完成。于是(机器学习方面的)人们逐渐将注意力集中到主要基于first-order oracle的单次迭代计算量非常小的算法上。另一方面,数据点的个数的爆炸性增长也使得stochastic类的算法受到更多的关注——同样是降低单次迭代的计算复杂度。
生成学习算法
比如说,要确定一只羊是山羊还是绵羊。从历史数据中学习到模型,然后通过提取这只羊的特征,来预测出这只羊是山羊还是绵羊。这种方法叫做判别学习算法(DLA,Discriminative Learning Algorithm)。其形式化的写法是:p(y|x)。换一种思路,我们可以根据山羊的特征首先学习出一个山羊模型,然后根据绵羊的特征学习出一个绵羊模型。然后从这只羊中提取特征,放到山羊模型中看概率是多少,再放到绵羊模型中看概率是多少,哪个大就是哪个。这种方法叫做生成学习算法(GLA,Generative Learning Algorithms)。其形式化的写法是:建立模型——p(x|y),应用模型——p(y)。
由贝叶斯(Bayes)公式可知:
p(y|x)=p(x|y)p(y)p(x|y=1)p(y=1)+p(x|y=0)p(y=0)=p(x|y)p(y)p(x)(6)
其中,p(x|y)称为后验概率,p(y)称为先验概率。
注:Thomas Bayes,1701~1761,英国统计学家。
由于我们关注的是y的离散值结果中哪个概率大(比如山羊概率和绵羊概率哪个大),而并不是关心具体的概率,因此公式6可改写为:
argmaxyp(y|x)=argmaxyp(x|y)p(y)p(x)=argmaxyp(x|y)p(y)(7)
高斯分布的向量形式
高斯分布的向量形式N(μ,Σ)的概率密度函数为:p(x;μ,Σ)=1(2π)n/2∣Σ∣1/2exp(−12(x−μ)TΣ−1(x−μ))
其中,μ表示均值向量(Mean Vector),Σ表示协方差矩阵(Covariance Matrix),∣Σ∣表示协方差矩阵的行列式。
矩阵行列式计算
对于高阶矩阵行列式,一般采用莱布尼茨公式(Leibniz Formula)或拉普拉斯公式(Laplace Formula)计算。首先,定义排列A的反序向量V(Inversion Vector)。下面举一个包含6个元素的例子:
序列 | 4 1 5 2 6 3
反序向量 | 0 1 0 2 0 3
Vi=∑j=1i−1f(i,j),f(i,j)={1,0,Ai<AjAi>Aj
反序向量的模被称为总序数(Total Order),例如上面例子的总序数为1+2+3=6。
总序数为奇数的排列被称为奇排列(Odd Permutations),为偶数的排列被称为偶排列(Even Permutations)。
定义勒维奇维塔符号(Levi-Civita symbol)如下:
εa1a2a3…an=⎧⎩⎨+1−10if (a1,a2,a3,…,an) is an even permutation of (1,2,3,…,n)if (a1,a2,a3,…,an) is an odd permutation of (1,2,3,…,n)otherwise
注:Tullio Levi-Civita,1873~1941,意大利数学家。他在张量微积分领域的贡献,帮助了相对论的确立。
莱布尼茨公式:
det(A)=∑i1,i2,…,in=1nεi1⋯ina1,i1⋯an,in
高斯判别分析
高斯判别分析(GDA,Gaussian Discriminant Analysis)模型需要满足以下条件:y∼Bernoulli(ϕ)
x|y=0∼N(μ0,Σ)
x|y=1∼N(μ1,Σ)
注:这里只讨论y有两种分类的情况,且假设两种分类的Σ相同。
相应的概率密度函数为:
p(y)=ϕy(1−ϕ)1−y
p(x|y=0)=1(2π)n/2∣Σ∣1/2exp(−12(x−μ0)TΣ−1(x−μ0))=1Aexp(f(μ0,Σ,x))
p(x|y=1)=1(2π)n/2∣Σ∣1/2exp(−12(x−μ1)TΣ−1(x−μ1))=1Aexp(f(μ1,Σ,x))
相关文章推荐
- setInterval和setTimeout的使用区别
- CTF-PWN练习之执行Shellcode
- Ajax向Servlet传值小实例
- JavaScript 中函数自运行
- HDU 5873 Football Games(Landau定理)
- Tomcat setup in windows(simple version)
- Too many texture interpolators would be used for ForwardBase pass
- Android状态栏与标题栏风格一致
- jQuery 事件方法
- 常用js 扩展
- Open Live Writer增加代码插件
- 求电子在线商城后台管理系统
- java事件机制
- tomcat配置访问项目时不需要加项目名称
- IOS 程序启动原理详解
- 使用代码为Button设置drawableTop和修改文字颜色
- jQuery 选择器
- 蓝鸥原生JS:js中的程序控制语句
- Xcode8 适配 Swift3/Swift2.3 关于Alamofire
- java字符流printwrite pw= new printwrite(文件路径/outputStream); pw.print(line);