本稿は 機械学習 (Machine Learning / ML) に関する記事です。
| この記事の要点 |
- 機械学習はデータから自動的にパターンを学ぶ AI 手法の総称。ルールを人が書かない点が古典プログラムと違う
- 大きく 教師あり学習 / 教師なし学習 / 強化学習 / 自己教師あり学習 の 4 系統
- ディープラーニングは機械学習の一分野(多層ニューラルネット)。LLM / 生成 AI の土台
- 主要工程: データ → 前処理 → 特徴量 → モデル選定 → 学習 → 評価 → 運用
- 評価指標: 精度 / 適合率 / 再現率 / F1 / AUC / RMSE など。タスクに合うものを選ぶ
- 失敗の代表: 過学習 / データ漏洩 / クラス不均衡 / 評価データ汚染
- 主要ライブラリ: scikit-learn / XGBoost / PyTorch / TensorFlow
|
本ページの子ページ
機械学習とは?
機械学習 (Machine Learning) は、データから自動的にパターン (規則性) を抽出し、それを使って予測・分類・意思決定を行う AI の中核手法です。「人が if/else でルールを書く」古典的なプログラミングと違い、大量のデータから機械自身に法則を見つけさせるのが特徴です。
近年の AI ブーム (生成 AI / LLM / 画像認識) はすべてこの機械学習、特にディープラーニングを土台にしています。
機械学習の 4 つの学習方式
| 学習方式 | 入力データ | 代表タスク | 代表アルゴリズム |
| 教師あり学習 | 入力 + 正解ラベル | 分類、回帰 | 線形回帰、ロジスティック回帰、決定木、ランダムフォレスト、SVM、ニューラルネット |
| 教師なし学習 | 入力のみ(ラベルなし) | クラスタリング、次元削減、異常検知 | k-means、DBSCAN、PCA、t-SNE、UMAP |
| 強化学習 | 環境からの状態と報酬 | 方策学習、最適制御 | Q学習、DQN、PPO、SAC、AlphaGo 系 |
| 自己教師あり学習 | 入力からラベルを自動生成 | 事前学習、表現学習 | マスク予測 (BERT)、次トークン予測 (GPT)、対比学習 (SimCLR) |
| 補足: 自己教師あり学習が現代 AI の鍵 |
| LLM (GPT / Claude / Gemini) の事前学習は自己教師あり学習です。「次の単語を当てる」「文の一部を隠して当てる」というタスクをラベルなしの大量テキストから自動で作って学習します。これにより、人手でアノテーションせずに大規模学習が可能になりました。基盤モデル時代の土台です。 |
典型的なワークフロー
| ステップ | 内容 |
| 1. 問題設定 | 何を予測するか、ビジネス指標は何か、許容できる精度は |
| 2. データ収集 | RDB、ログ、API、外部データ、ラベル付け |
| 3. 探索的データ分析 (EDA) | 分布・相関・欠損・外れ値を可視化 |
| 4. 前処理 | 欠損補完、外れ値処理、スケーリング、エンコーディング |
| 5. 特徴量エンジニアリング | 新しい特徴量の作成、不要な列の削除 |
| 6. データ分割 | train / validation / test に分割(時系列なら時間順) |
| 7. モデル選定・学習 | 複数候補を試し、ハイパーパラメータ調整 |
| 8. 評価 | タスクに合った指標 + ベースラインとの比較 |
| 9. 解釈・デバッグ | 誤り分析、SHAP/LIME で特徴量寄与を見る |
| 10. デプロイ | 推論 API・バッチ・エッジ。監視 (drift / 精度劣化) |
| 11. 再学習 | 定期的に新データで再学習・モデル更新 |
代表的なアルゴリズム
教師あり学習
| アルゴリズム | 用途 | 特徴 |
| 線形回帰 / ロジスティック回帰 | 回帰 / 二値分類 | 解釈しやすい・ベースラインに最適 |
| 決定木 | 分類 / 回帰 | 非線形を扱える・可視化しやすい |
| ランダムフォレスト | 分類 / 回帰 | 決定木のアンサンブル・頑健 |
| 勾配ブースティング (XGBoost / LightGBM / CatBoost) | 分類 / 回帰 | 表データで最強級。Kaggle 定番 |
| SVM (サポートベクターマシン) | 分類 / 回帰 | カーネル法で非線形対応 |
| k-NN | 分類 / 回帰 | シンプル。大量データで遅い |
| ナイーブベイズ | 分類 | テキスト分類で軽量に効く |
| ニューラルネット / ディープラーニング | 分類 / 回帰 / 生成 | 画像・音声・言語の非構造化データに強い |
教師なし学習
| アルゴリズム | 用途 |
| k-means | クラスタリング(クラスタ数 k 指定) |
| DBSCAN | 密度ベースクラスタリング(クラスタ数自動) |
| 階層的クラスタリング | 樹形図で階層構造 |
| PCA (主成分分析) | 次元削減・可視化 |
| t-SNE / UMAP | 高次元データの 2D 可視化 |
| Isolation Forest / One-class SVM | 異常検知 |
| Autoencoder | 次元削減・異常検知(NN ベース) |
強化学習
| アルゴリズム | 用途 |
| Q学習 / DQN | 離散行動の強化学習 |
| PPO / SAC / DDPG | 連続行動の強化学習 |
| AlphaZero / MuZero | 自己対戦による戦略学習 |
| RLHF / RLAIF | LLM の人間嗜好学習 |
評価指標(タスク別)
| タスク | 主な指標 | 何を見ているか |
| 二値分類 | Accuracy / Precision / Recall / F1 / AUC-ROC / AUC-PR | クラス不均衡では F1 / AUC を重視 |
| 多クラス分類 | Accuracy / Macro F1 / 混同行列 | クラスごとに見る |
| 回帰 | RMSE / MAE / R² | 誤差の大きさと当てはまり |
| レコメンド | nDCG / HitRate / MRR / Recall@k | 順位品質 |
| クラスタリング | シルエット / Davies-Bouldin / 純度 | クラスタ品質 |
| 異常検知 | Precision-Recall / AUC-PR | 陽性が稀でも安定 |
| LLM / 生成 | パープレキシティ / BLEU / ROUGE / BERTScore / 人手評価 | 自動指標は限界あり。人手評価も |
バイアスとバリアンス、過学習・未学習
| 症状 | 原因 | 対処 |
| 過学習 (Overfitting) | モデルが訓練データに過適合 | 正則化 (L1 / L2 / Dropout)、データ拡張、早期停止、より単純なモデル |
| 未学習 (Underfitting) | モデルが単純すぎる | より表現力の高いモデル、特徴量追加、学習回数増 |
| 高バイアス | 仮定が強すぎる | モデル複雑化 |
| 高バリアンス | データのノイズに敏感 | 正則化、データ追加、アンサンブル |
近年のキーワード(基盤モデル時代)
| 用語 | 概要 |
| 基盤モデル (Foundation Model) | 大量データで事前学習した汎用モデル。下流タスクに転用 |
| 事前学習 + ファインチューニング | 巨大な汎用モデルを小規模データで用途特化 |
| 転移学習 | あるタスクで学んだ知識を別タスクで活用 |
| 少数ショット学習 (Few-shot) | 少例だけで適応 |
| ゼロショット学習 (Zero-shot) | 学習データに無いクラスを推論 |
| RLHF / DPO | 人間の好みでモデルを整える後段学習 |
| LoRA / QLoRA | 軽量ファインチューニング(パラメータの一部のみ更新) |
| マルチタスク学習 | 1 モデルで複数タスクを同時に学習 |
主要ライブラリ
主な応用分野
- 画像認識: 顔認識、医療画像、製造ライン異常検知
- 音声認識・合成: 文字起こし、TTS、音声アシスタント
- 自然言語処理: 翻訳、要約、感情分析、チャットボット、LLM
- 推薦・パーソナライズ: EC、動画配信、広告
- 異常検知: 不正取引、サイバー攻撃、設備故障予測
- 需要予測・在庫最適化: 小売・物流
- 自動運転・ロボティクス: 物体検出、経路計画、模倣学習
- 科学・医療: タンパク質構造予測 (AlphaFold)、創薬、診断補助
運用上のヒント
| Tips |
- 必ずベースラインを置く: 単純なロジスティック回帰や定数予測と比較しないと、複雑なモデルの価値が見えない
- データ分割を最初に固定: 試行錯誤の途中で分割を変えると評価が信用できなくなる
- クラス不均衡では Accuracy より F1 / AUC-PR を使う
- 時系列は時間順で分割。ランダム分割は未来データの漏洩を起こす
- 本番ではデータドリフト / 概念ドリフトを監視。精度劣化を早期検知
- 解釈性が必要なドメインではSHAP / LIME で特徴量寄与を確認
- 再現性: ランダムシード固定、依存ライブラリのバージョン固定
|
注意点
| よくある落とし穴 |
- データ漏洩 (Data Leakage): 目的変数が特徴量に紛れ込む。前処理で漏洩しやすい
- 評価データ汚染: テストデータが学習に混入。LLM ベンチマークでも問題化
- バイアス・差別: 学習データの偏りがそのまま予測に反映される
- 過剰な特徴量: 関係ない列を入れると過学習・解釈性低下
- テストで一発勝負: 本番投入前に小規模 A/B テストや shadow run
- 精度だけ追わない: 推論レイテンシ・コスト・運用性が本番では同じくらい重要
- 個人情報・PII: モデルへの入力・学習データの管理は法令準拠
|
学習ロードマップの例
- AI に必要な数学(線形代数・確率統計・微積)を基礎レベルで押さえる
- scikit-learn でタイタニックや住宅価格のような定番題材を実装
- 評価指標と交差検証、データ漏洩・過学習の感覚をつかむ
- 勾配ブースティング (XGBoost / LightGBM) を試す
- ニューラルネットへ進み、ディープラーニングへ
- Hugging Face Transformers で事前学習モデルを使う
- LLM API + RAG (LangChain / LlamaIndex) で業務応用へ
関連