Pybrain を使用して単純なニューラル ネットワークをトレーニングしようとしています。トレーニング後、nn が意図したとおりに機能していることを確認したいので、トレーニングに使用したのと同じデータをアクティブにします。ただし、すべてのアクティベーションは同じ結果を出力します。ニューラル ネットワークに関する基本的な概念を誤解していますか、それとも設計によるものですか?
隠しノードの数、hiddenclass タイプ、バイアス、学習率、トレーニング エポックの数、勢いを変更しようとしましたが、役に立ちませんでした。
これは私のコードです...
from pybrain.tools.shortcuts import buildNetwork
from pybrain.datasets import SupervisedDataSet
from pybrain.supervised.trainers import BackpropTrainer
net = buildNetwork(2, 3, 1)
net.randomize()
ds = SupervisedDataSet(2, 1)
ds.addSample([77, 78], 77)
ds.addSample([78, 76], 76)
ds.addSample([76, 76], 75)
trainer = BackpropTrainer(net, ds)
for epoch in range(0, 1000):
error = trainer.train()
if error < 0.001:
break
print net.activate([77, 78])
print net.activate([78, 76])
print net.activate([76, 76])
これは結果の例です...ご覧のとおり、アクティベーション入力が異なっていても、出力は同じです。
[ 75.99893007]
[ 75.99893007]
[ 75.99893007]