【问题标题】:Elman network not stop艾尔曼网络不停歇
【发布时间】:2015-01-06 08:08:46
【问题描述】:

我对 XOR 运算符的 Elman 网络训练并没有停止,它运行了数百万次迭代。任何帮助将不胜感激!

包 org.encog.example; 导入 org.encog.Encog; 导入 org.encog.engine.network.activation.ActivationSigmoid; 导入 org.encog.ml.train.MLTrain; 导入 org.encog.neural.data.NeuralDataSet; 导入 org.encog.neural.data.basic.BasicNeuralDataSet; 导入 org.encog.neural.networks.BasicNetwork; 导入 org.encog.neural.networks.training.propagation.back.Backpropagation; 导入 org.encog.neural.pattern.ElmanPattern; 公共类 XORRNN { // 4行2列 公共静态双 XOR_INPUT[][] = { { 0.0, 0.0 }, { 1.0, 0.0 }, { 0.0, 1.0 }, { 1.0, 1.0 } }; // 4行1列 公共静态双 XOR_IDEAL[][] = { { 0.0 }, { 1.0 }, { 1.0 }, { 0.0 } }; 公共静态无效主要(字符串[]参数){ //创建Elman RNN ElmanPattern elmanPattern = new ElmanPattern(); elmanPattern.setInputNeurons(2); elmanPattern.addHiddenLayer(4); elmanPattern.setOutputNeurons(1); elmanPattern.setActivationFunction(new ActivationSigmoid()); BasicNetwork 网络 = (BasicNetwork) elmanPattern.generate(); //读取训练数据 NeuralDataSet trainingSet = new BasicNeuralDataSet(XOR_INPUT, XOR_IDEAL); //设置训练方法 MLTrain train = new Backpropagation(network, trainingSet, 0.000001, 0.0); //训练 整数时代 = 1; 做{ 训练.迭代(); System.out.println("迭代:" + epoch + ",错误:" + train.getError()); 纪元++; }while(train.getError() > 0.01); //关掉 Encog.getInstance().shutdown(); } }

【问题讨论】:

    标签: java machine-learning neural-network encog


    【解决方案1】:

    如果您想训练非时间序列的东西,请尝试使用前馈神经网络。使用 Elman 和仅 4 个训练集元素,您不会非常成功。如果您想了解如何为 Elman 构造 XOR 数据的示例,请参阅以下内容:

    https://github.com/encog/encog-java-examples/blob/master/src/main/java/org/encog/examples/neural/recurrent/elman/ElmanXOR.java

    【讨论】:

    • 感谢您提及“时间序列”。
    猜你喜欢
    • 2016-11-26
    • 2010-12-02
    • 1970-01-01
    • 2011-03-23
    • 2011-01-05
    • 1970-01-01
    • 2010-10-15
    • 1970-01-01
    • 2018-10-25
    相关资源
    最近更新 更多