问题标签 [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.
neural-network - 神经网络训练。只有少数结果
我有一个网络,它有 3 个输入、2 个隐藏层(每个 6 个神经元,Sigmoid 激活函数)和一个神经元作为输出。我希望我的网络是连续的,因为我不是在看分类网络(希望这是有道理的)。
我的输入代表一年中的天数(0-365 范围)。我实际上将它们标准化为 0-1 范围(因为 sigmoid)。
我的问题如下:无论训练误差多么小,重用训练集时的实际值都不正确。根据我运行的时期数,我得到不同的结果。
如果我训练我的网络超过几千次,我只会得到两种可能的结果。如果我少训练它,我会得到更多可能的结果,但这些值与我的预期相去甚远。
我已经读过对于连续网络,最好使用两个隐藏层。
我不确定我做错了什么。如果您能提供任何帮助,那就太好了。如果您需要更多详细信息,请告诉我。
谢谢
更新 1
我减少了训练集中的元素数量。这次网络在少数时期内收敛。以下是训练错误:
培训网络
迭代#1。错误:0.0011177179783950614
迭代#2。错误:0.14650660686728395
迭代#3。错误:0.0011177179783950614
迭代#4。错误:0.023927628368006597
迭代#5。错误:0.0011177179783950614
迭代 #6。错误:0.0034446569367911364
迭代 #7。错误:0.0011177179783950614
迭代#8。错误:8.800816244191594E-4
最终错误:0.0011177179783950614
java - Encog 神经网络总是给出不一致的结果
总的来说,我是机器学习和 Encog 的新手,但我希望 Encog 至少能从示例中给出一致的结果,以帮助我更轻松地了解 Encog。对我来说,Encoge 每次运行都会给出不同的方向性结果。
谁能帮助我更好地理解这是为什么?下面是一些正在使用的修改后的示例代码。
方向正确:10/25
方向正确:8/25
方向正确:6/25
...
java - 是否有使用 Encog 3.1 进行时间序列预测的 Java 示例?
我试图弄清楚使用神经网络进行时间序列预测是多么容易。Encog 似乎是首选框架,但我在 Google 上搜索了一下,并没有在任何地方看到使用最新版本(或任何 3.x)的 Java 时间序列示例。
有人有我能看到的好例子吗?
如果它是一个显示预测多个相互关联值的示例,则加分。即我需要根据 W,X,Y,Z 的先前值来预测 W,X,Y,Z。
java - Encog/neuroph 保存神经网络
我是神经网络领域的新手(说实话我几天前才开始)。我想在我的 OCR 应用程序中使用神经网络来识别手写文本。
我想知道的是,是否可以在初始训练后训练网络。换句话说,我一开始只训练几个字符,但我想稍后在网络中添加更多字符而不影响先前训练的数据的存在。(假设我已经创建了具有足够输出神经元的神经网络以用于附加字符)。如果这是可能的,我该如何使用 encog 来完成这项工作。
谢谢你
neural-network - 神经元与 Encog
我决定为我的手写文本 OCR 应用程序使用带有反向传播训练的前馈神经网络,输入层将使用 32*32 (1024) 个神经元和至少 8-12 个输出神经元。
通过同时阅读一些文章,我发现 Neuroph 易于使用,Encog 的性能要好几倍。考虑我的场景中的参数,哪个 API 是最合适的。如果您可以评论我所采用的输入节点的数量,我将不胜感激,它的价值是否太大(尽管它不在主题范围内)
java - Encog:BasicNetwork:没有预先构建的数据集的在线学习
我正在尝试将 encog 库用作强化学习问题的函数逼近器。更准确地说,我正在尝试启动并运行一个多层感知器(BasicNetwork)。由于我的代理会根据我选择的任何 RL 算法以某种方式探索世界,因此我无法预构建任何 BasicNeuralDataSet,如XOR 示例中所示。可能,我必须使用 pause() 和 resume() 函数,但由于我找不到任何关于这些的文档或示例,所以我对如何使用这些功能有些迷茫(如果它们甚至在我的版本中工作的话。我不太懂在阅读第二个链接中问题的答案后确定)。
我正在使用 Java 和 encog-core-2.5.3 jar。我目前的方法如下所示:
这显然是一个最小的例子,我只是从玩具样本(XOR)中抽取随机数据点。发生的情况是 MLP 不收敛。日志记录向我显示完全随机的错误,所以我假设培训师正在被重置并且我的暂停/恢复方法没有正确实施。
PS:由于我不受 Encoq 约束,但可以使用任何框架,因此我也很欣赏满足我要求的示例代码。到目前为止,我尝试过 Weka 和 Neuroph,但两者似乎都缺乏真正的在线学习,只要有新样本可用就可以触发训练(也必须可以在任何时候对样本进行分类)
android - Encog在Android上运行太慢,怎么办?
我已经使用 Encog 3.1.0 为桌面开发了一个应用程序,但我的意图始终是将它移植到 Android 平台。好吧,在桌面平台上它运行得很好,非常快,只需几秒钟即可完成工作。另一方面,当我在 Android 上运行相同的代码时,它变得非常慢。
我的问题是:如何为桌面或 Android 编程 Engog NN 有什么不同吗?我应该怎么做才能在可接受的时间内在 Android 上运行我的应用程序?
PS:我的设备是三星 Galaxy tab 2
谢谢大家,B.Ramon
java - 使用 Hopfield 网络的不良结果
我正在编写一个程序,该程序将使用神经网络识别交通标志,但我遇到了Hopfield
网络问题。我正在使用这个例子来制作我自己的 hopfield 网络。
作为输入,我使用标准化后的那些交通标志,它是一个 50x50 的0
和矩阵1
。
我遇到的问题是,当 Hopfield 网络将学习 2 种模式时,它可以很好地识别它们,但是当我尝试用 2 种以上的模式训练它时,它给了我一个与之前的模式都不匹配的模式接受过培训,它会为我提供的任何输入返回它。
这是我的代码,与官方 encog 示例中的代码非常相似:
类型inputData
在哪里。array[2500]
double
到目前为止我尝试过的是:
将图案尺寸更改为更小(10x10、20x20)。
尝试学习不同数量的模式(从 2 到 20)。我总是得到与网络训练的任何模式都不匹配的奇怪结果。
c# - 完全基于实体相似性的无监督聚类
我正在尝试聚集许多实体。我用于聚类的唯一指标是一个实体与另一个实体之间的相似性。(0-1 浮点数)
谁能想到任何可以实现这一目标的聚类算法?我很欣赏它会返回模糊组。这仍然是比我目前以编程方式估计组更好的解决方案。
java - 使用 Encog 的神经网络分类器
我是机器学习的新手,我正在开发一个使用图像对对象进行分类的 Java 应用程序。我有 40 个输入神经元和 n 个输出神经元(取决于训练数据的数量)。我使用 Encog 作为我的神经网络的框架。我能够成功地训练数据,但是当我测试网络时,它似乎并不能很好地工作。它无法正确分类对象。下面是训练部分:
和测试部分:
训练部分有问题吗?如果我以正确的方式做事,我确实希望有人可以指导我。