学習パラダイム
学習パラダイム(Learning Paradigms)とは、機械学習モデルがどのように知識を獲得・活用するかの方針・設計思想のことです。このページでは、「既存の知識を再活用して新しいタスクを効率よく学習する」手法群を中心に解説します。
対象読者: 機械学習の基礎(教師あり・教師なし・強化学習)を理解している方
学習時間の目安: 読了 20分
前提知識: 機械学習とは と ディープラーニングとは を読んでいること
なぜ「再活用」が重要なのか
Section titled “なぜ「再活用」が重要なのか”一からモデルを学習させるには、大量のデータと計算コストが必要です。しかし、関連する知識がすでに存在する場合、それを再活用することで少ないデータと計算コストで高い性能を実現できます。
比喩: 英語が話せる人がフランス語を学ぶ場面を想像してください。語学学習の戦略(単語の覚え方、文法の捉え方、発音の練習法)はすでに身についています。フランス語特有の部分だけを集中的に学べばよいのです。これが学習パラダイムの本質です。
graph LR
subgraph TL["転移学習 Transfer Learning"]
BM["ベースモデル\n(重みを凍結)"] --> NL["新しい層\n(学習する)"]
end
subgraph FT["ファインチューニング Fine-tuning"]
PTM["事前学習済み\nモデル全体"] --> ND["新データで\n全体を調整"]
end1. 転移学習(Transfer Learning)
Section titled “1. 転移学習(Transfer Learning)”転移学習とは、あるタスクで学習済みのモデルの知識を、別の関連タスクへ転用する手法です。
- ベースモデルを用意する: 大量データで学習済みのモデル(ImageNet分類モデルなど)を用意
- 重みを凍結する: ベースモデルのパラメーター(重み)を更新しないよう固定(フリーズ)
- 新しい層を追加・学習する: 新しいタスク向けの最終層だけを新データで学習(バックプロパゲーション)
graph TD
D1["大量の学習データ\n(例: ImageNet 100万枚)"] --> BM["ベースモデル\n(事前学習済み)"]
BM --> |重みを凍結| FM1["特徴抽出部分\n(変更しない)"]
FM1 --> NL["新しいタスク用の層\n(少量データで学習)"]
D2["新しいタスクのデータ\n(例: 医療画像 1,000枚)"] --> NL- 新しいタスクのデータが少ない場合(数百〜数千件程度)
- 元のタスクと新しいタスクが関連している場合(どちらも画像認識、どちらもテキスト処理など)
ImageNet(100万枚以上の一般画像)で学習した画像分類モデルを使い、医療画像(X線画像 1,000枚)の診断モデルを構築する。エッジ検出や形状認識などの汎用的な視覚的特徴は再利用し、医療画像特有の判断基準だけを新たに学習する。
2. ファインチューニング(Fine-tuning)
Section titled “2. ファインチューニング(Fine-tuning)”ファインチューニングとは、事前学習済みモデルの全層(またはその一部)のパラメーターを新しいデータで再調整する手法です。
転移学習との違い
Section titled “転移学習との違い”| 転移学習 | ファインチューニング | |
|---|---|---|
| 更新する重み | 新しい層のみ | 全層(または下層を含む一部) |
| 必要なデータ量 | 少なくても可 | やや多めが望ましい |
| 計算コスト | 低い | 高い |
| 過学習のリスク | 低い | データが少ないと高い |
事前学習済みモデル全体を新しいデータで追加学習します。一般的に、下位層(汎用的な特徴を学習した部分)は学習率を低く設定し、上位層(タスク固有の特徴を学習した部分)は学習率を高めに設定する「差分学習率(Discriminative Learning Rate)」が有効です。
GPT-4などの汎用LLMを自社のカスタマーサポート会話データでファインチューニングすることで、自社の製品・サービスに特化した対話モデルを構築する。
3. マルチタスク学習(Multitask Learning)
Section titled “3. マルチタスク学習(Multitask Learning)”マルチタスク学習とは、複数の異なるタスクを同時に学習するモデルの設計手法です。
graph TD
IN["入力データ"] --> SH["共有ネットワーク\n(Shared Network)"]
SH --> T1["タスク1専用ブランチ\n(例: 感情分析)"]
SH --> T2["タスク2専用ブランチ\n(例: トピック分類)"]
SH --> T3["タスク3専用ブランチ\n(例: 言語検出)"]
T1 --> O1["出力1"]
T2 --> O2["出力2"]
T3 --> O3["出力3"]- 共有ネットワーク: 複数タスクに共通する汎用的な表現を学習する部分
- タスク固有ブランチ: 各タスク専用の出力を生成する部分
- 各タスクから学んだ知識が相互に補完し合い、個別学習より汎化性能が向上する
- 複数モデルを別々に学習・管理するコストが削減できる
- データが少ないタスクでも、他のタスクのデータから学習効果を得られる
自然言語処理において、感情分析・トピック分類・言語検出を1つのモデルで同時に学習することで、言語の汎用的な理解能力が各タスク間で共有される。
4. 連合学習(Federated Learning)
Section titled “4. 連合学習(Federated Learning)”連合学習とは、データを一か所の中央サーバーに集めることなく、分散したデバイス上でモデルを学習する手法です。
graph TD
C["中央サーバー\n(モデルの重みを配布・集約)"]
D1["デバイス1\n(スマートフォン)\nローカルで学習"]
D2["デバイス2\n(スマートフォン)\nローカルで学習"]
D3["デバイス3\n(スマートフォン)\nローカルで学習"]
C --> |共有モデルを配布| D1
C --> |共有モデルを配布| D2
C --> |共有モデルを配布| D3
D1 --> |重みの更新量のみ送信| C
D2 --> |重みの更新量のみ送信| C
D3 --> |重みの更新量のみ送信| C- 中央サーバーから共有モデルを各デバイスに配布
- 各デバイスでローカルデータを使って学習(データはデバイス外に出ない)
- 各デバイスの重み更新量(グラジェント)のみを中央サーバーに送信
- サーバーで各デバイスの更新量を集約してモデルを更新
- 1〜4を繰り返す
- プライバシー保護: 個人データがデバイスの外に出ないため、プライバシーリスクが低い
- 通信コスト削減: 生データではなく重みの更新量のみを送信するため、通信量が少ない
- パーソナライゼーション: 各デバイスのローカルデータに基づいて個別最適化できる
スマートフォンのキーボード予測機能。各ユーザーの入力履歴(個人データ)をデバイス外に送らずに、ユーザーの入力パターンをローカルで学習する。各デバイスの学習結果(重みの更新量)だけを集約して共有モデルを改善する。
4つの手法の比較
Section titled “4つの手法の比較”| 転移学習 | ファインチューニング | マルチタスク学習 | 連合学習 | |
|---|---|---|---|---|
| 主な目的 | 少データでの新タスク適応 | ドメイン適応・性能向上 | 複数タスクの同時学習 | プライバシー保護学習 |
| データ要件 | 少量でも可 | やや多めが望ましい | 複数タスク分のデータ | 分散データ |
| 計算コスト | 低 | 中〜高 | 中 | 分散するため低(デバイス単体) |
| 典型的な用途 | 画像分類の転用 | LLMのドメイン適応 | NLPの多目的モデル | スマートフォン・IoT |
Q: 転移学習とファインチューニングは別の手法ですか?
A: 関連していますが異なる手法です。転移学習は「学習済みモデルの知識を新タスクに転用する」概念全体を指します。ファインチューニングはその実現方法の一つで、モデルの全パラメーターを新データで再調整する手法です。転移学習の中で「最終層のみ更新する」方法はファインチューニングと区別されることもあります。
Q: LLMのファインチューニングはどのくらいのデータが必要ですか?
A: タスクと品質要求によって異なりますが、数百〜数千件の高品質なデータがあれば特定タスクへの適応は可能です。LoRA(Low-Rank Adaptation)などの手法を使えば、少ないパラメーター更新でも効果的なファインチューニングができます。
Q: 連合学習はデータを完全に保護できますか?
A: 完全ではありません。重みの更新量(グラジェント)から元のデータを復元する攻撃手法(グラジェントインバージョン攻撃)が存在します。完全なプライバシー保護には、差分プライバシー(Differential Privacy)などの追加手法との組み合わせが必要です。
前のステップ: ディープラーニングとは
このページへのリンク(英語): Learning Paradigms