优化算法-BFGS


  BGFS是一种准牛顿算法, 所谓的"准"是指牛顿算法会使用Hessian矩阵来进行优化, 但是直接计算Hessian矩阵比较麻烦, 所以很多算法会使用近似的Hessian, 这些算法就称作准牛顿算法(Quasi Newton Algorithm).

  1. 牛顿算法(Newton Algorithm)

  牛顿算法考虑了函数的二阶单数, 是一种二阶优化方法, 并且是所有其他二阶优化方法的鼻祖. 作为对比, 梯度下降(Gradient Descent)只考虑了函数的一阶导数, 是一阶优化方法. 

  推导过程:

  我们考虑函数的二阶泰勒展开式:  fquad(θ)=fk+gTk(θθk)+12(θθk)THk(θθk) , 其中 θ 为需要优化的参数,  gk f(θk)

  上式可以重写作:

fquad(θ)=θTAθ+bTθ+c

  其中

    式子-1

  二次函数的最小值取为 x=b2a

  所以式子-1在 θ 取以下值时达到最小

  

  亦即Newton算法每次迭代时只需要对 θk 加上以下项

  

  牛顿方法的步骤为

  2. BFGS算法

  Newton算法在计算时需要用到Hessian矩阵 H , 计算Hessian矩阵非常费时, 所以研究者提出了很多使用方法来近似Hessian矩阵, 这些方法都称作准牛顿算法, BFGS就是其中的一种, 以其发明者Broyden, Fletcher, Goldfarb和Shanno命名.

  BFGS算法使用以下方法来近似Hessian矩阵,  BkHk :

  

  初始时可以取 B0=I

  因为Hessian矩阵的大小为 O(D2) , 其中D为参数的个数, 所以有时Hessian矩阵会比较大, 可以使用L-BFGS(Limited-memory BFGS)算法来进行优化.

  参考文献:

  [1]. Machine Learning: A Probabilistic Perspective. p249-p252.

  [2]. Wekipedia: L-BFGS

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值