zoukankan      html  css  js  c++  java
  • Machine Learning 学习笔记 (4) —— 广义线性模型

    本系列文章允许转载,转载请保留全文!

    【请先阅读】【说明&总目录】http://www.cnblogs.com/tbcaaa8/p/4415055.html

    1. 指数分布族简介

    之前的文章分别介绍了因变量服从高斯分布、伯努利分布、泊松分布、多项分布时,与之对应的回归模型,本文章将阐释这些模型的共同点,并加以推广。

    首先非正式地给出指数分布族的定义:

    定义 如果变量y的分布可以被表示为p(y;η)=b(y)exp(ηTT(y)-a(η))的形式(η为分布的参数),则称y服从指数分布族

    萌萌哒博主能力有限,关于指数分布族无法给出过多解释。如果对指数分布族的性质及a(η),b(y),T(y)的含义等内容有兴趣,请参考维基百科。

    维基百科指数分布族参考链接:http://en.wikipedia.org/wiki/Exponential_family 

     

    2. 从特殊到一般:验证上述四分布属于指数分布族

    2.1 高斯分布

    以单变量高斯分布为例进行推导。高斯分布的概率密度函数如下:

    对比指数分布族定义,可以发现:

    从而验证了高斯分布属于指数分布族。

    2.2 伯努利分布

    伯努利分布的概率密度函数如下:

    对比指数分布族定义,可以发现: 

    从而验证了伯努利分布属于指数分布族。

    2.3 泊松分布

    泊松分布的概率密度函数如下:

    对比指数分布族定义,可以发现:

    从而验证了泊松分布属于指数分布族。 

    2.4 多项分布

    注意:在Softmax回归的背景下,对多项分布的自变量n1...nk进行了限制,即假设n1...nk恰有一个取值为1,其余为0。只有这样才能满足k分类的要求。在这种限制下,多项分布的自变量可以由k维向量转换为取值范围在{1...k}的标量,从而简化运算。在这种情况下,多项分布的概率密度如下:

    化简至此,可以发现仍然与指数分布族有些许差距。继续将概率密度化为向量形式:

    有没有似曾相识的感觉呢?如果取k=2,多项分布将退化为伯努利分布:伯努利分布是多项分布的特例,而多项分布是伯努利分布的推广。对比指数分布族定义,可以发现:

    从而验证了多项分布属于指数分布族。

    函数1{·}的含义参看本系列上一篇文章,此处不再赘述。参见:http://www.cnblogs.com/tbcaaa8/p/4486297.html 

     

    3. 广义线性模型

    广义线性模型基于如下三点假设:

    假设一 y(i)|x(i)相互独立且满足同一属于指数分布族的分布

    假设二 E(T(y(i))|x(i))是y(i)|x(i)所满足的分布的参数

    假设三 模型具有线性性,即η=θTx

    基于以上假设,广义线性模型中的对数似然函数可以表示为如下形式:

    下面求似然函数的极大值:

    在线性回归、逻辑回归、泊松回归和Softmax回归中,将相关参数带入上式,即可得到对其损失函数求导后的结果(损失函数自身的意义小于其导函数的意义)。随后可以使用梯度下降(上升)法求解,也可以直接利用牛顿法求解。

    注:线性回归由于参数σ2的存在,处理过程稍有不同,但结果是一致的;上式与损失函数求导后的结果相比,可能有符号的差别,这与损失函数的定义有关。

    至此,广义线性模型问题基本解决,但仍遗留有一些细节问题。例如,在线性回归、逻辑回归、泊松回归和Softmax回归中提到的假设函数hθ(x)是怎么得出的?

    在指数分布族中,未知参数为η,而我们想要求得的参数是一个权重向量θ。hθ(x)的作用,正是将二者关联起来,因此也称之为连接函数。在广义线性模型中,参数η其实是概率分布的某个参数(如高斯分布的参数μ,伯努利分布的参数Φ等)的函数,例如η=η(μ)等等,而连接函数则是其反函数,即μ=η-1(η)。解出反函数后,将η=θTx带入其中,即可得到hθ(x)。

    那么,对于一个给定的回归模型,连接函数的选取是否是唯一的呢?

    在一般情况下,应选择η-1作为连接函数。但选择形态上与其类似的函数作为连接函数也是可以的,例如在逻辑回归中,可以选择双曲正切函数代替sigmoid函数,只不过此时的回归模型不再是标准的回归模型了。

  • 相关阅读:
    Python网络爬虫第三弹《爬取get请求的页面数据》
    18.增量式爬虫
    17.基于scrapy-redis两种形式的分布式爬虫
    关于进程内存磁盘的一些命令
    linux其他命令
    ls -用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)
    mkdir和touch
    ls -列出当前目录下所有的文件或者目录
    cat -用于连接文件并打印到标准输出设备上
    rm -移动文件
  • 原文地址:https://www.cnblogs.com/tbcaaa8/p/4507192.html
Copyright © 2011-2022 走看看