導入
なぜ、他人が学習させたモデルが自分の問題に役立つのでしょうか。鍵は「AIが学ぶ知識には、汎用的な部分がある」という事実です。これを理解すると、ファインチューニングの威力が腑に落ちます。
説明
事前学習(pre-training) とは、巨大なデータでモデルをあらかじめ訓練しておくこと。たとえば画像モデルなら数百万枚の写真で、言語モデルなら大量の文章で学習します。この過程でモデルは「線・角・質感」「文法・単語の意味・文脈」といった汎用的な特徴を身につけます。
転移学習(transfer learning) とは、その学習済みの知識を別のタスクへ「転移」して使うこと。ファインチューニングは転移学習の代表的なやり方です。
flowchart TD big["巨大データで事前学習<br/>(例: 写真1400万枚)"] --> base["賢い基盤モデル<br/>汎用的な特徴を獲得済み"] base --> ft1["あなたのタスクA<br/>犬猫の分類<br/>(少量データで微調整)"] base --> ft2["あなたのタスクB<br/>製品の傷検査<br/>(少量データで微調整)"]
人間にたとえると、事前学習は「一般常識と基礎学力をつけた状態」。ファインチューニングは「その人に専門分野を短期間で教える」ようなもの。基礎ができているから、少しの追加学習で専門家になれます。
なぜ効くのか ― 特徴は下から積み上がる
第1章で「NN は単純な特徴から複雑な特徴へ段階的に学ぶ」と述べました。画像モデルなら、入力に近い層は「線・エッジ」、深い層は「目・車輪・顔」を捉えます。下位の汎用的な特徴は、どんな画像タスクでも使い回せる――だから事前学習の知識が転用できるのです。
まとめ
- 事前学習:巨大データでモデルに汎用的な特徴(線・文法など)を獲得させておくこと。
- 転移学習:その知識を別の(少量データの)タスクに転用すること。
- 下位層の特徴は汎用的で使い回せるため、少ない追加学習で高精度が出せる。