第1章: 機械学習とは何か

What is Machine Learning?

明示的プログラミング vs 機械学習

従来のプログラミング

人間がルールを明示的に記述し、コンピュータはそのルールに従って処理を実行する。

入力:データ + プログラム(ルール)→ 出力:結果

機械学習

コンピュータがデータからルール(パターン)を自動的に発見する。

入力:データ + 結果(正解)→ 出力:プログラム(モデル)

従来のプログラミングと機械学習の違いを示す図。従来はデータとルールから結果を得るが、機械学習ではデータと正解からモデルを学習する。 従来のプログラミング データ ルール 処理 結果 機械学習 データ 正解 学習 データ モデル
図1: 従来のプログラミングと機械学習の違い

例:手書き数字の認識

  • 従来:「3は2つの半円が縦に並ぶ」などのルールを人間が記述 → 例外だらけで破綻
  • 機械学習:大量の手書き数字画像と正解ラベルから、パターンを自動学習

パターンの発見

パターン認識

機械学習の本質は、データの中に潜む規則性(パターン)を発見すること。

生データから決定境界(パターン)を学習する過程を示す散布図。 データからパターンを発見 生データ 学習 パターン(決定境界)発見
図2: 生データから決定境界(パターン)を学習する過程

なぜ機械学習が有効か?

  • 人間がルールを言語化できない複雑なパターン(顔認識、音声認識など)
  • 膨大な変数が絡む問題(レコメンデーション、金融予測など)
  • 環境が変化し続ける問題(スパムフィルタ、異常検知など)

予測と汎化

予測(Prediction)

学習したパターン(モデル)を使って、新しいデータに対する出力を推定すること。

汎化(Generalization)

訓練データだけでなく、未知のデータに対しても正しく予測できる能力。

これが機械学習における最も重要な目標である。

訓練フェーズで学習したモデルを使い、未知のデータに対して予測を行う流れを示す図。 汎化:未知データへの対応 訓練フェーズ 訓練データ 既知のデータ 学習 パターン抽出 予測フェーズ 新しいデータ 未知のデータ モデル 学習済みルール 予測 結果
図3: 訓練フェーズで学習したモデルを使い、未知のデータに対して予測を行う

例:住宅価格の予測

  1. 訓練:過去の住宅データ(面積、築年数、価格)からパターンを学習
  2. 予測:新しい物件の面積・築年数から価格を推定

重要なのは、訓練データにない物件に対しても妥当な予測ができること(汎化)。

機械学習の定義

Mitchell (1997) の定義

「コンピュータプログラムが、あるタスク T と性能指標 P に関して、経験 E から学習するとは、E によって T における P が改善されることをいう。」

これは要するに、「経験を積むことで、やるべきことが上手くなるなら、それは学習である」ということである。人間が勉強や練習で上達するのと同じ考え方を、コンピュータプログラムに当てはめている。

  • タスク T(何をするか):プログラムが達成すべき目標
  • 性能指標 P(どれくらい上手いか):タスクの出来を測るものさし
  • 経験 E(何から学ぶか):プログラムに与えるデータや試行の蓄積

つまり、データ(E)を与えるほど成績(P)が良くなるプログラムは「学習している」と言える。以下の具体例で確認する。

具体例:チェスプログラム

  • タスク T:チェスをプレイすること
  • 性能指標 P:対戦の勝率
  • 経験 E:過去の対戦データ

→ 対戦を重ねる(E)ことで、勝率(P)が向上すれば「学習している」。

具体例:メール分類

  • タスク T:メールをスパム/非スパムに分類
  • 性能指標 P:分類の正解率
  • 経験 E:「スパム」か「非スパム」かの正解が付いたメールデータ

→ ラベル付きメールデータ(E)を多く学ぶほど、分類の正解率(P)が上がれば「学習している」。

まとめ

  • 機械学習:データからパターンを自動的に学習するアプローチ
  • 従来との違い:ルールを人間が書くのではなく、データから発見
  • パターン発見:データに潜む規則性を見つけ出す
  • 汎化:未知のデータにも対応できることが最重要

よくある質問

Q. 機械学習とは何ですか?

コンピュータがデータからパターンを自動的に発見し、未知のデータに対して予測を行う技術である。従来のプログラミングでは人間がルールを明示的に記述するが、機械学習ではデータと正解を与えることでコンピュータが自らルール(モデル)を学習する。

Q. 従来のプログラミングと機械学習の違いは何ですか?

従来のプログラミングでは「データ+ルール→結果」という流れで、人間がルールを書く。一方、機械学習では「データ+正解→モデル」という流れで、コンピュータがデータからルール(モデル)を自動的に発見する。手書き数字の認識のように、人間がルールを言語化しにくい問題で特に有効である。

Q. 汎化とは何ですか?

訓練データだけでなく、未知のデータに対しても正しく予測できる能力のことである。機械学習の最も重要な目標であり、訓練データに適合しすぎて汎化性能が低下する現象を「過学習(オーバーフィッティング)」と呼ぶ。

参考資料