gpt4 book ai didi

java - Encog 神经网络总是给出不一致的结果

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:52:19 25 4
gpt4 key购买 nike

我是机器学习和 Encog 的新手,但我希望 Encog 至少能从示例中给出一致的结果,以帮助我更轻松地了解 Encog。对我来说,Encoge 每次运行时都会给出不同的方向结果。

谁能帮助我更好地理解这是为什么?下面是正在使用的一些修改后的示例代码。

方向正确:10/25

方向正确:8/25

方向正确:6/25

...

    public class MainPredict {
public static void main(String[] args) {

Co.println("--> Main Predict");

final MarketLoader marketLoader = new YahooFinanceLoader();
final MarketMLDataSet marketDataSet = new MarketMLDataSet(marketLoader, Config.INPUT_WINDOW, Config.PREDICT_WINDOW);
final MarketDataDescription marketDataDescription = new MarketDataDescription(Config.TICKER, MarketDataType.adjusted_close, true, true);
marketDataSet.addDescription(marketDataDescription);

Calendar end = new GregorianCalendar();// end today
Calendar begin = (Calendar) end.clone();// begin 30 days ago
begin.add(Calendar.DATE, -60);
end.add(Calendar.DATE, -60);
begin.add(Calendar.YEAR, -2);

marketDataSet.load(begin.getTime(), end.getTime());
marketDataSet.generate();

BasicNetwork basicNetwork = EncogUtility.simpleFeedForward(marketDataSet.getInputSize(), Config.HIDDEN1_COUNT, Config.HIDDEN2_COUNT, marketDataSet.getIdealSize(), true);

ResilientPropagation resilientPropagation = new ResilientPropagation(basicNetwork, marketDataSet);
resilientPropagation.setRPROPType(RPROPType.iRPROPp);

// EncogUtility.trainToError(resilientPropagation, 0.00008);
EncogUtility.trainConsole(basicNetwork, marketDataSet, 3);

System.out.println("Final Error: " + basicNetwork.calculateError(marketDataSet));

MarketEvaluate.evaluate(basicNetwork);

Encog.getInstance().shutdown();
}
}

最佳答案

将神经网络权重初始化为随机值是很常见的,这在很大程度上破坏了确定性。因此,要获得可重复的结果,您需要保存您喜欢的随机初始权重的特定网络实例,然后将其加载到其他运行中作为起点。

在这种情况下,basicNetwork 将是要保存的对象(可能使用 createPersistor() 序列化为 XML),然后在您以后每次想要重置它时重新加载,而不是从头开始构建一个新的。

您可以尝试的另一个测试是使用 basicNetwork.clone(),然后对它们都运行您的实验,看看结果如何。

链接:

关于java - Encog 神经网络总是给出不一致的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12922855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com