牛顿法介绍

article/2025/9/14 22:02:39

目录

  • 牛顿法介绍
  • 推导
  • 海森矩阵、泰勒公式、梯度下降法
  • 牛顿法特点

牛顿法介绍

  • 首先牛顿法是求解函数值为0时的自变量取值的方法。如果你看不懂这句没关系,继续往下看就好。
  • 利用牛顿法求解目标函数的最小值其实是转化成求使目标函数的一阶导为0的参数值。这一转换的理论依据是,函数的极值点处的一阶导数为0。
  • 其迭代过程是在当前位置x0求该函数的切线,该切线和x轴的交点x1,作为新的x0,重复这个过程,直到交点和函数的零点重合。此时的参数值就是使得目标函数取得极值的参数值。
    其迭代过程如下:
    在这里插入图片描述
    这里我们通过对上图迭代过程的描述就可以求出参数 θ θ θ的迭代公式,这里来推导一下。
    设上图的切线为 y = k x + b y=kx+b y=kx+b,很明显,斜率 k k k f ′ ′ ( θ ) f''(θ) f(θ),同时切线过点 ( θ , f ′ ( θ ) ) (θ,f'(θ)) (θ,f(θ)),则b=f’(θ)-f’’(θ)θ,所以切线方程为: y = f ′ ′ ( θ ) x + f ′ ( θ ) − f ′ ′ ( θ ) θ y=f''(θ)x+f'(θ)-f''(θ)θ y=f(θ)x+f(θ)f(θ)θ,现在求 y = 0 y=0 y=0时候的 x x x值,结果为: x = ( f ′ ′ ( θ ) θ − f ′ ( θ ) ) / f ′ ′ ( θ ) = θ − f ′ ( θ ) / f ′ ′ ( θ ) x=(f''(θ)θ-f'(θ))/f''(θ)=θ-f'(θ)/f''(θ) x=(f(θ)θf(θ))/f(θ)=θf(θ)/f(θ)即每次执行的迭代操作是 θ − = f ′ ( θ ) / f ′ ′ ( θ ) θ-=f'(θ)/f''(θ) θ=f(θ)/f(θ),其中 f ( ⋅ ) f(·) f()是损失函数。

推导

  • 其正规的推导流程如下:
    在这里插入图片描述
    其中 H H H是海森矩阵。

海森矩阵、泰勒公式、梯度下降法

  • 这里说一下海森矩阵、泰勒公式、梯度下降法之间的关系。
  • 首先由泰勒公式有:
    在这里插入图片描述
    这里涉及到多元函数下的泰勒展开式子,可见下图:
    在这里插入图片描述
    在这里插入图片描述
    以二元为例:
    在这里插入图片描述
    然后再看:
    在这里插入图片描述
    是这样的,因为 ε ∈ ( 0 , 1 ) ε∈(0,1) ε0,1,而当 g T H g < = 0 g^THg<=0 gTHg<=0时二次函数开口向下,然后极值点的横坐标=-b/2a(高中数学),即 ( g T g ) / ( g T H g ) < 0 ( 分 子 大 于 0 , 分 母 小 于 0 ) (g^Tg)/(g^THg)<0(分子大于0,分母小于0) (gTg)/(gTHg)<000,所以在 ε ∈ ( 0 , 1 ) ε∈(0,1) ε0,1时, ε ε ε增加会导致 f ( x ) f(x) f(x)减小。至于 ( g T H g ) < ( g T g λ m a x ) (g^THg)<(g^Tgλ_{max}) (gTHg)<(gTgλmax)则是一个定理证明,这里不多说了,有兴趣的看这里:https://www.hankcs.com/ml/gradient-descent-and-hessian-matrix.html#respond
  • 学习率与曲率成反比,也就是说在曲率大的方向(垂直于峭壁)的学习率小,而在曲率小的方向(平行于峭壁)的学习率大。也就是是说此时的梯度下降在顺流而下的方向的学习率更大,也就更快收敛了。

牛顿法特点

  • 牛顿法收敛速度为二阶,对于正定二次函数一步迭代即达最优解。
  • 牛顿法是局部收敛的,当初始点选择不当时,往往导致不收敛
  • 牛顿法不是下降算法,当二阶海塞矩阵非正定时,不能保证产生方向是下降方向。
  • 二阶海塞矩阵必须可逆,否则算法进行困难。
  • 对函数要求苛刻(二阶连续可微,海塞矩阵可逆),而且运算量大。
  • 当函数的海森矩阵在梯度为零的位置上的特征值全为正时,该函数得到局部最小值。
  • 当函数的海森矩阵在梯度为零的位置上的特征值全为负时,该函数得到局部最⼤值。
  • 当函数的海森矩阵在梯度为零的位置上的特征值有正有负时,该函数得到鞍点。

http://chatgpt.dhexx.cn/article/ButeeBut.shtml

相关文章

牛顿法,障碍法,内点法

基于对数障碍函数法的内点法 牛顿法&#xff08;Newton Method&#xff09;对数障碍函数方法一个简单的例子python代码 牛顿法&#xff08;Newton Method&#xff09; 牛顿法与梯度下降法&#xff0c;最速下降法等优化算法类似&#xff0c;是基于梯度的方法。给定一个二次可微的…

牛顿法python 实现

有用请点赞&#xff0c;没用请差评。 欢迎分享本文&#xff0c;转载请保留出处。 牛顿法也是求解无约束最优化问题的常用方法&#xff0c;有收敛速度快的优点。牛顿法是迭代算法&#xff0c;每一步需要求解目标函数的海赛矩阵的逆矩阵。同时还有拟牛顿法、阻尼牛顿法、修正牛顿…

牛顿法及牛顿法求解优化问题

牛顿法及牛顿法求解优化问题 牛顿法 1. 由来和基本思想 牛顿法也叫牛顿迭代法和牛顿-拉夫森法 1. 牛顿迭代法&#xff1a;因为牛顿法的是通过迭代来实现的&#xff0c;每次运算都让结果比之前好一点。哪怕只好一点点&#xff0c;在很多次迭代之后也可以得到一个很好的结果甚…

最优化-牛顿法(Newton)

转&#xff1a;https://blog.csdn.net/qq_36330643/article/details/78003952 平时经常看到牛顿法怎样怎样&#xff0c;一直不得要领&#xff0c;今天下午查了一下维基百科&#xff0c;写写我的认识&#xff0c;很多地方是直观理解&#xff0c;并没有严谨的证明。在我看来&…

高斯牛顿法详解

一、高斯牛顿法发展历程 1、从上倒下为高斯牛顿法的前世今生已经未来的演化&#xff1a; 最速下降法&#xff08;一阶梯度法&#xff09; 牛顿法&#xff08;二阶梯度法&#xff09; 高斯牛顿法 列文伯格法 马夸尔特法 二、问题的引出 1、考虑如下优化目标函数&#xff1a;…

牛顿法,高斯-牛顿法

牛顿法&#xff08;Newton’s method&#xff09; 假如已知函数 f ( x ) f(x) f(x)&#xff0c;想要求 f ( x ) 0 f(x)0 f(x)0 的解&#xff08;或者叫根&#xff09;。 牛顿法&#xff08;Newton’s method&#xff09;大致的思想是&#xff1a; &#xff08;1&#xff0…

优化算法——牛顿法(Newton Method)

一、牛顿法概述 除了前面说的梯度下降法&#xff0c;牛顿法也是机器学习中用的比较多的一种优化算法。牛顿法的基本思想是利用迭代点 处的一阶导数(梯度)和二阶导数(Hessen矩阵)对目标函数进行二次函数近似&#xff0c;然后把二次模型的极小点作为新的迭代点&#xff0c;并不断…

牛顿法(Newton‘s method)求函数极小值

牛顿法一般指牛顿迭代法&#xff0c;也叫做牛顿-拉夫逊&#xff08;拉弗森&#xff09;方法&#xff08;Newton-Raphson method),其最初的作用是用来求解函数的零点&#xff0c;但是也可以像梯度下降方法一样&#xff0c;以迭代的形式来求函数的极值。而事实上&#xff0c;牛顿…

牛顿法(Newton Method)的原理和实现步骤

牛顿法的法的目的 牛顿法不仅可以用来求解函数的极值问题&#xff0c;还可以用来求解方程的根&#xff0c;二者在本质上是一个问题&#xff0c;因为求解函数极值的思路是寻找导数为0的点&#xff0c;这就是求解方程。 牛顿法的法的原理 一元函数的情况 根据一元函数的泰勒展…

牛顿法

《牛顿法》   牛顿法&#xff08;Newton method&#xff09;和拟牛顿法&#xff08;quasi Newton method&#xff09;是求解无约束最优化问题的常用方法&#xff0c;有收敛速度快的优点。牛顿法是迭代算法&#xff0c;每一步都需求解目标函数的海塞矩阵&#xff08;Hessian …

使用Andriod Device Moniter时用正则表达式筛选指定日志

有时候我们想过滤出指定的一个或者几个日志&#xff0c;又或者屏蔽掉一些无意义的日志&#xff0c;那么可以创建一个筛选&#xff0c;在此页面的by Log Tag填写如下格式的表达式&#xff1a; 过滤出指定tag的日志信息&#xff1a;^(?:tag1|tag2|tag3) 忽略指定tag的日志信息…

使用Memberane Moniter监控HTTP SOAP requests

Memberane Moniter 使用方法见左侧Documentation 此工具可以监控到每一次发生在指定端口的http请求或者soap请求&#xff0c;如图所示。 但是个人认为仍然有几个问题&#xff1a; 1.不能真正的监控8080端口&#xff0c;我个人认为他的原理是类似于复制了一遍8080端口的内容&am…

linux( sudo bmon ) 流量监控工具----类似于 moniter interface

sudo bmon monitor bandwidth interface eth0 &#xff08;vyos 把 bmon 的linux 改为 了 moniter interface 了&#xff0c;底层还是调用的 bmon&#xff09; Linux:~$ sudo bmon -h bmon 3.5 Copyright (C) 2001-2013 by Thomas Graf <tgrafsuug.ch> Copyright (C) 2…

Android Device Moniter部分问题的解决办法:

一、Android Device Moniter中File explorer显示空白的问题不显示内容&#xff1a; 解决办法&#xff1a; 如上图所示 1.Tools->Android->Enable ADB Integration处于关闭状态。 2.重新打开Android Device Moniter。 3.若还处于空白状态&#xff0c;则极有可能是ja…

操作系统锁的实现方法有哪几种_深入理解多线程(四)——Moniter的实现原理...

本文是《深入理解多线程系列文章》的第四篇。点击查看原文&#xff0c;阅读该系列所有文章。 在深入理解多线程(一)——Synchronized的实现原理中介绍过关于Synchronize的实现原理&#xff0c;无论是同步方法还是同步代码块&#xff0c;无论是ACC_SYNCHRONIZED还是monitorenter…

操作系统锁的实现方法有哪几种_深入理解多线程(四)—— Moniter的实现原理

文章来源&#xff1a;深入理解多线程&#xff08;四&#xff09;—— Moniter的实现原理 原文作者&#xff1a;Hollis 来源平台&#xff1a;微信公众号 在深入理解多线程&#xff08;一&#xff09;——Synchronized的实现原理 中介绍过关于Synchronize的实现原理&#xff0c;无…

【深入理解多线程】 Moniter的实现原理(四)

在深入理解多线程&#xff08;一&#xff09;——Synchronized的实现原理中介绍过关于Synchronize的实现原理&#xff0c;无论是同步方法还是同步代码块&#xff0c;无论是ACC_SYNCHRONIZED还是monitorenter、monitorexit都是基于Monitor实现的&#xff0c;那么这篇来介绍下什么…

synchronized实现原理之---Moniter的实现原理

上一篇synchronized的实现原理提到了moniter&#xff0c;当时没有介绍它。 无论是同步方法还是同步代码块&#xff0c;无论是ACC_SYNCHRONIZED还是monitorenter、monitorexit都是基于Monitor实现的&#xff0c;那么这篇来介绍下什么是Monitor。 操作系统中的管程 如果你在大…

dubbokeeper-moniter部署指南

moniter在整个dubbo架构中的角色: 使用的1.0.1版本: ## 1.0.1版本变动内容 dubbokeeper在1.0.1版本对监控数据存储模块抽离出来&#xff0c;做为单独的应用部署&#xff0c;而不是和1.0.0版本和前端展示集成在一个应用里面在1.0.0版本中暂时提供了mysql以及1.0.0中已有的lucene…

Abaqus2022不能进行多核计算问题以及提交运算moniter不显示信息问题

近期换了新电脑&#xff0c;安装了abaqus2022&#xff0c;但出现了使用多核无法计算的问题&#xff0c;只能使用单核&#xff1b;另外使用单核计算时&#xff0c;moniter中不显示计算的信息&#xff0c;只能看到结果等。 问题如下&#xff1a; 在网上也找了好多的解决方式&…