前回はdeep learningの意味を簡単に紹介しました。
前回までの記事はこちら
「Deep learning勉強筆記2 deep learningのlearningはどの意味」
「Deep learning勉強筆記1 — deep learningのdeepは何の意味」
今回は機械学習の最も基本となる概念を紹介させていただきたいです。
deep learningにはあまり関係ないように思いますか? でも、もしdeep learningとか、または他の機械学習方法を勉強したいなら、この概念は絶対に役立ちます。
今回の説明は、できるだけ簡単に説明します。実際、この概念は複雑な数学と関連するので、もしもっと詳しく理解したいなら、wikiの詳しいの数学定義を読んてください。
1:代償関数(cost function)と損失関数(loss function)
損失関数と代償関数は、現実(f(x))と予測(h(x))の差です。
損失関数と代償関数はほぼ同じものです。
違うのは、範囲です。損失関数の範囲は狭く、例えば一つのデータポイント。これに対して代償関数の範囲は広く、例えば一つのデータセットです。
代償関数は損失関数の総和となります(自分の理解では)。
2:教師あり学習(Supervised Learning)、教師なし学習(Unsupervised Learning)
教師あり学習には、今までの経験にもとづいてモデルを訓練する方法です。
これは今までの結果を利用し、人の経験を利用しての手法です。
実際、大部分の機械学習(deep learning)でも、教師あり学習を利用しています。
教師なし学習は、データのみを見ての訓練方法で、人の経験はほぼ利用しないです。
教師なし学習は普通はデータクラスタリング時に利用され、事前にデータ分析する時に利用されます。
3:一般化(Generalization)
一般化は、モデルの汎用能力です。
実際、これは機械学習中一番重要な問題です。
モデルを訓練する時、一番の問題は、訓練の場合のパフォーマンスはとても素晴らしい、でも実際運用の時には全然できないということです。この問題は一般化問題です。
4:訓練集(training set)とテスト集(test set)
訓練集は、訓練用のデータ集です。
それに対して、テスト集はテスト用のデータ集です。
訓練集とテスト集は同じオリジナルデータ集を基にするのがベストです。
そして、テスト集では訓練をすることはできません、テスト専用です。
5:オーバーフィット(overfitting)とアンダーフィット(underfitting)
オーバーフィットは、モデルの訓練時のパフォーマンスはとても優秀、でもテスト(実際運用)の時にはあまり良くないという現象です。または、訓練時とテスト時のパフォーマンスの差が大きすぎる現象。
アンダーフィットは、モデルの訓練時のパフォーマンスがあまり良くない現象です。
オーバーフィットもアンダーフィットも同じ機械学習における基本の問題です、特にオーバーフィット。実際、上で紹介した「一般化」もオーバーフィットを解決するための考え方です。
良いモデルは、訓練の場合とテストの場合のパフォーマンスがあまり変化しません、その差に納得できる範囲のモデルです。
6:モデル容量(capacity)
モデル容量は、モデルが現実を表現する能力です。
モデル容量が大きければ、現実の表現能力も高い。
例えば:f(x) = ax, g(x) = ax + b, g(x)はf(x)より容量は大きいです。(表現力が高い)
簡単に言うと、パラメータが多いモデルは容量が大きいです。
でも、モデルに対して容量が大きい方ければ良いわけではありません。
容量が大きい場合には、オーバーフィットが発生する確率が高くなります。
今回はここまでです。
引き続き勉強を続けてこのブログで公開していきます。
中国広東省出身、京都オフィス勤務のエンジニア。機械学習に興味がある。京都大学留学生として来日して以来、京都の住みやすさが気に入っている。