(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-12
(45)【発行日】2024-11-20
(54)【発明の名称】学習装置、識別装置、学習方法、識別方法及びコンピュータプログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20241113BHJP
【FI】
G06N20/00
(21)【出願番号】P 2023508211
(86)(22)【出願日】2021-03-23
(86)【国際出願番号】 JP2021011949
(87)【国際公開番号】W WO2022201296
(87)【国際公開日】2022-09-29
【審査請求日】2023-08-15
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110001634
【氏名又は名称】弁理士法人志賀国際特許事務所
(72)【発明者】
【氏名】柴田 剛志
(72)【発明者】
【氏名】入江 豪
(72)【発明者】
【氏名】伊神 大貴
(72)【発明者】
【氏名】三鼓 悠
【審査官】多賀 実
(56)【参考文献】
【文献】米国特許出願公開第2020/0074305(US,A1)
【文献】DE LANGE, Matthias et al.,'A continual learning survey: Defying forgetting in classification tasks',IEEE Transactions on Pattern Analysis and Machine Intelligence (Early Access),米国,IEEE,2021年02月05日,pp.1-20,[検索日 2021.05.17], インターネット:<URL: https://ieeexplore.ieee.org/abstract/document/9349197>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
学習対象となる第1データと、前記第1データを識別するための第2データと、前記第1データを識別するためのデータとして過去の学習時に利用した第2過去データであって、保存したい学習内容に関する前記第2過去データとを入力するデータ入力部と、
前記第1データと前記第2データとを合成することによって合成データを生成する合成データ生成部と、
前記合成データと、前記第2過去データとを機械学習モデルに入力して得られる前記合成データと、前記第2過去データとの特徴に基づき、前記機械学習モデルのパラメータを更新するパラメータ更新部と、
を備える学習装置。
【請求項2】
前記第2データは、ランダムなノイズパターンのデータ、学習用の入力データの一部を変化させたパターンのデータ、又は学習用の入力データの平均値で表されるパターンのデータのいずれかである、
請求項1に記載の学習装置。
【請求項3】
前記合成データと、前記第2過去データとの特徴を用いて、前記第1データを識別する識別部と、
前記第1データと、前記第2過去データと、前記識別部における識別結果とを用いて損失を取得する損失取得部と、
をさらに備える、
請求項1又は2に記載の学習装置。
【請求項4】
前記損失取得部は、前記パラメータ更新部が更新するパラメータの範囲を制約する正則化と、前記合成データにおける識別精度に基づく損失と、前記第1データにおける識別精度に基づく損失と、前記第2データにおける識別精度に基づく損失とに基づいて、前記損失を取得する、
請求項3に記載の学習装置。
【請求項5】
請求項1から4のいずれか一項に記載の学習装置によって得られた学習済みモデルを用いて、入力されたデータの識別を行う識別装置。
【請求項6】
学習対象となる第1データと、前記第1データを識別するための第2データと、前記第1データを識別するためのデータとして過去の学習時に利用した第2過去データであって、保存したい学習内容に関する前記第2過去データとを入力し、
前記第1データと前記第2データとを合成することによって合成データを生成し、
前記合成データと、前記第2過去データとを機械学習モデルに入力して得られる前記合成データと、前記第2過去データとの特徴に基づき、前記機械学習モデルのパラメータを更新する、
学習方法。
【請求項7】
請求項1から4のいずれか一項に記載の学習装置によって得られた学習済みモデルを用いて、入力されたデータの識別を行う識別方法。
【請求項8】
コンピュータに、
学習対象となる第1データと、前記第1データを識別するための第2データと
を合成することによって合成データを生成させ、
前記合成データと、
前記第1データを識別するためのデータとして過去の学習時に利用した第2過去データであって、保存したい学習内容に関する前記第2過去データとを機械学習モデルに入力して得られる前記合成データと、前記第2過去データとの特徴に基づき、前記機械学習モデルのパラメータを更新する処理
を実行させるためのコンピュータプログラム。
【請求項9】
請求項5に記載の識別装置としてコンピュータを機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習装置、識別装置、学習方法、識別方法及びコンピュータプログラムに関する。
【背景技術】
【0002】
機械学習における深層学習では、ネットワークが新たな学習のために更新されると、以前の学習内容(以下「タスク」という。)に対する性能が劇的に低下する。この影響を軽減するために、過去の学習結果を忘れることなく、新しいタスクに適応するためにネットワークを更新することを目的とする生涯学習に関する研究が盛んである。新しいタスクの具体例として、新しいクラスや新しいインスタンスの集合などが挙げられる。
【0003】
生涯学習に関する研究として、非特許文献1~3に示される内容が挙げられる。例えば、非特許文献1には、過去の学習サンプルの一部を記憶し、新しいタスク時に再生するメモリ再生ベースと呼ばれる方法が開示されている。非特許文献2には、深層学習におけるモデルパラメータを凍結させる方法が開示されている。非特許文献3には、追加の正則化項を導入することで、以前のタスクの知識を暗黙的に活用する方法も開示されている。
【先行技術文献】
【非特許文献】
【0004】
【文献】Sylvestre-Alvise Rebuffi, Alexander Kolesnikov, Georg Sperl, and Christoph H Lampert. “iCaRL: Incremental Classifier and Representation Learning”, In Proc.CVPR, 2017.
【文献】Arun Mallya and Svetlana Lazebnik, “PackNet: Adding Multiple Tasks to a Single Network by Iterative Pruning”, In Proc. CVPR, 2018.
【文献】Zhizhong Li and Derek Hoiem. “Learning without Forgetting”, TPAMI, 40(12):2935-2947, 2017.
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述した既存の生涯学習の多くは、前のタスクの知識をすべて保存したまま、新たなタスクに対して表現力の高いモデルを学習するように設計されている。一方、人工知能は、現在、新しいタイプの問題に直面しており、人工知能がより実用的になり、日常生活に結びつくようになるにつれ、プライバシー保護やデータ漏洩防止など、様々な倫理的な問題が重要なテーマとなっている。生涯学習における技術においても、この問題は避けられない。
【0006】
これまでの全てのタスクの完全な知識を保持することは、データの漏洩やプライバシーの侵害のリスクにつながる可能性がある。さらに、前のタスクの完全な知識を持っていることが必ずしも必要ではない。例えば、オフィスの入り口に設置された顔認証システムを想定すると、他部署への転勤者の顔を記憶する必要は必ずしもない。そのため、過去のタスクのうち不要な知識を選択的に忘れつつ、その他の知識を保存可能な学習を行うことが望まれている。
【0007】
上記事情に鑑み、本発明は、過去の学習内容のうち不要な学習内容を選択的に忘れつつ、その他の学習内容を保存可能な学習を行うことができる技術の提供を目的としている。
【課題を解決するための手段】
【0008】
本発明の一態様は、学習対象となる第1データと、前記第1データを識別するための第2データと、前記第1データを識別するためのデータとして過去の学習時に利用した第2過去データであって、保存したい学習内容に関する前記第2過去データとを入力するデータ入力部と、前記第1データと前記第2データとを合成することによって合成データを生成する合成データ生成部と、前記合成データと、前記第2過去データとを機械学習モデルに入力して得られる前記合成データと、前記第2過去データとの特徴に基づき、前記機械学習モデルのパラメータを更新するパラメータ更新部と、を備える学習装置である。
【0009】
本発明の一態様は、上記の学習装置によって得られた学習済みモデルを用いて、入力されたデータの識別を行う識別装置である。
【0010】
本発明の一態様は、学習対象となる第1データと、前記第1データを識別するための第2データと、前記第1データを識別するためのデータとして過去の学習時に利用した第2過去データであって、保存したい学習内容に関する前記第2過去データとを入力し、前記第1データと前記第2データとを合成することによって合成データを生成し、前記合成データと、前記第2過去データとを機械学習モデルに入力して得られる前記合成データと、前記第2過去データとの特徴に基づき、前記機械学習モデルのパラメータを更新する、学習方法である。
【0011】
本発明の一態様は、上記の学習装置によって得られた学習済みモデルを用いて、入力されたデータの識別を行う識別方法である。
【0012】
本発明の一態様は、コンピュータに、学習対象となる第1データと、前記第1データを識別するための第2データとを合成することによって合成データを生成させ、前記合成データと、前記第1データを識別するためのデータとして過去の学習時に利用した第2過去データであって、保存したい学習内容に関する前記第2過去データとを機械学習モデルに入力して得られる前記合成データと、前記第2過去データとの特徴に基づき、前記機械学習モデルのパラメータを更新する処理を実行させるためのコンピュータプログラムである。
【0013】
本発明の一態様は、上記の識別装置としてコンピュータを機能させるためのコンピュータプログラムである。
【発明の効果】
【0014】
本発明により、本発明によれば、過去の学習内容のうち不要な学習内容を選択的に忘れつつ、その他の学習内容を保存可能な学習を行うことが可能となる。
【図面の簡単な説明】
【0015】
【
図1】実施形態における学習装置の機能構成を示すブロック図である。
【
図3】実施形態における処理を模式的に示した図である。
【
図4】実施形態における学習装置の学習処理の流れを示すフローチャートである。
【
図6】実施形態における識別装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0016】
以下、本発明の一実施形態を、図面を参照しながら説明する。
図1は、実施形態における学習装置1の機能構成を示すブロック図である。実施形態における学習装置1は、継続的な学習を可能とする、いわゆる生涯学習を行う装置である。学習装置1は、所定の機械学習のモデルを所定の終了条件が満たされるまで機械学習によって更新する。
【0017】
所定の終了条件が満たされた時点の所定の機械学習のモデルが、学習済みモデルである。そのため、学習装置1は、所定の終了条件が満たされるまで所定の機械学習のモデルを機械学習によって更新することで、学習済みモデルを取得する。
【0018】
以下、説明の簡単のため、機械学習を行うことを学習ともいう。機械学習のモデル(以下「機械学習モデル」という。)を機械学習によって更新するとは、機械学習モデルにおけるパラメータの値を好適に調整することを意味する。以下の説明において、Aであるように学習するとは、機械学習モデルにおけるパラメータの値がAを満たすように調整されることを意味する。Aは条件を表す。また、以下、学習用とは、機械学習モデルの更新に用いられることを意味する。なお、機械学習モデルとは、実行される条件と順番とが予め定められた1又は複数の処理を含む集合である。
【0019】
機械学習モデルは、例えばニューラルネットワークで表される。ニューラルネットワークとは、電子回路、電気回路、光回路、集積回路等の回路であって機械学習モデルを表現する回路である。ニューラルネットワークのパラメータは、損失に基づいて好適に調整される、ネットワークのパラメータは、表現する機械学習モデルのパラメータである。ネットワークのパラメータは、ネットワークを構成する回路のパラメータである。
【0020】
学習装置1が更新する機械学習モデルは、入力されたデータを識別する機械学習のモデルである。学習装置1がパラメータを更新することによって得られる学習済みモデルは、例えばデータのクラス分類を行うモデルである。機械学習モデルには、学習用入力データと、学習用参照データと、学習用疑似データと、が入力される。
【0021】
学習用入力データは、学習対象となるデータである。例えば、学習用入力データは、画像のような2次元以上のデータであってもよいし、音声、音響あるいは振動のような一次元の時系列データであってもよいし、自然言語のような記号データであってもよい。このように、学習用入力データは、一般的に機械学習に適用されるデータであればいずれでもよい。なお、音声、音響あるいは振動のような一次元の時系列データを学習用入力データとして用いる場合には、ケプトラムなどを用いて二次元化すればよい。
【0022】
学習用参照データは、機械学習におけるいわゆる正解データである。学習用参照データとしては、属性、クラス名又は人物IDなどのクラスラベルに相当する情報を数値化したものであってもよいし、学習用入力データと同様のデータ、すなわち画像や音声のデータであってもよい。学習用参照データは、一般的に機械学習に適用される際の目的変数であればいずれでもよい。より具体的には、ラベルを目的変数とする場合は、識別あるいは認証が目的となり、学習用入力データと同様のデータを変数とすれば回帰が目的となる。
【0023】
以下、少なくとも1つの学習用入力データと1つの学習用参照データとの対を含むデータを学習用データという。すなわち、学習用データは、学習用入力データと学習用参照データの組を少なくとも含むデータであり、いわゆる学習データの一例である。学習用データは、第1データの一態様である。
【0024】
学習用疑似データは、学習用データとは異なるデータである。例えば、学習用疑似データは、ランダムなノイズパターンのデータ、学習用入力データの一部を劣化させたパターンのデータ又は学習用入力データの平均値で表されるパターンのデータであってもよい。学習用入力データの平均値で表されるパターンとは、各画素が、複数の学習用入力データにおける各画素の平均値で表されるパターンであってもよいし、1つの学習用入力データの各画素の平均値を各画素に割り当てたパターンであってもよい。なお、学習用疑似データとしては、過去のタスクのデータのうち、プライバシーなどの観点で安全性が保障されたサンプルを少数使用してもよいし、敵対的学習などによって得られた生成モデルによって生成された合成画像であってもよい。学習用疑似データは、学習用データの属するクラスを識別するためのデータである。
【0025】
本明細書では、学習装置1に入力されるデータとして、主に画像データを扱う例について説明しているが、本発明はそれに限定されない。本明細書では、深層学習を用いる場合について説明する。
【0026】
以下の説明では、説明を明瞭にするため、入力データの集合を式(1)のように表す。
【0027】
【0028】
例えば各データセットDkは、学習用入力データxkと学習用参照データykとを用いて、以下の式(2)のように表すこととする。なお、xi
kは、学習用入力データである。yi
kは、学習用参照データである。
【0029】
【0030】
前述したように、本発明における目的は、過去のタスクのうち不要な知識(この場合はクラス)は選択的に忘れつつ、その他の知識(この場合はクラス)を保存するように学習することである。以下の説明では、保存したいクラス(以下「保存集合」という。)をCP
kと表すことにする。この場合、選択的に忘れるクラス(以下「削除集合」という。)は、CP
kの補集合、すなわち-CP
k(-はCの上につく)となる。
【0031】
学習装置1におけるネットワークをfで表し、パラメータを形式的にθで表す。すなわち、ネットワークはfθと表される。
【0032】
本発明における目的は、上記の表記を用いると以下のように表すことができる。正解となるクラスyが保存クラスCPに属する場合、入力された学習用入力データxを、正解となるクラスyに写像する。一方、正解となるクラスyが保存クラスCPに属さない場合、入力された学習用入力データxを、正解となるクラスy以外に写像するようなfθを学習する。
【0033】
なお、上記の目的を達成する際に、学習装置1は、以下のような制約条件を設けてもよい。
【0034】
(制約条件)
k番目のタスクを学習する際に、過去の学習用入力データ{D1,…,Dk-1}を使用しない。
【0035】
形式的に、これらの目的は、
図2のように表すことができる。
図2は、本発明の目的を説明するための図である。以下の説明では、上述の制約条件を付けた場合について説明するが、本発明は上述の制約条件を設けない場合においても適用可能である。
【0036】
(学習装置1の具体的な構成)
学習装置1は、入力部11、制御部12、通信部13、記憶部14及び出力部15を備える。
【0037】
入力部11は、データ入力部111、疑似データ入力部112及び疑似データ再入力部113で構成される。
【0038】
データ入力部111は、k番目のタスクにおいて、上記の式(2)に示すデータセットDkを入力する。すなわち、データ入力部111は、k番目のタスクにおいて、学習用入力データxi
kと学習用参照データyi
kとのセットを入力する。
【0039】
疑似データ入力部112は、学習用疑似データを入力する。以下では、学習用疑似データの集合を{ζk,c}と表す。なお、ここで、ζk,cは、k番目のタスクにおけるcクラス目の学習用疑似データである。疑似データ入力部112に入力される学習用疑似データは、第2データの一態様である。
【0040】
疑似データ再入力部113は、疑似データ入力部112で入力した学習用疑似データを、再度入力する。より具体的には、疑似データ再入力部113は、k番目のタスクにおいて、{ζk´,c}(ただしk´<k)の学習用疑似データを入力すればよい。すなわち、疑似データ再入力部113は、学習用データを識別するためのデータとして過去の学習時に利用した学習用疑似データを入力する。疑似データ再入力部113に入力される学習用疑似データは、第2過去データの一態様である。
【0041】
制御部12は、学習装置1全体を制御する。制御部12は、CPU(Central Processing Unit)等のプロセッサやメモリを用いて構成される。制御部12は、プログラムを実行することによって、拡張データ生成部121、特徴抽出部122、識別部123、損失取得部124、パラメータ更新部125及び終了判定部126の機能を実現する。
【0042】
拡張データ生成部121は、データ入力部111にて入力した学習用入力データxi
kと、疑似データ入力部112にて入力した疑似データζk,cとを合成することによって拡張データ(合成データ)を生成する。具体的には、拡張データ生成部121は、学習用入力データxi
kと、学習用疑似データζk,cとを、予め与えられた確率分布関数により決定された比率によりブレンディングすることによって拡張データを生成してもよい。拡張データ生成部121は、合成データ生成部の一態様である。
【0043】
拡張データ生成部121について、具体例を用いて説明をする。上述したように、本発明の目的は、(元のデータセットにアクセスすることなく、)保存集合CP
kに含まれるクラスを記憶し続ける一方で、削除集合-CP
k(-はCの上につく)に含まれるクラスを忘れることである。この目的を達成するために、本発明では、各クラスの情報を学習用疑似データζk,cと呼ばれる単純なデータで関連付け、その学習用疑似データを用いて、そのクラスを記憶し続けるか忘れるかを制御する。
【0044】
より具体的には、この制御を行うために、特殊なタイプのデータ拡張を用いる。このプロセスの概要を
図3に示す。
図3は、実施形態における処理を模式的に示した図である。拡張データ生成部121は、新しいタスク(
図3では、新タスク)を受け取ると、クラス固有の学習用疑似データζ
k,cとしてランダムな画素値を持つ画像をクラス毎に1つ生成し、対応するクラスの全サンプルに埋め込めばよい。
【0045】
例えば、下記の式(3)のように、k番目のタスクの学習中に、c番目のクラスの元の学習用入力データxi
kに対し、学習用疑似データζk,cを合成することで,拡張データ~xi
k(~はxの上につく)を生成すればよい。
【0046】
【0047】
式(3)において、λは0から1の間を取るランダムな値である。拡張データ生成部121は、元の集合{(xi
k,yi
k)N
i=1}に加え、拡張データ~xi
k(~はxの上につく)を含む集合{(~xi
k,yi
k)N
i=1}をメモリ(図示せず)に保存する。後段の処理にてパラメータ更新部125が、これら2つの集合を用いて特徴抽出部122及び識別部123のパラメータを更新する。なお、更新が済んだら、学習用疑似データζk,cだけを残しておけばよい。
【0048】
このような拡張データ~xi
k(~はxの上につく)を用いて学習することで、同じクラスのサンプルは特徴空間の対応する学習用疑似データζk,cの周りに集約される。そのため、新しいタスクの学習時に学習用疑似データζk,cを使うか否かによって、学習用疑似データζk,cの周りの特徴分布を局所的に維持するか否かを制御することができる。その結果、学習用入力データxi
kを使わずに学習用疑似データζk,cを使って任意のクラスを覚えさせたり、忘れさせたりすることが可能となる。
【0049】
なお学習用疑似データζ
k,cの生成には、
図3に示すようなランダムな色パターン、すなわち学習用入力データx
i
kと同じ大きさの画像の各グリッドにランダムな色を割り当てればよい。このようなランダムな学習用疑似データζ
k,cを用いることの利点として、以下の3つの点が挙げられる。
【0050】
1つ目として、ランダムパターンの生成が容易であることが挙げられる。
2つ目として、パターンがクラスやタスク毎に独立していることが挙げられる。
3つ目として、既存のメモリベースアプローチのように学習用入力データxi
kの一部を利用するのとは異なり、パターン自体が生データの情報を直接表現していない。そのため、プライバシー保護やデータ漏洩防止に適していることが挙げられる。
【0051】
特徴抽出部122は、拡張データ生成部121にて生成された拡張データと、疑似データ再入力部113にて再入力された学習用疑似データとを入力して特徴を抽出する。特徴を抽出する手法として、例えば参考文献1に開示されているResNetなど一般的な深層学習におけるネットワークを用いればよい。
【0052】
(参考文献1:K. He, X. Zhang, S. Ren, and J. Sun, “Deep Residual Learning for Image Recognition”, In Proc. CVPR, 2016.)
【0053】
識別部123は、特徴抽出部122にて抽出された特徴を用いて、入力データを識別する。特徴から識別を行う手法としては、例えば、非特許文献4に開示されているResNetなど一般的な深層学習におけるネットワークにおける最終層などを用いればよい。あるいは、特徴から識別を行う手法として、例えば、サポートベクターマシン(support vector machine)などの手法が用いられてもよい。なお、実施形態における識別部123が、ある特定のクラスラベルを推定する場合について述べたが、本発明はこれに限定されない。例えば、識別部123が識別処理を行うのではなく、回帰処理を行ってもよい。さらに、識別部123におけるネットワークの構造がマルチヘッド構造である場合について説明するが、本発明はこれに限定されない。
【0054】
損失取得部124は、データ入力部111にて入力された学習用データと、疑似データ再入力部113にて入力された学習用疑似データと、識別部123にて識別された結果とを用いて損失を取得する。例えば、損失取得部124は、パラメータ更新部125にて更新するパラメータの範囲を制約するための正則化を備えてもよい。
【0055】
より具体的に、損失取得部124の動作について説明する。損失取得部124にて取得する損失を、式(4)に基づいて取得する。式(4)に示す学習のための全損失関数Lは、分類損失LC、疑似データ損失LM、選択的忘却損失LF、正則化項LRの4つの項から構成されていてもよい。
【0056】
【0057】
分類損失LC及び疑似データ損失LMの項は、新しいタスクを覚えるための項である。選択的忘却損失LF及び正則化項LRの項は、以前のタスクを維持するための項である。以下、これらの各項について詳細に説明する。
【0058】
分類損失LCは、新しいタスクに対する分類を正確に行うことを目的として導入される。具体的には、分類損失LCは、例えば式(5)のように与えればよい。
【0059】
【0060】
式(5)において、Nkはk番目のタスクの学習サンプル数、l(x,y)は学習用入力データxi
kと学習用参照データyi
k(例えば、クラスラベルy)の損失関数である。例えば、損失関数としては、ソフトマックス・クロス・エントロピー(CE)又は加法マージン・ソフトマックス(AMS:Addition Margin Softmax)損失を用いればよい。
【0061】
疑似データ損失LMは、学習用入力データxi
kを用いた分類損失LCの他に、それぞれの学習用疑似データを対応するクラスに結びつけるために学習用疑似データを用いた拡張データを用いた別の損失を用いてもよい。疑似データ損失LMは、以下の式(6)のように表される。
【0062】
【0063】
なお、損失関数としては、分類損失LCと同様のものを用いればよい。
【0064】
選択的忘却損失LFは、保存集合CP
kに属するクラスだけを記憶しておき、削除集合-CP
k(-はCの上につく)に属するクラスは忘却させることを目的として導入される。具体的には、保存集合のクラスに対応する学習用疑似データのみを用いて学習を行い、他の学習用疑似データ(例えば、削除集合のクラスに対応する学習用疑似データ)を破棄することで達成される。より具体的には、xi
pを生成するための学習用疑似データをζi
pとしたとき、損失として例えば以下の式(7)で与えればよい。
【0065】
【0066】
式(7)において、Npはp番目のタスクでの学習サンプル数、γSFはこの損失の強さを調整するための重みである。この損失関数は、学習用入力データxi
kを一切使用しない。そして、削除集合-CP
k(-はCの上につく)内のクラスの学習用疑似データも使用しないことで、これらのクラスは破滅的な忘却が引き起こされる。これにより、学習用入力データxi
kを一切使用せずに、前のタスクの選択的な忘却を実現することができる。
【0067】
正則化項LRは、破滅的な忘却を防ぐために導入される一般的な正則化(例えば非特許文献3、参考文献2及び3)を用いればよい。
【0068】
(参考文献2:James Kirkpatrick, Razvan Pascanu, Neil Rabinowitz, Joel Veness, Guillaume Desjardins, Andrei A Rusu, Kieran Milan, John Quan, Tiago Ramalho, Agnieszka Grabska-Barwinska, et al, “Overcoming catastrophic forgetting in neural networks”, PNAS, 114(13):3521-3526, 2017.)
【0069】
(参考文献3:Rahaf Aljundi, Francesca Babiloni, Mohamed Elhoseiny, Marcus Rohrbach, and Tinne Tuytelaars. “Memory Aware Synapses: Learning what (not) to forget”, ECCV, pages 139-154, 2018.)
【0070】
なお、本実施形態においては、正則化項として、保存集合Cp
kに対してのみ破滅的な忘却の防止が必要であるために、これらの保存集合に対してのみ、正則化を与えるように修正してもよい。より具体的には、例えば非特許文献3の場合には、正則化項として以下の式(8)を用いればよい。
【0071】
【0072】
式(8)において、γは項の重み、iはクラスラベルのインデックスである。ここでは、保存集合CP
kのみを対象とするように、i∈CP
kのように和を変更する。式(8)におけるy´
o
(i)と^y´
o
(i)(^はyの上につく)は、記録された確率と現在の確率を修正したものである。非特許文献5の場合には、正則化項として以下の式(9)を用いればよい。
【0073】
【0074】
式(9)において、γは正則化項の重み、Γp,qは対角線上のq番目のパラメータ^θp,q(^はθの上につく)に対応するp番目の前のタスクのFisher行列の成分である。なお、上式のように保存集合CP
kに対応するクラスに対してのみ評価されるようにFisher行列を変更してもよい。正則化項として、これら複数の正則化を線形和などにより、組み合わせて用いてもよい。
【0075】
パラメータ更新部125は、損失取得部124によって取得された損失が小さくなるように、機械学習モデルを更新する。損失に基づく機械学習モデルの更新は、具体的には、損失に基づき所定の規則にしたがって機械学習モデルを表すニューラルネットワークのパラメータの値を更新する処理である。ニューラルネットワークのパラメータの値の更新とは、より具体的には、例えば特徴抽出部122と識別部123それぞれに対応するパラメータの値の更新である。パラメータ更新部125は、パラメータを更新する際には、確率的勾配法等の既存の手法を用いてパラメータを更新すればよい。
【0076】
終了判定部126は、所定の終了条件が満たされたか否かを判定する。所定の終了条件は、予め設定されていてもよい。例えば、所定の終了条件は、損失が閾値以上小さくなったことであってもよいし、パラメータが所定の回数更新されたことであってもよい。
【0077】
通信部13は、学習装置1を外部装置に接続するための通信インタフェースを含んで構成される。通信部13は、有線又は無線を介して外部装置と通信する。外部装置は、例えば学習用データの送信元の装置である。
【0078】
記憶部14は、磁気ハードディスク装置や半導体記憶装置などの非一時的コンピュータ読み出し可能な記憶媒体装置を用いて構成される。記憶部14は、学習装置1に関する各種情報を記憶する。記憶部14は、例えば入力部11又は通信部13を介して入力された情報を記憶する。記憶部14は、例えば機械学習モデルを記憶する。記憶部14は、例えば機械学習モデルの実行により生じた各種情報を記憶する。
【0079】
なお、学習用データ及び学習用疑似データは、必ずしも入力部11だけに入力される必要もないし、通信部13だけに入力される必要もない。学習用データ及び学習用疑似データは、入力部11と通信部13とのどちらから入力されてもよい。例えば学習用データが入力部11に入力され、学習用疑似データが通信部13に入力されてもよい。学習用データ及び学習用疑似データは、予め記憶部14が記憶済みであってもよい。
【0080】
出力部15は、各種情報を出力する。出力部15は、例えばCRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイ、有機EL(Electro-Luminescence)ディスプレイ等の表示装置を含んで構成される。出力部15は、これらの表示装置を学習装置1に接続するインタフェースとして構成されてもよい。出力部15は、例えば入力部11に入力された情報を出力する。出力部15は、例えば入力部11又は通信部13に入力された学習用データを表示してもよい。出力部15は、例えば機械学習モデルの実行結果を表示してもよい。
【0081】
図4は、実施形態における学習装置1の学習処理の流れを示すフローチャートである。
データ入力部111は、新しいタスクの学習用入力データを入力する(ステップS101)。データ入力部111は、入力した学習用入力データを制御部12に出力する。疑似データ入力部112は、新しいタスクに対応する学習用疑似データを入力する(ステップS102)。疑似データ入力部112は、入力した学習用疑似データを制御部12に出力する。疑似データ再入力部113は、過去のタスクに対応する学習用疑似データを入力する(ステップS103)。疑似データ再入力部113は、入力した学習用疑似データを制御部12に出力する。
【0082】
拡張データ生成部121は、学習用入力データと、疑似データ入力部112から出力された学習用疑似データとを取得する。拡張データ生成部121は、取得した学習用入力データと、学習用疑似データとを合成することによって拡張データを生成する(ステップS104)。拡張データ生成部121は、生成した拡張データを特徴抽出部122に出力する。
【0083】
特徴抽出部122は、拡張データ生成部121から出力された拡張データと、疑似データ再入力部113から出力された過去タスクに対応する学習用疑似データとを用いて特徴を抽出する(ステップS105)。識別部123は、特徴抽出部122によって抽出された特徴から識別を行う(ステップS106)。損失取得部124は、識別部123において得られた識別結果と、データ入力部111から出力された学習用入力データと、疑似データ再入力部113から出力された過去タスクに対応する学習用疑似データに基づいて、損失を取得する(ステップS107)。例えば、損失取得部124は、上式(4)により損失を取得する。
【0084】
パラメータ更新部125は、損失取得部124にて取得した損失に基づき、機械学習モデルのパラメータを更新する(ステップS108)。終了判定部126は、終了条件が満たされたか否かを判定する(ステップS109)。終了条件が満たされていない場合(ステップS109-NO)、学習装置1はステップS104以降の処理を実行する。
【0085】
一方、終了条件が満たされた場合(ステップS109-YES)、データ出力部30は、識別部123の識別結果を出力する(ステップS110)。
【0086】
次に、
図5を用いて本発明における技術の優位性について説明する。
図5では、各タスク終了時の共有バックボーンの最終層上の特徴を例えばt-SNE(Stochastic Neighbor Embedding)を用いて可視化している。
図5(A)は、分類損失LCのみを用いた場合の最終層上の特徴を可視化した図である。
図5(B)は、一般的な生涯学習の手法を用いた場合の最終層上の特徴を可視化した図である。
図5(C)は、本発明における手法を用いた場合の最終層上の特徴を可視化した図である。
【0087】
分類損失のみを用いた場合には、過去のタスクを全て忘れてしまう。その理由は、
図5(A)に示すように、過去タスクの全てのサンプルがランダムに配置されるためである。
【0088】
一般的な生涯学習を用いた場合には、
図5(B)に示すように、全ての過去のタスクにおいて、クラス毎にサンプルが凝集されており、クラス毎に容易に分離可能な構造になっている。すなわち、生涯学習は可能であるが、一方で特定のクラスを忘れることはできないことを意味している。
【0089】
上記2つに対し、本発明における手法を用いた場合には、
図5(C)に示すように、記憶すべきクラスのサンプルを特徴空間内に凝集させたままにしておき、記憶すべきクラスを素早く散逸させることができており、忘れたいクラスのみ忘れつつ、生涯学習を行うことが可能であることが示されている。
【0090】
図6は、実施形態における識別装置2のハードウェア構成の一例を示す図である。識別装置2は、学習装置1によって得られた学習済みモデルを用いて識別処理を行う。識別装置2は、バスで接続されたCPU等のプロセッサ26とメモリ27とを備える制御部21を備え、プログラムを実行する。識別装置2は、プログラムの実行によって制御部21、入力部22、通信部23、記憶部24及び出力部25を備える装置として機能する。
【0091】
より具体的には、プロセッサ26が記憶部24に記憶されているプログラムを読み出し、読み出したプログラムをメモリ27に記憶させる。プロセッサ26が、メモリ27に記憶させたプログラムを実行することによって、識別装置2は、制御部21、入力部22、通信部23、記憶部24及び出力部25を備える装置として機能する。
【0092】
制御部21は、識別装置2が備える各種機能部の動作を制御する。制御部21は、例えば学習装置1によって得られた学習済みモデルを用いて、入力されたデータを識別する。具体的には、制御部21は、識別装置2に入力されたデータを学習済みモデルに入力することによってデータを識別する。例えば、制御部21は、データのクラス分類を行う。
【0093】
入力部22は、マウスやキーボード、タッチパネル等の入力装置を含んで構成される。入力部22は、これらの入力装置を自装置に接続するインタフェースとして構成されてもよい。入力部22は、自装置に対する各種情報の入力を受け付ける。入力部22は、例えば処理の開始を指示する入力を受け付ける。入力部22は、例えば処理対象となるデータの入力を受け付ける。
【0094】
通信部23は、自装置を外部装置に接続するための通信インタフェースを含んで構成される。通信部23は、有線又は無線を介して外部装置と通信する。通信部23が通信を行う外部装置は、例えば処理後のデータの出力先である。このような場合、通信部23は、外部装置との通信によって外部装置に処理後のデータを出力する。
【0095】
通信部23は、例えば学習装置1と通信を行ってもよい。この場合、通信部23は、例えば学習装置1によって得られた学習済みモデルを取得する。
【0096】
記憶部24は、磁気ハードディスク装置や半導体記憶装置などの非一時的コンピュータ読み出し可能な記憶媒体装置を用いて構成される。記憶部24は識別装置2に関する各種情報を記憶する。記憶部24は、例えば通信部23を介して取得した学習済みモデルを記憶する。記憶部24は、例えば入力部22に入力された処理対象となるデータを記憶する。
【0097】
出力部25は、各種情報を出力する。出力部25は、例えばCRTディスプレイや液晶ディスプレイ、有機ELディスプレイ等の表示装置を含んで構成される。出力部25は、これらの表示装置を自装置に接続するインタフェースとして構成されてもよい。出力部25は、例えば入力部22に入力された情報を出力する。
【0098】
以上のように構成された学習装置1によれば、過去のタスクのうち不要な知識を選択的に忘れつつ、その他の知識を保存可能な学習を行うことが可能となる。その理由は、モデル(すなわち特徴抽出部と識別部)を更新する際に、疑似入力データと呼ばれるタスク固有の信号、例えば、対応するクラスのすべての入力データに埋め込むデータ拡張を拡張データ生成部121にて行うためである。そして、学習装置1は、新たなタスクを学習する際に、削除したいクラスの学習用疑似データを無視して(使用しない)学習する。これにより、削除したいクラスについては、意図的に忘却を引き起こすことができるためである。これにより、前のタスクに対する選択的な忘却を実現することができるためである。
【0099】
学習装置1は、ネットワークを介して通信可能に接続された複数台の情報処理装置を用いて実装されてもよい。この場合、学習装置1が備える各機能部は、複数の情報処理装置に分散して実装されてもよい。
【0100】
なお、学習装置1及び識別装置2の各機能の全て又は一部は、ASIC(Application Specific Integrated Circuit)やPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェア(回路部;circuitryを含む)を用いて実現されてもよい。プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。プログラムは、電気通信回線を介して送信されてもよい。
【0101】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【0102】
本発明は、生涯学習に適用できる。
【符号の説明】
【0103】
1…学習装置, 2…識別装置, 11…入力部, 12…制御部, 13…通信部, 14…記憶部, 15…出力部, 21…制御部, 22…入力部, 23…通信部, 24…記憶部, 25…出力部, 26…プロセッサ, 27…メモリ, 111…データ入力部, 112…疑似データ入力部, 113…疑似データ再入力部, 121…拡張データ生成部, 122…特徴抽出部, 123…識別部, 124…損失取得部, 125…パラメータ更新部, 126…終了判定部