今天我已经看到了许多具有学习率的感知器实现。根据维基百科:
感知器算法不需要学习率。这是因为将更新乘以任何常数只会重新调整权重,但不会改变预测的符号
使用感知器实现学习率有什么好处吗?如果没有,为什么有这么多的实现有它?
今天我已经看到了许多具有学习率的感知器实现。根据维基百科:
感知器算法不需要学习率。这是因为将更新乘以任何常数只会重新调整权重,但不会改变预测的符号
使用感知器实现学习率有什么好处吗?如果没有,为什么有这么多的实现有它?
我同意Dawny33的观点,选择学习率只能缩放 w。
在训练感知器时,我们试图确定最小值,学习率的选择有助于我们确定达到该最小值的速度。如果我们选择较大的学习率值,那么我们可能会超过最小值,而较小的学习率值可能需要很长时间才能收敛。
在感知器的情况下忽略学习率是可以的,因为感知器算法保证在步数上限中找到解决方案(如果存在),在其他实现中并非如此,因此学习率成为其中的必要条件。
在感知器算法中具有学习率可能很有用,但这不是必需的。
此页面上的某些答案具有误导性。在感知器算法中,权重向量是发生错误的示例的线性组合,如果你有一个恒定的学习率,学习率的大小只会缩放权重向量的长度。决策边界取决于权重向量的方向,而不是大小,因此假设您以相同的顺序将示例输入算法(并且您具有正学习率),无论学习率如何,您都将获得相同的准确决策边界.
“超过最小值”的说法在这里不适用,因为有无限数量的具有不同大小的权重向量都是等价的,因此有无限数量的最小值。感知器算法的全部优点在于它的简单性,这使得它对学习率等超参数的敏感度低于神经网络。上面引用无限学习率的答案更多的是边缘情况而不是信息示例 - 如果您开始将事物设置为无穷大,任何机器学习算法都会中断。
话虽如此,最近有人向我指出,更复杂的学习率实现,例如 AdaGrad(为每个特征保持单独的学习率)确实可以加速收敛。
长话短说,除非您为感知器使用比单个恒定学习率更复杂的东西,否则尝试调整学习率是没有用的。