機械学習において、回帰分析をすることがあります。その際に、機械が勉強し過ぎる「過学習」というケースがあります。その場合、どう対処すべきかについて説明します。次の資料をご覧ください。
資料はこちら → 回帰の正則化
Excelファイルは → 回帰
p.1 9個のデータにフィッティングする近似式はExcelを用いると描くことができます。左上の2次から右下の6次まで近似させています。高次になるほどフィットしていくことがわかります。
p.2 6次に近似させたものです。例えばy=200に対するxの値を近似式より推定する必要があった場合、6次の多項式では5つのxが候補となる可能性があります。 予測値を1つに絞りたい場合、上述のようにフィットさせるのではなく、むしろ左上の右肩上りの傾向だけが欲しい場合があります。AIは学習して完全にフィットする右下を最適解としようとします。 この状態を「過学習」と呼びます。
p.3 「過学習」を避けるために、ペナルティを設ける手法があります。この手法を「正則化」と呼び、「リッジ回帰」と「Lasso回帰」という方法があります。p.2の6次の多項式で近似した式y=a+b1x1+b2x2+b3x3+b4x4+b5x5 にxを代入して求めた予測値yと実際のyの差を「残渣」と呼び、残渣の2乗を計算します。リッジ回帰の場合は、係数b1~b5の二乗の和にλを掛けてペナルティとします。Lasso回帰の場合は、係数の絶対値の和にλを掛けたものをペナルティとします。これらペナルティに残渣2乗の和を加えた値が最小になる係数を算出してグラフに描きます。 赤線がリッジ回帰、青線がLasso回帰ですが、Lasso回帰が予測曲線としては良さそうです。λの値も機械がいろいろ変えてみるのでしょう。y=200の場合のxの予測値は7.45ぐらいにありそうです。
機械学習の場合、あまり学習し過ぎても良くないらしいですね。昔、機械制御の手法に「ファジー制御」と言うものがありました。少し遊びがあった方が最適に近くなるのでしょうか?