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

我对感知器的权重更新规则感到困惑:

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)。

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


回答:

感知器的输出是实例与权重之间点积的硬限制。让我们看看更新后这会如何变化。因为

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) 而言,边界朝正确的方向移动了。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注