机器学习--牛顿方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zkyzq/article/details/73718743

不知道为什么分享不了了,就算是这样,我也要常常把自己的思考写下来,就算没什么用,等到七老八十的时候,我还能回忆回忆,很好很好~


一、牛顿方法

  要注意,牛顿方法并不是机器学习方法,而是机器学习模型寻找最优参数的方法,它只是一种工具,用来求取代价函数最优解的工具。基本上所有常见的优化方法都与牛顿方法有着或多或少的联系,都是牛顿法的亲戚,也正是因为这样,它们才具有令人满意的表现。而各种优化方法的本质差异在于每迭代一步的方向和步长选取,即下式中的α和p

中前面我们说过的梯度下降法,收敛速度慢,对于特征数目上千万的问题,表现不尽人意。但是牛顿法的收敛速度是二阶的,这意味着 如果第k次的误差是0.01,则第k+1次迭代误差将会变为0.0001,这样的收敛速度,还是很棒的吧~下面就简单介绍一下牛顿法的原理。

 如果我们要求某一个高次函数与x轴的交点,在一次二次的时候我们还有求根公式可以解决,但高次就无法直接求交点了。如下图为某一函数f(x):


于是牛顿法就提出了一个关键性的思想:近似。尽管我们无法求得f(x)与x轴真实的交点,但我们能给出近似的解。如下图:


我们从点(4.5,0)开始,求这点的切线与x轴的交点如红色圈,将其作为函数与x轴交点更好的一个近似,再求这个点处切线与x轴交点作为一个更好的近似,如下图:


根据导数定义,△=f(x)/f'(x),所以参数的迭代公式为:


转到我们要求的问题,代价函数的最小值问题或者似然函数的最小值问题,无约束优化问题的必要条件就是导数为0,所以牛顿法用在最优化参数中的迭代公式为:


如果此时使多元函数,即参数theta是一个向量,那么二阶导数和一阶导数分别用hessian阵和梯度向量来代替,即:

其中

二、广义线性模型Generalized Linear Models

前面几节课讲的线性回归中y的分布属于高斯分布,而逻辑回归中的y分布属于伯努利分布,神奇的是,这两种分布恰好都是指数分布的特殊形式。这里的广义线性模型,其中y分布属于一般的指数分布,线性回归和逻辑回归都是广义线性模型的特殊情况。指数分布的一般模型为:


其中yita是自然分布参数,T(y)为充分统计量,一般T(y)=y。Ng详细讲解了伯努利分布和高斯分布是如何表达成上面这个形式的。

2.1.伯努利分布

伯努利分布可以表示为:


综合起来可以表示为:


对比上面指数分布的表达式,我们可以确定参数如下:


        

由上面的式子我们还能解出


有木有觉得这个式子很熟悉啊,对,没错就是前面讲过的逻辑回归中sigmod函数,这也就从根本上解释了为什么要使用那个形式的sigmod函数。

2.2.高斯分布

推导过程类似,最后的结果为高斯分布也是指数家族的一员,它的相关参数为:


2.3.广义线性模型

如果我们需要对某个时间段访问我们博客的人数进行预测,特征量可能是博客原创文章的质量,在朋友圈的推广等等,那我们最好选择泊松分布,因为泊松分布在计数统计上面有着良好的表现,恰好,泊松分布也是指数分布的一员,这样我们就可以对这类问题建立机器学习模型。为了用广义线性模型的方法,我们需要进行三点假设:

1.y|x属于指数分布,参数是

2.给一个特征量,我们的目标是预测T(y)的值(这个T(y)我仔细思考了一下就是真正输出y的函数,大多数情况下都是y,但是也有的情况不是。比如我们统计一个商店一段时间内的人流量想要真正估计的是营业额,这个T(y)代表的就是人流量和营业额之间的关系,当然这个例子举的不好,大概是这意思)。所以我们要使我们的学习假设模型为:


这在线性回归和逻辑回归中是满足的,比如逻辑回归中:

              

              

3.自然分布参数满足:


好了,有了以上的准备工作,我们就能从广义线性模型中得到原始线性回归和逻辑回归的模型了。

对于原始线性回归有:


对于逻辑回归有:


全部符合我们之前的结论。

下面由广义线性模型导出一种新的模型SoftMax 回归,这是一种多分类问题,是逻辑回归的推广,考虑y有k种取值情况

y∈{1,2,....k}

类似于伯努利分布,这个指数分布的参数有k-1个,分别是,其中是冗余参数。 为了方便表达,定义

不同于前两种,现在没有T(y)=y这个条件。

再引入一种记号

则我们可以简洁的把T(y)这个k-1维的向量表示为:

这也是T(y)和y之间的关系表现。

综上所示,类似于伯努利分布的,我们有:

比较显然,各项参数为:


关键的是,从中可以得到:


进一步推导:


所以有:


也就是说,在前面三点假设下,y分布模型为:


基于这样分布的一个变量,我们机器学习的假设模型为:


得到模型的具体表达之后,我们要做的就是求最佳的参数theta了,求取最佳参数的办法是极大化似然函数或者极小化代价函数,这里我们选择极大化概率函数,也就是max下面这个函数:



对于这个问题,我们可以选取牛顿法或者梯度下降法就可以解决啦。


3.总结

课是越来越难了,我发现概率的知识我好多都忘了。听得时候云里雾里,但是随着整理一遍思路慢慢清晰了。

到现在为止所讲的主要是对于一个变量(属于指数分布的大家族)进行预测或者分类,根据这个变量的特征。那我们有一套方法,首先找出这个变量的分布模型p(y|x),再利用分布模型得到机器学习的假设模型h(x)=E(y|x),接着计算似然函数,极大化似然函数得到机器学习模型中的最佳参数,问题解决。




阅读更多
换一批

没有更多推荐了,返回首页