感知器权重更新规则的直觉

Intuition for perceptron weight update rule

我无法理解 perceptrons 的权重更新规则:

w(t + 1) = w(t) + y(t)x(t).

假设我们有一个线性可分的数据集。

在迭代 t,其中 t = 0, 1, 2, ...,


为什么这个更新规则将边界向正确的方向移动?

感知器的输出是实例和权重之间点积的硬限制。让我们看看更新后情况如何变化。自

w(t + 1) = w(t) + y(t)x(t),

然后

x(t) ⋅ w(t + 1) = x(t) ⋅ w(t) + x(t) ⋅ (y(t) x(t)) = x( t) ⋅ w(t) + y(t) [x(t) ⋅ x(t))].


注意:

  • 根据算法的规范,仅当 x(t) 被错误分类时才应用更新。
  • 根据点积的定义,x(t) ⋅ x(t) ≥ 0.

这如何相对于 x(t) 移动边界?

  • 如果 x(t) 被正确分类,则算法不应用更新规则,因此没有任何变化。
  • 如果 x(t) 被错误地归类为负数,则 y(t) = 1。由此得出,新的点积增加了 x(t) ⋅ x(t)(为正)。因此,就 x(t) 而言,边界向右移动。
  • 相反,如果 x(t) 被错误分类为阳性,则 y(t) = -1。因此,新的点积减少了 x(t) ⋅ x(t)(为正)。因此,就 x(t) 而言,边界向右移动。

记录了感知器更新规则的更好推导 here and here。推导是使用梯度下降。

  • 梯度下降算法的基本前提是找到分类误差并使您的参数最小化。

PS: 我非常努力地想知道为什么有人会乘以 x 和 y 来推导 w 的更新。因为 w 是单个维度的斜率 (y = wx+c) 并且斜率 w = (y/x) 而不是 y * x.