最优化理论(optimization)研究的问题是判定给定目标函数的最大值(最小值)是否存在,并找到令目标函数取到最大值(最小值)的数值。
目标函数(objective function)或评价函数,大多数最优化问题都可以通过使目标函数 最小化解决,最大化问题则可以通过最小化 实现。
全局最小值(global minimum),也可能找到局部极小值(local minimum),两者的区别在于全局最小值比定义域内所有其他点的函数值都小;而局部极小值只是比所有邻近点的函数值都小。
无约束优化(unconstrained optimization)和约束优化(constrained optimization)两类。无约束优化对自变量的取值没有限制,约束优化则把 的取值限制在特定的集合内,也就是满足一定的约束条件。
线性规划(linear programming)就是一类典型的约束优化,其解决的问题通常是在有限的成本约束下取得最大的收益。约束优化问题通常比无约束优化问题更加复杂,但通过拉格朗日乘子(Lagrange multiplier)的引入可以将含有个变量和 个约束条件的问题转化为含有 个变量的无约束优化问题。拉格朗日函数最简单的形式如下:
为目标函数, 则为等式约束条件,是拉格朗日乘数。从数学意义上讲,由原目标函数和约束条件共同构成的拉格朗日函数与原目标函数具有共同的最优点集和共同的最优目标函数值,从而保证了最优解的不变性。
梯度下降法(gradient descent)。直观地说,梯度下降法就是沿着目标函数值下降最快的方向寻找最小值。在数学上,梯度的方向是目标函数导数(derivative)的反方向。
多元函数沿其负梯度方向下降最快”,这也是梯度下降法的理论依据。
步长,也就是每次更新 ʱ 的变化值。较小的步长会导致收敛过程较慢,当接近最小值点时,步长太大反而会导致一步迈过最小值点。
批处理模式(batch processing),即计算出在每个样本上目标函数的梯度,再将不同样本的梯度进行求和,求和的结果作为本次更新中目标函数的梯度。在批处理模式中,每次更新都要遍历训练集中所有的样本,因而运算量较大。
随机梯度下降法(stochastic gradient descent),它在每次更新中只使用一个样本,下一次更新再使用另外一个样本,在不断迭代的更新过程中实现对所有样本的遍历。事实表明当训练集的规模较大时,随机梯度下降法的性能更佳。
一阶导数描述的是目标函数如何随输入的变化而变化,二阶导数描述的则是一阶导数如何随输入的变化而变化,提供了关于目标函数曲率(curvature)的信息。曲率影响的是目标函数的下降速度。当曲率为正时,目标函数会比梯度下降法的预期下降得更慢;反之,当曲率为负时,目标函数则会比梯度下降法的预期下降得更快。
牛顿法(Newton’s method)。在牛顿法中,目标函数首先被泰勒展开,写成二阶近似的形式(相比之下,梯度下降法只保留了目标函数的一阶近似)。此时再对二阶近似后的目标函数求导,并令其导数等于 0,得到的向量表示的就是下降最快的方向。相比于梯度下降法,牛顿法的收敛速度更快。
“线性搜索方法”(line search)。
“置信域方法”(trust region)。
,并在以当前点为中心、以 为半径的封闭球形区域作为置信域,在置信域内寻找目标函数的二次近似模型的最优点,最优点和当前点之间的距离就是计算出来的备选位移。
启发式算法”(heuristics)的最优化方法。
模拟生物进化规律的遗传算法(genetic algorithm)、模拟统计物理中固体结晶过程的模拟退火算法(simulated annealing)、模拟低等动物产生集群智能的蚁群算法(ant colony optimization)等等。