汎化性能と検証:未知のデータに強いモデルを選ぶ
学習に使っていない新しいデータでどれだけ当たるかという、汎化性能の考え方を学びます。基礎層では、丸暗記の過学習と、本当の実力である汎化性能の違いを身近な例でつかみます。深掘り層では、ホールドアウト検証と交差検証やk-分割交差検証、時系列データをランダムに分けると起きるデータリーケージという落とし穴、そしてモデル選びの指針であるオッカムの剃刀と赤池情報量規準・ベイズ情報量規準まで説明できるようになります。
ねらい
このレッスンでは、学習に使っていない新しいデータで、どれだけ正しく予測できるかという考え方を学びます。
基礎
学習データを丸暗記してしまう過学習(かがくしゅう)と、本当の実力にあたる汎化性能(はんかせいのう)の違いを身近な例でつかみます。
1. 丸暗記の過学習と本当の実力の汎化性能
機械学習のモデルは、学習データを丸暗記してしまうことがあります。学習に使ったデータには細かい点までぴったり合わせこむのに、初めて見るデータには当たらなくなる。この状態を過学習(かがくしゅう)と呼びます。過去問の答えだけを覚えた受験生と同じ状態です。
これに対して、学習に使っていない新しいデータに、どれだけ正しく予測できるかを表す力が、汎化性能(はんかせいのう)です。汎化とは、学んだことをまだ見ていない場合にも広く当てはめられる、という意味です。汎化性能が高いモデルは、初めてのデータにもよく当たります。私たちが本当に高めたいのは、この力のほうです。
ここで、1つ注意が要ります。学習データに対する当たり具合をいくら見ても、汎化性能は分かりません。丸暗記した受験生が過去問で満点を取るように、過学習したモデルも、学習データの上ではよく当たるからです。
注意
学習データによく当たることは、汎化性能が高いことを意味しません。本当の実力は、学習に使っていない新しいデータで試して、はじめて分かります。
2. 過学習を生むモデルの複雑さ
過学習は、モデルが複雑すぎるときに起きやすくなります。複雑なモデルは表現の自由度が高く、学習データの細かなでこぼこや、たまたま混じったばらつきまで、そのまま覚えこんでしまうからです。
たとえるなら、紙の上の少数の点に線を引くとき、むりやりくねくねと曲げて、すべての点をぴったり通した状態です。その線は手元の点には完ぺきに合いますが、点と点の間や、その先を予測させると大きく外れます。データの本当の傾向ではなく、手元のデータのくせまで覚えてしまったのです。
反対に、モデルが単純すぎてもうまくいきません。今度はデータの傾向そのものをとらえきれず、学習データにも新しいデータにも当たらなくなります。複雑すぎず単純すぎない、ちょうど良い複雑さを選ぶことが、汎化性能を高める鍵になります。
ここまでの要点
- 過学習は、学習データを丸暗記して、新しいデータに当たらなくなる状態です。
- 汎化性能は、学習に使っていない新しいデータへの当たり具合で、本当の実力にあたります。
- モデルが複雑すぎると丸暗記に走り、単純すぎると傾向をとらえきれません。
まずは全体像をつかめれば十分という人は、ここで区切って大丈夫です。「丸暗記が過学習、初めてのデータに当たる力が汎化性能」と押さえられていれば、この先の深掘りに進む土台はできています。
発展
ここからは、汎化性能を数字ではかる検証のやり方と、時系列データの分割にひそむ落とし穴、そしてちょうど良いモデルを選ぶ指針まで掘り下げます。
3. データを2つに分けるホールドアウト検証
本当の実力は、学習に使っていないデータでしか分かりません。といっても、まだ見ぬ未来のデータを今すぐ用意することはできません。そこで、手元のデータの一部をわざと学習に使わず、取っておきます。
最も基本のやり方が、ホールドアウト検証です。手元のデータをランダムに2つに分け、片方を学習用、もう片方を検証用にします。学習用のデータでモデルを育て、取っておいた検証用のデータで当たり具合をはかります。検証用のデータはモデルが一度も見ていないので、初めてのデータの代役を務められるのです。
ランダムに分けるのには理由があります。データの並び順には、集めた時期や集め方のくせが残っていることがあるためです。よく混ぜてから分ければ、学習用と検証用の性質がそろい、公平に実力をはかれます。
ただし、手軽な分だけ弱点もあります。1回きりの分け方の運に結果が左右され、たまたま実力より良く見えたり、悪く見えたりするのです。
4. 時系列データでランダム分割が起こすカンニング
ホールドアウト検証では、データをよく混ぜてから分けました。実は、この混ぜるという手順には、隠れた前提があります。データの並び順に意味がない、という前提です。
株価や売上、気温のように、時間の順に並んだデータは、時系列(じけいれつ)データと呼ばれます。時系列データは並び順そのものが情報なので、この前提を満たしません。時系列データでは、ランダムに混ぜる分割は厳禁です。
たとえば、1月から6月までの売上データを使って、7月から先の売上を予測するモデルを作るとします。この6か月分をランダムに混ぜて2つに分けると、6月のデータが学習用に、1月のデータが検証用に入ることが起きます。
このときの検証でモデルが解いているのは、6月までの売上を学んだうえで、1月の売上を当てるという問題です。未来を知ったうえで過去を当てる。本番では決してできないカンニングです。
カンニングをしたモデルの検証の成績は、実力より高く出ます。未来の値を知っていれば、その少し前の値はおおよそ見当がつくからです。数字のうえでは優秀に見えたモデルが、本番で本物の未来を予測したとたん、まるで当たらなくなります。
このように、本来は学習に使えないはずの情報が学習側にもれこむことをデータリーケージと呼びます。リーケージは、漏れという意味の英語です。検証の成績がかえって良く見えるため気づきにくく、実力を正しくはかるうえでの、実務上の大きな罠になっています。
時系列データの正しい分け方は、時間軸で区切ることです。ある時点を区切りに決め、区切りより過去のデータを学習用に、未来のデータを検証用にします。先ほどの例なら、1月から4月までで学習し、5月と6月で検証する分け方です。モデルは過去だけから学び、まだ見ていない未来を予測します。本番とまったく同じ形で、実力をはかれるのです。
なお、データリーケージは時系列データだけの現象ではありません。予測したい答えの手がかりになる情報が学習データに紛れ込めば、同じ罠が起きます。この罠の全体像は、データの集め方と扱い方を学ぶところであらためて広げます。
注意
時系列データの検証では、学習に使ったデータより未来のデータで実力をはかります。ランダムに混ぜた時点で、その検証の成績は信用できなくなります。
5. 分け方のぶれをならす交差検証とk-分割交差検証
並び順に意味のないデータに話を戻します。ホールドアウト検証には、1回きりの分け方の運で結果がぶれる、という弱点がありました。このぶれをやわらげる方法が、交差検証です。交差検証では、データの分け方を変えながら検証を何度もくり返し、その結果をならして実力を見積もります。1回の分け方に頼らないため、見積もりが安定します。
代表的なやり方が、k-分割交差検証です。ここでのkは、データをいくつに分けるかを表す数です。まず、手元のデータを同じくらいの大きさのk個の束に分けます。そのうち1つの束を検証用に取っておき、残りのすべての束で学習します。次に、検証用にする束を別の束に替えて、同じことをくり返します。k回くり返すと、すべての束がちょうど1回ずつ検証用を務めます。最後に、k回の当たり具合をならした値が、汎化性能の見積もりになります。
この方法の良いところは、すべてのデータが、あるときは学習に、あるときは検証に使われることです。データを無駄なく使えるので、手元のデータが少ないときに向いています。分ける数kを大きくするほど、1回の学習に使えるデータは増えますが、くり返しの回数が増えて計算は重くなります。
なお、交差検証もデータを混ぜて分けることが前提のやり方です。時系列データにそのまま使えない点は、ホールドアウト検証のランダム分割と変わりません。時系列データでは、時間軸で区切る分け方が優先されます。
理解の確認
分け方の回数とぶれという言葉で、ホールドアウト検証と交差検証の違いを言い直せるか確かめてみてください。あわせて、時系列データだけ時間軸で区切る理由も、カンニングという言葉で説明できるか試してみてください。
6. ちょうど良いモデルを選ぶオッカムの剃刀とAIC・BIC
検証で実力をはかれるようになると、次の課題が見えてきます。複雑すぎず単純すぎない、ちょうど良いモデルをどう選ぶかです。
その根本にある考え方が、オッカムの剃刀(オッカムのかみそり)です。オッカムの剃刀とは、同じくらいよく説明できるなら、より単純な説明を選ぶべきだ、という古くからの指針です。よけいな複雑さは、ひげをそり落とすように削ろう、というたとえがこの名前に込められています。機械学習に当てはめると、検証の成績が同じくらいなら、より単純なモデルを選ぶほうが過学習しにくく、汎化性能が高まりやすい、という指針になります。
この、当たり具合と単純さの兼ね合いを1つの数値で表す道具もあります。赤池情報量規準(AIC)と、ベイズ情報量規準(BIC)です。どちらも、モデルがデータにどれだけ当てはまっているかという評価に、モデルの複雑さに応じた罰点を加えて計算します。当てはまりが良いほど数値は下がり、複雑になるほど罰点で数値は上がります。複数のモデルを比べて、この数値が最も小さいものを選べば、当たり具合と単純さのつり合ったモデルを選べるのです。
2つの規準は、複雑さへの罰点のかけ方が違います。ベイズ情報量規準のほうが、データの量が多いほど複雑さへの罰点を強くかけるため、より単純なモデルを選びやすくなります。どちらも、オッカムの剃刀の考え方を数値の形にした道具だといえます。
理解度の確認
説明できる項目にチェックを入れましょう。すべて確認できたら、完了ボタンで記録します。
分からなかった点・気になった点
読み込み中です。