AIの学習では、ときどき不思議なことが起こります。
学習データではとてもよく当たるのに、新しいデータになると、急に予測がうまくいかなくなることがあるのです。
このような状態を過学習(overfitting)と呼びます。
では、なぜこんなことが起こるのでしょうか。
ここで、テスト勉強をしている学生を想像してみてください。
その学生は、問題の意味を理解するのではなく、過去問の答えをすべて丸暗記してしまいました。
するとどうなるでしょう。
同じ問題が出れば、完璧に答えられます。
しかし、少し形を変えた問題が出ると、途端に解けなくなってしまいます。
これは、その学生が内容を理解していたわけではなく、答えを覚えていただけだったからです。
AIでも同じようなことが起こります。
モデルがデータを理解するのではなく、学習データそのものを覚えてしまうことがあるのです。
これが過学習です。
この状態は、グラフで考えると少しイメージしやすくなります。
たとえば、データの傾向を予測するために線を引くとします。
理想的なのは、データの大まかな傾向を表すシンプルな線です。
しかし、すべてのデータにぴったり合わせようとすると、線はぐにゃぐにゃと曲がってしまいます。
こうしてできたモデルは、学習データにはぴったり合いますが、新しいデータにはうまく対応できません。
つまり、線が曲がりすぎてしまった状態が過学習なのです。
そこで登場するのが 正則化(regularization)です。
正則化とは、モデルが複雑になりすぎないように制限する方法のことです。
言い換えれば、線が曲がりすぎないようにする仕組みとも言えます。
正則化では、複雑すぎるモデルにペナルティを与えるという考え方がよく使われます。
これは、先ほどの学生の例で言えば、「答えを丸暗記しすぎると減点される」というルールを作るようなものです。
するとAIは、ただデータを覚えるのではなく、本当に重要な特徴を学習しようとするようになります。
このような正則化の方法には、いくつかの種類があります。
代表的なものとして
・L0正則化
・L1正則化
・L2正則化
などがあります。
これらは、モデルの重みに制約を与えることで、モデルが複雑になりすぎるのを防ぐ方法です。
特にL1正則化とL2正則化は、機械学習やディープラーニングで広く使われています。
機械学習を勉強していると、「正則化(regularization)」という言葉が出てきます。
でも、この言葉を初めて見たとき、「正しい? 規則? いったい何を正しくするの?」と、少し不思議に思うかもしれません。
実はこの言葉のもとになっているのは、英語の regular という言葉です。
regular には、
・規則的な
・整った
・きちんとした
といった意味があります。
つまり正則化とは、モデルを「整った形」にすることと言い換えることができます。
AIのモデルは、自由に学習させると、どんどん複雑になっていくことがあります。
学習データにぴったり合わせようとすると、モデルは細かい特徴まで拾い上げてしまい、まるでぐにゃぐにゃに曲がった線のような形になることがあります。
こうしたモデルは、学習データにはよく当てはまりますが、新しいデータにはうまく対応できません。
そこで正則化では、重みを小さくする、不要な特徴を減らす、モデルをシンプルに保つといった工夫をします。
つまり、モデルの形を整えるのです。
だからこの方法は、
regular(整える) → regularization(正則化)
と呼ばれるようになりました。
学ぶということは、ただ情報を増やすことではありません。
むしろ、不要なものを減らし、本当に重要なものを残し、全体の形を整えていくという過程でもあります。
正則化とは、AIがそのような「整った学び方」をするための仕組みなのです。
next ▶ 代表的な正則化手法