コンテンツにスキップ

利用者:紅い目の女の子/データセット (機械学習)

機械学習におけるデータセット: data set)とは、モデルの学習や検証、テストに用いるデータの集まりのこと。データを学習して未知のデータについて何らかの予測をするアルゴリズムを研究・構築することは、機械学習における一般的なタスクである[1]。このようなアルゴリズムは、入力データを用いて数理モデルを構築することにより、データ駆動で予測や決定を行う[2]。こうしたモデル構築には通常、通常単一ではなく複数に分割したデータセットが用いられる。特に、訓練データセット検証データセット評価データセットの3種類のデータセットがモデル作成のさまざまな段階で使用される。

データセットを分割する方法の例。Aの例では、訓練データセットと評価データセットのみを用いる。評価データセットは、学習したモデルの性能を評価するために使用される。Bの例では、検証データセットを用いて学習したモデルの性能を評価し、最終的に完成したモデルを評価データセットで評価する。

概要[編集]

モデルは、まず訓練データセット(くんれんデータセット、: train dataset)[3]に適合するように最適化される。すなわち、訓練データセットは、モデルのパラメーターニューラルネットワークノード同士を繋ぐ接続の重みなど)を適合させるために使用されるデータセットである[4]教師あり学習では、まず現時点のモデルに対して訓練データを入力し、訓練データセット内の各入力についてモデルの予測結果を生成し、出力された予測と入力データに紐づいた真の正解を比較する[5]。予測と正解を比較した結果を元に、特定のモデル最適化アルゴリズムに基づいて、モデルのパラメーターが調整される[6]

続いて、学習したモデルに対して、検証データセット(けんしょうデータセット、: validation dataset)、バリデーションデータセットと呼ばれる第二のデータセットを用いて、モデルの応答を予測する[3]。検証データセットは、モデルのハイパーパラメーター英語版(たとえば、ニューラルネットワークの隠れ層のユニット数[4]学習率英語版)を調整したり[7]、訓練データセットに適合させたモデルに対して、バイアスのない評価を与えたりするものである[8]。 また、検証データセットは、アーリーストッピング英語版と呼ばれる過学習の兆候を捉えモデルの学習を停止する手法[注釈 1]にも用いられ、これによりモデルの正則化がなされる[9]

評価データセット(ひょうかデータセット、: test dataset)、テストデータセットは、訓練データセットを用いて最適化された最終的なモデルに対し、バイアスのない評価を行うために使用されるデータセットである[8]。テストデータセットに含まれるデータがモデルの学習(交差検証なども含む)で使用されていない場合には、テストデータセットのことをホールドアウトデータセット(: holdout dataset)と呼ぶこともある[10]。文献によっては、評価用データセットのことを指す意味で検証データセットという用語が使われることもある(たとえば、データセットの全体を2つのサブセットに分割した場合、訓練データセットでない側のデータセットを検証データセットと呼ぶ場合がある)[11]

データセットを訓練、検証、評価用にどの程度の割合で分割するか、またどのような戦略で分割するべきかは、取り組むタスクや利用できるデータセット、目的などに依存する[12][13]

訓練データセット[編集]

訓練データセット(学習データセットとも、: training dataset)は、学習プロセスにおいて用いられるデータセットであり、分類器の重みパラメータのような、学習モデルのパラメータを最適化するために用いられる [14]。 訓練データセットは教師あり学習においては、入力ベクトル(またはスカラー)とそれに対応する出力ベクトル(またはスカラー)の組で構成され[5]、この入力に対する正解に相当する出力のことを通常、「ラベル」[5]と呼ぶ。

分類タスクにおいて、教師あり学習アルゴリズムは訓練データセットを受け取って、適切な予測モデル英語版を構成するパラメータの最適な組み合わせを決定・学習する[15]。この最適化には、最急降下法確率的勾配降下法などが用いられることもある[16]。学習の目標は、新しい未知のデータにもうまく予測ができるような、汎化性能の高いモデルを作成することである[17]。訓練データセットを用いて学習したモデルは、訓練データセットとは別に選り分けておいたデータセット(検証データセットや評価データセット)に由来する、モデルにとっては未知なデータを用いて評価され、新しいデータに対するモデルの精度を推定する[8]過学習などの課題が生じるリスクを減らすため、検証データセットやテストデータセットはモデルの学習に用いるべきではない[11]

また、訓練データセットから経験的な関係性を探索しようとする多くのアプローチは、訓練データに対して過学習しやすい傾向にある。すなわち、そうしたアプローチは通常ありえないような見かけの関係性を、識別に利用してしまう。

検証データセット[編集]

検証データセット(けんしょうデータセット、: validation dataset)は、機械学習モデルのハイパーパラメータを調整するためのデータセットである。モデル開発用のデータセットという意味で、development set、dev setと表現されることもある[18]。ニューラルネットワークのハイパーパラメータの例としては、各隠れ層のユニット数などがある[14]。検証データセットは、評価データセットと同様に、訓練データセットと同じ確率分布に従うことが望ましい。

過学習を避けるため、機械学習モデルのパラメータを最適化するためには、訓練データセットと評価データセットに加えて、検証データセットを準備するべきである。例えば問題に最も適した分類器を探索する場合には、まず訓練データセットを用いて候補となる分類器を複数学習させ、それらを検証データセットを用いて比較して、どの分類器を採用するかを決める。そして最後に、評価データセットを用いてモデルが未知のデータに対してどの程度の性能を発揮できるのか、精度感度特異度F値などの評価指標を用いて評価する。

こうした検証データセットを用いたモデル選択英語版に用いる場合には、損失関数など推論結果の誤差を元にした関数を用いて、検証データに対する誤差が最も最小となるモデルを選択する[19]。一方でこのように選択したモデルは、検証データに対するバイアスを含んでいるため、最終的なモデル性能評価には、学習データでも検証データでもない、別の評価用のデータを用いて行うべきである[19]

こうしたプロセスの応用として、アーリーストッピング英語版がある。これは、モデル学習を継続的に行い、検証データセットに対する誤差が増加し始めた段階でモデル学習を停止し、その直前のモデルを最良モデルとして選択するものである[注釈 2]

検証データセットは最終的な評価に使わないという意味では訓練データセットと見ることもできる一方で、狭義のモデル学習に直接使うデータセットではない。

評価データセット[編集]

評価データセット(ひょうかデータセット、test dataset, evaluation dataset)とは、訓練データセットとは独立でありながら、訓練データセットと同じ確率分布に従うデータセットである。 もし訓練データセットに適合したモデルが評価データセットに対してもよく適合するのであれば、そのモデルは過学習を最低限に抑えられたといえる。他方、評価データセットに対して訓練データセットによりモデルが適合しているのであれば、多くの場合過学習が発生している。

すなわち、評価データセットは特定の分類器の性能(汎化の度合いなど)を分析するためだけに使用するものである[14]。このために、学習・検証を終えた最終的なモデルを用いて、評価データセットのサンプルを分類する。これらの分類結果と真の分類を比較することで、モデルの性能を分析できる[20]。 検証データセットと評価データセットの両方を用いる状況においては、通常評価データセットは、検証データセットを用いてモデルを選択する過程を経た上で、その最終モデルを分析するために用いられる。一方で、データセット全体を訓練データセットと評価データセットの2つに分割する状況(すなわちホールドアウト法を適用した場合)では、学習されたモデルは評価データセットで一度評価されるだけになることもありうる[21]。こうした手法を避けるよう勧めるものもある[17]

他方で、交差検証のような手法を用いることにより、モデルの学習・評価を繰り返す過程で学習したモデルの偏りや分散を抑制することができるため、データセットを2分割するだけでも十分かつ効果的なモデル学習ができる場合もある[22][11][17]


過学習の事例を表現したグラフ。同じ母集団からサンプリングされた訓練データセット(左)と評価データセット(右)を青い点でプロットしている。また、グラフ中のオレンジと緑の曲線は、訓練データセットを用いて学習することにより得られた2つの異なる予測モデルを表している。オレンジの曲線は訓練データセットに対しては非常に良く適合している一方で、評価データセットに対しては誤差が大きい。これは訓練データセットに過学習しているといえる。一方で緑色のラインはオレンジのラインと比較すると訓練データセットに対しての適合度合いは低いものの、評価データセットに対してもある程度正しい予測ができており、訓練データと評価データそれぞれに対する適合度合いの差が小さい。

用語の混乱[編集]

英語において、検証データセット(validation dataset)と評価データセット(test dataset)の用語に混乱が見られる。 "Test"は対象について明らかにするために何か取り組むことであり[注釈 3]、"Validate"はあるものが妥当であることを証明することを指す[注釈 4]。 この観点から、検証データセット評価データセットについては、これまでに説明した使い分けが一般的である。 一方で、開発プロセスにおいて、様々なモデルを"test"することによって改良し、未知データに対する実運用を前に最終的なモデルの性能を"validate"すると考え、検証データセットと評価データセットの使い分けを入れ替えている事例がしばしばある[23]。 それでも、重要な考え方は依然として検証と呼ぼうが評価と呼ぼうが、実験の最後に使うためだけのデータセットを取り分けておく必要があるということである。

交差検証[編集]

より安定したモデルを得る、あるいは貴重なデータを全てモデル学習に使うという目的で、学習の途中で訓練データセットと検証データセットの分割の仕方を変えていく方法がある[22]。これにより一切モデル学習に使わない検証データセットを独立して取り分ける必要がなくなる。この方法は 交差検証として知られている。交差検証を用いる場合でも、最終的なモデル性能を評価するために、交差検証に用いるデータセットとは別に評価データセットをより分けておくことが一般的である。

関連項目[編集]

脚注[編集]

注釈[編集]

  1. ^ 検証データセットに対する予測の誤差が増加することは訓練データセットに対する過学習の兆候であると考えられるため、検証データセットに対する誤差がある程度増加した段階で学習をそれ以上進めず停止すること。
  2. ^ なお、このシンプルな方法は、検証データに対する予測の誤差が学習中に変動し続け、複数の極小値を取りうるため、実課題に適用するには課題がある。そのため、真に過学習が始まるタイミングを見極めるための多くの規則が考案されている[9]
  3. ^ the Collaborative International Dictionary of Englishによれば、実験により真実、正当性、品質などを証明すること、といった意味がある("To put to the proof; to prove the truth, genuineness, or quality of by experiment")。
  4. ^ the Collaborative International Dictionary of Englishによれば、正しいことを確かめる、妥当性を与える、といった意味がある("To confirm; to render valid")

出典[編集]

  1. ^ Ron Kohavi; Foster Provost (1998). “Glossary of terms”. Machine Learning 30: 271–274. doi:10.1023/A:1007411609915. https://ai.stanford.edu/~ronnyk/glossary.html. 
  2. ^ Bishop, Christopher M. (2006). Pattern Recognition and Machine Learning. New York: Springer. p. vii. ISBN 0-387-31073-8. "Pattern recognition has its origins in engineering, whereas machine learning grew out of computer science. However, these activities can be viewed as two facets of the same field, and together they have undergone substantial development over the past ten years." 
  3. ^ a b James, Gareth (2013). An Introduction to Statistical Learning: with Applications in R. Springer. p. 176. ISBN 978-1461471370. http://www-bcf.usc.edu/~gareth/ISL/ 
  4. ^ a b Ripley, Brian (1996). Pattern Recognition and Neural Networks. Cambridge University Press. p. 354. ISBN 978-0521717700. https://archive.org/details/patternrecogniti00ripl 
  5. ^ a b c 鈴木 2018b, p. 34.
  6. ^ Sidey-Gibbons, Jenni A. M.; Sidey-Gibbons, Chris J. (2019-03-19). “Machine learning in medicine: a practical introduction”. BMC Medical Research Methodology 19 (1): 64-81. doi:10.1186/s12874-019-0681-4. ISSN 1471-2288. PMC PMC6425557. PMID 30890124. https://doi.org/10.1186/s12874-019-0681-4. 
  7. ^ Ripley, Brian D. (1996). Pattern recognition and neural networks. Cambridge: Cambridge University Press. p. 354. ISBN 0-521-46086-7. OCLC 33080179. https://www.worldcat.org/oclc/33080179 
  8. ^ a b c Kuhn, Max (2013). Applied predictive modeling. Kjell Johnson. New York. p. 67. ISBN 978-1-4614-6849-3. OCLC 844349710. https://www.worldcat.org/oclc/844349710 
  9. ^ a b Prechelt, Lutz; Geneviève B. Orr (2012-01-01). “Early Stopping — But When?”. In Grégoire Montavon. Neural Networks: Tricks of the Trade. Lecture Notes in Computer Science. Springer Berlin Heidelberg. pp. 53–67. doi:10.1007/978-3-642-35289-8_5. ISBN 978-3-642-35289-8. https://archive.org/details/neuralnetworkstr00mlle 
  10. ^ Chen, James Ming (2021-02-01). “An Introduction to Machine Learning for Panel Data” (英語). International Advances in Economic Research 27 (1): 1–16. doi:10.1007/s11294-021-09815-6. ISSN 1573-966X. https://doi.org/10.1007/s11294-021-09815-6. 
  11. ^ a b c 引用エラー: 無効な <ref> タグです。「Brownlee」という名前の注釈に対するテキストが指定されていません
  12. ^ Guyon, I. (1997年). “A Scaling Law for the Validation-Set Training-Set Size Ratio” (英語). www.semanticscholar.org. 2022年1月31日閲覧。
  13. ^ Rácz, Anita; Bajusz, Dávid; Héberger, Károly (2021-02-19). “Effect of Dataset Size and Train/Test Split Ratios in QSAR/QSPR Multiclass Classification” (英語). Molecules 26 (4): 1111. doi:10.3390/molecules26041111. ISSN 1420-3049. PMC PMC7922354. PMID 33669834. https://www.mdpi.com/1420-3049/26/4/1111. 
  14. ^ a b c Ripley, B.D. (1996) Pattern Recognition and Neural Networks, Cambridge: Cambridge University Press, p. 354
  15. ^ Larose & Larose 2014.
  16. ^ 鈴木 2018a, p. 27-29.
  17. ^ a b c Xu, Yun; Goodacre, Royston (2018). “On Splitting Training and Validation Set: A Comparative Study of Cross-Validation, Bootstrap and Systematic Sampling for Estimating the Generalization Performance of Supervised Learning”. Journal of Analysis and Testing (Springer Science and Business Media LLC) 2 (3): 249–262. doi:10.1007/s41664-018-0068-2. ISSN 2096-241X. 
  18. ^ Deep Learning” (英語). Coursera. 2021年5月18日閲覧。
  19. ^ a b Bishop, Christopher M. (1995). Neural networks for pattern recognition. Oxford: Clarendon Press. p. 392. ISBN 0-19-853849-9. OCLC 33101074. https://www.worldcat.org/oclc/33101074 
  20. ^ Larose & Larose 2014, p. 140.
  21. ^ Kohavi, Ron (2001-03-03). A Study of Cross-Validation and Bootstrap for Accuracy Estimation and Model Selection. 14. https://www.researchgate.net/publication/2352264. 
  22. ^ a b 橋本 et al. 2019, p. 713.
  23. ^ Ripley, Brian D. (2009). Pattern recognition and neural networks. Cambridge Univ. Press. pp. Glossary. ISBN 9780521717700. OCLC 601063414. "The literature on machine learning often reverses the meaning of 'validation' and 'test' sets. This is the most blatant example of the terminological confusion that pervades artificial intelligence research." 

参考文献[編集]