【AI入門その2】機械学習はどう動いているのか ― データとモデルの基本

この記事では、機械学習がどのようにデータから学ぶのかを仕組みから解説します。
損失関数・最適化・過学習を理解することで、AIプロジェクトで起きる問題の原因と対策が判断できます。

目次

機械学習の学習プロセス全体像

4ステップの繰り返しが機械学習の本質です。

4つのステップで理解する

機械学習モデルが「学ぶ」プロセスは、次の4ステップを数万〜数億回繰り返すことで成立します。

  1. 予測する:現在のパラメータで入力データに対して予測値を出力する
  2. 誤差を測る:予測値と正解の差を「損失関数」で数値化する
  3. 勾配を計算する:損失を小さくするためにパラメータをどの方向にどれだけ動かすべきかを算出する(バックプロパゲーション)
  4. パラメータを更新する:算出した方向にパラメータを微小に動かす(最適化アルゴリズム)
①予測する パラメータで 出力を生成 ②誤差を測る 損失関数で ずれを数値化 ③勾配を計算 誤差を減らす 方向を算出 ④更新する パラメータを 微小に修正 数万〜数億回繰り返す
機械学習の学習ループ(4ステップの繰り返し)

「パラメータ」が学習の実体

パラメータとは、モデル内部にある多数の数値(重みやバイアスなど)のことです。これらは初期状態ではランダムに設定され、学習を通じて、より適切な予測ができるよう自動的に調整されていきます。こうした調整を繰り返すことで、モデルはパターンや関係性を捉え、結果として知識や判断能力を獲得していきます。

損失関数 ― ずれを数値で測る

損失関数が予測のずれを数値化し、学習の方向を決めます。

予測と正解のずれを数値化する

損失関数(Loss Function)とは、モデルの予測値と正解の差(誤差)を単一の数値として表す関数です。この値が小さいほど予測が正確であることを意味します。学習はこの損失値を小さくすることを目標に進みます。

来月の売上予測モデルを例にとると、「予測:100万円、実績:120万円」の場合、差は20万円です。この差を数値化して学習に使います。差が大きいほど「モデルが間違っている」という信号が強くなり、パラメータの修正量も大きくなります。

種類と使い分け

損失関数用途特徴
平均二乗誤差(MSE)回帰(数値予測)外れ値に敏感。予測誤差を2乗するため大きなずれを強く罰する
交差エントロピー分類(カテゴリ判定)確率分布のずれを測る。分類問題の標準的な選択肢
絶対値誤差(MAE)回帰(外れ値が多い場合)外れ値の影響を受けにくい

最適化アルゴリズム ― パラメータをどう動かすか

損失を最小化する方法を決めるのが最適化アルゴリズムです。

勾配降下法の仕組み

最適化アルゴリズムとは、損失を最小化するためにパラメータをどの方向にどれだけ動かすかを決めるルールです。最も基本的なものが勾配降下法(Gradient Descent)です。

「勾配」とは「損失がパラメータに対してどちらの方向に増減するか」を示す微分値です。山の斜面で最も急な下り方向に一歩踏み出すイメージで、損失が最も減少する方向にパラメータを動かします。一度に動かす量(ステップサイズ)を学習率(Learning Rate)と呼びます。

SGDとミニバッチ学習

全データを使って勾配を計算するのは計算コストが高いため、実際にはミニバッチと呼ばれるデータの小さな部分集合(例:32件・64件)を使って勾配を計算し、パラメータを更新する確率的勾配降下法(SGD)が広く使われます。全データを使わない分、勾配にノイズが入りますが、そのランダム性が局所最適解を抜け出す助けになることもあります。

Adamと適応的学習率

現在最もよく使われる最適化アルゴリズムがAdam(Adaptive Moment Estimation)です。各パラメータに対して学習率を自動調整する仕組みを持ち、学習が速く・安定しています。LLMの学習を含む多くの深層学習プロジェクトで標準的な選択肢となっています。

過学習と汎化 ― 「本当に使えるか」の判定

学習データだけに強いモデルは実用になりません。

過学習が起きる仕組み

過学習(Overfitting)とは、学習データには完璧に正解できるが、未知のデータには対応できない状態です。試験問題を丸暗記したが応用問題には全く答えられない学生に例えられます。

過学習の主な原因は「学習データが少ない」「モデルが複雑すぎる」「学習を繰り返しすぎる」の3つです。特にデータが少ない場合、モデルはデータ固有のノイズまで覚えてしまい、新しいデータに出会ったときに誤判断します。

学習・検証・テストの3分割

機械学習では、データを必ず3種類に分けて使います。学習データでパラメータを調整し、検証データでハイパーパラメータ(学習率・モデルの複雑さなど)を調整し、テストデータで最終的な性能を評価します。テストデータは最後まで「見てはいけない」データとして扱い、本当の汎化性能を測ります。

正則化による対策

過学習を防ぐ代表的な手法が正則化(Regularization)です。L2正則化はパラメータが大きくなりすぎることにペナルティを与え、モデルをシンプルに保ちます。ディープラーニングではドロップアウト(Dropout)もよく使われます。学習中にランダムに一部のニューロンを無効化することで、特定のニューロンへの依存を防ぎます。

データ前処理と特徴量設計

データの準備がモデルの精度を大きく左右します。

生データのままでは学習できない

機械学習モデルは基本的に数値データを入力として受け取ります。「商品カテゴリ:食品」「性別:女性」のような文字データはそのままでは処理できません。また、「売上金額(数百万円)」と「気温(20〜35度)」のようにスケールが異なる数値も、そのままでは学習がうまく進みません。

特徴量エンジニアリングの具体例

特徴量エンジニアリングとは、生データを機械学習が扱いやすい形に変換・加工する作業です。

  • 正規化・標準化:数値の単位を揃える(0〜1の範囲に収める等)
  • One-hotエンコーディング:「食品/衣類/電化製品」→ [1,0,0] / [0,1,0] / [0,0,1] に変換
  • 日付の分解:「2024-12-25」→「曜日(水)」「月(12)」「祝日フラグ(1)」として利用
  • 集約特徴量:「過去7日間の平均売上」「顧客の購買頻度」などを新たに計算して追加する

データの質がモデルの精度を決める

モデルの精度はデータの質で決まります。AIプロジェクトの現場では「モデルの選択より、データの質と特徴量の設計のほうが最終精度に影響する」という経験則が広く知られています。精度が出ない場合、まずモデルより前にデータを疑うことが重要です。欠損値の処理・外れ値の除去・正しいラベルの付与など、地道なデータ整備が精度改善の近道になります。

まとめ

この記事では、機械学習がどのようにデータから学ぶのかを解説しました。

  • 機械学習の学習は「予測→損失計算→勾配計算→パラメータ更新」を大量に繰り返すプロセス
  • 損失関数が予測と正解のずれを数値化し、その最小化がモデル改善の目標
  • Adam等の最適化アルゴリズムが、損失を効率よく下げるためのパラメータ更新方法を決める
  • 過学習を防ぐには、データの3分割・正則化・ドロップアウトが有効
  • 特徴量エンジニアリングなどデータ前処理の質が、モデルの精度を大きく左右する

これらを理解することで、AIベンダーや社内エンジニアとの議論で「何が問題か」を正確に把握し、適切な判断ができるようになります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次