我试图通过教授提供的例子来理解perceptron learning algorithm。这是我的理解。任何人都可以检查我的理解是否正确?
假设我有输入
x1 x2 result(y)
1 3 +1
-1 -2 -1
1 -1 1
-2 1 -1
现在我使用以下算法来获得权重
W0 = 0
1)Y1(w0x1)LT; = 0
因此w1 = w0 + y1 * x1 = [1,3]
2)Y 2(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]
我的理解是正确的吗?或者我在进行迭代时错误选择权重/错误。
答案 0 :(得分:1)
看起来你所做的是正确的,但有很多评论:
您说,最初, w0 = 0 。这没有多大意义,因为您稍后将其添加到维度2的向量中。我猜你的意思是 w0 = [0,0] 。
供参考:
更通用的感知器学习算法不会添加/减去错误分类的实例,而是针对缩放版本乘以某些 0< α≤1。上面的算法使用α= 1 。
通常人为地在感知器输入前加上一个恒定的1项。因此,如果原始输入是维度2的向量,则您将使用维度为3的向量,其中每个向量的第一项为1.