【机器学习笔记】Hessian矩阵

您所在的位置:网站首页 对数似然函数怎么求导 【机器学习笔记】Hessian矩阵

【机器学习笔记】Hessian矩阵

2024-07-11 00:12| 来源: 网络整理| 查看: 265

看牛顿法的时候,遇到的这个问题 原问题是要用牛顿法求对数似然函数 l(θ) 的最大值,也就是似然函数导数的零点,即迭代过程为:

θ:=θ−l′(θ)l′′(θ)

如果 θ 为向量,就会想,函数对向量求导怎么求? 所以查了一下:

1. 标量对向量求导:

结果是向量

事实上这就是所谓的Gradient,即对于一般标量函数 f(x) , 其中向量为 x=(x1,...,xn) ,导数为:

∂f∂x=(∂f∂x1,...∂f∂xn)

也记为: ∇f

2. 向量对向量求导:

结果是矩阵

一阶导

这个当然也是gradient,当然这准确的说应该叫matrix gradient. 即对于向量值函数 f(x) , 其中 x=(x1,...,xn) , f=(f1,...,fm) , 导数为:

∂f∂x=∂fT∂x=[∂f1∂x,...∂fm∂x]=⎡⎣⎢⎢⎢⎢⎢⎢⎢∂f1∂x1⋮∂f1∂xn⋯⋱⋯∂fm∂x1⋮∂fm∂xn⎤⎦⎥⎥⎥⎥⎥⎥⎥

这个矩阵也叫做 Jacobian 矩阵

二阶导:

二阶导数就是Hessian矩阵,形式如下:

H(f)=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢∂2f∂x21∂2f∂x2∂x1⋮∂2f∂xn∂x1∂2f∂x1∂x2∂2f∂x22⋮∂2f∂xn∂x2⋯⋯⋱⋯∂2f∂x1∂xn∂2f∂x2∂xn⋮∂2f∂x2n⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

或者可以用更抽象的定义:

Hi,j=∂2f(x)∂xi∂xj

明确了这一点,就能够给出 θ 时的迭代形式了:

θ:=θ−H−1∇θl(θ)

参考:

https://www.zhihu.com/question/58312854 http://blog.csdn.net/linolzhang/article/details/60151623



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3