現在、AIや機械学習界隈で最も有名なスタンフォード大学のAndrew Ng教授が、「Machine Learning Yearning」という書籍を執筆中です。2018年4月18日に、そのドラフト版(1-14章)が公開されました。
この投稿では、いち早く本書籍を翻訳しました。
この本は、機械学習プロジェクトの構築方法を提供します。また、機械学習アルゴリズムを教えるのではなく、機械学習アルゴリズムが機能する方法に焦点を当てています。
本投稿は、6章の翻訳になります。少しづつ翻訳していきます。
1~5章の翻訳
【Draft版公開】Machine Learning Yearning 1~5章 by stanford大学Andrew Ng教授
7-8章の翻訳
【Draft版公開】Machine Learning Yearning 7~8章 by stanford大学Andrew Ng教授
9-10章の翻訳
【Draft版公開】Machine Learning Yearning 9~10章 by stanford大学Andrew Ng教授
11-12章の翻訳
[【Draft版公開】Machine Learning Yearning 11~12章 by stanford大学Andrew Ng教授]
(https://qiita.com/Ishio/items/35c756e073a1f2f1d244)
本書籍は、とても読みやすく、かつ各章短めに記載されています。
6.Your dev and test sets should come from the same distribution(開発/テストセットは同じ分布にするべき)
あなたの猫アプリの画像データは、米国、中国、インド、その他の4つの地域に分けられます。開発セットとテストセットを考え出るとき、開発セットに米国とインドを配置し、中国、その他の国々はテストセットとして提供するかもしれません。
言い換えると、4つの地域のうち2地域のデータを開発セットにランダムに割り当て、残りの2つの地域をテストセットに割り当てることができます。
開発セットとテストセットを定義したら、あなたのチームは開発セット上のパフォーマンスを向上させることに集中します。 したがって、開発セットは、最も向上したいタスクを反映する必要があります。4つの地域のデータでうまくいく必要があります。2つの地域データだけでなく。
2つ目の問題は、開発セットとテストセットで、異なる分布を持っていることです。
開発セットでうまく働く分類器を構築できても、テストセットではうまくいきません。
私は多くのフラストレーションと無駄な努力を伴うこの結果をこれまで見てきました。この事象があなたに発生しないようにしてください。例として、あなたのチームが、テストセットではなく開発セットでうまく動作するシステムを開発したとします。仮にあなたの開発セットとテストセットが同じ分布であるならば、何がうまくいっていないかを明確に診断できます。明らかな改善方法は、より多くの開発セットデータを収集することです。
しかし、開発セットとテストセットが異なる分布から生成されている場合、あなたの選択はあまり明確ではありません。いくつかのことが間違っている可能性が高いです。
- 開発セットに対してオーバーフィットの可能性があります。
- テストセットは開発セットより困難な状況である場合。実はあなたのアルゴリズムは期待通りにやっているかもしれません。それ以上の改善はありません。
- テストセットは必ずしも困難な状況ではないが、開発セットと異なる分布である場合。だから、開発セットでうまく機能することが、テストセットではうまくいきません。この場合、開発セットのパフォーマンスを向上させるための多くの作業が無駄になります。
機械学習のアプリケーションの動作は非常に難しいです。開発セットとテストセットの分布が不一致である場合、開発セットの分布を改善することでテストセット上でのパフォーマンスが向上するかどうかは、さらに不確実となります。開発セットとテストセットの分布が一致しない場合、何が機能し何が機能していないかを明らかにすることが難しくなり、作業の優先順位を決めることが困難になります。
ある分布で訓練され、他の分布にも一般化された学習アルゴリズムを開発することは、重要な研究課題の一つです。でも、あなたの目標が研究の進展を促進することではなく、特定の機械学習アプリケーションをよりよくすることであれば、同じ分布から導かれた開発/テストセットを選ぶことをお勧めします。これにより、チームがより効率的になります。