zoukankan      html  css  js  c++  java
  • 机器学习(5)之牛顿算法

    机器学习(5)之牛顿算法

    1. 牛顿迭代算法简介

        设r是的根,选取
    作为r的初始近似值,过点
    曲线
    的切线L,L的方程为
    ,求出L与x轴交点的横坐标
    称x
    1
    为r的一次近似值。
    过点
    做曲线
    的切线,并求该切线与x轴交点的横坐标
    ,称
    为r的二次近似值。重复以上过程,得r的近似值序列,其中,
    称为r的
    次近似值,上式称为牛顿迭代公式
        用牛顿迭代法解非线性方程,是把非线性方程线性化的一种近似方法。把
    在点
    的某邻域内展开成泰勒级数
    ,取其线性部分(即泰勒展开的前两项),并令其等于0,即
    ,以此作为非线性方程
    的近似方程,若
    ,则其解为
    , 这样,得到牛顿迭代法的一个迭代关系式
     
     
     
     

    牛顿方法应用于机器学习:

     

     
     
     
     
     
    1. 使用这个方法需要f满足一定条件,适用于Logistic回归和广义线性模型

    2. 一般初始化为0

    2. 在Logistic的应用

        在Logistic回归中,我们要使得对数最大似然值最大,即为0时的Θ,根据上述推论,更新规则如下: 

        

       牛顿方法的收敛速度:二次收敛

       每次迭代使解的有效数字的数目加倍:假设当前误差是0.01,一次迭代后,误差为0.001,再一次迭代,误差为0.0000001。该性质当解距离最优质的足够近才会发现。

    3. 牛顿方法的一般化

    Θ是一个向量而不是一个数字,一般化的公式为:

     

    是目标函数的梯度,H为Hessian矩阵,规模是n*n,n为特征的数量,它的每个元素表示一个二阶导数:

     

    上述公式的意义就是,用一个一阶导数的向量乘以一个二阶导数矩阵的逆

    优点:若特征数和样本数合理,牛顿方法的迭代次数比梯度上升要少得多

    缺点:每次迭代都要重新计算Hessian矩阵,如果特征很多,则H矩阵计算代价很大

     

  • 相关阅读:
    Demo源码放送:打通B/S与C/S !让HTML5 WebSocket与.NET Socket公用同一个服务端!
    WebSocket 网页聊天室的实现(服务器端:.net + windows服务,前端:Html5)
    数据科学求职准备
    c#使用MethodInvoker解决跨线程访问控件
    zedboard--Opencv移植和zedboard测试(十一)
    浅谈C++调用C#的DLL程序方法
    linux内核--进程空间(二)
    Windows 下如何安装配置Snort视频教程
    十分钟搭建自己的hadoop2/CDH4集群
    MFC调用c#的dll
  • 原文地址:https://www.cnblogs.com/rcfeng/p/3971922.html
Copyright © 2011-2022 走看看