神经网络错误率没有进步

Neural Network Error Rate Does Not Progress

这里是神经网络菜鸟。
我正在使用 PyBrain 尝试创建一个学习音乐的网络。
我的数据集包含大约一百首歌曲,其中网络的输入是两个音符,目标是接下来的两个音符。
每个音符由 note/chord 组合的整数表示,音符八度音程的整数和音符持续时间的浮点数表示。
我的网络是这样的:

    net = RecurrentNetwork()
    net.addInputModule(LinearLayer(6, name='in'))
    net.addModule(LSTMLayer(50, name='hidden1'))
    net.addModule(LSTMLayer(50, name='hidden2'))
    net.addOutputModule(LinearLayer(6, name='out'))
    net.addConnection(FullConnection(net['in'], net['hidden1'], name='c1'))
    net.addConnection(FullConnection(net['hidden1'], net['hidden2'], name='c3'))
    net.addRecurrentConnection(FullConnection(net['hidden2'], net['hidden1'], name='c4'))
    net.addConnection(FullConnection(net['hidden2'], net['out'], name='c5'))
    net.sortModules()

使用这样的数据集和训练器:

ds = SupervisedDataSet(6, 6)
trainer = BackpropTrainer(net, ds, verbose = True, momentum = 0.01)

我的问题是,当我训练网络时,我得到了一个巨大的错误(例如 24569847209.8),它似乎永远不会下降,它随着每个时期的变化而变化,但它总是徘徊在相同的数字附近。

网络经过训练后,它会通过将两个随机音符作为输入来创建歌曲,然后生成目标,然后将目标作为输入传回,并一遍又一遍地重复这一过程,直到它拥有一首完整的歌曲。但我发现它所做的只是一遍又一遍地写输出,就像它只是学习一个固定的目标。

我真的不确定我的问题是什么导致了this.If有一些我应该包括的信息请告诉我。

学习问题好像解决了! 随着我的训练,我的网络错误现在正在稳步减少! 我用错了教练。因为我使用的是递归神经网络,所以我不应该使用反向传播训练器。我现在正在使用 RPropMinusTrainer。 要修复,以下行:

trainer = BackpropTrainer(net, ds, verbose = True, momentum = 0.01)

已更改为

trainer = RPropMinusTrainer(net, dataset=ds, verbose = True)