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

    xiaoxiao2021-03-25  133

    最大化似然性的另一算法

    我们回到逻辑回归的话题( 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, ηis xs 是线性相关的。所以,有 ηi=θTix i=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(θ) 达到最大似然估计,这一过程可以使用梯度上升方法或者牛顿方法。

    转载请注明原文地址: https://ju.6miu.com/read-20840.html

    最新回复(0)