機械学習(ML:Machine Learning)モデルのパフォーマンスは、トレーニング時に提供されたものとは異なる「新しいサンプル」をモデルにフィードするときに重要となります。
本番環境ではトレーニング目的でサンプルデータを使用した場合とは異なる入力が得られるため、モデルは新しいサンプルでも適切に機能する必要があります。
そのため、「トレーニング目的で使用したサンプル」とは異なる「新しいサンプルセット」を使用して、機械学習モデルを検証する必要があります。
CNTKでは、以下の検証用データセット作成方法を利用できます。
「ホールドアウトデータセット」は、ニューラルネットワーク(NN:Neural Network)を検証するためのデータセットを作成するための基本的な方法です。
この方法では、サンプルの1セット(例:20%)を使用してMLモデルのパフォーマンスをテストします。
ホールドアウトデータセットモデルにより、MLモデルをトレーニングするのに十分なデータが確保されると同時に、モデルのパフォーマンスを適切に測定するための適切な数のサンプルを確保できます。
・メインデータセットからランダムなサンプルを選択---トレーニングセットとテストセットの間で均等に分散
・モデルをトレーニングするたびにデータセットの順序がランダム化される必要がある
・深層学習アルゴリズムは乱数ジェネレーターの影響を強く受ける
・トレーニング中にサンプルをNNに提供する順序はパフォーマンスに大きく影響する
ホールドアウトデータセット手法を使用することの主な欠点は「低い信頼性」です。
「非常に良い結果が得られることもある」また「悪い結果が得られることもある」など、結果が安定しないケースがあります。
「K分割交差検定」は、「方法①ホールドアウトデータセット」の欠点をカバーするための方法です。
「ホールドアウトデータセット手法」を数回(5〜10回)繰り返すことで、信頼性を高めます。
・[Step1]データセットを「トレーニングセット(80%程度)」と「テストセット(20%程度)」に分割
・[Step2]「トレーニングセット」を使用してモデルをトレーニング
・[Step3]「テストセット」を使用してモデルのパフォーマンスを測定
・[Step4]Step2~3を5〜10回繰り返す
・[Step5]すべてのパフォーマンスメトリックの平均を計算
より現実的なトレーニングとテストシナリオを使用しているため、はるかに安定したパフォーマンス測定が可能になります。
深層学習モデルの検証に多くの時間がかかります。
また、CNTKは「K分割交差検定手法」をネイティブサポートしていないため、独自スクリプトを作成する必要があります。
上記2方法のどちらでも、「トレーニング用データセット」と「検証用データセット」では、メトリックの出力が異なります。
「過剰適合」とは、「MLモデルがトレーニングデータを良好にモデル化」しますが、「テストデータでは適切に機能せずパフォーマンスが大幅に低下」という現象です。
MLモデルがトレーニングデータから特定のパターンとノイズをある程度学習すると、トレーニングデータから新しいデータに一般化するモデルの能力に悪影響を及ぼします。
「アンダーフィッティング」とは、MLモデルがトレーニングデータを適切にモデル化せず、有用な出力を予測できない状況です。
トレーニングを開始直後でモデルの適合度は低くなり、トレーニングが進むにつれてさらに適合度が低くなります。
AIプログラミング学習サービス「Aidemy」を運営するアイデミーは、2月7日、 Microsoftが開発した深層学習ライブラリ「Cognitive Toolkit(CNTK)」を学習できる講座を開始した。 【「Cognitive Toolkit」とは】 AI技術を利用したディープラーニング(深層学習)ツールキット http://www.ossnews.jp/oss_info/Micr...
OSS×Cloud ACCESS RANKING