破滅的忘却と継続学習の問題設定について

こんにちは。スキルアップAI編集部です。私は現在、破滅的忘却と継続学習について研究をしています。
従来の機械学習フレームワークでは、固定のデータを使って学習および評価を行います。しかし実際の機械学習システムでは、データが次々と取得されますので、それに併せてモデルを逐次的に学習する必要があります。このとき、新たなデータに対して純粋にモデルを再学習させようとすると、「破滅的忘却」という問題が生じます。

この破滅的忘却に対処しながら新たなデータにモデルを適応させるための学習方法として「継続学習」があります。継続学習では、次々にデータが取得される状況のもとで、機械学習モデルを逐次的に学習していく方法を考えます。

本記事では、機械学習における致命的欠陥である「破滅的忘却」および「継続学習で扱われる問題設定」についてご紹介します。継続学習の具体的な手法については、別記事の「[一度学んだことを忘れずに新しいことを学ぶには？深層学習における継続学習入門](https://www.skillupai.com/blog/tech/continual-learning/)」に掲載していますので、興味のある方はそちらの記事もご参照ください。

＜目次＞
1. 破滅的忘却とは
2. 継続学習の問題設定について
  2.1. クラス増分
  2.2. ドメイン増分
3. おわりに
4. 参考文献

# 1.破滅的忘却とは

![catastrophic-forgetting01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/fe3cbe27-6fb1-a61a-628e-f071c0130318.png)
図1. 破滅的忘却の様子

破滅的忘却とは、モデルが次々と新しいタスクを学習するときに、過去に学習したタスクを忘れてしまう現象のことをいいます。破滅的忘却は人間を含む一部の哺乳類においては生じにくい現象なのですが、機械学習モデルにおいては容易に生じてしまうことが知られています。

例えば図1のように、最初に「0 vs 1 の分類タスク」を学習した直後では、モデルは 0 vs 1 の高精度な予測を容易に達成できます。しかし、その後新たなタスクとして「2 vs 3 の分類タスク」を学習した後では、先程まで可能だった既存のタスクである 0 vs 1 の予測ができなくなってしまいます。

このような破滅的忘却をどのようにして緩和させるかというアプローチがこれまでにいろいろと提案されています。その中の一つに「継続学習」と呼ばれる学習方法があります。次節では、継続学習の問題設定として「ドメイン増分（Domain Incremental）」と「クラス増分（Class Incremental）」の2つについて解説します。

# 2.継続学習の問題設定について

![catastrophic-forgetting02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/b7b3d003-6570-dc74-7ec3-8637863241fa.png)
図2. 晴れた日の犬と鳥の画像を分類する分類器

継続学習の代表的な問題設定として「クラス増分（Class Incremental）」と「ドメイン増分（Domain Incremental）」があります。


本節では、上の図のような「晴れた日に撮影された、犬と鳥の画像」で学習された、イヌとトリの分類器を例にとります。ここであえて「晴れた日」と指定したのは、ドメイン増分の説明をやりやすくするためです。それぞれの問題設定を一言で説明すると次のようになります。

クラス増分：学習していないクラスを新たに学習させる問題
例）「犬と鳥」の画像分類器に対して、新たに「船」の画像を学習させる
ドメイン増分：学習済みのクラスとは同じクラスだが、異なるドメインのデータを学習させる問題
例）「晴れた日」の犬と鳥の画像分類器に対して新たに「雪の日」の画像を学習させる（＝「晴れドメイン」で学習された分類器に「雪ドメイン」を新たに学習させる、ということ。）

## 2.1.クラス増分

![catastrophic-forgetting03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/073e2928-72e8-f6f3-65dc-fd3e6d895729.png)
図3. クラス増分の例

クラス増分（Class Incremental）とは、モデルが学習していないクラスをそのモデルに新たに学習させる問題です。こちらはドメイン増分と比べてもわかりやすい問題設定になっています。
上の図3はクラス増分の問題設定を示した図です。犬と鳥の分類器に新たに「船」というクラスを学習させます。このように今までのクラスに、新しくクラスが増分されているため、この問題設定はクラス増分と呼ばれています。実務においても、分類器に新たにクラスを追加したいという場面はよくあります。

## 2.2.ドメイン増分

![catastrophic-forgetting04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/457d7c74-1665-4067-99e2-41611693bd58.png)
図4. ドメイン増分の例

続いてドメイン増分（Domain Incremental）についてです。ここで取り扱うクラスは、学習済みのクラスと同じく犬と鳥です。ただし、画像のドメインが異なります。ドメインとは例えば「天気の違い」が挙げられます。
図4はドメイン増分の例を示しています。例としてあげている分類器では、「晴れの日」の犬と鳥を学習していました。この分類器に新たに「雪の日」の犬と鳥を入れてみます。そうすると、分類器は雪を見たことがないので、「なんだこの全体的に白で覆われている物体は！？」となってしまいます（実際に分類器がそう思っているかはさておき）。
結果として分類器は誤った分類をしてしまう可能性が高いです。そのため、新たなドメインである「雪の日」に関しても学習する必要があります。

このようにデータのドメインが変化（晴れ→雪）することをDomain Shiftと言ったりもしますが、これは車の自動運転などではクリティカルな問題となります。晴れの日は上手に自動運転ができるのに雪が降ると一気に運転が狂い始める、となってしまっては困るからです。ドメイン増分の例としてはほかにも写真の犬に加えて手書きのスケッチの犬も学習するパターンなども考えられます。

# 3.おわりに

本記事では破滅的忘却と継続学習の問題設定についてご紹介してきました。継続学習の問題設定はここで述べた2種類だけにとどまらず多岐に渡ります。ぜひ、どのような問題設定があるのかを調べてみてください。その際にに本記事が少しでも皆様の理解のお役に立てれば幸いです。

継続学習の具体的な手法については、別記事の「[一度学んだことを忘れずに新しいことを学ぶには？深層学習における継続学習入門](https://www.skillupai.com/blog/tech/continual-learning/)」に掲載しています。継続学習の手法について興味のある方はこちらの記事もぜひご参照ください。 深層学習について詳しく学びたい方は[現場で使えるディープラーニング基礎講座](https://www.skillupai.com/deep-learning/)をぜひご検討ください。

# 4.参考文献

[［1］Zheda Mai, et al. “Online continual learning in image classification: An empirical survey.” arXiv preprint arXiv:2101.10423 (2021).](https://arxiv.org/pdf/2101.10423.pdf)

# 25卒向け！AIエンジニアになるための長期インターンプログラム参加者募集中！
25卒学生向けに、AIの基礎を学びながら就活も一括サポートする無料カリキュラムを提供しています。
修了するとE資格の受験資格も獲得できるプログラムとなっています！

<img width="700" alt="長期インターン" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/bfce4c26-1ebe-c54d-bacb-e804048a7a08.png">

**特長①AIエンジニアやデータサイエンティストの基礎が身に付く**
AIジェネラリスト基礎講座や機械学習のためのPython入門講座など、市場価値向上のための基礎を習得。

**特長②AI・データ分析領域の優良求人を紹介**
非公開求人や選考直結型インターンをご紹介し、早期内定の獲得をサポート。

**特長③長期インターンプログラム専用の学生コミュニティ参加可**
学生同士で就活情報をシェアしたり、学習を進めるうえでアドバイスをしあったりできるコミュニティに参加可能。

＞＞[長期インターン詳細](https://bit.ly/3pXW5JM)

☆☆☆
スキルアップAIのメールマガジンでは会社のお知らせや講座に関するお得な情報を配信しています。配信を希望される方は[こちら](https://share.hsforms.com/1_XlReV-4Te-zcxCl9lhffA2mtef)

また、SNSでも様々なコンテンツをお届けしています。興味を持った方は是非チェックしてください♪
Twitterは[こちら](https://twitter.com/SkillupAi)
Facebookは[こちら](https://www.facebook.com/skillupai)
LinkedInは[こちら](https://www.linkedin.com/company/skillup-ai)
スキルアップAI公式YouTube AIビジネスチャンネルは[こちら](https://www.youtube.com/AIBusinessChannel)