感知器学习率

数据挖掘 神经网络 感知器
2021-09-18 10:24:03

今天我已经看到了许多具有学习率的感知器实现。根据维基百科

感知器算法不需要学习率。这是因为将更新乘以任何常数只会重新调整权重,但不会改变预测的符号

使用感知器实现学习率有什么好处吗?如果没有,为什么有这么多的实现有它?

4个回答

我同意Dawny33的观点,选择学习率只能缩放 w。

在训练感知器时,我们试图确定最小值,学习率的选择有助于我们确定达到该最小值的速度。如果我们选择较大的学习率值,那么我们可能会超过最小值,而较小的学习率值可能需要很长时间才能收敛。

在感知器的情况下忽略学习率是可以的,因为感知器算法保证在步数上限中找到解决方案(如果存在),在其他实现中并非如此,因此学习率成为其中的必要条件。

在感知器算法中具有学习率可能很有用,但这不是必需的。

关于单层感知器(例如,如维基百科中所述),对于每个初始权重向量w0 和训练率 η>0, 你可以选择 w0'=w0ηη'=1.

对于相同的训练集,训练一个感知器 w0,η 与训练相同 w0',η', 在某种意义上说:

  • 两个感知器都会犯完全相同的错误。
  • 在每一个错误之后,每个感知器都会更新 w 这样它将定义与另一个感知器相同的超平面。
  • 在收敛之前,两个感知器都会犯相同数量的错误。

(有关部分证明和代码示例,请参见此处。)


因此,万一 w0=0,学习率根本不重要,以防万一w00,学习率也无关紧要,只是它决定了感知器从哪里开始寻找合适的w.

因此,尽管调整学习率可​​能有助于加快许多其他学习算法的收敛速度,但在单层感知器的简单版本的情况下却无济于事。

学习率 m 的选择无关紧要,因为它只是改变了 w 的缩放比例。

我同意这只是w由学习率完成的缩放。

话虽如此,正如我在这个答案中解释的那样,学习率的大小确实在感知器的准确性中发挥了作用。

此页面上的某些答案具有误导性。在感知器算法中,权重向量是发生错误的示例的线性组合,如果你有一个恒定的学习率,学习率的大小只会缩放权重向量的长度。决策边界取决于权重向量的方向,而不是大小,因此假设您以相同的顺序将示例输入算法(并且您具有正学习率),无论学习率如何,您都将获得相同的准确决策边界.

“超过最小值”的说法在这里不适用,因为有无限数量的具有不同大小的权重向量都是等价的,因此有无限数量的最小值。感知器算法的全部优点在于它的简单性,这使得它对学习率等超参数的敏感度低于神经网络。上面引用无限学习率的答案更多的是边缘情况而不是信息示例 - 如果您开始将事物设置为无穷大,任何机器学习算法都会中断。

话虽如此,最近有人向我指出,更复杂的学习率实现,例如 AdaGrad(为每个特征保持单独的学习率)确实可以加速收敛。

长话短说,除非您为感知器使用比单个恒定学习率更复杂的东西,否则尝试调整学习率是没有用的。