【问题标题】:Perceptron training rule, why multiply by x感知器训练规则,为什么要乘以 x
【发布时间】:2018-10-30 08:10:34
【问题描述】:

我在看 Tom Mitchell 的机器学习书,他提到感知器训练规则的公式是

在哪里

  • : 训练率
  • :预期输出
  • :实际输出
  • : 我的输入

这意味着如果 很大,那么 也很大,但是当 很大时,我不明白大更新的目的

相反,我觉得如果很大,那么更新应该很小,因为的小幅波动会导致最终输出的大变化(由于

【问题讨论】:

    标签: machine-learning neural-network perceptron


    【解决方案1】:

    调整是向量加减法,可以认为是旋转超平面,使0 类落在一个部分,1 类落在另一部分。

    考虑一个1xd 权重向量,表示感知器模型的权重。另外,考虑1xd 数据点。那么在不失一般性的情况下,考虑线性阈值的感知器模型的预测值将是

    -- 等式。 1

    这里是“。”是点积,或

    上面方程的超平面是

    (为简单起见,忽略权重更新的迭代索引)

    假设我们有两个类01,同样不失一般性,标记为0 的数据点落在超平面的Eq.1 0 的另一边。

    这个超平面法线的向量是。标签为0 的数据点之间的角度应大于90 度,标签为1 的数据点之间的数据点应小于90 度。

    有三种可能(忽略训练率)

    • :暗示这个例子被当前的权重集正确分类。因此,我们不需要对特定数据点进行任何更改。
    • 暗示目标是1,但目前的权重集将其分类为0。方程 1。 应该是 。方程1。在这种情况下是,这表明 之间的角度大于 90 度,应该更小。更新规则为。如果您想像在 2d 中添加向量,这将旋转超平面,使 之间的角度比以前更近且小于90 度。
    • 暗示目标是0,但目前的权重集将其分类为1。 eq1。 应该是 。方程1。在这种情况下是 表示 之间的角度小于 90 度,应该更大。更新规则为。同样,这将旋转超平面,使 之间的角度大于90 度数。

    这被反复迭代,超平面被旋转和调整,以使超平面法线的角度小于90度与类标记为1的数据点和大于90度与数据点标记为0 的类。

    如果的量级很大,就会有很大的变化,因此在过程中会出现问题,并且可能需要更多的迭代才能收敛,具体取决于初始权重的大小。因此,标准化或标准化数据点是一个好主意。从这个角度来看,很容易直观地看到更新规则在做什么(将偏差视为超平面 Eq.1 的一部分)。现在将其扩展到更复杂的网络和/或具有阈值。

    推荐阅读和参考:Neural Network, A Systematic Introduction by Raul Rojas:第四章

    【讨论】:

    • 非常感谢,矢量直觉比 Tom Mitchel 写的更有意义
    • 当您的数据集未标准化时,我认为基于梯度的解释可以通过权重在您的误差表面中如何进行来可视化。这可能会导致振荡。虽然我也觉得向量解释在更复杂的网络中更容易理解和抽象扩展。
    猜你喜欢
    • 2016-03-02
    • 2013-01-03
    • 2021-09-07
    • 2019-08-19
    • 2013-12-23
    • 2017-05-10
    • 2014-11-04
    • 2017-07-16
    • 2023-03-29
    相关资源
    最近更新 更多