我无法理解感知器的重量更新规则:
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)而言,边界向右移动.