Answers:
不能。梯度下降用于优化算法中,该算法使用梯度作为其步进运动的基础。Adam
,Adagrad
和RMSProp
都使用某种形式的梯度下降,但是它们并不能构成每个优化器。进化算法,例如粒子群优化和遗传算法,是受自然现象启发而没有使用梯度的。贝叶斯优化(Bayesian Optimization)等其他算法也从统计数据中汲取了灵感。
还有一些算法结合了来自进化和基于梯度的优化的概念。
基于非导数的优化算法在不规则非凸成本函数,不可微分成本函数或具有不同左导数或右导数的成本函数中尤其有用。
理解为什么可能会选择基于非导数的优化算法。看一下Rastrigin基准函数。基于梯度的优化不适用于具有这么多局部最小值的函数优化。
根据标题:
否。只有特定类型的优化器才基于Gradient Descent。一个直接的反例是,优化是在不确定梯度的离散空间上进行的。
根据身体:
是的。Adam,Adagrad,RMSProp和其他类似的优化器(Nesterov ,Nadam 等)都在尝试为梯度下降提出自适应步长(学习率),以在不牺牲性能的情况下提高收敛速度(即导致更小的局部最小值/最大值)。
值得注意的是,还有牛顿法,以及类似的拟牛顿法,可用于损失函数的二阶导数(梯度下降可用于一阶导数)。由于实际问题中的大量模型参数,这些方法已失去了速度可扩展性与梯度下降的权衡。
一些额外的注意事项
损失函数的形状取决于模型参数和数据,因此选择最佳方法始终取决于任务,并且需要反复试验。
梯度下降的随机部分是通过使用一批数据而不是完整数据来实现的。该技术与所有提到的方法并行,这意味着所有方法都可以是随机的(使用一批数据)或确定性的(使用全部数据)。
问题的答案可能是“否”。原因仅是由于可用的众多优化算法,但是选择一种算法很大程度上取决于上下文和进行优化的时间。例如,遗传算法是一种众所周知的优化方法,它内部没有任何梯度下降。在某些情况下,还有其他方法,例如回溯。都可以使用不逐步使用梯度下降的方法。
另一方面,对于诸如回归之类的任务,您可以找到用于解决问题的逼近形式以找到极值,但要注意的是,根据特征空间和输入数量,您可以选择接近形式方程式或梯度下降以减少计算次数。
尽管有许多优化算法,但由于多种原因,在神经网络中更多地使用了基于梯度下降的方法。首先,它们非常快。在深度学习中,您必须提供如此多的数据,以致无法将它们同时加载到内存中。因此,您必须应用批梯度方法进行优化。这是一些统计数据,但您可以考虑将带入网络的每个样本的分布与真实数据大致相似,并且可以足够有代表性地找到可以与成本函数的真实梯度接近的梯度。使用手中的所有数据来构造。
其次,对于简单的回归任务而言,使用矩阵及其极点逆的复杂度为,可以使用来找到参数。事实证明,简单的基于梯度的方法可以具有更好的性能。还应该提到的是,在前一种情况下,您必须将数据同时带到内存中,这在处理大数据任务的情况下是不可能的。
第三,存在优化问题,不一定具有封闭式解决方案。Logistic回归就是其中之一。