本质上,机器学习涉及为一组参数找到最佳值,这些参数将通过最小化成本函数或最大化奖励函数。为此,通常会依赖优化算法,而CMA-ES和BFGS就是主流的两种优化。
接下来我们就来了解下优化算法,基于梯度的优化算法使用成本函数的梯度来调整模型的参数。梯度基本上是成本函数相对于每个参数的偏导数向量。通过观察梯度,我们可以看出成本函数在哪个方向变化,变化的速度有多快。
一种常见的基于梯度的优化算法是梯度下降。在该方法中,算法在负梯度的方向上更新参数以向最小的成本函数移动。我们用学习率控制步长,以此知道算法对梯度的信任程度。
梯度下降有不同的变体,如随机梯度下降(SGD)和小批量梯度下降。这些方法使用随机抽样来估计梯度,在处理高维函数时很有用。
而CMA-ES是一种使用进化策略的随机优化算法。CMA-ES不是专注于单一解决方案,而是维护随着时间的推移不断发展的候选解决方案。它通过使用捕获参数之间相关性的协方差矩阵来估计成本函数的梯度。通过使用协方差矩阵,该算法可以生成新的候选解决方案,这些候选解决方案有望产生最佳解决方案。
BFGS是一种确定性优化算法,可更新Hessian矩阵的近似值。Hessian矩阵是成本函数关于参数的二阶偏导数矩阵。BFGS在优化参数很少的平滑函数时特别有用。
总之,CMA-ES和BFGS都是数值优化算法,它们使用梯度或Hessian矩阵的近似值来指导搜索成本函数的最小值或最大值。这些方法常用于机器学习等领域,用于训练模型和优化目标函数。