東大生AI初心者の学習日誌 Day4 「過学習と正則化」

   
★AIDB会員限定Discordを開設いたしました! 会員登録/ログインの上、マイページをご覧ください。
★コンサルティングサポート(調査・研修・開発支援)をご希望の方はお問合せください。

こんにちは、じゅんペー(@jp_aiboom)です!

僕は現在東京大学の理系の二年生です。この連載では、AI初心者の僕が、「パターン認識と機械学習(通称PRML)」を読み進めながら、機械学習の理論面を一から勉強していく様子をお届けしたいと思います。


AIDBの全記事が読み放題のプレミアム会員登録はこちらから↓

第4回目の今回は、第3回目までの続きの記事になります。第3回目の最後に触れた多項式曲線フィッティングと過学習についての問題を解消したあとに、機械学習ではとても重要な「正則化」についても少し触れていきたいと思います。

まだ前回までの記事を読まれてない方は、先にそちらから読んでいただくと、理解がスムーズかと思います。

Day1「機械学習の全体像」
Day2「多項式曲線フィッティング」
Day3「多項式曲線フィッティングと過学習」

過学習

前回の記事では、 \(M\)の値を高くしすぎると「過学習」が起こることに触れたうえで、次のような問題提起をしました。

前回の記事より)
・・・

今回は、過学習について曲線フィッティングを例に見ていきました。
ただ、これを読んでいく中で、数学の知識がある方は、そもそもsin関数は級数展開を考えると、
$$sinx = x – \frac{1}{3!}x^3 + \frac{1}{5!}x^5 …$$
と表されるはずだから、\(M\)を大きくすればするほどいい近似になるんじゃないかと思われるかもしれません。

実際、その考えはとても鋭く、今回と同じような例でも、条件を少し変えると、\(M\)をもっと大きくした方が精度が上がったりもします。

さらにいうと、\(M=9\)ということは、

$$y(x,\boldsymbol{w}) = w_0 + w_1x + w_2x^2 + … + w_Mx^M$$

この式で近似していたことを考えると、9次関数になるわけですが、9次以下の関数は9次関数の一部になっているので(例えば、\(M=9\)のときに、\(w_5,w_6,w_7,w_8,w_9\)を全て0にすると4次関数が作れる)、この観点からも\(M\)が大きい方が、より表現力が増すように思えます。

これに対する、直感的な回答としては、今回は訓練用の点が10個しかなく、それぞれの点におけるノイズ分のsin関数からのズレに、過剰に引っ張られてしまっているのが原因です。

実際、前回の記事のFigure2.5(\(M=3\))とFigure3.1(\(M=9\))のそれぞれの近似曲線の式は、

$$y(x,\boldsymbol{w}) = 0.14 + 12.16x – 37.28x^2 + 25.44x^3$$
$$y(x,\boldsymbol{w}) = 3.52 – 100.55x + 2730.66x^2 – 28324.81x^3 + 154514.80x^4 – 489185.27x^5 \\ + 926572.02x^6 – 1033358.69x^7 + 6250468.29x^8 -158019.07x^9$$

のようになっており、\(M=3\)の時に比べて、\(M=9\)の時は、非常に係数が大きくなっています。これによって、全ての点を通ることはできますが、それ以外の値については近似できているとは言えない状態になったわけです。

訓練データを増やす

本記事を読むにはAIDBのアカウントが必要です。


※ログイン/初回登録後、下記ボタンを押してください。







■サポートのお願い
AIDBを便利だと思っていただけた方に、任意の金額でサポートしていただけますと幸いです。






業界/カテゴリー

PAGE TOP