大号在练葵花宝典 发表于 2025-4-14 11:35:26

优化方法先容(二)

优化方法先容(二)

本博客是一个系列博客,重要是先容各种优化方法,利用 matlab 实现,包括方法先容,公式推导和优化过程可视化
1 BFGS 方法先容

BFGS 的其实就是一种改良后的牛顿法,因为盘算二阶导数 Hessian 矩阵所需的盘算资源是比较大的,复杂度为O ( 2 ⋅ n 2 ) \mathcal{O}(2 \cdot n^2) O(2⋅n2) , 此中n n n 为函数中的变量数目,当n n n 比较大时,盘算量就相当大了。BFGS 的思路就是,既然更新公式中须要的是 Hessian 矩阵的逆,那我们通过某种方法来拟合它不就好了
p k = − G k − 1 ⋅ g k p_k = -G_k^{-1} \cdot g_k pk​=−Gk−1​⋅gk​
经过数学家们的推导,Hessian 矩阵的逆G k − 1 G_k^{-1} Gk−1​ 可以近似为
D k + 1 = ( I − s k ⋅ y k T y k T ⋅ s k ) D k ( I − y k ⋅ s k T y k T ⋅ s k ) + s k ⋅ s k T y k T ⋅ s k D_{k+1} = (I - \frac{\mathbf{s}_k \cdot \mathbf{y}_k^{\mathrm{T}}}{\mathbf{y}_k^{\mathrm{T}} \cdot \mathbf{s}_k}) D_k (I - \frac{\mathbf{y}_k \cdot \mathbf{s}_k^{\mathrm{T}}}{\mathbf{y}_k^{\mathrm{T}} \cdot \mathbf{s}_k}) + \frac{\mathbf{s}_k \cdot \mathbf{s}_k^{\mathrm{T}}}{\mathbf{y}_k^{\mathrm{T}} \cdot \mathbf{s}_k} Dk+1​=(I−ykT​⋅sk​sk​⋅ykT​​)Dk​(I−ykT​⋅sk​yk​⋅skT​​)+ykT​⋅sk​sk​⋅skT​​
此中, s k = x k − x k − 1 \mathbf{s}_k = \mathbf{x}_k - \mathbf{x}_{k-1}

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 优化方法先容(二)