验证感知器学习示例

Verifying a Perceptron Learning Example

我试图通过一位教授举的例子来理解 perceptron learning algorithm。这是我的理解。谁能看看我的理解是否正确?

假设我有输入

x1 x2 结果(y)

1 3 +1

-1 -2 -1

1 -1 1

-2 1 -1

现在我使用下面的算法来获取权重

w0=0

1)y1(w0x1)<=0

因此 w1=w0+y1*x1=[1,3]

2)y2(w1,x2)<=0

因此 w2=w1+y2*x2=[3,-1]

3)y3(w2,x2)>=0

因此没有迭代

4)y4(w2,x4)<=0

因此 w3=w2+y4*x4=[5,-2]

因此现在我的体重是

x1 x2 结果(y)权重

1 3 +1 [1,3]

-1 -2 -1 [3,-1]

1 -1 1 [3,-1]

-2 1 -1 [5,2]

我的理解正确吗?或者我在进行迭代时错误地选择了权重。

看起来你做的是正确的,但是有很多评论:

  1. 你声明,最初,w0 = 0。这没有多大意义,因为您稍后将其添加到维度 2 的向量中。我猜您的意思是 w0 = [0, 0].

  2. 仅供参考:

    1. 更通用的感知器学习算法不会 add/subtract 错误分类的实例,而是针对乘以一些 0 < α ≤ 1[= 的缩放版本执行此操作30=]。您上面的算法使用 α = 1.

    2. 人为地在感知器输入前加上常数项 1 是很常见的。因此,如果原始输入是维度 2 的向量,您将处理维度 3 的向量,其中每个向量的第一项是 1。