【机器学习笔记】Hessian矩阵 |
您所在的位置:网站首页 › 对数似然函数怎么求导 › 【机器学习笔记】Hessian矩阵 |
看牛顿法的时候,遇到的这个问题 原问题是要用牛顿法求对数似然函数 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 |