転移学習・ファインチューニング(シラバス 技術31)

学習目標

大量のデータで先に学習したモデルを別の課題に使い回す転移学習とファインチューニングの考え方を理解し、事前学習を支える自己教師あり学習や半教師あり学習、少ない例で課題をこなすFew-shot・One-shot、学習し直すときに起こる破滅的忘却を説明できるようにします。

要点

ゼロから学習させない理由

自社の課題のために、ディープラーニングのモデルをゼロから学習させるのは大変です。大量のデータと長い計算時間が要るからです。そこで、大量のデータであらかじめ学習させる事前学習を行い、できあがった事前学習済みモデルを別の課題に使い回します。

たとえば、大量の一般画像で学習したCNNの入力に近い層は、輪郭や模様など、どの画像にも役立つ特徴をとらえています。この汎用的な特徴を生かせば、自社の製品画像が数百枚しかなくても、実用的な精度を目指せます。

転移学習とファインチューニング

多くの場合、どちらも元の出力層を新しい課題用に付け替えるところから始めます。違いは、事前学習済みの重みを動かすかどうかです。

方法事前学習済みの重み学習する部分向く場面
転移学習(狭い意味)固定する付け替えた出力層だけデータがかなり少ない
ファインチューニング小さく調整する一部の層または全体ある程度データがある

広い意味では、両方をまとめて転移学習と呼びます。

事前学習を支える学習の枠組み

  • 自己教師あり学習:データ自身から正解を作って学習します。文の一部の語を隠して当てさせる、続きの語を予測させる、といった方法です。人手のラベルが要らないので、大量のデータで事前学習できます。BERTやGPT系のモデルもこの方法で事前学習しています。画像では、同じ画像から作った2つの加工画像の特徴を近づける対照学習(SimCLRなど)が知られています。
  • 半教師あり学習:少量のラベル付きデータと、大量のラベルなしデータを組み合わせます。たとえば、ラベル付きデータで学習したモデルの予測を、ラベルなしデータの仮の正解にして学習に加えます。

少ない例で課題をこなす

  • One-shot:例を1つだけ使います。顔写真を1枚登録するだけで本人を見分ける顔認証が典型です。
  • Few-shot:例を数個だけ使います。

大規模言語モデルでは、指示文の中に例を数個示すだけで新しい課題をこなせることが、2020年のGPT-3の論文で示されました。このときモデルの重みは更新しません。例を1つも示さないZero-shotは、マルチモーダルの項目で扱います。

破滅的忘却

新しい課題を学習させると、事前学習で身につけた能力や、前に学んだ課題の性能が大きく落ちることがあります。これが破滅的忘却です。学習率を小さくする、一部の層を固定する、前の課題のデータを混ぜて学習する、前の課題で重要だった重みを変えにくくする(EWC)、などで和らげます。

G検定で問われる深さ

学習率の値や固定する層の数は不要です。どの重みを固定してどこを学習し直すか、自己教師あり学習と半教師あり学習で正解ラベルの扱いがどう違うか、Few-shotとOne-shotの例の数、破滅的忘却がいつ起こるかを、業務の場面に当てはめて判断できれば十分です。

つまずきやすい点

  • 狭い意味の転移学習は事前学習済みモデルの重みを固定し、付け替えた出力層だけを学習する。ファインチューニングは事前学習済みの重みも含めて学習し直す。広い意味では両方をまとめて転移学習と呼ぶ点
  • 自己教師あり学習はデータ自身から正解を作るので人手のラベルを使わず、半教師あり学習は少量のラベル付きデータと大量のラベルなしデータを組み合わせる点
  • 大規模言語モデルへの指示に例を数個添えるFew-shotではモデルの重みは更新されず、追加のデータで重みを学習し直すファインチューニングとは別物である点
  • 破滅的忘却は新しい課題を学ぶと前に学んだ課題の性能が落ちる現象で、学習データに合わせすぎて未知のデータで外れる過学習とは別の問題である点

シラバスのキーワード

Few-shot、One-shot、自己教師あり学習、事前学習、事前学習済みモデル、破滅的忘却、半教師あり学習

練習問題

  1. 少量データでの事前学習済みモデル活用
  2. 事前学習に関わる学習の枠組み
  3. 破滅的忘却を抑える工夫
  4. 自己教師あり学習の事前タスク
  5. 疑似ラベルによる半教師あり学習
  6. Few-shotとファインチューニング

混同しやすい用語

この項目の関連用語

AIで作成 人による確認:未 誤りを報告

出典と作成について

作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合。手順は編集方針)

最終更新日: 最終確認日:

対応シラバス:シラバス第1.4版 技術31

改訂履歴

ディープラーニングの応用例の中項目
  1. 画像認識
  2. 自然言語処理
  3. 音声処理
  4. 深層強化学習
  5. データ生成
  6. 転移学習・ファインチューニング
  7. マルチモーダル
  8. モデルの解釈性
  9. モデルの軽量化

表示設定

テーマ
文字の大きさ
問題演習