2

いくつかのクラスに属する画像の確率を予測するように ANN をトレーニングしようとしています。私のターゲット値は、そのような確率のセットです。

入力は、ピクセル値が 0 ~ 255 の 28x28 グレースケール画像を単純に再形成したものです。

1 つの「ターゲット」は次のようになります。 0.738832,0.238159,0.023009,0,0.238159,0,0.238159,0,0.238159,0,0,0.238159,0,0.19793,0.80207,0.066806667,0.663691308,0.008334764,0,0,0.0494825,0.098965,0.0494825,0,0,0,0,0,0,0,0,0,0,0,0,0,0

ただし、得られる結果はひどいもので (単純な線形回帰よりもはるかに悪い)、次のようになります。 0.011947,0.448668,0,0,0.095688,0,0.038233,0,0,0,0,0,0,0,0.405464,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

300 枚の写真を使用するか、30000 枚の写真を使用するかは問題ではありません。私は明らかに何か間違ったことをしており、アドバイスを本当に感謝しています。

コード:

# create dataset
DS = SupervisedDataSet(784, 37)
assert(ia.shape[0] == ta.shape[0])
DS.setField('input', ia)
DS.setField('target', ta)

fnn = buildNetwork( DS.indim, 200, 37, outclass=SoftmaxLayer )

trainer = BackpropTrainer( fnn, dataset=DS, momentum=0.1, verbose=True, weightdecay=0.01)
trainer.trainUntilConvergence(maxEpochs=10,verbose=True,validationProportion=0.20)
4

1 に答える 1