问题标签 [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.
java - 如何使用 Encog 规范化 CSV 文件?
我需要标准化一个 CSV 文件。我关注了 Jeff Heaton 撰写的这篇文章。这是(一些)我的代码:
我的代码和文章的唯一区别是这一行:
我尝试使用它,但似乎在 Encog 3.1.0 中,该方法不存在。我得到的错误是这个(看起来问题出在以下行norm.normalize(targetFile)
:
neural-network - 使用以下之一进行 Encog 归一化
我对数据集的规范化有疑问。我们正在做一项学校作业,我们必须在其中理解数据集并对新示例进行分类。我们有一些可用的数据集,它们是原始数据的压缩形式。我们尝试使用最小的数据集,只是为了掌握 ANN。
该数据集由 8 列数据和 1 列用于理想值组成。数据列都是浮点值,理想值是整数。如果该行属于该类,则理想字段为 1,否则为 0。但是在AnalystNormalizeCSV上应用normalize()时,理想字段将转换为两个字段。
现在,假设一个简单的前馈神经网络。我需要一两个输出神经元吗?
当我使用 1 个神经元和 1 个作为理想场的数量时,它似乎有效,但在 60% 左右徘徊。当我使用 2 个输出神经元和 1 个作为理想场的数量时,我在 Propagation.iteration() 中得到一个 ArrayOutOfBoundsException。当我们使用 2 作为输出神经元和理想场的数量时,它可以工作,但又会停留在 60% 左右。中间选项似乎是理智的,因为实际上有 1 个理想场,标准化后有 2 个理想场,因此有 2 个输出神经元。
默认
在此先感谢,克里斯
java - 从CSV读取时间序列预测encog 3 java
我正在开发一个时间序列预测系统。我为 Java 购买了 Book of Encog3,但我需要知道 hot 才能提交一个包含 3 列的 CSV 文件并尝试预测第二列。CSV 定义如下:
Date
, DeviceConsumption
,TotalPower
我需要将该文件加载到加载器中,然后指定我要预测的列(即DeviceConsumption
)。第三列用于提供更多信息并创建模式。
在示例中(如太阳黑子)我看到
但是我在哪里可以定义我想要预测的列??
谢谢你。
编辑 2 我做了一些改进:
对不起,但我还是不明白。正如你所说,我能够创建 2 TemporalDataDescription。但是我必须将两者都添加到同一个 TemporalMLDataSet 中吗?
这是对的吗?
EDIT3前面的代码是正确的!
java - 使用带有 Encog 3 和多输出的支持向量机
在我之前的帖子中,我询问了使用 Encog AI 框架进行时间序列预测的问题。现在我有 3 个与使用支持向量机预测多个输出的可能性有关的问题。
1)澄清一下,我想使用前 10 天的 deviceConsumption 和 TotalPower 来预测未来 5 天的 deviceConsumption。可能吗?
2) SVM 是否使用 TotalPower 和 deviceConsumption 来构建模式(就像人工神经网络一样)?
3)是否可以在训练集上训练 ANN 或 SVM 并保存训练过的网络(用于 ANN)或 SVM 训练过的超平面,然后在第二个时刻在训练集的尾部添加一个值并提交这个新的将训练集设置为先前训练的网络(或 SVM)并再次训练先前训练的网络(或 SVM)而不会丢失所取得的结果(启发式学习)?
对不起我的英语;-) 谢谢
encog - 运行时如何修复encog“内核启动失败”错误:“./encog benchmark /gpu:1”
作为 encog 安装测试的一部分,我尝试运行
./encog benchmark /gpu:0
,效果很好,但是当我尝试时
./encog benchmark /gpu:1
,我得到:
我在 Ubuntu 11.10 上,我从https://github.com/encog/encog-c获得源代码,并且“make ARCH=64 CUDA=1”没有错误。
感谢您为解决此问题提供的任何帮助。
这是运行良好的基准测试的控制台列表:
==============================================
这是有问题的基准测试
===========================================
这是我的 GPU 环境的样子:
================================
这是我的“make”的输出:
neural-network - Encog Hopfield 网络训练
我正在尝试从图像中识别单个字符。图像数据已被清理,并且有一个清晰可见的字母。
因此,当我将训练集添加到 hopfield 网络时,它就像日志一样好,因为我只添加了 2。一旦我添加更多,它训练的模式开始重叠和模糊。
我怎样才能防止这种情况?
训练网络:
训练 2 个字符时的结果:
训练所有角色时的结果:
它始终解析为相同的复合 blob。我究竟做错了什么?
java - Encog AI 框架:使用高斯噪声注入进行反向传播
两周来,我一直在通过工作台和 Java 代码修改 Encog 中的标准多层感知器和反向传播算法。我的下一项工作将需要在输入模式中插入噪声,如本文所示: http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber= 6033567 (MLP 神经网络训练中的 PCA 和高斯噪声提高了问题的泛化能力小且不平衡的数据集)
基本上,我需要(这是一个二元分类问题): 1 - 使用主成分分析 (PCA) 转换输入模式 2 - 使用反向传播来训练 MLP,有一个技巧:在每个训练模式中插入不同的白噪声每个时代。
使用 Java 版本的 Encog 进行这种噪声注入的更直接的方法是什么?是否有任何可用的训练算法涉及人工噪声注入?
PS.:我引用的论文的完整算法是
neural-network - 神经网络训练期间的 Elman 和 Jordan 上下文值
我正在尝试 Elman 和/或 Jordan ANN 使用Encog 框架。我正在尝试编写自己的代码,但正在研究 Encog 是如何实现的。我看到了通过时间的反向传播如何更新权重,但是上下文神经元如何更新?当计算神经网络的输出时,这些值似乎有些随机波动。这些值实际上如何允许简单的循环神经网络随着时间的推移实际识别输入数据中的模式?
c# - Encog中的多类SVM分类
有人可以告诉我如何在 Encog 3.1 中使用多类 SVM 分类吗?
我已经成功地使用了他们的神经网络,但无法弄清楚如何设置多类 SVM。
文档有这样的说法:
“这是一个由一个或多个支持向量机 (SVM) 支持的网络。它的功能与 Encog 神经网络非常相似,并且在很大程度上可与 Encog 神经网络互换......您希望 SVM 将输入数据分为一个或多个类。支持向量机通常有一个输出。神经网络可以有多个输出神经元。为了解决这个问题,如果有多个 SVM,此类将创建多个 SVM输出指定"
但是我看不到如何指定多个输出,实际上输出属性只是返回 1:
非常感谢 Java 或 c# 中的答案
编辑仍然无法解决这个问题。真的很喜欢使用 Encog,但是支持论坛上只有 Jeff Heaton(项目的作者)有机会自己回答,所以我链接了项目代码并添加了赏金,希望有人能看到我明显缺少的东西。
项目: http ://heatonresearch.com/
谷歌代码上的 SupportVectorMachine 类: https ://code.google.com/p/encog-cs/source/browse/trunk/encog-core/encog-core-cs/ML/SVM/SupportVectorMachine.cs
neural-network - 用于模式识别的神经网络
我希望你帮我弄清楚我正在处理哪个问题(模式识别或时间序列预测),并找到最适合这个问题的 NN 架构。
在我的问题中,我有许多有限的二维数据集(学习集)让N是我想使用 NN 计算的数据集的大小。我希望我的 NN 学习这些数据,并通过给它数据集的前m个数据,它给我剩下的Nm个数据。
我认为这是一个模式识别问题,所以这是最适合这种类型的 NN 架构。
谢谢你。