公开课机器学习笔记(6)牛顿法

 给出的数据是40个被大学接收的学生和40个被拒绝的学生的数据,输入是一个二维向量,表示2门科目成绩,输出是一个分类结果(接收、拒绝),用0和1表示。
        首先,我们要知道logistic regression的假设函数为:
        
    这个假设函数是估计在参数为theta下,输入x被预测为1的概率。这个函数是sigmoid函数,是神经网络中的常用的一种激活函数。
     模型的损失函数是:
   
       这个形式是适用于类别y的值为0、1的,如果是1或-1就要变成另一种形式了。为什么要最小化这个函数呢?这个损失函数是怎么来的呢?它是通过最大化数据出现的概率推出来的,就是MLE(最大似然估计)。当样本类别为1时,我们的模型要使数据出现1的可能性最大,当样本类别为0时,我们要使它出现0的可能性最大。对于整个样本集,我们希望它们一起出现的概率最大,假设样本之间是独立的,则把每个样本出现的概率作累积就是样本集的似然估计。
     
     要最大化L(theta), 即要最大化l(theta),即最小化损失函数J(theta)。
      
     使这个损失函数最小的算法可以用梯度下降法,也可以用牛顿法,梯度下降法要求出J对theta的一阶导数,然后逐步更新theta达到局部最优,而牛顿方法要用到一阶导和二阶导也就是海森矩阵,牛顿法其实是求解函数f(x)=0的x值,对于初始值点x0,求出函数在这点的切线,然后求出切线与x轴的交点作为新的x值,一直重复这样的步骤直到到达f(x)=0的点x。
      即
       还记得我们是要最小化损失函数J, 我们就要找到使得J达到局部最优的theta,即极小点,在这一点上,J对theta的导数为0, 所以我们要求使得J的一阶导为0的theta。这样,就可以使用牛顿方法来求出这样的theta,而牛顿方法也要算出一阶导来,所以就要对J进行二阶求导,也就是海森矩阵。
     J对theta的一阶导为:
      
     这个看起来跟之前做过的线性回归的求导方程是一样的!但是是要根据J的表达式一步一步推出来的。


     海森矩阵的方程式如下:
     
      牛顿方法的更新规则:
   平时经常看到牛顿法怎样怎样,一直不得要领,今天下午查了一下维基百科,写写我的认识,很多地方是直观理解,并没有严谨的证明。在我看来,牛顿法至少有两个应用方向,1、求方程的根,2、最优化。牛顿法涉及到方程求导,下面的讨论均是在连续可微的前提下讨论。


 


1、求解方程。


并不是所有的方程都有求根公式,或者求根公式很复杂,导致求解困难。利用牛顿法,可以迭代求解。


原理是利用泰勒公式,在x0处展开,且展开到一阶,即f(x) = f(x0)+(x-x0)f'(x0)


求解方程f(x)=0,即f(x0)+(x-x0)*f'(x0)=0,求解x = x1=x0-f(x0)/f'(x0),因为这是利用泰勒公式的一阶展开,f(x) = f(x0)+(x-x0)f'(x0)处并不是完全相等,而是近似相等,这里求得的x1并不能让f(x)=0,只能说f(x1)的值比f(x0)更接近f(x)=0,于是乎,迭代求解的想法就很自然了,可以进而推出x(n+1)=x(n)-f(x(n))/f'(x(n)),通过迭代,这个式子必然在f(x*)=0的时候收敛。整个过程如下图:






 


2、牛顿法用于最优化


在最优化的问题中,线性最优化至少可以使用单纯行法求解,但对于非线性优化问题,牛顿法提供了一种求解的办法。假设任务是优化一个目标函数f,求函数f的极大极小问题,可以转化为求解函数f的导数f'=0的问题,这样求可以把优化问题看成方程求解问题(f'=0)。剩下的问题就和第一部分提到的牛顿法求解很相似了。


这次为了求解f'=0的根,把f(x)的泰勒展开,展开到2阶形式:






这个式子是成立的,当且仅当 Δx 无线趋近于0。此时上式等价与:






求解:






得出迭代公式:






一般认为牛顿法可以利用到曲线本身的信息,比梯度下降法更容易收敛(迭代更少次数),如下图是一个最小化一个目标方程的例子,红色曲线是利用牛顿法迭代求解,绿色曲线是利用梯度下降法求解。






在上面讨论的是2维情况,高维情况的牛顿迭代公式是:






其中H是hessian矩阵,定义为:






 


高维情况依然可以用牛顿迭代求解,但是问题是Hessian矩阵引入的复杂性,使得牛顿迭代求解的难度大大增加,但是已经有了解决这个问题的办法就是Quasi-Newton methond,不再直接计算hessian矩阵,而是每一步的时候使用梯度向量更新hessian矩阵的近似。Quasi-Newton method的详细情况我还没完全理解,且听下回分解吧。。。


 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值