感知器权重更新规则的直觉
Posted
技术标签:
【中文标题】感知器权重更新规则的直觉【英文标题】:Intuition for perceptron weight update rule 【发布时间】:2016-04-01 09:02:06 【问题描述】:我无法理解perceptrons 的权重更新规则:
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)。为什么这个更新规则会向正确的方向移动边界?
【问题讨论】:
【参考方案1】:感知器更新规则的更好推导记录在 here 和 here 中。推导是使用梯度下降。
梯度下降算法的基本前提是找到分类的误差,使你的参数最小化。PS: 我非常努力地想知道为什么有人将 x 和 y 相乘以得出 w 的更新。因为 w 是单个维度的斜率 (y = wx+c) 并且斜率 w = (y/x) 而不是 y * x。
【讨论】:
【参考方案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) 而言,边界向正确的方向移动。【讨论】:
你能把最后一句话扩大一点吗?当 x(t) 被分类而 x(t) 被错误分类时会发生什么?以上是关于感知器权重更新规则的直觉的主要内容,如果未能解决你的问题,请参考以下文章