正解は「E. テストデータは学習に寄与しない。」です。
ややこしい話をします。分かりやすいように、検証データをvalidation data、テストデータをtest dataと書くことにします。
ややこしい原因の1つは日本語訳です。validationを「テスト」と訳している教科書やサイトがあります(その訳でも間違ってはいない点もさらにややこしい)。仮にデータセットをtraining(訓練)データと、validationデータもしくはtestデータの2つに分けるのであればとくに気にする必要はありません。validation dataであろうが、test dataであろうが「訓練データではない方」という意味です。
原因の2つ目はvalidationがtestの一種を指すことです。validationは「仕様に合うかの確認」という意味なので、これをテストといっても意味が通じます。validationとtestは意味が違うと説明するサイトもありますが、その解説は感覚的なもので不明確です。図示や式として表すことはできていません。
では前述のややこしいポイントを踏まえて、機械学習におけるvalidationとtestの違いを具体的に説明します(「具体的」なのがポイントです)。まず機械学習モデルはtraining dataでバッチサイズごとに重みを更新します。すべてのtraining dataで学習したら(つまり1エポック終わったら)、ここではじめてvalidation dataで正解率や誤差を算出します。
training dataでは誤差をもとに重みを変化させますが、validation dataでは正解率や誤差を算出するだけで重みの更新は行いません。言い換えると、モデルはvalidation dataでは学習しません。その後また次のエポックが始まり、それが終われば先ほどと同じようにvalidation dataで検証します。これを指定したエポック数まで繰り返します。
test dataはすべてのエポックが終了した時点で使われます。ここでも重みの更新はありません。この点ではvalidation dataと似ています。違いはvalidation dataが複数回使用される点です。
validation dataは、学習途中のモデルの評価に使われます。それによって早期に学習を打ち切ったり、説明変数の選択、ハイパーパラメータの調節を行います。モデルの重みの更新自体には関与しませんが、モデルの構成にはしっかりと関与しています。間接的にモデルを形成しているといって良いでしょう。
これに対してtest dataは直接的にも間接的にもモデルの形成には関与していません。つまりモデルが完成してから、その後に収集されたデータ(未来のデータ)と変わらないものです。
いかがでしょう。training data, validation data, test dataの区別はつきそうですか?繰り返し読んで理解しましょう。
正解は「E. テストデータは学習に寄与しない。」です。
ややこしい話をします。分かりやすいように、検証データをvalidation data、テストデータをtest dataと書くことにします。
ややこしい原因の1つは日本語訳です。validationを「テスト」と訳している教科書やサイトがあります(その訳でも間違ってはいない点もさらにややこしい)。仮にデータセットをtraining(訓練)データと、validationデータもしくはtestデータの2つに分けるのであればとくに気にする必要はありません。validation dataであろうが、test dataであろうが「訓練データではない方」という意味です。
原因の2つ目はvalidationがtestの一種を指すことです。validationは「仕様に合うかの確認」という意味なので、これをテストといっても意味が通じます。validationとtestは意味が違うと説明するサイトもありますが、その解説は感覚的なもので不明確です。図示や式として表すことはできていません。
では前述のややこしいポイントを踏まえて、機械学習におけるvalidationとtestの違いを具体的に説明します(「具体的」なのがポイントです)。まず機械学習モデルはtraining dataでバッチサイズごとに重みを更新します。すべてのtraining dataで学習したら(つまり1エポック終わったら)、ここではじめてvalidation dataで正解率や誤差を算出します。
training dataでは誤差をもとに重みを変化させますが、validation dataでは正解率や誤差を算出するだけで重みの更新は行いません。言い換えると、モデルはvalidation dataでは学習しません。その後また次のエポックが始まり、それが終われば先ほどと同じようにvalidation dataで検証します。これを指定したエポック数まで繰り返します。
test dataはすべてのエポックが終了した時点で使われます。ここでも重みの更新はありません。この点ではvalidation dataと似ています。違いはvalidation dataが複数回使用される点です。
validation dataは、学習途中のモデルの評価に使われます。それによって早期に学習を打ち切ったり、説明変数の選択、ハイパーパラメータの調節を行います。モデルの重みの更新自体には関与しませんが、モデルの構成にはしっかりと関与しています。間接的にモデルを形成しているといって良いでしょう。
これに対してtest dataは直接的にも間接的にもモデルの形成には関与していません。つまりモデルが完成してから、その後に収集されたデータ(未来のデータ)と変わらないものです。
いかがでしょう。training data, validation data, test dataの区別はつきそうですか?繰り返し読んで理解しましょう。