由于我在这里获得和研究的帮助,我能够在 C# 中创建一个简单的感知器,其代码如下:
int Input1 = A;
int Input2 = B;
//weighted sum
double WSum = A * W1 + B * W2 + Bias;
//get the sign: -1 for negative, +1 for positive
int Sign=Math.Sign(WSum);
double error = Desired - Sign;
//updating weights
W1 += error * Input1 * 0.1; //0.1 being a learning rate
W2 += error * Input2 * 0.1;
return Sign;
我在这里不使用 Sigmoid,只得到 -1 或 1。
我有两个问题:
1)我的权重得到 -5 等值是否正确?例如,当输入为 100,50 时,它类似于: W1+=error*100*0.1
2) 我想更深入地创建更多连接的神经元——我想我至少需要两个来为第三个提供输入。第三个将被输入值只是-1..1,这是正确的吗?我的目标是一个简单的模式识别,但到目前为止还不明白它应该如何工作。