【问题标题】:Encog Framework not giving acceptable error rateEncog 框架没有给出可接受的错误率
【发布时间】:2014-03-08 05:57:24
【问题描述】:

我有一个非常小的数据集,只有 200 行。我只有 3 列;前两个是数字(负数和正数),最后一个是字母。

我正在尝试根据前两个数字列对最后一列进行分类。

我的逗号分隔数据看起来与此类似(规范化之前):

Home Team Line,Away Team Line,Winner
-6,0,H
-8,0,H
0,-21,A
etc...

标准化后的示例数据:

HomeTeamLine,AwayTeamLine,Winner-p0,Winner-p1
-0.40493939,1,-1,0
-0.22929292,1,-1,0
-1,-0.9233003,0,-1

我已经尝试了所有我能想到的方法,包括传播和模拟神经退火,但 Encog 框架仍然找不到模式。

我的代码看起来与此类似(从内存中写入):

// build network
BasicNetwork network = new BasicNetwork();

network.AddLayer(new BasicLayer(new ActivationTANH(), true, 2));
network.AddLayer(new BasicLayer(new ActivationTANH(), true, 14));
network.AddLayer(new BasicLayer(new ActivationTANH(), true, 2));
network.Structure.FinalizeStructure();

network.Reset();

// train network
var trainingSet = // load training CSV
ITrain train = new ResilientPropagation(network, trainingSet);

do
{
  train.Iteration();
  Console.WriteLine("Epoch #" + epoch + " Error:" + train.Error);
  epoch++;
} while (train.Error > 0.001);

我的错误率从未低于 74%。

我认为问题在于我没有使用足够的数据行,或者我没有使用足够的特征(列),或者数据中根本没有模式。

实现可接受的错误率的推荐方法是什么?

【问题讨论】:

  • 您如何为您的训练集创造理想的价值?只是一个建议,因为您有 2 个输出神经元,您可以使用带有二进制值的 double[][] 创建和 ideal 值,示例:Hnew double[] { 1 , 0 }Anew double[] { 0 , 1 }
  • 谢谢。标准化数据确实使用两列:H = -1,0A = 0,-1,反之亦然。我不确定这是否是你的意思?我将此列指定为OneOf 操作方法。
  • 是的,你明白我想说什么。由于您使用ActivationTANH 作为激活函数,您应该将输出标准化为与ActivationTANH-11 兼容的正确区间。
  • 我还将为 epoch 添加停止条件,例如:while (epoch < 10000 && train.Error > 0.001);
  • 请记住,您必须根据您的激活函数进行归一化,对于 TangH,间隔是 -1 和 1,对于 Sigmoid 是 0 和 1。

标签: c# machine-learning neural-network classification encog


【解决方案1】:

我还有一个澄清。您有来自神经网络的两个输出,但在任务描述中您说“我正在尝试根据前两个数字列对最后一列进行分类”,这对我来说听起来您有两个输入和一个输出。为什么你有另一个输出?另一个建议是增加一个隐藏层。我不建议添加两个以上的隐藏层,因为在这种情况下会出现错误函数

随着错误在层与层之间传播,它们会随着层数呈指数级缩小。如前所述http://en.wikipedia.org/wiki/Deep_learning

【讨论】:

  • 这两个输出Winner-p0,Winner-p1是因为encog对数据进行了归一化。
  • 从 NN 的角度来看,您似乎想给 NN 两个输入并获得两个输出。
猜你喜欢
  • 2023-03-03
  • 1970-01-01
  • 2013-12-18
  • 1970-01-01
  • 1970-01-01
  • 2017-05-13
  • 1970-01-01
  • 1970-01-01
  • 2022-11-13
相关资源
最近更新 更多