【机器学习笔记】Hessian矩阵

来源:互联网 发布:网络接入设备集线器 编辑:程序博客网 时间:2024/06/05 19:12

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

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

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

1. 标量对向量求导:

结果是向量

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

fx=(fx1,...fxn)

也记为: f

2. 向量对向量求导:

结果是矩阵

一阶导

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

fx=fTx=[f1x,...fmx]=f1x1f1xnfmx1fmxn

这个矩阵也叫做 Jacobian 矩阵

二阶导:

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

H(f)=2fx212fx2x12fxnx12fx1x22fx222fxnx22fx1xn2fx2xn2fx2n

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

Hi,j=2f(x)xixj

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

θ:=θH1θl(θ)

参考:

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

原创粉丝点击