分類器のvalidation accuracyはなぜ毎回異なるのか
13 ビュー (過去 30 日間)
古いコメントを表示
プログラミング初心者です。
下記リンクを参考にコンパイルしてみたところ、varidation accuracyが毎回コンパイル毎に異なります。
CNNに再現性はないのかなと不安になっておりますので、ご教示いただけますと幸いです。
0 件のコメント
採用された回答
Shunichi Kusano
2019 年 2 月 7 日
編集済み: Shunichi Kusano
2019 年 2 月 7 日
精度が毎回変わるのは、学習用のデータと検証用のデータが毎回ランダムに変わるためだと思います。
[imdsTrain,imdsValidation] = splitEachLabel(imds,numTrainFiles,'randomize'); % ここのことです
用意したサンプルデータが十分でかつ偏りがなければ、毎回大体同じ値になることが期待されます。
通常は学習用のデータと検証用のデータをとっかえひっかえしながら何回か検証して、それらの平均精度で手を打ちます。交差検証法というので勉強してみるといいと思います。
1 件のコメント
Tohru Kikawada
2019 年 2 月 8 日
>> openExample('nnet/TrainABasicConvolutionalNeuralNetworkForClassificationExample')
>> TrainABasicConvolutionalNeuralNetworkForClassificationExample
>> accuracy
accuracy =
0.9976
>> TrainABasicConvolutionalNeuralNetworkForClassificationExample % 乱数のシードが変わっている
accuracy =
0.9944
>> rng('default'); % 乱数のシードを常に初期値にする
>> TrainABasicConvolutionalNeuralNetworkForClassificationExample
accuracy =
0.9976
>> rng('default'); % 乱数のシードを常に初期値にする
>> TrainABasicConvolutionalNeuralNetworkForClassificationExample
accuracy =
0.9976
>> % 値が一致する
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Deep Learning Toolbox についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!