(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023160198
(43)【公開日】2023-11-02
(54)【発明の名称】継続学習装置、継続学習方法および継続学習プログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20231026BHJP
【FI】
G06N20/00
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022070368
(22)【出願日】2022-04-21
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(71)【出願人】
【識別番号】598121341
【氏名又は名称】慶應義塾
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】若月 駿尭
(72)【発明者】
【氏名】竹内 亨
(72)【発明者】
【氏名】岸本 康成
(72)【発明者】
【氏名】井田 安俊
(72)【発明者】
【氏名】川島 寛乃
(72)【発明者】
【氏名】陳 寅
(72)【発明者】
【氏名】中澤 仁
(57)【要約】
【課題】継続学習において、一定のストレージ容量で学習の精度の低下を防止する。
【解決手段】取得部15aが、新規クラスの訓練データを取得する。学習部15bが、取得された訓練データと、前段における学習に用いられた訓練データと、前段で学習されたモデルとを用いて、入力されたデータのクラスを出力するモデル14aを学習する。選択部15cが、クラスのそれぞれの分類の難易度に応じて、次段における学習に用いるクラスごとの訓練データを選択する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
新規クラスの訓練データを取得する取得部と、
取得された前記訓練データと、前段における学習に用いられた訓練データから選択された訓練データと、前段で学習されたモデルとを用いて、入力されたデータのクラスを出力するモデルを学習する学習部と、
前記クラスのそれぞれの分類の難易度に応じて、次段における学習に用いるクラスごとの訓練データを選択する選択部と、
を有することを特徴とする継続学習装置。
【請求項2】
前記選択部は、訓練データの特徴量の分散が大きいほど高くなる分類の前記難易度を算出することを特徴とする請求項1に記載の継続学習装置。
【請求項3】
前記選択部は、学習に用いる訓練データの総数が所定の一定値となるように、クラスごとの訓練データを選択することを特徴とする請求項1に記載の継続学習装置。
【請求項4】
前記学習部は、前記クラスごとの前記訓練データの特徴量の平均と入力されたデータの特徴量との差分が最も小さいクラスを出力するように、前記モデルを学習することを特徴とする請求項1に記載の継続学習装置。
【請求項5】
前記選択部は、クラスごとの訓練データの特徴量の平均と、選択した訓練データの特徴量の平均との差分が最小となるように、訓練データを選択することを特徴とする請求項4に記載の継続学習装置。
【請求項6】
学習された前記モデルを用いて、入力されたデータをクラスに分類する分類部をさらに有することを特徴とする請求項1に記載の継続学習装置。
【請求項7】
継続学習装置が実行する継続学習方法であって、
新規クラスの訓練データを取得する取得工程と、
取得された前記訓練データと、前段における学習に用いられた訓練データから選択された訓練データと、前段で学習されたモデルとを用いて、入力されたデータのクラスを出力するモデルを学習する学習工程と、
前記クラスのそれぞれの分類の難易度に応じて、次段における学習に用いるクラスごとの訓練データを選択する選択工程と、
を含んだことを特徴とする継続学習方法。
【請求項8】
新規クラスの訓練データを取得する取得ステップと、
取得された前記訓練データと、前段における学習に用いられた訓練データから選択された訓練データと、前段で学習されたモデルとを用いて、入力されたデータのクラスを出力するモデルを学習する学習ステップと、
前記クラスのそれぞれの分類の難易度に応じて、次段における学習に用いるクラスごとの訓練データを選択する選択ステップと、
をコンピュータに実行させるための継続学習プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、継続学習装置、継続学習方法および継続学習プログラムに関する。
【背景技術】
【0002】
従来、日々刻々と変化する人間を取り巻く周囲の環境や要望に柔軟に適応して、過去に学習した情報を失うことなく新たな学習を繰り返す継続的な学習が行われている。一方、一般的な機械学習技術では、新しいタスクの学習を行うと過去のタスクを解けなくなる破滅的忘却といわれる現象が生じることが知られている。そこで、破滅的忘却を回避して継続的な機械学習を実現するための継続学習といわれる技術が期待されている(非特許文献1参照)。
【0003】
非特許文献1の技術では、分類すべきクラス数が次第に増加していくという継続学習の課題に対して、各クラスから一定量の訓練データをコアセットとして抽出することにより、一定のストレージ容量で学習が行われている。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Rebuffi,S.A., Kolesnikov,A., Sperl,G., Lampert,C.H., “iCaRL: Incremental Classifier and Representation Learning”, 2017年, In Proceedings of the IEEE conference on Computer Vision and Pattern Recognition, pp.2001-2010
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、継続学習において、一定のストレージ容量では学習の精度が低下する場合がある。一般に、学習されたモデルにおけるクラスごとの精度には偏りがある。各クラスに十分な訓練データ数がある場合と比較して、訓練データ数を減少させた場合には、さらにクラスごとの精度の偏りが大きくなる傾向がある。したがって、従来技術において、一定のストレージ容量で学習を行うという制約のもとでは、クラス数が増加するに従い各クラスの訓練データ数が減少し、学習の精度が低下するおそれがある。
【0006】
本発明は、上記に鑑みてなされたものであって、継続学習において、一定のストレージ容量で学習の精度の低下を防止することを目的とする。
【課題を解決するための手段】
【0007】
上述した課題を解決し、目的を達成するために、本発明に係る継続学習装置は、新規クラスの訓練データを取得する取得部と、取得された前記訓練データと、前段における学習に用いられた訓練データから選択された訓練データと、前段で学習されたモデルとを用いて、入力されたデータのクラスを出力するモデルを学習する学習部と、前記クラスのそれぞれの分類の難易度に応じて、次段における学習に用いるクラスごとの訓練データを選択する選択部と、を有することを特徴とする。
【発明の効果】
【0008】
本発明によれば、継続学習において、一定のストレージ容量で学習の精度の低下を防止することが可能となる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、継続学習装置の概要を説明するための図である。
【
図2】
図2は、継続学習装置の概略構成を例示する模式図である。
【
図3】
図3は、学習部の処理を説明するための図である。
【
図4】
図4は、学習部の処理を説明するための図である。
【
図5】
図5は、学習部の処理を説明するための図である。
【
図6】
図6は、選択部の処理を説明するための図である。
【
図7】
図7は、継続学習処理手順を示すフローチャートである。
【
図8】
図8は、継続学習プログラムを実行するコンピュータを例示する図である。
【発明を実施するための形態】
【0010】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【0011】
[継続学習装置の概要]
図1は、継続学習装置の概要を説明するための図である。本実施形態の継続学習装置は、クラスごとの分類難易度に基づいて、学習に用いるクラスごとのコアセットのデータ数を動的に制御する。
【0012】
まず、継続学習装置には、逐次的に新規クラスの訓練データが与えられる。そして、継続学習装置では、
図1に示すように、後述する学習部が、T回目に訓練データを与えられたステップTにおいて、T-1回目に出力された既存クラスのコアセットと既存クラスを分類するモデルとを入力として用いて、新規クラスを含めて分類するモデルを学習する。ここで、コアセットとは、既存クラスの学習に用いるために、訓練データから選択されたデータである。また、T=1回目おいては、初めて与えられた新規クラスの訓練データのみからモデルの学習を行う。
【0013】
次に、継続学習装置では、後述する選択部が、学習したモデルからクラスごとの分類難易度を算出し、算出した分類難易度に基づいて、全クラスのデータ数の合計が所定の値Nとなるように、各クラスのコアセットとして保持するデータ数を決定する。その後、継続学習装置は、各クラスのコアセットとして保持するデータを選択し、選択しなかったデータを削除する。このようにデータ数を一定値Nとすることにより、ストレージ容量を一定とする。
【0014】
継続学習装置は、次のステップT+1において、新規クラスの訓練データが与えられた場合の継続学習に、ステップTにおいて出力された新しいモデルおよびコアセットを利用する。これにより、継続学習装置は、学習に用いるクラスごとのコアセットのデータ数を動的に制御して、学習の精度の低下を防止することが可能となる。
【0015】
[継続学習装置の構成]
図2は、継続学習装置の概略構成を例示する模式図である。
図2に例示するように、継続学習装置10は、パソコン等の汎用コンピュータで実現され、入力部11、出力部12、通信制御部13、記憶部14、および制御部15を備える。
【0016】
入力部11は、キーボードやマウス等の入力デバイスを用いて実現され、操作者による入力操作に対応して、制御部15に対して処理開始などの各種指示情報を入力する。出力部12は、液晶ディスプレイなどの表示装置、プリンター等の印刷装置等によって実現される。
【0017】
通信制御部13は、NIC(Network Interface Card)等で実現され、ネットワークを介したサーバ等の外部の装置と制御部15との通信を制御する。例えば、通信制御部13は、後述する継続学習に用いられる新規クラスの訓練データを管理する管理装置等と制御部15との通信を制御する。
【0018】
記憶部14は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部14には、継続学習装置10を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが予め記憶され、あるいは処理の都度一時的に記憶される。例えば、記憶部14は、後述する継続学習処理で生成されるモデル14aやコアセット14b等を記憶する。なお、記憶部14は、通信制御部13を介して制御部15と通信する構成でもよい。
【0019】
制御部15は、CPU(Central Processing Unit)等を用いて実現され、メモリに記憶された処理プログラムを実行する。これにより、制御部15は、
図2に例示するように、取得部15a、学習部15b、選択部15cおよび分類部15dとして機能して、後述する継続学習処理を実行する。なお、これらの機能部は、それぞれあるいは一部が異なるハードウェアに実装されてもよい。例えば、分類部15dは、その他の機能部とは別の装置として実装されてもよい。また、制御部15は、その他の機能部を備えてもよい。
【0020】
取得部15aは、新規クラスの訓練データを取得する。例えば、取得部15aは、後述する継続学習処理に用いる新規クラス用の訓練データを、入力部11あるいは通信制御部13を介して取得する。なお、取得部15aは、取得した訓練データを記憶部14に記憶させてもよい。または、取得部15aは、これらの情報を記憶部14に記憶させずに、以下に説明する学習部15bに転送してもよい。
【0021】
学習部15bは、取得された訓練データと、前段における学習に用いられた訓練データから選択された訓練データであるコアセット14bと、前段で学習されたモデル14aとを用いて、入力されたデータのクラスを出力するモデル14aを学習する。ここで、モデル14aの構造は特に限定されないが、本実施形態では、iCaRL(非特許文献1参照)を用いる。iCaRLで構築されるモデルは、入力されたデータをクラスラベルに直接的に変換せずに、データの特徴量を用いたクラスタリングによって分類を実施することにより、保持するコアセットの容量を削減している。
【0022】
また、
図3~
図5は、学習部の処理を説明するための図である。
図3に示すように、学習部15bは、ニューラルネットワークを用いて、入力されたデータの特徴量を得る。学習部15bは、新しく与えられた新クラスの訓練データとコアセットに含まれる過去に与えられたクラスの訓練データとを併せて訓練データとして、特徴量を抽出するモデル14aを学習する。その際に、出力のクラス数に応じて可変であるパラメータ(ベクトルw
1,・・・,w
c)として線形分類器が設けられる。
【0023】
学習部15bは、クラスごとの訓練データの特徴量の平均と入力されたデータの特徴量との差分が最も小さいクラスを出力するように、モデル14aを学習する。具体的には、
図4にアルゴリズムを例示するように、学習部15bは、あるデータxを分類する際に、全てのクラスについて、クラスyのコアセットP
yの特徴量の平均(以下、平均特徴量)μ
yを求める。そして学習部15bは、xの特徴量φ(x)との差分が最小である平均特徴量μ
yを持つクラスyを、予測クラスのラベルとして出力する。
【0024】
このときに得られるクラスyについてのニューラルネットワークの出力は、次式(1)で表される。
【0025】
【0026】
ここで得られる出力は、
図3に示すように、学習時の損失の計算にのみ用いられ、分類時(推論時)のクラスの予測には用いられない。
【0027】
また、
図5には、学習時の損失関数に基づくパラメータ更新のアルゴリズムが例示されている。学習部15bは、新規クラスの訓練データとコアセットとの和集合である訓練データDを用いて、
図5に示す損失関数l(Θ)によって最適化を行うことにより、モデル14aを学習する。
【0028】
図2の説明に戻る。選択部15cは、クラスのそれぞれの分類の難易度に応じて、次段における学習に用いるクラスごとの訓練データを選択する。選択部15cは、選択した訓練データをコアセット14bとして、記憶部14に記憶させる。
【0029】
具体的には、選択部15cは、訓練データの特徴量の分散が大きいほど高くなる分類の難易度を算出する。また、選択部15cは、例えば、分類の難易度が高いほどデータ数が多くなるように、各クラスのコアセットのデータ数を決定する。
【0030】
ここで、
図6は、選択部の処理を説明するための図である。
図6に示すように、選択部15cは、まず、クラスごとの分類の難易度(以下、クラス難易度)を算出する。具体的には、選択部15cは、次式(2)~(4)に示すように、クラスごとの分類の難易度(以下、クラス難易度)d
yを算出する。
【0031】
【0032】
ここで、vyは、クラスcに含まれる訓練データの特徴量の分散を表す。選択部15cは、クラスcに含まれるNy個の訓練データをモデル14aに入力し、それぞれに対して特徴量φ(xn)を算出する。
【0033】
また、μyは、訓練データの特徴量の各次元での平均(以下、クラス平均特徴量)である。つまり、クラス難易度dyの値は、クラスの分散が大きいほど高く、小さいほど低くなる。
【0034】
なお、τは、精度に基づいて難易度を調整するパラメータであり、クラスの精度Ayにおいて、最も精度の高いクラスと最も精度の低いクラスとの精度の差に基づくbを用いて、次式(5)~(6)のように算出される。ここで、εは、ゼロ除算を避けるための極小値である。
【0035】
【0036】
このように、クラス間の精度の差が大きいほど、クラス難易度dyの差が大きくなり、クラス間の精度の差が小さいほど、クラス難易度dyの差は小さくなる。
【0037】
次に、選択部15cは、
図6に示すように、クラス難易度を用いて、クラスごとにコアセットに保持するデータ数を決定する。具体的には、選択部15cは、クラス難易度を用いて、次式(7)に示すように、クラスごとにコアセットに保持するデータ数m
yを決定する。
【0038】
【0039】
ここで、αはクラス難易度のデータ数への影響力を調整するハイパーパラメータであり、大きくするほどクラス間のデータ数の差が小さくなり、小さくするほどクラス間のデータ数の差がクラス難易度の差に忠実になる。
【0040】
このようにして、選択部15cは、例えば、クラス難易度が高いほどデータ数が多くなるように、各クラスのコアセットのデータ数を決定する。
【0041】
次に、
図6に示すように、選択部15cは、訓練データからm
y個のデータを選択する。例えば、選択部15cは、ナイーブに乱数を用いてランダムにm
y個のデータを選択する。
【0042】
あるいは、選択部15cは、クラスごとの訓練データの平均特徴量と、選択した訓練データの平均特徴量との差分が最小となるように、my個の訓練データを選択する。
【0043】
また、選択部15cは、学習に用いる訓練データの総数が所定の一定値Nとなるように、クラスごとの訓練データを選択する。選択部15cは、選択した訓練データをコアセット14bとして、記憶部14に記憶させる。このようにデータ数を一定値Nとすることにより、ストレージ容量を一定とすることが可能となる。
【0044】
図2の説明に戻る。分類部15dが、学習されたモデル14aを用いて、入力されたデータをクラスに分類する。これにより、継続学習においても、精度が低下することなくデータを分類することが可能となる。
【0045】
[継続学習処理]
次に、
図7を参照して、本実施形態に係る継続学習装置10による継続学習処理について説明する。
図7は、継続学習処理手順を示すフローチャートである。
図7のフローチャートは、例えば、継続学習処理の開始を指示する操作入力があったタイミングで開始される。
【0046】
まず、取得部15aが、新規クラスの訓練データを取得する(ステップS1)。例えば、取得部15aは、後述する継続学習処理に用いる新規クラス用の訓練データを、入力部11あるいは通信制御部13を介して取得する。
【0047】
次に、学習部15bが、取得された訓練データと、前段における学習に用いられた訓練データから選択された訓練データであるコアセット14bと、前段で学習されたモデル14aとを用いて、入力されたデータのクラスを出力するモデル14aを学習する(ステップS2)。例えば、学習部15bは、クラスごとの訓練データの特徴量の平均と入力されたデータの特徴量との差分が最も小さいクラスを出力するように、モデル14aを学習する。
【0048】
また、選択部15cが、クラスのそれぞれの分類の難易度に応じて、次段における学習に用いるクラスごとの訓練データを選択する(ステップS3)。その際に、選択部15cは、訓練データの特徴量の分散が大きいほど高くなる分類の難易度を算出する。そして、選択部15cは、分類の難易度が高いクラスほどデータ数が多くなるように、各クラスのコアセットのデータ数を決定する。また、選択部15cは、学習に用いる訓練データの総数が所定の一定値Nとなるように、クラスごとの訓練データを選択する。
【0049】
そして、選択部15cは、選択した訓練データをコアセット14bとして、記憶部14に記憶させる。これにより、一連の継続学習処理が終了する。
【0050】
なお、次に新規クラスの訓練データが与えられた場合には、与えられた訓練データ、選択されたコアセット14bおよび学習されたモデル14aを利用して、上記の継続学習処理を行う。
【0051】
[効果]
以上、説明したように、継続学習装置10において、取得部15aが、新規クラスの訓練データを取得する。学習部15bが、取得された訓練データと、前段における学習に用いられた訓練データから選択された訓練データであるコアセット14bと、前段で学習されたモデル14aとを用いて、入力されたデータのクラスを出力するモデル14aを学習する。選択部15cが、クラスのそれぞれの分類の難易度に応じて、次段における学習に用いるクラスごとの訓練データを選択する。
【0052】
このように、継続学習装置10は、学習に用いるクラスごとのコアセットのデータ数を動的に制御して、学習の精度の低下を防止することが可能となる。したがって、継続学習装置10は、継続学習において、一定のストレージ容量で学習の精度の低下を防止することが可能となる。
【0053】
また、選択部15cは、訓練データの特徴量の分散が大きいほど高くなる分類の難易度を算出する。これにより、例えば、分類の難易度が高いクラスほど訓練データの数を多くして、分類の精度が低下することを防止することが可能となる。
【0054】
また、選択部15cは、学習に用いる訓練データの総数が所定の一定値となるように、クラスごとの訓練データを選択する。このようにデータ数を一定値とすることにより、ストレージ容量を一定とすることが可能となる。
【0055】
また、学習部15bは、クラスごとの訓練データの特徴量の平均と入力されたデータの特徴量との差分が最も小さいクラスを出力するように、モデル14aを学習する。これにより、継続学習装置10は、高精度にデータの分類を行うことが可能となる。
【0056】
また、選択部15cは、クラスごとの訓練データの特徴量の平均と、選択した訓練データの特徴量の平均との差分が最小となるように、訓練データを選択する。これにより、精度の低下を防止可能なコアセットを効果的に選択することが可能となる。
【0057】
また、分類部15dが、学習されたモデル14aを用いて、入力されたデータをクラスに分類する。これにより、継続学習装置10は、継続学習においても、精度が低下することなくデータを分類することが可能となる。
【0058】
[プログラム]
上記実施形態に係る継続学習装置10が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。一実施形態として、継続学習装置10は、パッケージソフトウェアやオンラインソフトウェアとして上記の継続学習処理を実行する継続学習プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の継続学習プログラムを情報処理装置に実行させることにより、情報処理装置を継続学習装置10として機能させることができる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等のスレート端末等がその範疇に含まれる。また、継続学習装置10の機能を、クラウドサーバに実装してもよい。
【0059】
図8は、継続学習プログラムを実行するコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
【0060】
メモリ1010は、ROM(Read Only Memory)1011およびRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1041に接続される。ディスクドライブ1041には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、例えば、マウス1051およびキーボード1052が接続される。ビデオアダプタ1060には、例えば、ディスプレイ1061が接続される。
【0061】
ここで、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。上記実施形態で説明した各情報は、例えばハードディスクドライブ1031やメモリ1010に記憶される。
【0062】
また、継続学習プログラムは、例えば、コンピュータ1000によって実行される指令が記述されたプログラムモジュール1093として、ハードディスクドライブ1031に記憶される。具体的には、上記実施形態で説明した継続学習装置10が実行する各処理が記述されたプログラムモジュール1093が、ハードディスクドライブ1031に記憶される。
【0063】
また、継続学習プログラムによる情報処理に用いられるデータは、プログラムデータ1094として、例えば、ハードディスクドライブ1031に記憶される。そして、CPU1020が、ハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した各手順を実行する。
【0064】
なお、継続学習プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1041等を介してCPU1020によって読み出されてもよい。あるいは、継続学習プログラムに係るプログラムモジュール1093やプログラムデータ1094は、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【0065】
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述および図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例および運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【0066】
10 継続学習装置
11 入力部
12 出力部
13 通信制御部
14 記憶部
14a モデル
14b コアセット
15 制御部
15a 取得部
15b 学習部
15c 選択部
15d 分類部