No history yet

機械学習の数理と手法

数式で見る機械学習

機械学習は、単なる自動化ツールではありません。その核心は、データからパターンを学び、未知のデータに対して予測を行うための「数学的モデル」を構築することにあります。教師あり学習を例にとると、その目標は入力データ xx から出力データ yy を予測する関数 ff を見つけ出すことです。つまり、yf(x)y \approx f(x) となるような最適な関数を探す旅、それが機械学習です。

この関数 ff の形は、解決したい問題の種類によって決まります。例えば、家の広さ(xx)から価格(yy)を予測する場合、yyは連続的な数値なので「回帰」問題と呼ばれます。一方、家の特徴(xx)から「一戸建て」か「マンション」か(yy)を予測する場合、yyはカテゴリなので「分類」問題となります。

yf(x)y \approx f(x)

最も基本的な回帰モデルが線形回帰です。これは、入力と出力の関係が直線的であると仮定します。例えば、家の広さと価格の関係を一本の直線で表現しようと試みるわけです。数式で書くと、f(x)=w1x1+w2x2+...+bf(x) = w_1 x_1 + w_2 x_2 + ... + b となります。ここで、x1,x2x_1, x_2 は「広さ」や「駅からの距離」といった特徴量、w1,w2w_1, w_2 はそれぞれの重要度を示す重み、bはバイアス項です。学習とは、手持ちのデータセットに対して予測誤差が最も小さくなるような wwbb の組み合わせを見つけるプロセスに他なりません。

では、分類問題ではどうでしょう。同じように線形モデルを使えますが、出力が「0か1」のようなカテゴリになるように少し工夫が必要です。そこで登場するのがロジスティック回帰です。線形回帰の出力 w1x1+...+bw_1 x_1 + ... + b を、0から1の間の確率値に変換する「シグモイド関数」に通すことで、分類を可能にします。これにより、「マンションである確率が80%」といった予測ができるようになるのです。

決定木から森へ

線形モデルは強力ですが、データ内の複雑な非線形関係を捉えるのは苦手です。そこで役立つのが決定木です。決定木は、データを「もし〜なら...」という形式の単純なルールで繰り返し分割していきます。例えば、「部屋数は3部屋以上か?」「はい/いいえ」といった質問を重ね、データを小さなグループに分けていくイメージです。最終的に、各グループの平均値(回帰)や最頻出カテゴリ(分類)を予測値とします。

決定木は解釈しやすいのが大きな利点ですが、1本の木だけではデータのごく一部のパターンに過剰に適合してしまう「過学習」に陥りやすいという弱点があります。1人の専門家の意見に偏りがあるのと似ています。この問題を解決するのが、アンサンブル学習の一種であるランダムフォレストです。

ランダムフォレストは、文字通り「ランダムな木の森」を作ります。まず、元のデータからランダムに一部のデータを選び出して(ブートストラップサンプリング)、小さなデータセットを複数作成します。次に、それぞれのデータセットに対して決定木を1本ずつ作ります。その際、各分割で考慮する特徴量もランダムに一部に限定します。こうして、少しずつ異なる多数の「個性的な」決定木が生まれます。

予測するときは、森の中のすべての木に意見を聞き、それらの多数決(分類)や平均(回帰)をとります。多くの専門家から意見を集めることで、一人の偏った意見に左右されず、より頑健で精度の高い予測が可能になるのです。

バイアスとバリアンスの綱引き

モデルの性能を評価する上で避けて通れないのが、「バイアス・バリアンスのトレードオフ」という概念です。

  • バイアス:モデルの予測が、真の値からどれだけ体系的にずれているかを示します。バイアスが高いモデルは、単純すぎてデータに潜む複雑なパターンを捉えきれていません(未学習)。例えば、どんなデータに対しても直線を当てはめようとする線形回帰は、データが複雑な曲線を描いている場合、高いバイアスを持つことになります。

  • バリアンス:訓練データが少し変わっただけで、モデルの予測がどれだけ大きく変動するかを示します。バリアンスが高いモデルは、訓練データに過剰に適合しすぎており、ノイズまで学習してしまっています(過学習)。新しい未知のデータに対しては、うまく予測できません。深すぎる決定木は、高いバリアンスを持つ典型例です。

理想的なモデルは、バイアスもバリアンスも低いものです。しかし、この二つはトレードオフの関係にあります。モデルを複雑にしてバイアスを下げようとすると(例:決定木の深度を増やす)、今度はバリアンスが上がってしまいます。逆に、モデルを単純にしてバリアンスを下げようとすると、バイアスが上がります。このバランスをうまくとることが、良いモデル構築の鍵となります。

このトレードオフを管理し、特に過学習を抑制するために用いられる技術が正則化です。正則化は、モデルが複雑になりすぎることに対してペナルティを課す仕組みです。具体的には、モデルの学習時に、通常の予測誤差(損失関数)に加えて、「モデルの複雑さを示す項(正則化項)」を足し合わせます。この項が大きくなりすぎないように学習を進めることで、モデルは必然的にシンプルな形、つまり汎化性能の高い状態に保たれます。

最小化する目的関数=損失関数+λ×正則化項\text{最小化する目的関数} = \text{損失関数} + \lambda \times \text{正則化項}

代表的な正則化には、L1正則化(Lasso)とL2正則化(Ridge)があります。L2正則化は、大きな重みを持つ特徴量にペナルティを与え、全体的に重みの値を小さく抑えることで滑らかなモデルを作ります。一方、L1正則化は、不要な特徴量の重みを完全に0にする性質があるため、特徴量選択(どの特徴が予測に重要かを見極める)の効果も期待できます。

これらの手法を理解することは、単にアルゴリズムを実行するだけでなく、データと対話し、その特性に合った最適なモデルを「設計」するための第一歩です。

Quiz Questions 1/6

教師あり学習の主な目標として最も適切なものはどれですか?

Quiz Questions 2/6

顧客の過去の購買履歴から、その顧客が「購入する」か「購入しない」かを予測する問題は、一般的に何に分類されますか?

機械学習の旅は、数学的なモデルとデータとの対話の連続です。アルゴリズムの仕組みを深く理解することで、より洞察に満ちた分析が可能になります。