BFGS

step 1.

根据泰勒公式,省略掉高阶项:

f(x)f(xk+1)+f(xk+1)(xxk+1)+12(xxk+1)T2f(xk+1)(xxk+1)

再两边取导数得

f(x)=f(x+1)+Hk+1(xxk+1)

此时,取x=xk,并设f(xk)=gk,2f(xk)=Hk

gk+1gk=Hk+1(xk+1xk),设gk+1gk=yk,xk+1xk=Sk

则有

(1)yk=Hk+1Sk

step 2.

Bk表示海森矩阵Hk的近似,用Dk表示Hk1(海森矩阵的逆)的近似

Bk+1=Bk+ΔBk

Bk=αuuT+βvvT ,其中uv是n维向量

又由(1)得 yk=Bk+1Sk

所以

yk=BkSk+αuuTSk+βvvTSk

yk=BkSk+αuTSku+βvTSkv (之所以能这么换位置,是因为uTSk是一个数,而不是一个矩阵或向量)

{αuTSk=1βvTSk=1u=ykv=BkSk}Bk+1ykSk

可以解得

α=1ykTSk

β=1vTSk=1SkTBkTSk

所以

(2)ΔBk=ykykTykTSkBkSkSkTBKTSKTBKTSk

后面转自:

作者: peghoty

出处: http://blog.csdn.net/itplus/article/details/21897443

BFGS

BFGS

BFGS

L-BFGS

所谓L-BFGS是对BFGS进行了空间优化:
这是由于向量维数n到达了一定数量级,n×n的矩阵需要相当大的内存。

L-BFGS算法并没有直接存储整个矩阵,而是在需要用到时,根据若干个n维向量来计算。

由于计算的结果需要用到之前每一次迭代/循环中的结果, L-BFGS算法只保存了最近的m次迭代的结果,所以L-BFGS算法又做了近似。

相关文章:

  • 2021-09-14
  • 2021-10-04
  • 2021-06-08
  • 2022-01-05
  • 2021-06-11
  • 2022-12-23
  • 2021-12-07
猜你喜欢
  • 2021-04-21
  • 2021-03-31
  • 2021-09-29
  • 2022-12-23
  • 2021-10-08
相关资源
相似解决方案