经典优化算法

无约束优化算法

假设求解\(\min L(\theta)\)\(L(\cdot)\)光滑

直接法

  • 两个条件
    • 函数是凸函数
    • 一阶导数为零等式有闭式解

迭代法

假设优化问题为\(\begin{aligned} \delta_t = \mathop{\arg \min}_{\delta} L(\theta_t+\delta) \end{aligned}\),其中\(\theta_t\)是参数

一阶法

  • 对函数\(L(\theta_t+\delta)​\)做一阶泰勒展开,得到近似式\(L(\theta_t+\delta) \approx L(\theta_t) + \nabla L(\theta)^T \delta​\)

  • 由于该近似式只有在\(\delta\)较小时才比较准确,因此在求解\(\delta_t\)时一般加上\(L_2\)正则项

    \[\begin{aligned} \delta_t & = \mathop{\arg \min}_{\delta} \left( L(\theta_t) + \nabla L(\theta_t)^T\delta + \frac{1}{2\alpha}||\delta||^2_2 \right) \\ & = -\alpha \nabla L(\theta_t) \end{aligned}​\]

  • 一阶法的迭代公式为

    \[\theta_{t+1} = \theta_t - \alpha \nabla L(\theta_t)\]
    其中\(\alpha\)为学习率

  • 也称为梯度下降法,梯度就是目标函数的一阶信息

二阶法

  • 对函数\(L(\theta_t+\delta)​\)做二阶泰勒展开,得到近似式\(L(\theta_t+\delta) \approx L(\theta_t) + \nabla L(\theta)^T \delta + \frac{1}{2}\delta^T \nabla ^2 L(\theta^T)\delta​\)

  • 其中\(\nabla^2 L(\theta_t)\)是函数在\(\theta_t\)处的Hessian矩阵。通过求解近似优化问题

    \[\begin{aligned} \delta_t & = \mathop{\arg \min}_{\delta} \left( L(\theta_t) + \nabla L(\theta_t)^T\delta + \frac{1}{2}\delta^T \nabla ^2 L(\theta^T)\delta \right) \\ & = -\nabla^2 L(\theta_t)^{-1}\nabla L(\theta_t) \end{aligned}\]

  • 二阶法的迭代公式为

    \(\theta_{t+1} = \theta_t - \nabla^2 L(\theta)^{-1} \nabla L(\theta_t)\)

  • 也称为牛顿法,Hessian矩阵就是目标函数的二阶信息

  • 收敛速度快于一阶法,但在高维情况下,Hessian矩阵求逆计算复杂度很大

  • 而且当目标函数非凸时,可能收敛到鞍点

  • 改进:拟牛顿法,如BFGS算法

猜你喜欢

转载自www.cnblogs.com/weilonghu/p/11922492.html