机器学习笔记3——牛顿方法

来源:互联网 发布:windows连不上无线网 编辑:程序博客网 时间:2024/05/21 22:33

最大化似然性的另一算法

我们回到逻辑回归的话题(g(z)S),现在我们讨论另一种最大化l(θ)的算法。
在开始前,让我们思考用于寻找函数零值的牛顿方法。假设,有一函数f:RR,希望找到θ值使得f(θ)=0。此处的θ是实数。
牛顿方法以如下形式更新:


牛顿方法的原理可以这样解释:在某点θ处作与函数f无限靠近的线性函数,且这一线性函数是在点θ处函数f的正切函数。问题变为 寻找线性函数为0,然后让下一个参数θ取线性函数为0所对应的θ值。

下面是牛顿方法的原理解释:


在最左侧的图中,我们可以看到函数f随着直线y=0绘制出来,我们尝试寻找参数θ使f(θ)=0;满足条件的参数θ值接近1.3。假设我们在算法中设置参数的初始值θ=4.5。牛顿方法会在点θ=4.5为函数f匹配一条正切线,然后寻找满足这个线性函数为0的条件(如中间图所示)。然后我们得到了下一个参数值θ的猜测值,大概为2.8。最右侧的图显示了经过一次以上的迭代得到的结果,更新后的参数值θ约为1.8,经过迭代后我们逐渐接近θ=1.3.

牛顿方法为我们提供了一种寻找f(θ)=0的方式。那么如果我们想利用它来最大化一些函数l呢?l的极值等于它的一阶导数l(θ)为0时所对应的值。所以,通过让f(θ)=l(θ),我们可以用同样的算法来最大化l,我们会得到如下的更新规则:


(思考:如果我们想用牛顿方法最小化函数,那么这个公式会怎么变化呢?)

在上一讲的逻辑回归问题中,θ是向量值,所以我们需要让牛顿算法一般化成这种形式。牛顿方法一般化为多维形式如下:


此处,θl(θ)表示为l(θ)针对θis的部分偏导的向量。H是n*n维的矩阵,被称作海赛矩阵,矩阵中的值如下:


牛顿方法的收敛速度通常比梯度下降方法更快,达到最小值的迭代次数也更少。但是,牛顿方法每迭代一次的代价要高于梯度下降过程中的迭代,因为牛顿方法需要遍历且倒置n*n维的海赛矩阵;但是如果n值不是很大,总体来说牛顿方法还是更快一些。当利用牛顿方法最大化逻辑回归的对数似然函数l(θ)时,这种方法也被称作Fisher scoring


广义线性模型

目前为止,我们对回归问题和分类问题都有所了解了,在回归问题中,有y|x;θN(μ,σ2),在分类问题中,有y|x;θBernoulli(ϕ),对μϕ的适当定义得到了关于xθ的函数。在这一小节中,我们会介绍:上述两种方法都是广义线性模型 (GLMs)中的特例。我们也会介绍:在GLM家族中的其他的模型是如何演变为分类问题和回归问题。

1.指数家族

首先我们探讨广义线性模型家族中的指数模型。指数家族的类分布可以写成如下格式:


这里的η是分布的自然参数(标准参数);T(y)充分统计量(分布中,通常有T(y)=y);a(η)是对数划分函数。ea(η)在归一化系数中是决定性因素,确保分布p(y;η)整体超过y且大于1.

对于固定的T,a和b定义了以η为参数的分布的家族;随着改变η,我们也得到了这一家族中不同的分布。

现在我们以伯努力和高斯分布作为指数家族分布来举例。伯努力以均值ϕ来分布,写作Bernoulli(ϕ),且分布在y{0,1},所以有p(y=1;ϕ)=ϕ;p(y=0;ϕ)=1ϕ。当我们改变ϕ时,我们得到不同均值的伯努力分布。现在我们证明:通过改变均值ϕ得到的伯努力分布这一类别属于指数家族;举例:固定T,a和b,等式(6)成为伯努力分布所属的类。

伯努力分布可写成如下形式:


因此,自然参数为η=log(η/(1η))。有趣的是,如果我们将ηϕ的定义颠倒过来,我们会得到ϕ=1/(1+eη)。这个等式与S形函数的定义相似!当我们推导逻辑回归为GLM家族一员时这样的巧合还会再一次出现。为了完善伯努力分布作为指数家族分布的格式,我们可以得到:


上图显示了通过对T,a,b适当地定义,伯努力分布可以写作等式(6)的格式。

让我们现在继续考虑高斯分布。在线性回归的推导中,参数σ2的值对最后参数θhθ(x)的选择并没有影响。因此,我们可以随意选择σ2的值,当然这不会改变任何事。为了简化推导的过程,假设σ2=1,之后可得出如下过程:


因此,确定以下的等式,可得出高斯分布属于指数家族:


还有很多其他的分布也属于指数家族的一员:多项式分布,泊松分布,伽玛指数分布(对连续的、非负随机变量进行建模,比如 时间间隔),贝塔和狄利克雷分布(基于可能性的分布),还有很多。在下一章节中,我们会描述一种普适的方法可以将任何分布中的y进行建模。

2.广义线性模型家族的建模

假设你要对任意给定时间内来到商店的客户数(或在网站上的页面浏览量)y进行建模,基于确定的特征x,比如说有商店的宣传,最近的广告,天气,一周中的某天等等。我们知道泊松分布针对于访问者的数量可以构建一个良好的模型。那么针对我们的问题如何提出一个模型呢?幸运的是,泊松分布是指数家族分布的一员,所以我们可以利用广义线性模型。在这一小节中,我们会描述针对上述类似的问题构建广义线性模型的方法。

一般来说,分类或者回归问题中我们会预测一些随机变量的值y作为x的函数。那么针对这一问题,为了得到广义线性模型,我们会依据下述的三条假设:

1.y|x;θExponentialFamily(η),给定xθy的分布与指数家族分布相似。

2.给定x,我们的目标是在给定x的前提下预测T(y)的期望值。在大多数的例子中,我们有T(y)=y,所以这意味着我们可以通过假设h来满足h(x)=E[y|x]得到预测结果h(x)。(这一假设满足逻辑回归和线性回归,在逻辑回归中,我们有hθ(x)=p(y=1|x;θ)=0p(y=0|x;θ)+1p(y=1|x;θ)=E[y|x;θ])

3.自然参数η和输入变量x是线性相关的:η=θTx(或者,如果η是向量值,那么有 ηi=θTix

第三条假设看上去不如前两条合理,看上去更像是一个模型“设计选项”而不是一个假设。这三条假设让我们推导出一个非常简洁的学习算法,称作GLMs,这一算法有很多令人满意的地方比如说容易学习。更多的是,无论是什么类型的分布,最终针对y的建模结果都非常有效;比如说,接下会展示逻辑回归和普通最小二乘法都可以由GLMs推导得出。


2.1 普通最小二乘法

为了展示普通最小二乘法是广义线性模型家族中的一个特例,可以考虑设置目标变量y(也可称为GLM策略的对应变量)为连续的,给定x为前提的条件分布可以看作高斯分布N(μ,σ2)来进行建模(这里的μ可能依赖于x)。所以,我们让高斯分布属于指数家族(η)。正如之前看到的,在高斯分布作为指数家族分布的公式中,有μ=η,所以可以得出:


第一个等式与假设2相对,第二个等式根据事实y|x;θN(μ,σ2),所以期望值要根据μ给出,第三个等式与假设1相对(μ=η 对这个等式还熟悉吗?之前高斯分布作为指数家族分布的推导过程中出现过哦),最后一个等式与假设3相对。


2.2 逻辑回归

现在思考逻辑回归。这里我们对二分类问题感兴趣,所以y{0,1}。已知 y 是二分类的值 ,因此可以用伯努力家族分布来对条件分布进行建模。在伯努力分布作为指数家族分布的推导过程中,我们有ϕ=1/1+eη。进一步说,如果y|x;θBernoulli(ϕ),那么有E[y|x;θ]=ϕ。所以,与普通最小二乘法一样,可以得到一个类似的推导过程:


所以,根据上述推导过程得到了等式hθ(x)=1/(1+eθTx)

再介绍一些额外的术语,函数g给出分布的含义,作为一个自然参数的函数(g(η)=E[T(y);η])被称为典型响应函数。相反的g1被称作典型链接函数。因此,高斯家族的典型响应函数只是恒等函数;伯努力分布的典型响应函数是逻辑函数。


2.3 Softmax回归

接下来介绍广义线性模型的另外一个例子,思考分类问题中响应变量y可以对应k个值中的任意一个,所以y{1,2,....,k}。举个例子,与其将邮件分为垃圾邮件和非垃圾邮件两大类——这是一个二分类问题——我们可以将邮件分为三大类:垃圾邮件,个人邮件和工作相关的邮件。相应的变量仍然是离散的,但是可以对应2个以上的值。得到的这一模型的分布来源于多项式分布。
让我们推导一个广义线性模型来对这类多项式问题进行建模。为了达到目的,我们开始用多项式作为一个指数家族分布。
为了对可能超过k个输出结果的多项式进行参数化,可以用k个参数ϕ1,....,ϕk一一对应每个可能的输出值。然而,这些参数会成为累赘,更专业的说,它们不是不相关的(因为我们必须知道任意k-1个ϕs确定最后一个参数独一无二的值,因为他们必须满足ki=1ϕi=1)。所以,我们只参数化k-1个项,ϕ1,...ϕk1,此时ϕi=p(y=i;ϕ),且p(y=k;ϕ)=1k1i=1ϕi,但我们要知道ϕk并不是一个参数,而是完全由ϕ1,...ϕk1来确定的值。

为了表示多项式作为指数家族分布的一员,可以定义T(y)Rk1如下所示:


与之前的例子不同,这里我们并没有让T(y)=y,而且T(y)现在是k-1维的向量,而不是一个实数值。(T(y))i可以代表向量T(y)的第i个元素。

我们也要介绍一个非常有用的符号。指标函数1{},如果参数为真,指标函数值为1,否则为0.(1{True}=1,1{False}=0)举个例子,1{2=3}=0,1{3=5-2}=1。所以,T(y)y之间的关系也可以写作(T(y))i=1{y=i}。进一步说,我们有E[(T(y))i]=P(y=i)=ϕi

现在将展示多项式分布作为指数家族中的一员的推导过程:


上述的推导是多项式分布作为指数家族分布的一员的完整过程。

链接函数给出(i=1,...,k):


方便起见,我们也可以定义ηk=log(ϕk/ϕk)=0。为了颠倒链接函数然后推导出响应函数,我们因此有:


这一推导过程使用了ϕk=1/ki=1eηi,这里可以带回到等式(7)中然后得到响应函数


这一从ηs映射到ϕs的函数被称为softmax函数

为了完善我们的模型,我们使用之前提到的假设3,ηisxs是线性相关的。所以,有ηi=θTixi=1,...,k1),这里的θ1,...θk1Rn+1是我们模型的参数。为了符号上的方便,我们也可以定义θk=0,所以有ηk=θTkx=0,就像之前给出的那样。因此,我们假设的条件分布可以写成如下形式:


这一模型中,应用了分类问题y{1,...,k},被称为softmax回归。这是逻辑回归的一般化。

我们的假设会输出:


换句话说,我们的假设将会输出的p(y=i|x;θ)期望值,对于每一个i=1,...,k中的值。

最后,让我们讨论一下参数匹配。与我们最初对普通最小二乘法和逻辑回归的推导相似,如果我们有一组训练集包括m个训练样本{(x(i),y(i));i=1,...,m},我们将会通过对数似然估计来学习这个模型的参数θi


为了得到上述推导过程的第二行,我们利用等式(8)中给的关于p(y|x;θ)的定义。我们通过最大化l(θ)达到最大似然估计,这一过程可以使用梯度上升方法或者牛顿方法。

0 0
原创粉丝点击