2017-07-30 10 views
0

Python OpenCVモジュールでANN(64単位の1つの隠れ層、学習率= 0.001、ε= 0.001、iters = 500)を実装しました。トレインエラー〜3%、テストエラー〜12%早期停止とモデル選択のテストと検証セットの使用を理解する

私のNNの達成度/一般化を改善するために、モデル選択(#隠し単位と学習率)を実施して、より多くのデータが必要かどうかを判断するための学習曲線をプロットする(現在は2.5k)。

NNのトレーニングとモデル選択に関するいくつかのソースを読んでたので、私は、次の問題に非常に困惑している -

1)モデル選択を行うために、私は

完了し使用するには、以下の必要性を知っています
create set possibleHiddenUnits {4, 8, 16, 32, 64} 
randomly select Tr & Va sets from the total set of Tr + Va with some split e.g. 80/20 
foreach ele in possibleHiddenUnits 
    (*) compute weights for the NN using backpropagation and an iterative optimisation algorithm like Gradient Descent (where we provide the termination criteria in the form of number of iterations/epsilon) 
    compute Validation set error using these trained weights 

select the number of hidden units which min Va set error 

また、私はk倍交差検証を使用することもできます。

a。どのようにGDの反復数/イプシロン数を決定するのですか?

b。 GDのx反復のうち1回の繰り返し(バックグラウンドによるコストウェイトの勾配を計算するためにトレーニングセット全体が使用される)は、「エポック」を構成するか?

2)ソース(whats is the difference between train, validation and test set, in neural networks?How to use k-fold cross validation in a neural network)は、オーバーフィッティング

for each epoch 
    for each training data instance 
     propagate error through the network 
     adjust the weights 
     calculate the accuracy over training data 
    for each validation data instance 
     calculate the accuracy over the validation data 
    if the threshold validation accuracy is met 
     exit training 
    else 
     continue training 

防止としてNNのためのトレーニングは、次の方法で行われることを言及しています。モデル選択が完了したら、このメソッドを実行する必要があります。しかし、上記のモデル選定プロセスのステップ(*)で、モデルのオーバーフィットを避けるにはどうすればよいですか?

b。私は、あるエポックがGD +バックプロップを使ってTrセット全体を使ってウェイトを計算し、GDがウェイトを計算するためにTrセット全体をx(> 1)するという1回の反復を構成すると仮定していますか?

また、1bと2bは正しいですか?

答えて

0

これはコメントですが、私はまだコメントを書くことができないので、ここに書きます。正則化や脱落のような他の方法を試しましたか?私はモデルの選択についてたくさん知っていませんが、ドロップアウトはたくさんのモデルを取って平均化するような非常に類似した効果があります。ノーマルドロップアウトはトリックを行う必要がありますあなたはもうオーバーフィットの問題がありません。

関連する問題