継続学習について調べてみた
ぱんいち@パンハウス 2020/08/02
背景: 継続学習とは
n 継続学習: モデルが⻑い期間次々と与えられる新しいデータに対して連続的に学習すること
n 継続学習の⽬的
n 新しいサンプルが追加されたときに再学習するコストを減らす
n 昔学習した知識を利⽤し,新しいサンプルの学習コストを⼩さくする
n よくある問題設定
n 過去のデータにはアクセスできず,現在のデータからのみ学習を⾏う
n 過去現在含めたすべてのデータを使ってテストを⾏う
データ1 データ3
モデル
データ4
train
時間
現在
データ2
背景: 継続学習における問題
n 機械学習モデルは例えば下図の現在のデータ3を学習しているとき,過去のデータ1,2にアク
セスできないためデータ1,2のことを忘れてしまう(破滅的忘却)
n このとき,データ3のタスクは解けるがデータ1,2のタスクは解けない問題がおこる
データ1 データ3
モデル
データ4
train
時間
現在
データ2
背景: 破滅的忘却を防ぐには
n ナイーブなやり⽅: 新しいデータと古いデータ合わせて改めて学習する
n ⽋点:
n 全部のデータを新しいデータが現れるたびに学習していたらめちゃくちゃ時間かかる
n 昔のデータがなんらかの理由でアクセスできなくなっているかもしれない
n 計算資源の無駄
データ3
モデル
train
時間
現在
データ1 データ2 データ4
よくある問題設定
引⽤: https://www.youtube.com/watch?v=qRXPS_6fAfE
破滅的忘却を防ぐためのアプローチ例
n 昔の知識を失わないようにパラメタをupdateする
n Learning without Forgetting
n Overcoming catastrophic forgetting in neural networks
n variational continual learning
n タスクが増えたときモデル構造を追加する
n Progressive Neural Networks
n 部分的に昔のサンプルを使う,もしくは⽣成サンプルを使って学習する
n iCaRL: Incremental Classifier and Representation Learning
n Continual Learning with Deep Generative Replay
n Continual Unsupervised Representation Learning
Learning without Forgetting
n (a)は最初に与えられる
モデル.共通パラメタ
θ!とタスクごとのパラ
メタθ"が存在する
n (b)は破滅的忘却する
n (c)は新しいタスクの精
度があまりでない
n (d)は精度は出るがナ
イーブなやり⽅で,計
算資源が必要で時間も
かかる
n (e)が提案⼿法で上記の
問題を解決する
Learning without Forgetting
n ロス: distillation loss + cross entropy loss + weight decay
n 1項⽬は⼊⼒を新しいデータとして,昔のパラメタをつかった
出⼒に現在のパラメタの出⼒を近づけようとする項
n 利点: 昔のデータを利⽤する必要がない
Overcoming catastrophic forgetting in neural networks
n タスクAが解けるようなパラメタ空間上で
タスクBが解けるようなパラメタを探そう
というアイデア
n ロス:
n ⼀項⽬: タスクBのロス
n ⼆項⽬: タスクAが解けるパラメタから遠ざ
からないようにする正則化項
n Fはフィッシャー⾏列の対⾓成分
n 導出はググれば無限にでてくる
n 結果(permuted MNIST)
n SGD: 正則化項なし.破滅的忘却する
n L2: フィッシャー⾏列が単位⾏列のとき
n EWC: 提案⼿法
variational continual learning
n 継続学習に変分推論の枠組みを導⼊
n EWC(MAP推定)の変分推論verとみなせる
n ガウシアンの平均場近似した事後分布を⽤いる
n ロス:
n ⼀項⽬: 現在のデータにおける期待対数尤度
n ⼆項⽬: 1個前のタスクの近似事後分布に現在の近似事
後分布を近づける正則化の役割
Progressive Neural Networks
n ⼿法
n 昔の中間層の出⼒を新しく⼊⼒として利⽤する
n 古い重みは更新せず,新しいタスクごとに新し
いネットワークを追加する
n ⽋点: タスクが増えるほどパラメタが増える
n 実験: 強化学習タスクで有効性を⽰した
iCaRL: Incremental Classifier and Representation Learning
n 問題設定:
n 新しいクラスのデータが次々と追加される
n 過去のデータをクラスごとにいくつか保持
n クラスごとに平均に近いサンプルを保持
n ロス:
n 現在のデータ: 普通にcrossentropy loss
n 過去のデータ: distillation loss
n 前のデータの出⼒に現在の出⼒を近づけようと
する正則化の役割
iCaRL: Incremental Classifier and Representation Learning
n CIFAR100を使って10クラスごとデータを追加して学習した
ときの結果
n 対⾓線に⾚いほどよい
n ⽐較⼿法
n (b) learning without forgetting
n (c) 特徴抽出の重みを最初に学習したときのままにする
n (d) 新しいデータが来るたびにfine tuningする
Continual Learning with Deep Generative Replay
n 問題設定: タスクが変化する(例: MNIST→SVHN)
n ロス:
n ⼀項⽬: Solver(分類器)が現在のデータを使ってcross entropyで普通に学習する
n ⼆項⽬: GANで昔のデータを出⼒させ,Solverの昔の出⼒と現在の出⼒を近づけるようにする
n さっきの蒸留ロスと同じ
Continual Learning with Deep Generative Replay
n 右図: ⽣成モデル(GAN)がちゃんと学習できている様⼦
n 下図:
n GR: 提案⼿法,ER: 過去のデータを利⽤(つまり上限),None:
Solverのみ
n タスクが変わったときに昔のタスクの精度が落ちていないこと
がわかる
Continual Unsupervised Representation Learning
n 問題設定: 教師なし継続学習
n ⼀定期間ごとに新しいクラスのデータが与えられ,クラスラベルは与えられない
n ⼿法: クラスyと潜在変数zを推論できるような⽣成モデルを利⽤する(ELBOは下)
⽣成過程
Continual Unsupervised Representation Learning
n ⼿法続き: Dynamic expansion
n ELBOの閾値を決め,それを下回ったら新しいクラスのデータとする
n 新しいクラスのパラメタは既存のクラスのパラメタのうち⼀番確率が⾼いものを初期値として利
⽤し,改めて新しいデータで学習する
n ⼿法続き: mixture generative replay
n Deep Generative Relayのように,過去のサンプルを⽣成し,現在のデータと⼀緒に学習すること
で破滅的忘却を防ぐ
右図はだんだんいろんなクラスのデータを
サンプリングできるようになっている様⼦
Continual Unsupervised Representation Learning
n MNISTのデータをクラス
ごとに増やしていく実験
n 右図: t-SNEによる可視化
n ⾊分けはq(y|x)のargmax
n 下図: 定量的にどれだけ分
類できるか

continual learning survey

  • 1.
  • 2.
    背景: 継続学習とは n 継続学習:モデルが⻑い期間次々と与えられる新しいデータに対して連続的に学習すること n 継続学習の⽬的 n 新しいサンプルが追加されたときに再学習するコストを減らす n 昔学習した知識を利⽤し,新しいサンプルの学習コストを⼩さくする n よくある問題設定 n 過去のデータにはアクセスできず,現在のデータからのみ学習を⾏う n 過去現在含めたすべてのデータを使ってテストを⾏う データ1 データ3 モデル データ4 train 時間 現在 データ2
  • 3.
    背景: 継続学習における問題 n 機械学習モデルは例えば下図の現在のデータ3を学習しているとき,過去のデータ1,2にアク セスできないためデータ1,2のことを忘れてしまう(破滅的忘却) nこのとき,データ3のタスクは解けるがデータ1,2のタスクは解けない問題がおこる データ1 データ3 モデル データ4 train 時間 現在 データ2
  • 4.
    背景: 破滅的忘却を防ぐには n ナイーブなやり⽅:新しいデータと古いデータ合わせて改めて学習する n ⽋点: n 全部のデータを新しいデータが現れるたびに学習していたらめちゃくちゃ時間かかる n 昔のデータがなんらかの理由でアクセスできなくなっているかもしれない n 計算資源の無駄 データ3 モデル train 時間 現在 データ1 データ2 データ4
  • 5.
  • 6.
    破滅的忘却を防ぐためのアプローチ例 n 昔の知識を失わないようにパラメタをupdateする n Learningwithout Forgetting n Overcoming catastrophic forgetting in neural networks n variational continual learning n タスクが増えたときモデル構造を追加する n Progressive Neural Networks n 部分的に昔のサンプルを使う,もしくは⽣成サンプルを使って学習する n iCaRL: Incremental Classifier and Representation Learning n Continual Learning with Deep Generative Replay n Continual Unsupervised Representation Learning
  • 7.
    Learning without Forgetting n(a)は最初に与えられる モデル.共通パラメタ θ!とタスクごとのパラ メタθ"が存在する n (b)は破滅的忘却する n (c)は新しいタスクの精 度があまりでない n (d)は精度は出るがナ イーブなやり⽅で,計 算資源が必要で時間も かかる n (e)が提案⼿法で上記の 問題を解決する
  • 8.
    Learning without Forgetting nロス: distillation loss + cross entropy loss + weight decay n 1項⽬は⼊⼒を新しいデータとして,昔のパラメタをつかった 出⼒に現在のパラメタの出⼒を近づけようとする項 n 利点: 昔のデータを利⽤する必要がない
  • 9.
    Overcoming catastrophic forgettingin neural networks n タスクAが解けるようなパラメタ空間上で タスクBが解けるようなパラメタを探そう というアイデア n ロス: n ⼀項⽬: タスクBのロス n ⼆項⽬: タスクAが解けるパラメタから遠ざ からないようにする正則化項 n Fはフィッシャー⾏列の対⾓成分 n 導出はググれば無限にでてくる n 結果(permuted MNIST) n SGD: 正則化項なし.破滅的忘却する n L2: フィッシャー⾏列が単位⾏列のとき n EWC: 提案⼿法
  • 10.
    variational continual learning n継続学習に変分推論の枠組みを導⼊ n EWC(MAP推定)の変分推論verとみなせる n ガウシアンの平均場近似した事後分布を⽤いる n ロス: n ⼀項⽬: 現在のデータにおける期待対数尤度 n ⼆項⽬: 1個前のタスクの近似事後分布に現在の近似事 後分布を近づける正則化の役割
  • 11.
    Progressive Neural Networks n⼿法 n 昔の中間層の出⼒を新しく⼊⼒として利⽤する n 古い重みは更新せず,新しいタスクごとに新し いネットワークを追加する n ⽋点: タスクが増えるほどパラメタが増える n 実験: 強化学習タスクで有効性を⽰した
  • 12.
    iCaRL: Incremental Classifierand Representation Learning n 問題設定: n 新しいクラスのデータが次々と追加される n 過去のデータをクラスごとにいくつか保持 n クラスごとに平均に近いサンプルを保持 n ロス: n 現在のデータ: 普通にcrossentropy loss n 過去のデータ: distillation loss n 前のデータの出⼒に現在の出⼒を近づけようと する正則化の役割
  • 13.
    iCaRL: Incremental Classifierand Representation Learning n CIFAR100を使って10クラスごとデータを追加して学習した ときの結果 n 対⾓線に⾚いほどよい n ⽐較⼿法 n (b) learning without forgetting n (c) 特徴抽出の重みを最初に学習したときのままにする n (d) 新しいデータが来るたびにfine tuningする
  • 14.
    Continual Learning withDeep Generative Replay n 問題設定: タスクが変化する(例: MNIST→SVHN) n ロス: n ⼀項⽬: Solver(分類器)が現在のデータを使ってcross entropyで普通に学習する n ⼆項⽬: GANで昔のデータを出⼒させ,Solverの昔の出⼒と現在の出⼒を近づけるようにする n さっきの蒸留ロスと同じ
  • 15.
    Continual Learning withDeep Generative Replay n 右図: ⽣成モデル(GAN)がちゃんと学習できている様⼦ n 下図: n GR: 提案⼿法,ER: 過去のデータを利⽤(つまり上限),None: Solverのみ n タスクが変わったときに昔のタスクの精度が落ちていないこと がわかる
  • 16.
    Continual Unsupervised RepresentationLearning n 問題設定: 教師なし継続学習 n ⼀定期間ごとに新しいクラスのデータが与えられ,クラスラベルは与えられない n ⼿法: クラスyと潜在変数zを推論できるような⽣成モデルを利⽤する(ELBOは下) ⽣成過程
  • 17.
    Continual Unsupervised RepresentationLearning n ⼿法続き: Dynamic expansion n ELBOの閾値を決め,それを下回ったら新しいクラスのデータとする n 新しいクラスのパラメタは既存のクラスのパラメタのうち⼀番確率が⾼いものを初期値として利 ⽤し,改めて新しいデータで学習する n ⼿法続き: mixture generative replay n Deep Generative Relayのように,過去のサンプルを⽣成し,現在のデータと⼀緒に学習すること で破滅的忘却を防ぐ 右図はだんだんいろんなクラスのデータを サンプリングできるようになっている様⼦
  • 18.
    Continual Unsupervised RepresentationLearning n MNISTのデータをクラス ごとに増やしていく実験 n 右図: t-SNEによる可視化 n ⾊分けはq(y|x)のargmax n 下図: 定量的にどれだけ分 類できるか