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

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

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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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