以推出关 于B k的DFP公式.
时间: 2024-04-07 18:32:13 浏览: 20
DFP算法是一种基于逆Hessian矩阵的优化算法,其核心是维护一个逆Hessian矩阵的估计值Bk,并通过Bk来指导参数的更新。下面是基于目标函数的梯度和Bk的DFP公式的推导过程。
设目标函数为f(x),当前参数为x,当前梯度为g,参数的变化量为s,梯度的变化量为y,则有:
s = -Bk g
y = g' - g
其中g'为更新后的梯度。
为了得到Bk的更新公式,我们需要将目标函数在当前点x处进行泰勒展开:
f(x + s) = f(x) + s^T g + 1/2 s^T Bk s + O(||s||^3)
对上式两边关于s求导,得到:
g = Bk s
将上述两个式子联立,解出s和g,得到:
s = -Bk g
g' = g + Bk s
将上述两个式子代入目标函数的泰勒展开式中,得到:
f(x + s) = f(x) - (g^T s) + 1/2 (s^T Bk s) + O(||s||^3)
对上式两边关于s求导,并令导数为0,得到:
Bk+1 s = -g'
将上述式子代入s = -Bk g中,得到:
s = Bk+1 g
将上述式子代入目标函数的泰勒展开式中,得到:
f(x + Bk+1 g) = f(x) - (g^T Bk g)/(g^T Bk+1 g) + 1/2 (g^T Bk g)/(g^T Bk+1 g)^2 (g^T Bk+1 g) + O(||Bk g||^3)
对上述式子进行化简,得到:
Bk+1 = Bk - (Bk g g^T Bk)/(g^T Bk g) + (s s^T)/(g^T s)
这个公式就是基于Bk的DFP更新公式,可以通过不断迭代,得到Bk的估计值,从而优化模型的参数。