【发布时间】:2016-03-02 19:10:18
【问题描述】:
我正在尝试使用 delta 训练规则为 AND 布尔函数训练感知器。但即使在收敛之后,它也会错误地对输入进行分类(实际上是 1 个输入)。你能告诉我我哪里错了吗:http://ideone.com/CDgTQE
这是使用的训练函数:
public void trianWithDelta(Example[] examples){
for(int i=0;i<1000;++i){
dw1 = 0;
dw2 = 0;
for(Example ex:examples){
double o = computeOutput(ex);
double t = ex.o;
dw1 = dw1 + n*(t-o)*ex.x1;
dw2 = dw2 + n*(t-o)*ex.x2;
}
w1 += dw1;
w2 += dw2;
}
}
训练示例(布尔 AND):
Example[] examples = new Example[]{
new Example(-1, -1, -1),
new Example(-1 , 1, -1),
new Example( 1, -1, -1),
new Example( 1, 1, 1)
};
结果: w1:0.49999999999999994 w2:0.5000000000000002
训练后使用训练样例进行测试:
-1
1(不正确)
-1
1
【问题讨论】:
标签: java machine-learning perceptron