您的位置:首页 > 其它

【四】牛顿方法

2016-10-22 14:53 211 查看

牛顿法

牛顿法常用来逼近函数的零点。在回归和分类问题中,经常需要计算损失函数的最小值或似然函数的最大值,众所周知,在极值点处导数为零,因此我们可以将求极值的问题转化为求导数零点的问题,然后用牛顿法求解。相比之前我们介绍过的梯度下降法,牛顿法具有较快的收敛速度,在作业中我们将会证明在满足一定条件下,牛顿法可仅计算一步即可得到极值,但牛顿法也有自己的缺点,即较大的计算量(需要计算二次导数),具体的算法我们将在下面的介绍中逐渐给出。

牛顿法的逼近过程如下



图中的曲线表示我们要求其零点的函数,由于计算上的限制我们可能无法直接用代数的方法求出其零点,但我们可以从几何上进行逼近,只要达到我们预先设定的精确度即可认为找到了零点。其做法为:

1.选择一个初始状态

2.在该点处画出函数的切线,并与x轴交于一点,由于切线是一个线性的函数,我们可以很容易算出其与x轴交点的横坐标,如中间的图所示

3.过第二步产生的交点做x轴的垂线,与函数交于一点

4.过第三步的交点做切线,重复2、3步,如右图所示

可以看出,经过上述过程,切线与x轴的交点将不断逼近零点,但永远不会超过零点,只要我们迭代次数过多,便可达到我们需要的精确度。并且可以看出,牛顿法是以指数速度进行逼近的,远远快于之前介绍的梯度下降法。

假设我们求函数f(θ)的零点,则牛顿法可以表示为


由于我们希望得到似然函数的极点,因此可将其导数作为我们求零点的函数f(θ),转换后公式如下


可以看出,牛顿法不仅需要计算似然函数的一阶导数,还要计算其二阶导数,二阶导数可用Hessian矩阵(H)来代表,此时公式变为

,其中


当牛顿法用于最大化逻辑回归的对数似然函数时,得到结果的方法也称为费舍尔计数法Fisher Scoring。

指数分布族 Exponential Family Distributions

定义以下形式称为指数分布族



上式中,η称为分布的自然参数natural parameter,也称为分布的正则参数canonical parameter

T(y)称为充分统计量Sufficient Statistic,在大多数情况下T(y)=y

a(η)称为对数分离方程Log Partition Function,exp(-a(η))隐含了归一化的思路,使得分布的求和或者积分为1

当上述三个参数确定时,一个指数分布族的实例便也确定了,我们将推导两个典型的概率分布属于指数分布族的例子。第一个是伯努利分布Bernoulli Distribution,因为我们之前介绍的分类问题可以以伯努利分布来建模,并得出逻辑函数;另一个是高斯分布Gaussian Distribution,因为回归问题可通过高斯函数进行建模。

伯努利分布

伯努利分布可写为如下形式,并通过代数变换转化为指数分布族给出的形式



其中各参数表达式为



高斯分布

为了简化计算,我们将高斯分布的方差σ设为1,这对我们的结果影响大大。此时,高斯分布可写为如下形式,并转化为指数分布族的形式为



其中各参数表达式为



除上述介绍过的高斯分布和伯努利分布,很多常见的分布都属于指数分布族,如多项式分布、泊松分布、伽马分布等

一般线性模型 Generalized Linear Models

在指数分布族的基础上,我们给出一般线性模型的定义。当一个问题满足以下三个条件(假设,assumptions)时,我们可使用一般线性模型来求解:

1. 在给定参数θ、给定x时,y的条件概率服从指数分布族,即 y|x;θ~ExponentialFamily(η);

2. 在已知输入的条件下,我们希望求的T(y)的期望,即h(x;θ)=E[T(y)|x],T(y)即指数分布族中的充分统计量,一般情况下T(y)=y,则h(x;θ)=E[y|x];

3. η=θ^T*x(ηi=θi^T*X)

在上面的介绍中,g(η)=E[T(y); η]称为正则响应函数Canonical Response Function,其逆函数称为正则连接函数Canonical Link Function,但在实际使用中称呼可能会互换,不再在意名字,记得是什么函数就好了。

多项式分布 Multinomial Distribution

在前面我们讨论了逻辑方程、伯努利分布等工具,他们适合进行二分类。当我们需要对多个类进行区分时,自然我们可以使用多个二分类器构成一个分类树,但这成本太高了,我们可以使用一个多项式分布的分类器进行分类,这也称为Softmax Regression。假设我们需要对k个类进行分类,第i个类出现的概率为φi,显然我们有Σφi=1,因此我们可以用k-1个参数表示这类分布,分别为φ1~φk-1,而φk=1-(φ1+φ2+···+φk-1)。

我们可以用一个长度为k-1的向量表示这k个概率,并用(T(y))i表示这个向量的第i个元素。



1{}函数

下面我们简要介绍一下1{}函数,这个函数可用于判断一个表达式的真假,定义式为1{True}=1,1{False}=0

举例而言,1{2=2}=1,1{2是一个质数}=1,1{2}=1,1{2=3}=0,1{4是一个质数}=0,1{0}=0

仿照对逻辑函数概率的定义,我们可以给出多项式概率分布函数如下



其中


很明显,上式属于指数分布族。

我们可以
ac79
推出连接方程为ηi = log(φi/φk),经过代数变换后可得



讲φ表示为η的函数有


此时条件概率函数可以表示为



这一方法称为Softmax Regression,是逻辑方程的一种推广。

我们的假设函数可以向量形式表示为



其对数似然函数为



我们可以使用梯度下降法或者牛顿法对上述函数求解。

//这里是分割线~

//顺便给自己的公众号打个广告,希望大家多多关注~

//关注我的公众号可以看到更多有意思的东西哦~

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  机器学习教程