一阶梯度法、二阶段梯度法、牛顿法

本文介绍了如何寻找函数f(x)的最小值,重点讲解了一阶梯度法和二阶梯度法(牛顿法)的迭代过程。一阶梯度法通过梯度下降找到函数下降最快的方向,二阶梯度法则引入了海塞矩阵以更精确地逼近极值点。在实际应用中,这些方法常用于机器学习和SLAM问题中的非线性优化。
摘要由CSDN通过智能技术生成

目标

有一个函数 f ( x ) f(x) f(x),我们要求得函数的最小值(或者最大值),由于最值点一般也是极值点,所以求出所有极值点,然后进行对比就能得到我们要的最值,可以理解为一个最小二乘的问题 min ⁡ x 1 2 ∥ f ( x ) ∥ 2 2 \min_x \frac {1}{2}\| f(x)\|^2_2 xmin21f(x)22

解法

最暴力的方法,直接求解 d 1 2 ∥ f ( x ) ∥ 2 2 d x = 0 \frac {d \frac{1}{2}\|f(x)\|^2_2} {dx} =0 dxd21f(x)22=0
当然,如果能够直接解出结果,那就很好了,但是大多数情况下很难解。当没法求解的时候,可以采用迭代的方法:

  1. 给定某个初始值 x 0 x_0 x0
  2. 对于第k次迭代,寻找一个增量 Δ x \Delta x Δx,使得 ∥ f ( x k + Δ x ) ∥ 2 2 \|f(x_k+\Delta x)\|^2_2 f(xk+Δx)22达到极小值。
  3. Δ x 足 够 小 , 则 停 止 \Delta x足够小,则停止 Δx
  4. 否则,令 x k + 1 = x k + Δ x k x_{k+1}=x_k+\Delta x_k xk+1=xk+Δxk,返回第2步。

下面介绍一下几个迭代的方法,都是在找 Δ x \Delta x Δx

一阶梯度法

f ( x ) f(x) f(x)在x附近进行泰勒展开 ∥ f ( x + Δ x ) ∥ 2 2 ≈ ∥ f ( x ) ∥ 2 2 + J ( x ) Δ x + 1 2 Δ x T H Δ x \|f(x+\Delta x)\|^2_2\approx\|f(x)\|^2_2+J(x)\Delta x+\frac{1}{2}\Delta x^TH\Delta x f(x+Δx)22f(x)22+J(x)Δx+21ΔxTHΔx
x是常量,同时也是个向量; Δ x \Delta x Δx才是变量, J ( x ) J(x) J(x) ∣ ∣ f ( x ) ∣ ∣ 2 2 d ||f(x)||^2_2d f(x)22d的雅可比矩阵, H H H是海塞矩阵,可以将J(x)理解为矩阵形式的一阶导数, H H H理解为矩阵形式的二阶导数

导数:指的是函数值增加的速度,速度是个向量(有大小,有方向),在一维的情况下,也是一样的,可以这样理解,假设 f ( x ) = 1 2 x 2 f(x)=\frac{1}{2}x^2 f(x)=

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值