几种常见的优化算法


阅读目录

  • 1. 梯度下降法(Gradient Descent)
  • 2. 牛顿法和拟牛顿法(Newton's method & Quasi-Newton Methods)
  • 3. 共轭梯度法(Conjugate Gradient)
  • 4. 启发式优化方法
  •  5. 解决约束优化问题——拉格朗日乘数法

  我们每个人都会在我们的生活或者工作中遇到各种各样的最优化问题,比如每个企业和个人都要考虑的一个问题“在一定成本下,如何使利润最大化”等。最优化方法是一种数学方法,它是研究在给定约束之下如何寻求某些因素(的量),以使某一(或某些)指标达到最优的一些学科的总称。随着学习的深入,博主越来越发现最优化方法的重要性,学习和工作中遇到的大多问题都可以建模成一种最优化模型进行求解,比如我们现在学习的机器学习算法,大部分的机器学习算法的本质都是建立优化模型,通过最优化方法对目标函数(或损失函数)进行优化,从而训练出最好的模型。常见的最优化方法有梯度下降法、牛顿法和拟牛顿法、共轭梯度法等等。

回到顶部回到顶部回到顶部wiki百科共轭梯度法。   下图为共轭梯度法和梯度下降法搜索最优解的路径对比示意图:     注:绿色为梯度下降法,红色代表共轭梯度法   MATLAB代码:
function [x] = conjgrad(A,b,x)
    r=b-A*x;
    p=r;
    rsold=r'*r;

    for i=1:length(b)
        Ap=A*p;
        alpha=rsold/(p'*Ap);
        x=x+alpha*p;
        r=r-alpha*Ap;
        rsnew=r'*r;
        if sqrt(rsnew)<1e-10
              break;
        end
        p=r+(rsnew/rsold)*p;
        rsold=rsnew;
    end
end
[Evolutionary Algorithm] 进化算法简介》进行了概要式的介绍,有兴趣的博友可以进行参考(2015.12.13)。

相关