机器学习——牛顿法,指数分布簇,广义的线性模型
Posted daizigege
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习——牛顿法,指数分布簇,广义的线性模型相关的知识,希望对你有一定的参考价值。
一、牛顿方法:
基本思想是利用迭代点(x_k)处的一阶导数(梯度)和二阶导数(Hessen矩阵)对目标函数进行二次函数近似,然后把二次模型的极小点作为新的迭代点,并不断重复这一过程,直至求得满足精度的近似极小值。
对于f(x)=0,求解x;
初始化( heta) ,然后一直迭代:( heta^{(t+1)}= heta^{(t)}-frac{f( heta^{(t)})}{f^`( heta^{(t)})})
收敛的很快;二次收敛;
牛顿法也被用于求函数的极值。由于函数取极值的点处的导数值为零,故可用牛顿法求导函数的零点,其叠代式为 ;( heta^{(t+1)}= heta^{(t)}-frac{f^`( heta^{(t)})}{f^{``}( heta^{(t)})})
如果变量是一个向量则:( heta^{(t+1)}= heta^{(t)}-H^{-1}igtriangledown_ heta L) 其中H是Hessian矩阵,(H_{ij}=frac{partial^2L}{partial heta_ipartial heta_j})
缺点:每次迭代都得重新计算一次H;
二、指数分布簇(Exponential Family):
(p(y;eta)=b(y)exp(eta^TT(y)-a(eta))) 其中(eta:分布的自然参数(规范参数)) ,T(y):充分统计量(一般都等于y),(a(eta)) :是对数划分函数,(e^{-a(eta)}充当正规化常量的作用,保证sum p(y;eta)=1)。
固定T,a,b;定义一簇以(eta) 为参数的分布,随着它的改变,可以得到不同的分布。
分别以伯努利(Bernoulli)分布和高斯(Gauss)分布为例子;
$ 2.1Ber( heta)$ :
已知:p(y=1;(phi))=(phi) ;p(y;(phi))=(phi^y(1-phi)^{1-y}=exp(ylogphi+(1-y)log(1-phi))=exp((log(frac{phi}{1-phi}))y+log(1-phi)))
对应可得:(eta=log(frac{phi}{1-phi}),反向求phi=frac{1}{1+e^{-eta}},带入其中,得a(eta)=-log(1-phi)=log(1+e^eta))
b(y)=1;
2.2Gauss,(N~(mu,sigma^2)):
一般都令(sigma=0),因为它无用
(p(y;u)=frac{1}{sqrt{2pi}}exp(-frac{1}{2}(y-mu)^2)=frac{1}{sqrt{2pi}}exp(-frac{1}{2}y^2)exp(-frac{1}{2}mu^2))
对应得:
(eta=mu;a(eta)=mu^2/2=eta^2/2;b(y)=(frac{1}{sqrt{2pi}})exp(-y^2/2))
三、广义的线性模型(Generalized Linear Model ):
线性回归中我们假设:y|x;( heta) ~ (N(mu,sigma^2))
逻辑回归中我们假设:y|x;( heta) ~ (Bernoulli(phi))
它们都是广义线性模型的特例。
Assume:
(1)y|x;( heta) ExponentiaFamily(( heta)) 给定样本xx与参数θθ,样本分类yy?服从指数分布族中的某个分布;
(2)given x, goal is to output E[T(y)|x], want h(( heta)(x))=E[T(y)|x];
(3)(eta= heta^Tx) 。
3.1Gauss((mu, heta)):(h_ heta(x)=E[y|x; heta]=mu=eta= heta^Tx)
(3.2Ber(phi)) :(h_ heta(x)=E[y|x]=p(y=1|x; heta)=phi=frac{1}{1+e^{-eta}}=frac{1}{1+e^{- heta^Tx}})
总之,广义线性模型通过拟合响应变量的条件均值的一个函数(不是响应变量的条件均值),并假设响应变量服从指数分布族中的某个分布(不限于正态分布),从而极大地扩展了标准线性模型。模型参数估计的推导依据是极大似然估计,而非最小二乘法。
3.3Softmax Regression(多分类算法):
(yin{1,..,k}) ,每种分类的概率:(phi_1,...,phi_k) ,他们的和为1,所以一般用k-1个参数
(p(y=i)=phi_i) ;
这里T(y)(in R^{k-1}) ,它是一个k-1维的向量,依次从只有第1个为0,...,只有第k-1给为0,全为0。一共k种取值。
指示函数:1{True}=1,1{False}=0; 所以(T(y)_i=1{y=i})
得到
[ egin{align}p(y;phi)=&phi_1^{1{y=1}}phi_1^{1{y=1}}...phi_k^{1{y=k}} \\=&phi_1^{T(y)_1}phi_2^{T(y)_2}...phi_k^{1-sum_{i=1}^{k-1}(T(y))_i}\\=&exp((T(y))_1log(phi_1)+(T(y))_2log(phi_2)...+(1-sum_{i=1}^{k-1}(T(y))_i)log(phi_k))\\=&b(y)exp(eta^TT(y)-a(eta))end{align} ]
其中(eta=left[egin{matrix} log(frac{phi_1}{phi_k}) \\ log(frac{phi_1}{phi_k}) \\...\\log(frac{phi_{k-1}}{phi_k}) \\end{matrix} ight] , a(eta)=-log(phi_k) ,b(y)=1)
所以(p(y=i|x; heta)=phi_i=frac{e^{eta_i}}{sum_{j=1}{k}}=frac{e^{ heta_i^Tx}}{sum_{j=1^k}e^{ heta_j^Tx}})
然后通过广义模型求解:
(h_ heta(x)=E[T(y)|x; heta]=Eleft[ egin{matrix} 1{ y=1} \\1{ y=2} \\...\\1{ y=k-1} \\ end{matrix} |x; heta ight]=phi_{k-1}=frac{exp( heta_{k-1}^Tx)}{sum_{j=1}^kexp( heta_j^Tx)})
此后再用之前的最大似然法拟合参数即可
以上是关于机器学习——牛顿法,指数分布簇,广义的线性模型的主要内容,如果未能解决你的问题,请参考以下文章