AI・データ●●○○○

機械学習

きかいがくしゅう

データからパターンを学び、明示的にプログラムせずに予測・判断を行わせる手法の総称。

概要

機械学習は、人間がルールを一つひとつ書く代わりに、大量のデータからコンピュータ自身にパターンを見つけさせる手法の総称です。従来のプログラミングが「入力とルールを与えて出力を得る」営みだとすれば、機械学習は「入力と正解の例を与えてルールそのものを得る」営みだと言えます。得られたルールは「モデル」と呼ばれ、まだ見たことのないデータに対する予測や分類に使われます。

迷惑メールの判定、商品のレコメンド、需要予測、画像認識、そしてLLMによる文章生成まで、現代のソフトウェアの「賢く見える」部分の多くは機械学習が担っています。SEにとっても、機械学習そのものを実装しなくても、モデルをAPIとして呼び出したり、学習用データの基盤を整えたりと、関わる場面が急速に増えている領域です。

なぜ生まれたか

「迷惑メールを判定するプログラムを書いてください」と言われたとき、ルールベースの発想では「本文に『無料』があればスパム」「送信元がこのドメインならスパム」のような条件を人間が列挙していくことになります。しかし現実のスパムは表記を揺らし、手口を変え続けるため、ルールは書いても書いても追いつかず、しかもルール同士が干渉して保守不能になっていきます。手書き文字の認識のように、そもそも人間が判定基準を言語化できない問題も数多くあります。

そこで発想を逆転させたのが機械学習です。「スパムの例」と「正常なメールの例」を大量に与え、両者を分ける基準はコンピュータに統計的に見つけさせる。ルールを書く仕事が「良いデータを集めて正解を付ける」仕事に置き換わり、手口が変わればデータを足して学習し直せばよい。人間には書き切れない複雑なパターンを扱えるようにしたこの転換が、機械学習の出発点です。

詳細

学習の三つの流儀 — 教師あり・教師なし・強化学習

機械学習は、正解の与え方によって大きく三つに分かれます。教師あり学習は「入力と正解のペア」から学ぶ方式で、メールにスパム/非スパムのラベルを付けて分類器を作る、過去の売上から来月を予測する、といった実務の大半を占めます。教師なし学習は正解ラベルなしでデータの構造そのものを見つける方式で、顧客を似た者同士のグループに分けるクラスタリングや、データを意味の近さで数値ベクトルに変換する埋め込みの基盤になっています。強化学習は正解の代わりに「報酬」を与え、試行錯誤を通じて良い行動を学ばせる方式で、ゲームAIやロボット制御のほか、LLMを人間の好みに合わせて調整する場面でも使われています。

学習と推論 — 二つのフェーズを区別する

機械学習のシステムを理解するうえで最も重要な区別が、**学習(training)推論(inference)**です。学習は、データを繰り返し読み込んでモデル内部のパラメータを少しずつ調整していく重い処理で、GPUを並べて数時間から数か月かけることもあります。一方の推論は、学習済みモデルに新しい入力を与えて答えを一回計算するだけの比較的軽い処理で、本番サービスに組み込まれるのはこちらです。

学習フェーズ(開発時・重い)学習データ入力と正解のペア学習アルゴリズムパラメータを繰り返し調整学習済みモデル見つけたパターンの塊本番環境へ配置推論フェーズ(本番・軽い)新しい入力未知のメール・画像など学習済みモデルパラメータは固定予測・判断スパム確率 0.97 など学習は開発サイクルの中で行い、本番のリクエストに応えるのは推論。求められる速度・コスト・インフラが大きく異なる
学習フェーズと推論フェーズ — 重い学習は事前に済ませ、本番では学習済みモデルで推論だけを行う

この区別は実務に直結します。学習には大量のデータと計算資源が要るため、データウェアハウスETLパイプラインといったデータ基盤の整備が前提になります。一方、推論はユーザーのリクエストごとに走るため、レイテンシやスループット、スケーリングといった通常のサービス運用の関心事になります。「モデルを作る仕事」と「モデルを動かし続ける仕事」は、要求されるスキルもインフラも別物なのです。

代表的な手法とモデルの選び方

機械学習の手法は一つではありません。数値の傾向を直線で捉える線形回帰、条件分岐の木を多数組み合わせる決定木・勾配ブースティング、そして脳の神経回路を模したニューラルネットワークまで、問題の性質とデータ量に応じて使い分けます。表形式の業務データでは今でも勾配ブースティング系の手法が強力で、画像・音声・自然言語のような複雑なデータでは、ニューラルネットワークを深く重ねた深層学習が圧倒的な性能を発揮します。近年のLLMはその延長線上にあり、Transformerという構造のニューラルネットワークを桁外れの規模で学習させたものです。既製の大規模モデルを自分のタスクに合わせて追加学習するファインチューニングのように、「ゼロから学習しない」選択肢も一般化しています。

落とし穴 — 過学習とデータ品質

機械学習で最も古典的な失敗が**過学習(overfitting)**です。モデルが学習データを丸暗記してしまい、手元のデータでは高精度なのに、未知のデータではまるで当たらない状態を指します。これを防ぐため、データを学習用と評価用に分け、モデルが見たことのないデータで性能を測るのが鉄則です。逆に、モデルが単純すぎてパターンを捉えきれない未学習(underfitting)もあり、両者のバランスを取ることがモデル開発の中心的な作業になります。

もう一つの落とし穴はデータそのものです。機械学習は「Garbage In, Garbage Out」の世界で、ラベルの誤り、偏ったサンプル、本番では手に入らない情報の混入(リーク)があれば、どんな高級な手法を使っても結果は歪みます。過去の偏った判断をそのまま学習すれば、その偏見をモデルが再生産するという公平性の問題も無視できません。実務の機械学習は「アルゴリズムの選択」よりも「データの品質管理」に時間を使う仕事だと言われるほどです。さらにモデルは一度作って終わりではなく、世の中の変化でデータの分布が変わると性能が静かに劣化していく(ドリフト)ため、モニタリングと再学習を続ける運用体制までを含めて設計する必要があります。