machine-learning - 确定梯度下降的起点
问题描述
我刚刚了解到梯度下降的起点决定了终点。所以我想知道我们如何确定到达全局最小点的正确起点,以便我们获得最小的成本函数?
解决方案
是的,对于一般的目标函数,梯度下降的起点决定了终点。这很复杂,梯度下降可能会陷入次优的局部最小值。我们能做些什么:
凸优化:如果目标是在凸域上优化的凸函数,那么事情会更好,也就是说,任何局部最小值也是全局最小值。因此,凸函数上的梯度下降不会陷入次优的局部最小值。更好的是,如果目标是严格凸的,那么(至多)存在一个全局最小值。由于这些原因,基于优化的方法经常在可能的情况下被表述为凸优化。例如,逻辑回归是一个凸优化问题。
正如 Tarik 所说,一个好的元策略是从不同的随机起始位置多次进行梯度下降。这有时被称为“随机重启”或“霰弹枪”梯度下降方法。
对基本梯度下降思想的扭曲也有助于避免局部最小值。随机梯度下降 (SGD)(以及类似的模拟退火)会产生更嘈杂的步骤。这种噪声具有累积效应,例如优化目标的平滑版本,希望在较小的山谷上平滑。另一个想法是在梯度下降或 SGD 中添加动量项,目的是使动量允许该方法通过并避开局部最小值。
最后,一种有趣且实用的态度就是放弃并接受梯度下降的解决方案可能不是最优的。局部最小解决方案可能仍然有用。例如,如果该解决方案代表神经网络的训练权重,那么真正重要的是网络在测试集上的泛化能力和表现良好,而不是在训练集上是最优的。
推荐阅读
- reactjs - React Draft-js 颜色选择器丢失了内联样式
- firebase - Firebase 将所有 URL 重定向到 index.html
- sql - Databricks 抛出错误:截断数据
- batch-file - 批量递归搜索目录中的不同文件格式
- algorithm - 如何将带有函数的中缀表达式转换为二叉树?
- python - 检查对象是否与 ManyToMany 字段和聚合字段中的其他对象有关系
- python - 特征选择的名称
- python - 提取电子邮件附件并保留修改/创建日期?
- python - 我在虚拟环境之外安装了一个包,但无法在虚拟环境中使用它
- oauth-2.0 - Azure 广告:为什么未向客户提供 optionalClaims 中的 ipaddr?