之前的实验中只有输入输出两层的简单感知机,可以通过对几条逻辑运算的输入输出情况进行训练,就能完成AND和OR的学习,但是无法对XOR运算在有限次迭代内完成训练。需要我们采用多层的网络结构,其实三层就够了,在原来的基础上,增加一个隐层。依旧用在java代码中运用Neuroph框架实现一下。
import org.neuroph.core.NeuralNetwork;
import org.neuroph.core.data.DataSet;
import org.neuroph.core.data.DataSetRow;
import org.neuroph.core.events.LearningEvent;
import org.neuroph.core.events.LearningEventListener;
import org.neuroph.core.learning.LearningRule;
import org.neuroph.nnet.MultiLayerPerceptron;
import org.neuroph.nnet.learning.BackPropagation;
import org.neuroph.util.TransferFunctionType;
import java.util.Arrays;
/**
* Created by 阿龙 on 2017/1/25.
*/
//通过实现LearningEventListener可以在handle里打印每次迭代的情况
public class CalculateXOR implements LearningEventListener{
public static void main(String args[]){
new CalculateXOR().learnXorCalc();
}
publi