分類器のvalidation accuracyはなぜ毎回異なるのか

7 vues (au cours des 30 derniers jours)
ssk
ssk le 6 Fév 2019
Commenté : Tohru Kikawada le 8 Fév 2019
プログラミング初心者です。
下記リンクを参考にコンパイルしてみたところ、varidation accuracyが毎回コンパイル毎に異なります。
CNNに再現性はないのかなと不安になっておりますので、ご教示いただけますと幸いです。

Réponse acceptée

Shunichi Kusano
Shunichi Kusano le 7 Fév 2019
Modifié(e) : Shunichi Kusano le 7 Fév 2019
精度が毎回変わるのは、学習用のデータと検証用のデータが毎回ランダムに変わるためだと思います。
[imdsTrain,imdsValidation] = splitEachLabel(imds,numTrainFiles,'randomize'); % ここのことです
用意したサンプルデータが十分でかつ偏りがなければ、毎回大体同じ値になることが期待されます。
通常は学習用のデータと検証用のデータをとっかえひっかえしながら何回か検証して、それらの平均精度で手を打ちます。交差検証法というので勉強してみるといいと思います。
  1 commentaire
Tohru Kikawada
Tohru Kikawada le 8 Fév 2019
値が毎回異なるのは乱数発生に使うシードが異なっているためです。実行毎に乱数のシードを同じにすれば同じ結果が得られます。詳細はrng を参照してみてください。
>> openExample('nnet/TrainABasicConvolutionalNeuralNetworkForClassificationExample')
>> TrainABasicConvolutionalNeuralNetworkForClassificationExample
>> accuracy
accuracy =
0.9976
>> TrainABasicConvolutionalNeuralNetworkForClassificationExample % 乱数のシードが変わっている
accuracy =
0.9944
>> rng('default'); % 乱数のシードを常に初期値にする
>> TrainABasicConvolutionalNeuralNetworkForClassificationExample
accuracy =
0.9976
>> rng('default'); % 乱数のシードを常に初期値にする
>> TrainABasicConvolutionalNeuralNetworkForClassificationExample
accuracy =
0.9976
>> % 値が一致する

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Deep Learning Toolbox dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!