機械学習 入門

What is Machine Learning?

入門(プログラミング経験者向け)

この章について

入門では、機械学習の全体像を把握する。「学習」とは何か、なぜデータから学習できるのか、どのような種類の問題があるのかを理解する。数式は最小限にとどめ、直感的な理解を優先する。Python 環境を整え、簡単な例を動かすところまでが目標である。

前提知識

  • Python の基本(変数、関数、ループ)
  • 高校数学(関数、グラフ)
  • データを扱った経験があると望ましい

目次

1. 機械学習の種類一覧

全体像を俯瞰する総合ガイド。

  • 3大分類(教師あり・教師なし・強化学習)
  • 深層学習・生成AI・LLM の位置づけ
  • 手法の選び方フローチャート

2. 機械学習とは何か

データから学ぶとは。

  • 明示的プログラミング vs 学習
  • パターンの発見
  • 予測と汎化

3. 教師あり学習

正解付きデータから学ぶ。

  • 回帰問題
  • 分類問題
  • 訓練データとテストデータ

4. 教師なし学習

正解なしでパターンを発見。

  • クラスタリング
  • 次元削減
  • 異常検知

5. 強化学習

試行錯誤で最適行動を学ぶ。

  • エージェントと環境
  • 報酬と方策
  • 探索と活用

6. 学習の流れ

典型的なワークフロー。

  • データの収集と前処理
  • モデルの選択と訓練
  • 評価と改善

7. 過学習と汎化

学習の本質的課題。

  • 訓練誤差 vs テスト誤差
  • 過学習の直感
  • モデルの複雑さ

8. Python 環境の準備

実践の準備。

  • NumPy, Pandas, Matplotlib
  • scikit-learn
  • Jupyter Notebook

9. 最初の機械学習

手を動かしてみる。

  • Iris データセット
  • k-近傍法で分類
  • 結果の可視化

主要な概念

機械学習の定義(Mitchell, 1997)

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

教師あり学習

入力 $x$ と出力 $y$ のペア $\{(x_i, y_i)\}$ が与えられ、未知の入力に対する出力を予測する関数 $f: x \mapsto y$ を学習する。

汎化

訓練データだけでなく、未知のデータに対しても良い性能を発揮する能力。機械学習の最も重要な目標。

過学習(オーバーフィッティング)

訓練データに適合しすぎて、未知のデータへの汎化性能が低下する現象。モデルが複雑すぎるときに起きやすい。

このレベルで理解できること

問題の定式化

「この問題は回帰か分類か」「教師ありか教師なしか」を判断できるようになる。

データの重要性

データの量と質が学習性能を左右することを理解。「ゴミを入れればゴミが出る」。

バイアスとバリアンス

モデルの複雑さと性能のトレードオフを直感的に理解。

実装の第一歩

scikit-learn を使った基本的な機械学習パイプラインを実行できる。

学習のポイント

  • 概念を先に:数式より先に「何をしているか」を理解する
  • 手を動かす:コードを実行し、結果を観察する
  • 可視化:データとモデルをグラフで確認する習慣をつける
  • 失敗を経験:過学習を実際に起こしてみる