ディープラーニングのデータの使い方
ディープラーニングでは、訓練データ(train data)と検証データ(validation data)とテストデータ(test data)の3つに分けて学習を行うのが一般的です。
その場合、学習時には訓練データと検証データだけを使って、最適なパラメータを探索します。
テストデータは作成したモデルの評価のために使用します。
それぞれのデータの用途
訓練データ(train data)
訓練データ(train data)は学習時に重みの更新のために使われます。
訓練データを元に特徴量や正解の傾向を見つけていきます。
検証データ(validation data)
検証データ(validation data)はハイパーパラメータのチューニングのために使われます。
学習の中で検証データでの精度を算出とハイパーパラメータの変更を繰り返していきます。
そうやって、最適なハイパーパラメータを試行錯誤して探索します。
テストデータ(test data)
テストデータ(test data)は作ったモデルの精度評価のために使われます。
テストデータは学習時に見たことのないデータなので、未知のデータにも対応できるか判断することができます。
正しく精度評価をするためには、テストデータに訓練用データが混ざっていてはいけません。
学習するタスクを受験に例えると、訓練データ(train data)は教科書、検証データ(validation data)は模試、テストデータ(test data)は本試験です。
訓練データ(教科書)で勉強して、検証データ(模試)の結果で勉強方法を見直し、テストデータ(本試験)で良い点が取れるように学習していきます。
モデルの良さ(頭の良さ)はテストデータ(本試験)の結果で評価されます。
データを分割する理由
データを3つに分けるのは、より実用的(汎用的)なモデルを手に入れたいからです。
汎用的な能力(汎化能力)はつまり、まだ見ぬデータに対しての能力です。
受験勉強で教科書の問題(学習データ)を解けるようにすることが目的ではなく、本試験の問題(未知の問題)が解けるように学習するのと同じですね。
一つのデータセット(教科書の問題)だけで学習と評価を行ってしまうと、あるデータセット(教科書の問題)だけにしか対応できないモデルが出来上がってしまいます。
まとめ
ディープラーニングでは、訓練データ(train data)と検証データ(validation data)とテストデータ(test data)の3つに分けて学習を行うのが一般的です。
訓練データ(train data)は学習時に重みの更新のために使われます。
検証データ(validation data)はハイパーパラメータのチューニングのために使われます。
テストデータ(test data)は作ったモデルの精度評価のために使われます。
データを3つに分けるのは、より実用的(汎用的)なモデルを手に入れたいからです。
参考文献
コメント