神经网络错误率不会进展

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了神经网络错误率不会进展相关的知识,希望对你有一定的参考价值。

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

    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)

我的问题是,当我训练网络时,我得到一个巨大的错误(E.G。24569847209.8),它似乎永远不会下降,它随着每个时代而变化,但它总是在同一个数字上徘徊。

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

我真的不确定我所拥有的是什么导致了这个问题。如果有一些信息我应该包括在内请告诉我。

答案

我似乎已经解决了学习问题!我培训时,我的网络错误正在逐渐减少!我使用的是错误的训练师。由于我使用的是递归神经网络,我不应该使用反向传播训练器。我现在正在使用RPropMinusTrainer。要修复,请执行以下操作:

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

改成了

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

以上是关于神经网络错误率不会进展的主要内容,如果未能解决你的问题,请参考以下文章

单击函数永远不会读取else语句来删除类

如何通过单击片段内的线性布局从片段类开始新活动?下面是我的代码,但这不起作用

Android 应用程序不会启动,也不会列出错误/警告。使用片段和问题似乎与 var args = ViewFragmentArgs

对“xxx”类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们。 错误解决一例。(代码片段

201555332盛照宗—网络对抗实验1—逆向与bof基础

20155201 李卓雯 《网络对抗技术》实验一 逆向及Bof基础