JA EN
体系学習手法・アライメント
·★ 会員·論文·11分で読めます

継続学習と破滅的忘却 — 学び続けるモデルの難しさ

追加学習させると前にできていたことが崩れる「破滅的忘却」を、重みが共有資源であるという一点から説明する。EWC・リプレイ・LoRA差し替えという3つの処方を式と動く図で追い、それでも実務が「昔のデータを混ぜて学習し直す」に落ち着く理由までを前提知識なしで解説。

対象textタスクtraining

Overcoming catastrophic forgetting in neural networks


上書きされる粘土板

粘土板に文字を刻むところを想像してください。一度書いた文章の上に、別の文章を新しく刻む。粘土は柔らかいので新しい文字ははっきり刻めますが、その分だけ前の文字は潰れます。

追加学習でも同じことが起きます。日本語の要約が得意なモデルに、あとから医療の問診データだけを学習させる。問診の応答は見違えるほど良くなるのに、それまで問題なくこなしていた要約が崩れる。しかも「少し下手になる」ではなく、数百ステップで一気に壊れることがあります。1989年に McCloskey と Cohen がこの現象を報告して以来、破滅的忘却(catastrophic forgetting)と呼ばれています。

厄介なのは、これがバグではないことです。学習アルゴリズムは指示どおりに動いています。指示が「いま与えられているデータの損失を下げろ」だけだからです。

忘却の正体は共有資源の奪い合い

なぜ潰れるのかは、モデルの中身を思い出せば単純です。知識はどこか一箇所にファイルとして保存されているわけではありません。同じ重み行列が、要約にも問診にも、日本語にも数式にも同時に使われています。重みは共有資源なのです。

追加学習の勾配降下は、新しいデータの損失だけを見て重みを動かします。新しいタスクの谷へ向かう方向が古いタスクにとって都合の悪い方向でも、古い損失は計算されていないので止める力が働きません。ブレーキが物理的に存在しない、というのが忘却の正体です。

この綱引きは古くから安定性と可塑性のジレンマと呼ばれてきました。過去を守って重みを動かさなければ新しいことを覚えられず、自由に動かせば過去が消える。継続学習の手法はすべて、この2つの間のどこに線を引くかの提案です。

下の図で、2つの谷を持つ地形を降りてみてください。左の谷(古いタスクの最適解)にいる球を右の谷(新しいタスク)へ転がすと、経路は必然的に左の谷から離れます。学習率を上げるほど離れ方が乱暴になる——これが忘却の見た目です。

FIG 1新しいタスクの谷へ降りる経路は、古いタスクの谷から遠ざかっていく。学習率を上げると一気に飛び出し、モーメンタムを足すと行き過ぎて戻れなくなる

どれくらい忘れたかを測る

対策の前に測り方を決めます。継続学習ではタスクを順番に 1,2,,T1, 2, \dots, T と学習させ、tt 番目を学び終えた直後にそれまでの全タスクを評価します。ai,ta_{i,t} を「タスク tt まで学習した時点でのタスク ii の精度」とすると、忘却量はこう定義されます。

Forgetting=1T1i=1T1(maxtTai,tai,T)\mathrm{Forgetting} = \frac{1}{T-1}\sum_{i=1}^{T-1}\Big(\max_{t \le T} a_{i,t} - a_{i,T}\Big)
(1)

つまり式(1)は、「各タスクについて、これまでの最高得点と、全部やり終えたあとの得点の差」を平均したものです。最終精度の平均だけを見ていると、新しいタスクが得意になった分で相殺されて気づけません。この落差を別に見るのが要点です。

もう1つ、van de Ven と Tolias による3シナリオの区別も押さえておいてください。推論時に「これはタスク3の問題です」と教えてもらえるタスク増分、教えてもらえないドメイン増分、選択肢そのものが増えていくクラス増分。難しさは順に上がり、前者で効いた手法が後者では役に立たないことが普通に起こります。

処方箋は3系統しかない

無数に見える手法も、何を払って安定性を買うかで3つに分かれます。重みを固定する(動ける範囲を狭める)、古いデータを混ぜる(保存容量と計算を払う)、場所を分ける(パラメータを増やす)。以下この順に見て、最後に、実務がそのどれでもない選択に落ち着く理由を扱います。

対策1: 大事な重みを固定する(EWC)

発想は「古いタスクにとって重要な重みだけ動きにくくする」。全部を凍らせては新しいことを学べないので、重要度に応じて硬さを変えます。2017年の EWC(Elastic Weight Consolidation) が代表格で、古いタスクAを学び終えた重みを θA\theta^*_A とし、新しいタスクBの損失に罰則を足します。

つまり式(2)は、「タスクBの損失を下げつつ、重要な重み ほど強いバネで元の位置 に引き戻す」と言っています。 が全体のバネの強さ、 が重みごとのバネ定数で、後者にはフィッシャー情報量の対角成分を使います。

この先にあるもの

§

ここから先は会員限定です

解説記事371本・教科書26章・学生モード48単元・論文精読6本が、月額¥490ですべて読み放題になります。新しい解説は毎日3本ずつ増えます。いつでも解約でき、解約後も期間の終わりまで読めます。

会員の方はログインすると続きが表示されます

参考文献

  1. Overcoming catastrophic forgetting in neural networks. arXiv:1612.00796論文ページ·PDF
  2. Gradient Episodic Memory for Continual Learning. arXiv:1706.08840論文ページ·PDF
  3. Three scenarios for continual learning. arXiv:1904.07734論文ページ·PDF
  4. An Empirical Study of Catastrophic Forgetting in Large Language Models During Continual Fine-tuning. arXiv:2308.08747論文ページ·PDF
  5. Simple and Scalable Strategies to Continually Pre-train Large Language Models. arXiv:2403.08763論文ページ·PDF
  6. LoRA Learns Less and Forgets Less. arXiv:2405.09673論文ページ·PDF

本記事は上記論文の本文にもとづいて執筆しています。数値・主張は原典を優先してください。

コメント

コメントにはログインが必要です