我试图用反向传播在Java中实现FFNN,并且不知道我做错了什么.当我在网络中只有一个神经元时,它工作,但我写了另一个类来处理更大的网络,没有任何收敛.这似乎是数学中的问题 - 或者更确切地说是我对数学的实现 - 但我已经多次检查它并且我找不到任何错误.这应该有效.
节点类:
package arr;
import util.ActivationFunction;
import util.Functions;
public class Node {
public ActivationFunction f;
public double output;
public double error;
private double sumInputs;
private double sumErrors;
public Node(){
sumInputs = 0;
sumErrors = 0;
f = Functions.SIG;
output = 0;
error = 0;
}
public Node(ActivationFunction func){
this();
this.f = func;
}
public void addIW(double iw){
sumInputs += iw;
}
public void addIW(double input, double weight){
sumInputs += (input*weight);
}
public double calculateOut(){
output = …
Run Code Online (Sandbox Code Playgroud)