zoukankan      html  css  js  c++  java
  • 机器学习——牛顿法,指数分布簇,广义的线性模型

    一、牛顿方法:

    基本思想是利用迭代点(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)})

    此后再用之前的最大似然法拟合参数即可

  • 相关阅读:
    PeaZip 4.7.3 发布,跨平台压缩工具
    Liferea 1.8.10 发布,Linux的RSS阅读
    PyParticles 0.2.1 发布,粒子模拟工具箱
    微软公布 Windows Phone 8 多项新特性
    SecureCRT 7.0.2 发布,支持 Windows 8 系统
    Qore PostgreSQL Module 2.0 发布
    libquickmail 0.1.6 发布,邮件发送包
    Mobile Lua 6.5 发布,MoSync 的 Lua 移植版本
    企业用户缘何抓住 Windows XP 不放
    Knockout.js 2.2 发布,JavaScript UI 库
  • 原文地址:https://www.cnblogs.com/daizigege/p/12243987.html
Copyright © 2011-2022 走看看