发布时间:2024-06-10 07:23:34 作者:佚名 点击量:
最优化算法为大多数机器学习算法所依赖的基础,因此为了深入理解机器学习算法,应首先了解最优化的基本算法。
“最优化要指在一定条件限制下,选取某种研究方案使目标达到最优的一种方法。”
----百度百科
本文主要从以下几个方面介绍最优化算法:
凡是提及优化算法,免不了离不开梯度,黑塞矩阵,方向导数这三个基本概念。
函数 ,则
极小值点 的一阶必要条件 (前提为函数 为一阶可微):
极小值点 的二阶必要条件 (前提为函数 为二阶可微):
极小值点的二阶充分条件 (前提为函数 为二阶可微):
为内点,若 且 (正定) ,则 为 的严格局部极小点。
负梯度方向为函数值下降最快的方向。最速下降法为每次迭代沿着负梯度方向,选取合适的步长,使得目标函数值能够得到最大程度的减小。相邻两次迭代方向垂直,即
则最速下降法的迭代公式为:
特殊情况:对于目标函数为二次型函数的情况,即 ,则 ,其中 ,则迭代公式为 。
************************************************************************
当初始点与极小值点足够接近时,牛顿法的效率比最速下降法的要高。
牛顿法的主要思想为:
通过对目标函数在 处进行泰勒展开得到二次型函数:
则此二次型函数的极小值点为其梯度为0,则 ,因此牛顿法的迭代公式为 .
由于 并不容易求,我们用解方程的方式来代替求逆,则牛顿法可以分为以下两步:
************************************************************************
共轭方向法,在效率上讲,处于最速下降法与牛顿法之间。
在描述共轭方向法之前,我们先定义共轭方向。给定 ,对于一组方向 ,若对于任意 ,都有 ,则我们说其关于 共轭。
我们基于目标函数是二次型函数,即 ,介绍基本共轭方向算法,给定关于 的共轭方向 ,以及初始点 ,具体迭代步骤如下:
但是提前给出一组共轭方向并不容易,在这种情况下,共轭梯度法(对于二次型目标函数)被提出,其不需要提前给定共轭方向。共轭梯度法的步骤如下:
************************************************************************
拟牛顿法的思路为:
因此拟牛顿法的的迭代公式为:
线性规划的标准形式为:
minimize
subject to ;
其中
对于方程 ,选择矩阵前 的前m列为基,经过简单行变换矩阵 可以使得 前m列变为单位矩阵,即 , 增广矩阵标准型:
检验数为
利用单纯性法来求解线性规划,其步骤为:
可以利用单纯形表来解决线性规划问题,举个 ,如下:
线性规划问题为:
maximize
s.t.
首先把该规划问题转化为标准形式,目标函数乘以-1,为约束1和约束2加入松弛变量,得到的单纯形表如下:
最后一行包含了检验数,-7最小,则第一列为进阶向量,利用 b 列除以 列,得到 ,则基变量中的第一个为出阶变量,则以第一行第一列为出的元素为枢纽元素得到第二个单纯形表 , 利用b列除以 列,得到 ,则第二行第二列的元素为枢纽元素,得到的单纯形表为 ,则 为线性规划的最优解,相应的目标函数的值为 。则原问题的最优解为 ,相应的目标函数值为 .
************************************************************************
对偶问题:
把形如:
minimize
subject to ;
转化为:
maximize
subject to ;
目标值相同
************************************************************************
拉格朗日条件是为了解决等式约束优化。
问题描述:
minimize
subject to
正则点:对于满足约束 的点 ,如果梯度向量 线性无关,则称点 为该约束的一个正则点。
已知
拉格朗日定理:
为 的极值点,且为正则点,则存在 ,使得
极小值点存在二阶必要条件和充分条件。
************************************************************************
KKT条件为了解决不等式优化问题。
问题描述如下:
minimize
subject to
对于不等式优化问题,其约束的正则点 为令等式以及在 处起作用的不等式的梯度线性无关的点。在 处起作用的不等式 满足 , 在 处不起作用的不等式 满足 。
KKT条件:设 为正则点以及局部极小点,则存在 和 使得
************************************************************************
若在介绍KKT条件中描述的问题的目标函数 为凸函数, 且约束条件构成的可行域 为凸集。若存在存在 , 和 使得:
则 是 在 上的全局极小点。
以上即为最优化的基础算法,敬请批评指正。
联系我们
contact us地址:广东省广州市天河区88号
电话:400-123-4567
点击图标在线留言,我们会及时回复