Incremental Learning について調べた part1

Incremental Learning とは

この手法はいろいろな呼ばれ方をしていて、他にも Lifelong Learning, Continuous Learning, Continual Learning などの呼ばれ方をしても、同じものを指すようです。 (主義主張はいろいろあるようですが、少なくともこの記事内では立ち入りません。私の記事ではありませんが、こちらの記事では、名前が乱立した経緯やどれを使うべきかについて、この方の推測と意見が書かれてるので、興味があればお読みください)

Incremental Learning (IL) の着想は、現在のDeep Learningの手法が現実の生物の学習に沿っていないことにあります。 現在一般的に行われているDeep Learningは、限られた(closed)なデータセットに対して、その正解をあてるモデルの開発に注力しています。 データセットに含まれていないデータやラベルについては、そのモデルの対象ではありません。

しかし現実世界では、物は無数に存在し、単語は生まれ、新しい知識や概念が増えていきます。 例えば、2020年以前であれば「コロナ」と聞けばコロナビールのことを指していたでしょうが、昨今ではまず新型ウィルスのことを思い浮かべます。 Deep Learningに目を向けてみると、 コロナウィルス出現前のデータで学習された自然言語処理などのモデルは、昨今のコロナウィルスについての文章を正確に処理することはできません。 新しくコロナウィルスのことも学習させたい場合は、以前に学習の際に用いたデータセットにコロナウィルスに関するデータを加えて新しいデータセットとして、モデルを一から学習し直すことになります。 学習時点でデータセット内に存在しなかった知識や概念は、理解することはできません。

一方で我々人間は、絶え間なく送られる外部からの信号・刺激に対して、常に学習を行っており、再学習なしに知識や考えをアップデートしています。 コロナビールのことを知っていた人でも、 今ではコロナと聞けばまずウィルスのことを思い浮かべます。 コロナビールを知らなかった人は、コロナという単語を新しい単語として記憶しています。 この時人間は、昔学んだこと(生まれたときから)を一から学びなおしたりはしません。 今自分が覚えている知識はこれだけあり、そこに新しい知識を加えて、全部学びなおすぞ、という人はいません。 新しい知識だけを取り込み、既存の理解のなかに落とし込んでいきます。

Incremental Learningは、人間のように学習することはできないかという疑問に着想を得た研究分野です。 Deep Learning モデルに新しい知識を追加で学習させたいときに、一からの再学習ではない方法で学習させられないか、 実用的には、一から学習し直す手間を減らす手法はないかを研究する分野です。

Deep Learning において、学習コストの問題は無視できず、これを解決できないものかとILは研究されています。 GPUは当然効果ですし、電気代も無視できません。クラウドが利用できるとはいってもこちらも安くありません。 大規模なモデルになれば、高性能なGPUを用いても一か月以上かかるのは普通です(実際は、GPUを複数台並列に並べて時間を節約します)。 モデルを学習する計算コスト(計算資源と計算時間)は、モデルの大きさ、データセットの大きさによって変わってきますが、現在のDeep Learningにおいてはどちらも一貫して増加傾向にあります。 モデルが大きければ大きいほど、データセットが大きければ大きいほど、新しいデータが表れたときに一から再学習するコストが増加していきます。 モデルが大規模化すればするほど、削減できるコストが大きくなり、Incremental Learning の恩恵は大きくなります。

ちなみにですが、Deep Learning 同様、ILの研究も歴史があり、2012年以前から研究されています。

難しさ

前置きが長くなりました。ここから実際にILはどう行うか書いていきます。

ILの解決すべき課題は、CatastrophicForgettingという現象です。 そもそも、新しいデータが追加されたとき、なぜ一から再学習する必要があるのでしょうか。 結論から言えば、新しいデータだけで学習を行うと、過去に学習した内容を忘れてしまうからです。 Deep Learning は、与えられたデータに合うようにモデルのパラメータを更新することで学習を行っていきます。 その際、どのパラメータがどのデータにとって重要か、などの情報は人間にはわかりません。 パラメータ数が膨大で、正確な分析が難しいのです。 新しいデータだけを与えて学習を行った場合、そのデータについては確かに学習しているのですが、過去に学習したパラメータが上書きされたり変更されてしまいます。 そのため、新しいデータ追加前はタスクへの性能が良かったのが、追加後には性能が悪くなってしまう、ということが起きます。 これが、CatastrophicForgettingです。

例えば、分類問題でクラスが増える場合を考えてみます。 さきほどのコロナの例のように、学習したあとにクラス数が増えるというのは現実世界ではよくあることです。 手書き数字認識の場合を考えてみます。0~9までの手書き数字を分類できるモデルを学習したあとに、「¥」を新たに認識したくなったとします。 「¥」の学習データを用意して、それだけを用いてモデルを学習すると、「¥」の認識性能は当然よくなります。 しかし、「¥」以外のデータについて評価を行うと、「¥」の学習データを加える以前と比べて結果が著しく悪くなったということがおこります。 この問題にいかに対処するかが、ILの主な課題設定となります。

評価方法

論文によって提案手法の良し悪しを測定する方法が違い、統一はされていません。 とはいっても同じタスクなので大まかな方向性は一緒です。 例えば、MNISTの10クラスを5分割して2クラスずつクラスを増やしていきながら精度を計算するなど、 既存のデータセットを分割して一方をソースデータ、他方をターゲットデータ(後から追加するクラス)とする方法がよく用いられているようです。 既存のデータセットを用いる利点として、スクラッチから学習した時の限界の精度がわかっているという点があります。 ILは、スクラッチから学習した時より精度がよくなることは報告されておらず、 現段階では「いかにスクラッチから学習した時の精度に近づけるか」が追及されています。 既存のデータセットを使うと上界がはっきりしており、自らそれを確かめる必要もありません。

アプローチ

ILがそもそも人間の学習に着想を得ていることもあり、手法としては脳科学のアナロジーの手法が使われています。 基本的にILの目的としては、Catastrophic Forgettingをいかに防ぐか、といった点に重きが置かれています。 こちらのサーベイ論文では、ILの手法について大きく3つに分けています。 この記事でもこの分類に沿っていきます。 内容としても翻訳のようになるかもしれないので、他も含めて読みたい方は論文の方を読むこともおすすめです。 3分類は以下のようになります

  1. 既存のモデルから乖離しないために正則化(regularization) を加える
  2. 新しいデータの分だけモデルの構造を拡張する
  3. 二種類のデータを維持する

脳のシナプスは、長期記憶保持のため、可塑性に差がつけられています。筆者の理解では、簡単には大きな変更が起きないシナプスと、頻繁に状態の変わるシナプスがある、ということです。1番は、これをモデルに応用した形になります。2番は、人間が成長するに伴って脳も大きくなっていくので、それを模しているのだと思います。3番は、脳の記憶領域に大脳新皮質と海馬の二種類があり、それぞれ長期記憶と短期記憶を保持しているといわれていることに着想を得た手法です。

各手法について簡単に説明したかったのですが、 ほぼ背景の説明で力をつかってしまったので、記事を分けたいと思います。