訓練データと検証データとテストデータの違い!!機械学習におけるデータセットの分割を解説

スポンサーリンク
訓練データと検証データとテストデータの違い!!機械学習におけるデータセットの取り扱いを解説データの分割
この記事を読んで分かること
  • データセットの分割の種類
  • データセットを分割する理由

 

ディープラーニングのデータの使い方

ディープラーニングでは、訓練データ(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)
評価時作ったモデルの精度評価に利用

 

学習するタスクを受験に例えると、訓練データ(train data)は教科書、検証データ(validation data)は模試、テストデータ(test data)は本試験です。

訓練データ(教科書)で勉強して、検証データ(模試)の結果で勉強方法を見直し、テストデータ(本試験)で良い点が取れるように学習していきます。

モデルの良さ(頭の良さ)はテストデータ(本試験)の結果で評価されます。

 

データを分割する理由

データを3つに分けるのは、より実用的(汎用的)なモデルを手に入れたいからです。

汎用的な能力(汎化能力)はつまり、まだ見ぬデータに対しての能力です。

受験勉強で教科書の問題(学習データ)を解けるようにすることが目的ではなく、本試験の問題(未知の問題)が解けるように学習するのと同じですね。

一つのデータセット(教科書の問題)だけで学習と評価を行ってしまうと、あるデータセット(教科書の問題)だけにしか対応できないモデルが出来上がってしまいます。

 

まとめ

ディープラーニングでは、訓練データ(train data)検証データ(validation data)テストデータ(test data)の3つに分けて学習を行うのが一般的です。

訓練データ(train data)は学習時に重みの更新のために使われます。

検証データ(validation data)はハイパーパラメータのチューニングのために使われます。

テストデータ(test data)は作ったモデルの精度評価のために使われます。

データを3つに分けるのは、より実用的(汎用的)なモデルを手に入れたいからです。

 

参考文献

 

 

コメント

タイトルとURLをコピーしました