Answers:
与使用的方法相比,将函数最小化要解决的问题更多。如果找到真正的全局最小值很重要,则应使用诸如模拟退火的方法。这样就可以找到全局最小值,但是可能要花很长时间。
在神经网络的情况下,局部极小值不一定是一个大问题。某些局部最小值是由于您可以通过置换隐藏层单位或取消网络的输入和输出权重等来获得功能相同的模型。此外,如果局部最小值仅略微不是最优的,则性能上的差异将很小,因此并不重要。最后,这是很重要的一点,拟合神经网络的关键问题是过度拟合,因此,积极地寻找成本函数的全局最小值可能会导致过度拟合,并且模型效果不佳。
添加正则化项(例如权重衰减)可以帮助平滑成本函数,从而可以稍微减少局部极小值的问题,无论如何,我还是建议您将其作为避免过度拟合的一种方法。
但是,在神经网络中避免局部最小值的最佳方法是使用高斯过程模型(或径向基函数神经网络),该模型对局部最小值的问题较少。
梯度下降是一种优化算法。
有许多优化算法可以对固定数量的相关实数进行运算(不可分离)。我们可以将它们大致分为两类:基于梯度的优化器和无导数优化器。通常,您要使用梯度在有监督的设置中优化神经网络,因为它比无导数优化快得多。有许多基于梯度的优化算法已用于优化神经网络:
提出了许多其他用于神经网络优化的算法,您可以使用Google进行免费的Hessian优化或v-SGD(有许多类型的SGD具有自适应学习率,请参见此处)。
NN的优化不是解决的问题!以我的经验,最大的挑战不是找到一个好的本地最小值。但是,面临的挑战是摆脱非常平坦的区域,处理不良条件的误差函数等。这就是为什么LMA和其他使用Hessian近似值的算法在实践中通常能很好地工作并且人们尝试开发随机版本的原因使用低复杂度的二阶信息。但是,微批处理SGD经常需要对参数集进行很好的调整,比任何复杂的优化算法都要好。
通常,您不想找到全局最优值。因为这通常需要过度拟合训练数据。
梯度下降的一个有趣的替代方法是基于种群的训练算法,例如进化算法(EA)和粒子群优化(PSO)。基于总体的方法背后的基本思想是创建总体的候选解决方案(NN权向量),并且候选解决方案迭代地探索搜索空间,交换信息并最终收敛于最小值。因为使用了许多起点(候选解决方案),所以收敛于全局最小值的机会大大增加了。在复杂的NN训练问题上,PSO和EA表现出极强的竞争力,通常(尽管不总是)胜过梯度下降。
我知道这个线程已经很老了,其他人在解释局部极小值,过拟合等概念方面做得很出色。但是,由于OP正在寻找一种替代解决方案,因此我将尽自己的一份力量,并希望它能激发出更多有趣的想法。
想法是将每个权重w替换为w + t,其中t是遵循高斯分布的随机数。然后,网络的最终输出是所有t值上的平均输出。这可以通过分析来完成。然后,您可以使用梯度下降或LMA或其他优化方法来优化问题。优化完成后,您将有两个选择。一种选择是减少高斯分布中的sigma并一次又一次地进行优化,直到sigma达到0,然后您将获得更好的局部最小值(但可能会导致过度拟合)。另一个选择是继续使用权重为随机数的那个,它通常具有更好的泛化属性。
第一种方法是优化技巧(我称其为卷积隧道,因为它使用对参数的卷积来更改目标函数),它使成本函数格局的表面变得平滑并摆脱了一些局部最小值,因此使查找全局最小值(或更好的局部最小值)更加容易。
第二种方法与噪声注入(权重)有关。注意,这是通过分析完成的,这意味着最终结果是一个单一的网络,而不是多个网络。
以下是两螺旋问题的示例输出。这三个网络的网络架构都是相同的:只有一个隐藏层,包含30个节点,输出层是线性的。使用的优化算法是LMA。左图为香草设置。中间是使用第一种方法(即反复将sigma减小为0);第三是使用sigma = 2。
您会看到,最原始的解决方案是最差的,卷积隧穿效果更好,而噪声注入(使用卷积隧穿)则是最好的(就泛化属性而言)。
卷积隧穿和噪声注入的解析方式都是我的初衷。也许他们是其他人可能感兴趣的选择。有关详细信息,请参见我的论文《将无穷多个神经网络合并为一个》。警告:我不是专业的学术作家,论文未经同行评审。如果您对我提到的方法有疑问,请发表评论。