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

jos*_*nes 11 algorithm machine-learning perceptron

我无法理解感知器的重量更新规则:

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

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

  • w是一组权重[w0,w1,w2,...],其中w0是偏差.
  • x是一组输入参数[x0,x1,x2,...],其中x0固定为1以适应偏差.

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

  • w(t)是迭代t的权重集.
  • x(t)是错误分类的训练示例.
  • y(t)x(t)的目标输出(-1或1).

为什么此更新规则会在正确的方向上移动边界?

Ami*_*ory 15

感知器的输出是实例和重量之间的点积的硬限制.让我们看看更新后这种情况如何变化.以来

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)而言,边界向右移动.