监督学习之广义线性模型——Andrew Ng机器学习笔记(三)
2015-12-23 19:30
302 查看
内容提要
这篇博客的主要内容有- 牛顿法
- 指数分布族(Exponential Family)
- 广义线性模型(Generalized Linear Models)
- Softmax Regression
牛顿法
首先我们先看一个简单的例子。定义函数f:R→R,自变量为θ。我们现在找一个θ使得f(θ)=0。
牛顿法的思想就是利用一阶导数的定义,得到θ的迭代关系。如下图示意:
根据导数的定义,我们就可以得到:
f′(θ(1))=f(θ(1))/ΔΔ=f(θ(1))/f′(θ(1))θ(2)=θ(1)−Δ
从而我们就可以得到一般的迭代公式:
θ(k+1)=θ(k)−Δ其中Δ=f(θ(k))/f′(θ(k))
回顾前面的对数似然函数,我们都是要求它的最大值,即就是要寻找一个参数θ使得对数似然函数的导数为零,即l′(θ)=0
- 当θ为一维向量时,我们利用牛顿法的思想可以得到更新规则为:
θ:=θ−l′(θ)/l′′(θ)
因为我们举得例子是对函数零阶导时为0,求参数。这里我们是函数一阶导数的情况,用同样的思想将式子中对应的量替换掉就可以了。
- 当θ为一个大于一维的向量时,我们得到的迭代规则为:
其中H为Hessian矩阵:
你也可以参看最优化的教程,就会发现,牛顿法一般只需要一部迭代就可以得到最优解。但是牛顿法最大的问题就是Hessian矩阵的逆,并不是总可以得到,或者逆求逆的计算量非常大,最优化中有一章专门就是解决这个问题。解决的基本思路就是用一个矩阵B去近似Hessian矩阵。
指数分布族(Exponential Family)
族的概念在高等数学中就有。我们这里的指数分布族,和之前的所讲的族的概念是一样的。下来我们首先看看指数分布族的一般表达式:其中
- η为自然参数(natural parameter or canonical parameter)
- T(y)为充分统计量(sufficient statistic),一般情况下,T(y)=y
- 当给定a,b,T;η为参数时就可以得到一个确定的分布
事实上我们之前说过的逻辑回归就是指数分布族的特例。还有伯努利分布P(y=1;ϕ)=1,正态分布都是指数分布族的特例。除此之外还有很多。
下面我们来说明为什么伯努利分布,高斯分布是指数分布族的特例。其实就是给出这些特例分布对应的a,b,T
伯努利分布
当y∈0,1时,可以如下的方式表达:利用逻辑回归同样的思想,可以将表达式进行如下简写,同时向指数分布族的样子凑:
凑完之后,我们根据指数分布族的样子就可以在式子中找到a,b,T:
同时我们还可以得到η和ϕ之间的关系:
这样我们就可以利用参数η来表示指数分布族中的a,b,T了,这就是上面式子中a(η)=log(1+eη)的原因,同时这也说明了伯努利分布是指数分布族的一个特例。下面我们来看高斯分布。
高斯分布
我们之前推导最小二乘回归的时候发现σ2其实不重要,如下:我们最终利用求目标函数极值的方法去求解参数θ。这里可以看到与σ没有多大关系。所以我们可以令σ2=1
利用和伯努利分布同样的思想,可以得到下面的式子:
再和指数分布族的通式进行比对,就会得到相应a,b,T:
多元高斯分布也是指数分布族的特例。同样泊松分布也是,指数分布就更不用说。
广义线性模型(Generalized Linear Models(GLM))
在这一部分我想说明如何利用指数分布族。首先我们先做如下的假设:1. y|x;θ∼ExpFamily(η),这个式子的理解是:在确定x输入并有特征θ的情况下,y服从自然参数η的指数分布族。一般,η有x和θ确定。
2. 给定x,估计函数定义为:h(x)=E[T(y)|x;θ],一般T(y)=y
3. η=θTx,如果η是向量则:ηi=θTx
在假设一中(y|x;θ∼ExpFamily(η)),先取一个特例:伯努利分布,它的参数为ϕ,然后估计函数(响应函数)就可以写成:hθ(x)=E(y|x;θ)=P(y=1|x:θ)=ϕ,其中用到了伯努利分布的期望,它的期望就等于事件发生的概率,即参数ϕ。我们上面有伯努利分布的指数分布的表达形式,可以知道ϕ=(1+e−η)−1,最终就可以得到hθ(x)=(1+e−θTx)−1
术语介绍:
g(η)=E[y|η]=(1+e−η)−1,这称之为:正则响应函数
g(η)−1,称为:正则关联函数
另外一个特例:输入值x∼N(μ,σ2),我们让μ=η,可以得到响应函数如下关系:
多项式分布
前面我们说过逻辑回归,其中讲的例子是一个二元分类,但是实际当中往往是多元分类问题。那么y∈{0,1}就无法满足要求,下来我们就看一个y∈{1,2...k}的问题。
给定参数ϕ1,ϕ2...ϕk,即y取某一个值时的概率。利用概率的基本知识就可以得到:
在这里T(y)≠y而是T(y)∈Rk−1,一般做如下定义:
指示器函数 1{true}=1;1{false}=0,利用指示器函数我们可以对T(y)进行简写:(T(y)i)=1{y=i}
其实对于每一个y的取值,就可以看成是一个伯努利分布。所以可以得到下面的表达:
同样的我们将y的分布向指数分布族靠近:
其中:
和前面的一样,η和ϕ之间存在着函数关系:
就可以做如下推导:
就可以得到:
再根据(1)式就可以得到:
那么y的概率表达式就可以改写成:
Softmax Regression
根据上面的推导我们就可以介绍Softmax Regression了。对于一个分类问题,y∈{1,2...k},当η=θTx时,响应函数为:特别的E[y=k|x;θ]=P(y=k|x;θ)=1−∑k−1i=1ϕi
如果我们的训练集大小为m:{(x(i),y(i));i=1,2...m},我们写出对应的对数似然函数:
上面的式子是Andrew Ng老师给的,我自己进行了下面的推导:
有似然函数的梯度之后,我们就可以利用梯度上升的方式去迭代θ了。
可以看出Softmax Regression是对逻辑回归的推广,可以处理多元分类问题。Sortmax Regression就是一个广义线性模型的算法。我自己理解的,为什么这种算法会被列为广义线性模型的例子,原因是,对于每一个η=θTx这是线性的,但是整体而言又是伯努利分布。广义的原因就是在线性的外面套了一层,线性已经不是单纯的线性了。
end
相关文章推荐
- Mootools 1.2教程 函数
- autoit InputBox 函数
- 文件遍历排序函数
- Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
- ASP下经常用的字符串等函数参考资料
- PostgreSQL教程(五):函数和操作符详解(1)
- DOS批处理 函数定义与用法
- asp Chr 函数 数字转字母的方法
- Lua中的函数精讲笔记
- Lua中的闭合函数、非全局函数与函数的尾调用详解
- Lua中调用C++函数示例
- Lua实现split函数
- Lua常用时间函数使用实例
- Lua函数与字符串处理简明总结
- Lua学习笔记之表和函数
- Lua中实现sleep函数功能的4种方法
- Lua函数用法研究
- Lua基础教程之赋值语句、表达式、流程控制、函数学习笔记
- PowerShell函数简明教程
- SQL Server中的RAND函数的介绍和区间随机数值函数的实现