梯度下降是机器学习中最重要的思想之一:给定一些要最小化的成本函数,算法迭代地采取下降斜率最大的步骤,理论上在达到最小值之后足够的迭代次数。梯度下降于1847年由Cauchy首次发现,并于1944年在HaskellCurry上得到扩展,用于非线性优化问题,梯度下降已用于从线性回归到深度神经网络的各种算法中。虽然梯度下降及其重新利用的反向传播形式是机器学习中最大的突破之一,但神经网络的优化仍然是一个未解决的问题。网上很多人都愿意宣称“梯度下降很烂”,虽然可能有些牵强,但梯度下降确实存在很多问题。优化器陷入了足够深的局部最小值。不可否认,有时这些问题有巧妙的解决方案,例如动量,它允许优化器走过大山。随机梯度下降;或批量归一化,从而平滑误差空间。然而,局部最小值仍然是神经网络中许多分支问题的根本原因。因为优化器对局部极小值非常感兴趣,所以即使设法摆脱它也需要很长时间。梯度下降通常是一种冗长的方法,因为它的收敛速度很慢,即使在针对大型数据集(如批量梯度下降)进行调整时也是如此。梯度下降对优化器的初始化特别敏感。例如,如果优化器在第二个局部最小值附近而不是第一个局部最小值附近初始化,性能可能会好得多,但这都是随机确定的。学习率决定了优化器的置信度和风险。将学习率设置得太高会导致它忽略全局最小值,而学习率太低会导致运行时中断。为了解决这个问题,学习率随着迭代而衰减,但是在许多指示学习率的变量中选择衰减率是困难的。梯度下降需要梯度,这意味着除了无法处理不可微函数外,还容易出现基于梯度的问题,例如梯度消失或爆炸问题。梯度下降当然已经被广泛研究,并且提出了很多建议的解决方案,其中一些是GD的变体,而另一些则是基于网络架构。仅仅因为梯度下降被高估并不意味着它不是目前可用的最佳解决方案。即使使用批量归一化来平滑错误空间或选择像Adam或Adagrad这样复杂的优化器,这些常识也不是本文的重点,尽管它们通常表现更好。相反,本文的目的是为一些晦涩的确定性有趣优化方法提供一些当之无愧的信息,这些方法不适合标准的基于梯度的方法,这些方法不同于用于提高该方法性能的任何其他方法。同样的技术。神经网络在某些情况下表现异常出色,而在其他情况下则表现不佳。无论他们在特定任务上的表现如何,它们都是机器学习未来的迷人、创造性和有前途的研究领域。粒子群优化(PSO)粒子群优化是一种基于种群的方法,它定义了一组探索搜索空间并尝试找到最小值的“粒子”。PSO根据某些质量指标迭代改进候选解决方案。它通过拥有大量潜在的解决方案(“粒子”)并根据简单的数学规则(例如粒子的位置和速度)移动它们来解决问题。每个粒子的运动受到它认为最好的局部位置的影响,但也受到最知名的搜索位置(由其他粒子找到)的影响。从理论上讲,种群经过多次迭代才能得出最佳解决方案。来源:维基百科PSO是一个有趣的想法——它对初始化的敏感度远低于神经网络,粒子间的通信在一些发现上可能被证明是搜索稀疏和大面积区域的非常有效的方法。因为粒子群优化不是基于梯度的(喘息!),优化问题不需要是可微的。因此,使用PSO优化神经网络或任何其他算法将对激活函数或其他函数中的等效角色的选择具有更大的自由度和更低的敏感性。此外,它对优化问题做的假设很少,甚至可以搜索大空间。基于群体的方法可以想象比基于梯度的优化器在计算上要昂贵得多,但它们不一定是。由于该算法是如此开放和非刚性——正如基于进化的算法通常那样——人们可以控制粒子的数量、它们移动的速度、全球共享的信息量等等。就像一个人可能会调整神经网络中的学习率一样。代理优化是一种优化方法,它试图用另一个公认的函数对损失函数进行建模以找到最小值。该技术从损失函数中采样“数据点”,这意味着它尝试不同的参数值(x)并存储损失函数的值(y)。收集到足够数量的数据点后,代理函数(在本例中为7次多项式)适用于收集到的数据。因为寻找多项式的最小值是一个经过充分研究的主题,并且存在许多使用导数寻找多项式的全局最小值的非常有效的方法,我们可以假设代理函数的全局最小值与损失函数相同.代理优化在技术上是一种非迭代方法,尽管代理功能的训练通常是迭代的。此外,它在技术上是一种无梯度方法,尽管用于查找建模函数的全局最小值的有效数学方法通常基于导数。然而,由于迭代和基于梯度的属性都是代理优化的“次要”属性,因此它可以处理大数据和不可微优化问题。使用替代函数的优化具有以下特点:它本质上平滑了真实损失函数的表面,从而减少了导致神经网络大量额外训练时间的锯齿状局部最小值。它将一个困难的问题投射到一个更容易的问题上:无论是多项式、RBF、GP、MARS还是其他替代模型,寻找全局最小值的任务都是在数学的帮助下完成的。过度拟合代理模型并不是什么大问题,因为即使存在相当大的过度拟合,代理函数也比真正的损失函数更平滑和锯齿状。除了建立简化的数学倾向模型之外,还有许多其他标准考虑因素,因此训练替代模型要容易得多。替代优化不受当前位置的限制,因为它看到的是“整个函数”,这与梯度下降相反,梯度下降必须不断做出危险的选择,即是否认为下一座山有更深的最小值。替代优化几乎总是比梯度下降法更快,但通常以牺牲准确性为代价。使用代理优化可能只能精确定位全局最小值的大致位置,但这仍然有很大的好处。另一种方法是混合模型。替代优化用于将神经网络参数带到一个粗略的位置,从中可以使用梯度下降找到精确的全局最小值。另一种方法是使用替代模型来指导优化器的决策,因为替代函数可以a)“有先见之明”和b)对损失函数的特定波动不敏感。模拟退火模拟退火基于冶金退火的概念,其中可以将材料加热到其再结晶温度以上以降低其硬度并改变其他物理和化学性质,然后让材料逐渐冷却并再次硬化。使用缓慢冷却的概念,模拟退火在探索解决方案空间时缓慢降低接受较差解决方案的可能性。由于接受较差的解决方案允许更广泛地搜索全局最小值(思考-越过山丘进入更深的山谷),模拟退火假设在第一次迭代中正确表示和探索了可能性。随着时间的推移,算法从探索走向发展。以下是模拟退火算法工作原理的粗略概述:温度设置为某个初始正值,然后逐渐接近零。在每个时间步,算法随机选择一个接近当前解决方案的解决方案,测量其质量,并根据当前温度(接受更好或更差解决方案的概率)移动到该解决方案。理想情况下,当温度达到零时,算法已收敛到全局最小解。可以使用动力学方程或随机抽样方法进行模拟。模拟退火用于解决旅行商问题,该问题试图找到数百个位置之间的最短距离,以数据点表示。显然,组合是无穷无尽的,但是模拟退火(加上强化学习的效果)效果很好。旅行商问题的模拟退火求解。来源:Wiki模拟退火在需要在短时间内找到近似解的情况下效果特别好,优于慢速梯度下降。与代理优化一样,它可以与梯度下降混合,使其具有模拟退火的速度和梯度下降的准确性的优势。这是一些非梯度方法的示例;还有许多其他算法需要探索,例如模式搜索和多目标优化。鉴于我们在人类遗传方面取得成功的证据,基于遗传和种群的算法(例如粒子群优化)非常有希望用于创建真正的“智能”代理。非梯度优化方法很吸引人,因为它们中的许多都利用了创造力而不受梯度数学链的约束。没有人预料到无梯度方法会成为主流,因为基于梯度的优化可以做得很好,即使考虑到很多问题。然而,利用混合优化器的无梯度和基于梯度方法的力量显示出极高的潜力,尤其是在我们达到计算极限的时代。
