机器学习:初始点对优化的影响
作者头像
  • 彭珊
  • 2020-03-10 12:24:43 3

优化问题是指寻找给定方程的最小值,这一过程在实际应用中有着广泛的应用,例如路径规划、工作车间调度和空中交通管理。优化也是机器学习的核心部分,因为算法需要从大量数据中提取有用的知识。

在神经网络中,优化同样扮演着重要角色。神经网络包含数百万个参数,目标是找到一组最佳参数,以正确表示数据。尽管优化技术已经取得了显著进步,但初始点的选择仍然是一个关键因素,因为它直接影响到优化的路径。

本文旨在探讨初始点如何影响几种优化算法的表现。为了便于理解,我们使用了一个二维问题(因为容易可视化),但在实际应用中,当参数数量达到数百万时,初始点的问题变得更加复杂。

目标

本研究的目标是通过梯度下降法找到给定函数(Beale函数)的最小值。我们将探讨几种流行的优化算法,并观察它们在不同初始点下的表现。

优化算法介绍

我们将探讨三种常用的优化算法,因为我们的重点在于初始点选择:

  1. 随机梯度下降 (SGD):每次迭代只计算一个样本的梯度。
  2. 带有动量的梯度下降 (Momentum):通过考虑一段时间内梯度的变化来加速收敛。
  3. Adam:一种流行的优化算法,结合了动量和自适应学习率。

我们将使用PyTorch的自动求导功能来获取梯度,并使用Matplotlib来可视化优化轨迹。

Beale函数

Beale函数是一个在二维空间中定义的多峰非凸连续函数。其唯一全局最小值位于(3,0.5)。

可视化Beale函数

通过生成网格,我们可以将所有可能的x和y值传递给Beale函数,并将其可视化。这有助于我们更好地理解函数的形态。

输入

蓝色区域表示函数值较低,红色区域表示函数值较高。最小值(3,0.5)用星号标记。

参数设定

在使用PyTorch时,我们需要将待优化的参数封装进nn.Module类中。我们将Beale函数的公式嵌入到forward()函数中。

优化和轨迹保存

下面的函数初始化参数、优化器,并在收集参数轨迹的同时运行优化。我们将比较不同优化器和初始点的表现。

轨迹比较

我们绘制了不同优化器在不同初始点下的轨迹。通过比较这些轨迹,我们可以观察到初始点对优化效果的影响。

不同初始点的尝试

我们使用相同的初始点,但位置不同,来观察优化器的表现。结果显示,初始点的选择对优化结果有显著影响。

结论

初始点的选择对优化问题至关重要。即使是简单的二维问题,初始点也会影响优化结果。因此,在实际应用中,选择合适的初始点是实现有效优化的关键。

    本文来源:图灵汇
责任编辑: : 彭珊
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
初始优化机器影响学习
    下一篇