

CNNとRNNを組み合わせたモデルで動画分類を行っているのですが、訓練データがほぼ100％の正解率が出るのに対して、テストデータでは正解率が低いです。  
ただ、過学習している時の典型的なグラフのようにテストデータの正解率が途中からどんどん下がるようなことは見られませんでした。  
現在手元にあるデータ数は50程度で、かなり少なく、データ間の分散が比較的大きいです。  
このようなデータ数が少ない場合でも訓練データに対してテストデータの正解率が低いときは過学習が起きていると考えても良いのでしょうか  
それとも何か別の原因があると考えるべきなのでしょうか？  
教えてくださると助かります


CC BY-SA 4.0
2018-07-20T13:31:06.997
46792
2021-05-18T03:01:30.127
20217
question
機械学習 深層学習
ディープラーニングにおいて、データ数が少ない場合の過学習が起きているかどうかの判断


質問者様の状況を見るに、たしかにモデルの汎化能力が失われ、過学習していると思われます。

ただ、データ数が50程度とのことですので、テストデータの分け方によってはそもそもの訓練データに偏りが出ていることも考えられます。


CC BY-SA 4.0
2018-09-07T13:29:20.553
48188
2018-09-07T13:29:20.553
29873
46792
answer


主に以下の確認が必要だと思います。  
１．50のデータの内、テストに使うデータはいくつなのか。  
２．何度やっても毎回同じような結果になるのか。  
３．訓練・テストデータの分け方が毎回同じになっていないか。  
４．アウトプットの分類数に応じた、十分なデータ量なのか。  
５．訓練・テスト共に正解率が確実に高くなる筈の組み合わせで行ったら結果はどうなるのか。  
６．訓練回数を下げた場合、結果はどうなるのか。

ご質問の、「データ数が少ない場合の過学習が起きているかどうかの判断」は、上記１～６のうち、特に６のチェックが重要ですが、それだけで原因は特定できません。

それぞれ解説すると、  
１．例えばテストデータが極端に多かったり少なかったりすると、まともな訓練やテストになっていません。  
２．テストの正解率が高い場合もあるような場合は、テストデータが少なすぎる可能性があります。  
３．毎回同じ分け方をしている場合、テストが正解率の低いパターンの組み合わせで固定化されているという状況かもしれません。  
４．データ量が少なすぎると、十分な汎用性が得られません。これは過学習と言えなくもないですが、どちらかというと単なる訓練のバリエーション不足になります。分類数が増えれば、必要なデータ量がいきなり増える場合もあるので注意が必要です。今回のケースでは、恐らくデータ量は足りていないように思います。  
５．これを行っても結果が変わらない場合、プログラム自体にバグがあるか、やろうとしていることに無理があるかの可能性が出てきます。  
６．汎用性が上がるようなら、過学習の可能性があります。

１～５が問題無く、かつ６で汎用性が上がるなら過学習の可能性は高いと思います。


CC BY-SA 4.0
2020-12-13T09:26:44.420
72629
2020-12-13T09:26:44.420
8795
46792
answer