人工神经网络没有学习训练样本的较低值

时间:2016-05-31 15:58:30

标签: python neural-network lasagne

我正在尝试训练人工神经网络,但直到现在它还没有学习训练样本的较低值。我尝试使用不同的python库来训练ANN。目的是预测来自其他天气参数的太阳辐射(回归问题)。我认为人工神经网络将较低的值(冬季/阴天)与夜间值(可能)混淆。我尝试了以下但没有一个工作;

  1. 在不同值之间缩放数据,例如[0,1],[ - 1,1]
  2. 将数据标准化为零均值和单位差异
  3. 改组数据
  4. 增加训练样本(从3年到10年)
  5. 使用不同的列车功能(例如bfds,gdm)
  6. 尝试不同的传输功能(例如LogSig,TanSig)
  7. 使用少量输入变量
  8. 改变隐藏层和隐藏层的神经元
  9. 以下是使用neurolab的代码,但我也使用了nolearn / lasagne,但它也没有用。

    f = np.loadtxt('C:\Users\ABC.txt')
    input = f[:,:8]
    output = f[:,8:]
    size = len(input)
    output3=output
    input3=input
    norm_inp = nl.tool.Norm(input)
    input4 = norm_inp(input)
    norm_out = nl.tool.Norm(output)
    output4 = norm_out(output)
    net = nl.net.newff([[0, 1], [0, 1], [0, 1],[0,1],[0,1],[0,1],[0,1],[0,1]],[100, 1])
    net.trainf = nl.train.train_bfgs
    net.layers[0].transf= nl.trans.LogSig()
    #net.layers[1].transf= nl.trans.LogSig()
    error = net.train(input4, output4, epochs=1000, show=10, goal=0)
    networksave = net.save('netD1.dat')
    

    请参阅下文,我得到的一些结果。关于我可能做错什么或任何方向尝试的任何想法? Results

0 个答案:

没有答案