【发布时间】:2015-04-08 15:06:44
【问题描述】:
我正在尝试将一些人工神经网络与 Ruby 一起使用,我尝试了一些 gem(ruby-fann、Ai4r),当我在一些测试输入上运行经过训练的网络时,它们都总是返回相同的结果 [1.0, 1.0] ,但在训练数据中,所有输出都在 100 左右。我有 10 个输入神经元和 2 个输出。我尝试了不同的网络配置、期望的错误、不同的层数和不同数量的神经元。在训练 ruby-fann 的神经网络时,我得到了这个:
1. Current error: 10034.23571597 Bit fail: 1938
100. Current error: 9937.62571597 Bit fail: 1938
之后所有的错误和失败都是一样的。这是我的代码:
inputs_to_learn = []
outputs_to_learn = []
some cycle:
inputs_to_learn.push([i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,])
outputs_to_learn.push([o1, o2])
train = RubyFann::TrainData.new(:inputs=>inputs_to_learn, :desired_outputs=>outputs_to_learn)
fann = RubyFann::Standard.new(:num_inputs=>10, :hidden_neurons=>[30, 30, 30, 30], :num_outputs=>2)
fann.train_on_data(train, 1000, 100, 0.5)
result = fann.run([100, 100, 95, 105, 95, 105, 95, 105, 95, 105])
所以问题是,如果训练数据是大 100 倍的数字,为什么我会得到 1.0。
【问题讨论】:
标签: ruby artificial-intelligence