问题标签 [encog]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
259 浏览

java - Java - Encog 3.2 - RPROP 网络不更新权重

我研究了很多问题和示例,但似乎无法找出我的 RPROP NN 出了什么问题。这也是我第一次使用 Encog,所以我想知道这是否是我做错了。

我正在尝试通过输入图像(50x50)来训练网络识别猫,然后将其转换为灰度并向网络输入双精度 [] [] 和目标双 [] []。我注意到错误一直在 4.0,所以我在每次训练迭代时都执行了一个 dumpWeights() 以查看发生了什么。我注意到权重始终为零。然后我回到基础,看看我是否做对了,所以我针对 XOR 问题对其进行了修改:

我得到以下输出,注意 0.0 的行是 network.dumpWeights() 方法的结果:

纪元 #132636 错误:2.0 0,0,0,0,0,0,0,0,0 纪元 #132637 错误:2.0 0,0,0,0,0,0,0,0,0 纪元 #132638 错误:2.0 0,0,0,0,0,0,0,0,0 纪元#132639 错误:2.0 0,0,0,0,0,0,0,0,0 纪元#132640 错误:2.0

... 等等。

有什么明显的你可以看到我在这里做错了吗?我还尝试了 2-3-1 架构作为 XORHelloWorld.java 示例的实现。

任何帮助将不胜感激。

0 投票
1 回答
203 浏览

java - Encog ImageNeuralNetwork 错误未停止

我正在尝试学习并适应 Java 中的 ImageNeuralNetwork 示例。到目前为止,我的问题是,当我给 NN 提供大量 32X32 的图像并让它训练时,误差永远不会低于 14%,并且一开始它会到处乱跳。

我的图像是 BW,它们分为 27 个类别。所以我知道有 27 个输出神经元。

我的问题是为什么 NN 不学习,我尝试使用不同的神经元数量设置不同的隐藏层(1 层或 2 层),但没有任何帮助。

谁能告诉我我做错了什么?就像我说的,我刚开始使用 NN,我在这里有点迷路

编辑:似乎如果我给它更少的图像作为输入来学习错误会下降,但这并不能真正解决问题,如果我想对很多图像进行分类,我会遇到错误永远不会下降

0 投票
1 回答
363 浏览

java - 艾尔曼网络不停歇

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

0 投票
1 回答
524 浏览

java - Encog - 带有验证集的 EarlyStoppingStrategy

一旦我看到从验证集计算的误差开始增加,我想停止训练网络。我正在使用带有 RPROP 的 BasicNetwork 作为训练算法,并且我有以下训练迭代:

显然这是行不通的,因为在确定我是否需要停止训练之前,权重已经改变了。无论如何我可以退后一步并使用旧的重量吗?

我还看到了EarlyStoppingStrategy使用该addStrategy()方法可能需要使用的类。但是,我真的不明白为什么EarlyStoppingStrategy构造函数同时接受验证集和测试集。我认为它只需要验证集,并且在我测试网络输出之前根本不应该使用测试集。

0 投票
2 回答
186 浏览

artificial-intelligence - 使用 Encog 进行集成学习

是否可以举例说明如何使用 Encog 创建集成学习器以进行时间序列预测?

我在想一个 iRPROP+ 集成学习器。

谢谢

0 投票
1 回答
382 浏览

encog - encoder/decoder ripping from autoencoder in encog

I have created and learned autoencoder in Encog and I try to rip it into parts: encoder and decoder part. Unfortunately I cannot get it and I keep getting strange improper data (comparing result from applying once net to data and twice data -> enc -> dec).

I have tried to make it with simply GetWeight and SetWeight but there result is incorrect. The solution found in encog documentation - initialization flat network is for me not clear (I cannot get it working).

Full old-like (set/get weight) code of AutoEncoder:

How can I correctly rip only two first layers from autoencoder for encoder and two last layers from one for decoder?

0 投票
1 回答
373 浏览

artificial-intelligence - Bug in Resilient Backpropagation?

I'm struggling with implementing Resilient Propagation correctly. I already implemented the backpropagation Algorithm to train a Neural Network, and it works as expected for an XOR-Net, i.e. it takes about 600 Epochs to drop Error below 1%. Now i tried implementing Resilient Propagation (http://en.wikipedia.org/wiki/Rprop) for the same problem and for the first few Epochs Error drops quickly to 23% but then raises to 50% and stays there.
I implemented it exactly as per description in http://www.heatonresearch.com/book/introduction-neural-network-math.html, but that's a puzzling Description: it's different from the wikipedia Rprop-Page AND from the implementation in encog, which was written by the same author as the book, as far as i know. I also already tried the different implementations from the different sources, but nothing worked.

Some of the differences between the various sources:

  • using signum(currentPartialDerivative) instead of signum(currentPartialDerivative * previousPartialDerivative) for the calculation of the weight-changes
  • using the last weight change, instead of the new update value for the new weight change
  • Calculating the weight changes firstly and the new update values secondly

What is the correct way of implementing this? Subsequently the Implementation according to the book:

The same Method for normal Backpropagation works fine:

0 投票
1 回答
308 浏览

java - Encog输入层大小限制

我正在使用带有 Java 的 Encog 框架来做一个图像识别系统。不过,当我将 Downsample 宽度和高度设置为 100 以上时,我得到了一个

在尝试创建网络时。

输入层的神经元数量有限制吗?

0 投票
2 回答
283 浏览

encog - ROC 的 Encog 二进制分类分数

我正在使用 Encog(通过 Java)研究二进制分类器。我使用 SVM 或神经网络设置它,我想使用(部分)ROC 曲线下的区域来评估不同模型的质量。

更具体地说,理想情况下,我希望将模型的输出转换为某种预测置信度分数,该分数可用于 ROC 中的排名排序,但我尚未在文档中找到任何内容。

在代码中,我得到的模型结果如下:

我如何获得分类的数值置信度?

0 投票
2 回答
1278 浏览

multithreading - 用于时间序列预测的 HyperNEAT 网络需要 Encog 帮助

我正在使用 Encog AI 框架使用 HyperNEAT 网络进行时间序列预测。

这是我用来创建网络的简单代码。

它取自 Box 示例https://github.com/encog/encog-java-examples/tree/master/src/main/java/org/encog/examples/neural/neat/boxes

其中 columns 是特征的数量,windowSize 是预测未来值所需的前几天数(在我的示例中 windowSize 为 1)。

我得到这个例外:

Exception in thread "pool-2-thread-416" java.lang.ArrayIndexOutOfBoundsException at org.encog.util.EngineArray.arrayCopy(EngineArray.java:107) at org.encog.neural.neat.NEATNetwork.compute(NEATNetwork.java:194) at org.encog.util.error.CalculateRegressionError.calculateError(CalculateRegressionError.java:46) at org.encog.neural.networks.training.TrainingSetScore.calculateScore(TrainingSetScore.java:61) at org.encog.ml.ea.score.parallel.ParallelScoreTask.run(ParallelScoreTask.java:83) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)

处理线程似乎有问题。有人可以帮我解决这个问题吗?我的第二个问题是:如何在 Encog 中使用反向传播训练 NEAT 网络?