优化方法先容(二)
优化方法先容(二)本博客是一个系列博客,重要是先容各种优化方法,利用 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⋅sksk⋅ykT)Dk(I−ykT⋅skyk⋅skT)+ykT⋅sksk⋅skT
此中, s k = x k − x k − 1 \mathbf{s}_k = \mathbf{x}_k - \mathbf{x}_{k-1}
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]