(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-02-10
(45)【発行日】2025-02-19
(54)【発明の名称】機械学習装置、機械学習方法、および機械学習プログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20250212BHJP
G06N 3/08 20230101ALI20250212BHJP
【FI】
G06N20/00
G06N3/08
(21)【出願番号】P 2021003240
(22)【出願日】2021-01-13
【審査請求日】2023-12-28
(73)【特許権者】
【識別番号】308036402
【氏名又は名称】株式会社JVCケンウッド
(74)【代理人】
【識別番号】100105924
【氏名又は名称】森下 賢樹
(72)【発明者】
【氏名】楊 尹誠
(72)【発明者】
【氏名】竹原 英樹
(72)【発明者】
【氏名】木田 晋吾
【審査官】北川 純次
(56)【参考文献】
【文献】特開2018-055259(JP,A)
【文献】MALLYA, Arun, et al.,PackNet: Adding Multiple Tasks to a Single Network by Iterative Pruning,arXiv.org [online],2018年05月13日,[検索日 2022.02.21], インターネット:<URL:https://arxiv.org/pdf/1711.05769.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00 - 20/20
G06N 3/02 - 3/08
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
タスクの特徴検出に用いられる複数のフィルタの重みを記憶する重み記憶部と、
入力されるタスクに対して前記複数のフィルタの重みを継続学習する継続学習部と、
1つのタスクを学習後の複数のフィルタの内、所定の割合のフィルタを別のタスクの学習で用いないように重みをロックし、それ以外のフィルタを別のタスクの学習で用いるために重みを初期化するフィルタ処理部と、
2つ以上のタスクを学習後の複数のフィルタの重みを比較し、重みの類似度が所定の閾値以上である重複するフィルタは一つ
の共用フィルタを残してそれ以外を別のタスクの学習で用いるために重みを初期化する比較部とを含むことを特徴とする機械学習装置。
【請求項2】
前記継続学習部は、別のタスクに対して前記共用フィルタ以外のフィルタの初期化された重みを継続学習する請求項1に記載の機械学習装置。
【請求項3】
入力されるタスクに対して、タスクの特徴検出に用いられる複数のフィルタの重みを継続学習する学習ステップと、
1つのタスクを学習後の複数のフィルタの内、所定の割合のフィルタを別のタスクの学習で用いないように重みをロックし、それ以外のフィルタを別のタスクの学習で用いるために重みを初期化するフィルタ処理ステップと、
2つ以上のタスクを学習後の複数のフィルタの重みを比較し、重みの類似度が所定の閾値以上である重複するフィルタは一つ
の共用フィルタを残してそれ以外を別のタスクの学習で用いるために重みを初期化する比較ステップとを含むことを特徴とする機械学習方法。
【請求項4】
入力されるタスクに対して、タスクの特徴検出に用いられる複数のフィルタの重みを継続学習する学習ステップと、
1つのタスクを学習後の複数のフィルタの内、所定の割合のフィルタを別のタスクの学習で用いないように重みをロックし、それ以外のフィルタを別のタスクの学習で用いるために重みを初期化するフィルタ処理ステップと、
2つ以上のタスクを学習後の複数のフィルタの重みを比較し、重みの類似度が所定の閾値以上である重複するフィルタは一つ
の共用フィルタを残してそれ以外を別のタスクの学習で用いるために重みを初期化する比較ステップとをコンピュータに実行させることを特徴とする機械学習プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習技術に関する。
【背景技術】
【0002】
人間は長期にわたる経験を通して新しい知識を学習することができ、昔の知識を忘れないように維持することができる。一方、畳み込みニューラルネットワーク(Convolutional Neural Network(CNN))の知識は学習に使用したデータセットに依存しており、データ分布の変化に適応するためにはデータセット全体に対してCNNのパラメータの再学習が必要となる。CNNでは、新しいタスクについて学習していくにつれて、昔のタスクに対する推定精度は低下していく。このようにCNNでは連続学習を行うと新しいタスクの学習中に昔のタスクの学習結果を忘れてしまう致命的忘却(catastrophic forgetting)が避けられない。
【0003】
致命的忘却を回避する手法として、継続学習(incremental learningまたはcontinual learning)が提案されている。継続学習の一つの手法としてPackNetがある。
【0004】
特許文献1には、複数の学習モジュールが更新したモデルパラメータを2以上の学習モジュールに共有させる学習装置が開示されている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
継続学習の一つの手法であるPackNetは、致命的忘却問題を回避することができる。しかし、PackNetでは、モデルのフィルタ数に限りがあり、新しいタスクを学習していくと、フィルタが飽和するため、学習可能なタスク数に制限があるという問題があった。
【0007】
本発明はこうした状況に鑑みてなされたものであり、その目的は、フィルタの飽和を緩和することができる機械学習技術を提供することにある。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明のある態様の機械学習装置は、タスクの特徴検出に用いられる複数のフィルタの重みを記憶する重み記憶部と、入力されるタスクに対して前記複数のフィルタの重みを継続学習する継続学習部と、1つのタスクを学習後の複数のフィルタの内、所定の割合のフィルタを別のタスクの学習で用いないように重みをロックし、それ以外のフィルタを別のタスクの学習で用いるために重みを初期化するフィルタ処理部と、2つ以上のタスクを学習後の複数のフィルタの重みを比較し、重みの類似度が所定の閾値以上である重複フィルタをタスク間の共用フィルタとして抽出する比較部とを含む。
【0009】
本発明の別の態様は、機械学習方法である。この方法は、入力されるタスクに対して、タスクの特徴検出に用いられる複数のフィルタの重みを継続学習する学習ステップと、1つのタスクを学習後の複数のフィルタの内、所定の割合のフィルタを別のタスクの学習で用いないように重みをロックし、それ以外のフィルタを別のタスクの学習で用いるために重みを初期化するフィルタ処理ステップと、2つ以上のタスクを学習後の複数のフィルタの重みを比較し、重みの類似度が所定の閾値以上である重複するフィルタは一つを残してそれ以外を別のタスクの学習で用いるために重みを初期化する比較ステップとを含む。
【0010】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0011】
本発明によれば、フィルタの飽和を緩和することができる機械学習技術を提供することができる。
【図面の簡単な説明】
【0012】
【
図1】
図1(a)~
図1(e)は、前提技術となる継続学習を説明する図である。
【
図2】実施の形態に係る機械学習装置の構成図である。
【
図3】
図3(a)~
図3(e)は、
図2の機械学習装置による継続学習を説明する図である。
【
図4】
図2の機械学習装置の比較部の動作を説明する図である。
【
図5】
図2の機械学習装置による継続学習手順を説明するフローチャートである。
【発明を実施するための形態】
【0013】
図1(a)~
図1(e)は、前提技術となるPackNetによる継続学習を説明する図である。PackNetでは与えられたタスクに対してモデルの複数のフィルタの重みが学習される。ここでは、畳み込みニューラルネットワークの各層の複数のフィルタを格子状に並べて図示する。
【0014】
PackNetの学習プロセスは下記の(A)~(E)のステップで進められる。
【0015】
(A)モデルがタスク1を学習する。
図1(a)は、タスク1の学習後のフィルタの初期状態を示す。すべてのフィルタはタスク1を学習済みで、色が黒で示される。
【0016】
(B)各フィルタの重みの値の大きい順にフィルタを並べ、重みの値が小さいフィルタから順に全体の60%のフィルタの値を初期化する。
図1(b)は、タスク1の学習後のフィルタの最終状態を示す。初期化されたフィルタは色が白で示される。
【0017】
(C)次に、タスク2を学習する。このステップにおいて、
図1(b)の黒色のフィルタの重みの値がロックされ、重みの値を変更できるのは白色のフィルタだけである。
図1(c)は、タスク2の学習後のフィルタの初期状態を示す。
図1(b)の白で示されたフィルタのすべてはタスク2を学習済みで、
図1(c)において斜線で示される。
【0018】
(D)ステップ(B)と同様に、タスク2を学習した斜線のフィルタの重みの値の大きい順にフィルタを並べ、重みの値が小さいフィルタから順に全体の60%のフィルタの値を初期化する。
図1(d)は、タスク2の学習後のフィルタの最終状態を示す。初期化されたフィルタは色が白で示される。
【0019】
(E)さらに、タスク3を学習する。このステップにおいて、
図1(d)の黒色と斜線のフィルタの重みの値がロックされ、重みの値を変更できるのは白色のフィルタだけである。
図1(e)は、タスク3の学習後のフィルタの初期状態を示す。
図1(d)の白で示されたフィルタのすべてはタスク3を学習済みで、
図1(e)において横縞で示される。
【0020】
このようにPackNetの学習プロセスによると、このままタスクNまで学習していくと、初期化された白のフィルタの数がどんどん少なくなり、飽和する。フィルタが飽和すると、新しいタスクを学習できなくなる。
【0021】
PackNetのフィルタがいつか飽和することは回避することができない。しかし、フィルタが飽和するスピードを緩めることはできる。そこで、本実施の形態では、新しいタスクを学習する度に、重みの類似度が高い重複フィルタをタスク間の共用フィルタとして抽出し、重複フィルタの内、一つのフィルタを共用フィルタとして残し、共用フィルタ以外のフィルタの重みを0に初期化する。これにより、新しいタスクで学習できるフィルタを増やし、フィルタの飽和速度を緩和し、学習できるタスクの数を増やすことができる。
【0022】
図2は、実施の形態に係る機械学習装置100の構成図である。機械学習装置100は、入力部10、継続学習部20、フィルタ処理部30、比較部40、重み記憶部50、推論部60、および出力部70を含む。
【0023】
入力部10は、教師付きのタスクを継続学習部20に供給し、未知タスクを推論部60に供給する。ここでは、一例としてタスクは画像認識である。たとえば、タスク1は猫の認識、タスク2は犬の認識といった画像における特定の物体の認識である。
【0024】
重み記憶部50は、タスクの特徴検出に用いられる複数のフィルタの重みを記憶する。画像をいくつものフィルタに通すことで、その画像の特徴を捉えることができる。
【0025】
継続学習部20は、入力される教師付きタスクに対して重み記憶部50の複数のフィルタの重みを継続学習し、更新されたフィルタの重みを重み記憶部50に保存する。
【0026】
フィルタ処理部30は、1つのタスクを学習後の複数のフィルタの内、所定の割合のフィルタを別のタスクの学習で用いないように重みをロックし、それ以外のフィルタを別のタスクの学習で用いるために重みを初期化する。たとえば、フィルタの重みの大きい順にフィルタを並べ、重みの大きい方から40%のフィルタの重みをロックし、残りの60%のフィルタを別のタスクの学習で用いるために重みを初期化する。
【0027】
フィルタ処理部30による初期化が済んだ後、比較部40は、2つ以上のタスクを学習後の複数のフィルタの重みを比較し、重みの類似度が所定の閾値以上である重複フィルタをタスク間の共用フィルタとして抽出する。モデルは多層の畳み込みニューラルネットワークであるため、各層において複数のフィルタの重みの類似度を算出する。比較部40は、重複フィルタの内、一つのフィルタを共用フィルタとして残し、共用フィルタ以外のフィルタの重みを初期化し、重み記憶部50に保存する。
【0028】
継続学習部20は、新しいタスクに対して共用フィルタ以外のフィルタの初期化された重みを継続学習する。
【0029】
推論部60は、重み記憶部50に保存されたフィルタの重みを用いて、入力された未知タスクに対して推論する。出力部70は、推論部60による推論結果を出力する。
【0030】
図3(a)~
図3(e)は、
図2の機械学習装置100による継続学習を説明する図である。畳み込みニューラルネットワークの各層の複数のフィルタを格子状に並べて図示しており、(i,j)は、第i行、第j列のフィルタを指す。
【0031】
機械学習装置100の学習プロセスは下記の(A)~(E)のステップで進められる。
【0032】
(A)モデルがタスク1を学習する。
図3(a)は、タスク1の学習後のフィルタの初期状態を示す。すべてのフィルタはタスク1を学習済みで、色が黒で示される。
【0033】
(B)各フィルタの重みの値の大きい順にフィルタを並べ、重みの値が小さいフィルタから順に全体の60%のフィルタの値を初期化する。
図3(b)は、タスク1の学習後のフィルタの最終状態を示す。初期化されたフィルタは色が白で示される。
【0034】
(C)次に、タスク2を学習する。このステップにおいて、
図3(b)の黒色のフィルタの重みの値がロックされ、重みの値を変更できるのは白色のフィルタだけである。
図3(c)は、タスク2の学習後のフィルタの初期状態を示す。
図3(b)の白で示されたフィルタのすべてはタスク2を学習済みで、
図3(c)において斜線で示される。
【0035】
(D)ステップ(B)と同様に、タスク2を学習した斜線のフィルタの重みの値の大きい順にフィルタを並べ、重みの値が小さいフィルタから順に全体の60%のフィルタの値を初期化する。
図3(d)は、タスク2の学習後のフィルタの中間状態を示す。初期化されたフィルタは色が白で示される。
【0036】
(E)タスク1を学習した黒色のフィルタとタスク2を学習した斜線のフィルタの間で重みを比較し、類似度が所定の閾値を超えるフィルタを重複フィルタとして抽出する。たとえば、
図3(d)において、斜線フィルタ(1,3)は黒色フィルタ(1,2)と類似するため、これらは重複フィルタであると判定される。同様に、斜線フィルタ(3,1)と黒色フィルタ(3,2)は類似する重複フィルタであり、斜線フィルタ(3,5)と黒色フィルタ(4,5)は類似する重複フィルタである。
【0037】
図3(e)に示すように、斜線フィルタ(1,3)は類似する黒色フィルタ(1,2)で代用することができるため、斜線フィルタ(1,3)の重みは初期化され、白色のフィルタになり、黒色フィルタ(1,2)はタスク1とタスク2の共用フィルタとなる。同様に、斜線フィルタ(3,1)は類似する黒色フィルタ(3,2)で代用され、斜線フィルタ(3,1)の重みは初期化され、白色のフィルタになり、黒色フィルタ(3,2)はタスク1とタスク2の共用フィルタとなる。また、斜線フィルタ(3,5)は類似する黒色フィルタ(4,5)で代用され、斜線フィルタ(3,5)の重みは初期化され、白色のフィルタになり、黒色フィルタ(4,5)はタスク1とタスク2の共用フィルタとなる。
【0038】
図3(e)は、タスク2の学習後のフィルタの最終状態を示し、初期化された白色のフィルタはタスク3の学習で用いられ、重みが変更される。以降、同様に、タスク3の学習後のフィルタの初期状態に対して、重みの値の小さいフィルタを初期化し、タスク3を学習したフィルタと、タスク1を学習したフィルタおよびタスク2を学習したフィルタとの間で重みを比較し、類似する重複フィルタがある場合、タスク3のフィルタを初期化する。これをタスクNまで繰り返す。
【0039】
図4は、
図2の機械学習装置100の比較部40の動作を説明する図である。
【0040】
図3(d)に示すタスク2の学習後のフィルタの中間状態に対して、タスク1を学習したフィルタの重みとタスク2を学習したフィルタの重みを比較して、重みの類似度が高いフィルタを抽出し、初期化の対象とする。
【0041】
モデルには複数のレイヤがあるため、比較は各レイヤ内で行う。例えば、一つのレイヤにフィルタが128個ある。この中に、タスク1を学習したフィルタが51個、タスク2を学習したフィルタが30個、残りのフィルタは初期化されている場合、タスク1の51個のフィルタとタスク2の30個のフィルタの類似度を算出する。
【0042】
類似度は、フィルタの重みの値の絶対値を比較することによって算出する。たとえば、3×3のフィルタの場合、9個の重みの絶対値を比較する。ここで、閾値を設定する。類似度が閾値を上回ると、二つのフィルタは重複していると判定され、タスク2のフィルタの重みを0に初期化する。
【0043】
フィルタAの各要素をa
ij、フィルタBの各要素をb
ijとした場合、二つのフィルタA、B間で同じ位置にある値の絶対値の差を、たとえば次式のd
1(A,B)、d
2(A,B)、d
∞(A,B)、d
m(A,B)のように計算する。
【数1】
【0044】
上記の説明では、フィルタの類似度は、二つのフィルタ間で同じ位置にある値の絶対値の差を計算することによって算出したが、これ以外の方法で類似度を算出してもよい。たとえば、各フィルタについて、フィルタ絶対差分和SADを水平方向絶対差分和SAD_Hと垂直方向絶対差分和SAD_Vの和として、SAD=SAD_H+SAD_Vにより求める。フィルタAのフィルタ絶対差分和SAD_AとフィルタBのフィルタ絶対差分和SAD_Bの差が閾値より小さいなら、フィルタAとフィルタBは重複していると判定してもよい。ここで、3×3のフィルタの第1行の要素をa1、a2、a3、第2行の要素をa4、a5、a6、第3行の要素をa7、a8、a9とした場合、水平方向絶対差分和SAD_Hと垂直方向絶対差分和SAD_Vは次式で与えられる。
SAD_H=|a1-a2|+|a2-a3|+|a4-a5|+|a5-a6|+|a7-a8|+|a8-a9|
SAD_V=|a1-a4|+|a2-a5|+|a3-a6|+|a4-a7|+|a5-a8|+|a6-a9|
また、別の類似度の算出方法として、ユークリッド距離やコサイン距離の比較を用いてもよい。
【0045】
フィルタの重みの類似度が高ければ、そのフィルタはタスク間において特徴が同じか差がないということになり、重複フィルタを保持する必要はない。そこで片方のフィルタについては初期化して、別のタスクの学習に用いる。なお、ここでは、重みをフィルタの中にある1要素、
図4の3×3のフィルタの場合、マトリクスのうちの1つのセルであるとして説明したが、フィルタ単位、つまりマトリクスの単位で重みを捉えてもよい。
【0046】
より一般的には、タスクNの性能を最大限に維持するため、タスクNとタスクN+1の間に重複したフィルタがある場合、タスクN+1のフィルタの重みを0に初期化する。これにより、限られたフィルタを最大限に利用することができる。
【0047】
図5は、
図2の機械学習装置100による継続学習手順を説明するフローチャートである。
【0048】
入力部10は、現在の教師付きタスクを継続学習部20に入力する(S10)。
【0049】
継続学習部20は、現在のタスクに対して複数のフィルタの重みを継続学習する(S20)。
【0050】
フィルタ処理部30は、現在のタスクを学習した複数のフィルタの重みの小さいものから順に所定の割合のフィルタを初期化する(S30)。
【0051】
比較部40は、現在のタスクを学習したフィルタと過去のタスクを学習したフィルタを比較し、重みの類似度を算出する(S40)。
【0052】
比較部40は、過去のタスクのフィルタと類似度が高い現在のタスクのフィルタを初期化する(S50)。
【0053】
まだタスクがある場合、ステップS10に戻り、次のタスクを入力する(S60のN)。タスクが終了の場合、継続学習を終了する(S60のY)。
【0054】
以上説明した機械学習装置100の各種の処理は、CPUやメモリ等のハードウェアを用いた装置として実現することができるのは勿論のこと、ROM(リード・オンリ・メモリ)やフラッシュメモリ等に記憶されているファームウェアや、コンピュータ等のソフトウェアによっても実現することができる。そのファームウェアプログラム、ソフトウェアプログラムをコンピュータ等で読み取り可能な記録媒体に記録して提供することも、有線あるいは無線のネットワークを通してサーバと送受信することも、地上波あるいは衛星ディジタル放送のデータ放送として送受信することも可能である。
【0055】
以上述べたように、本実施の形態の機械学習装置100によれば、継続学習モデルのフィルタの飽和速度を緩和し、フィルタを効率的に利用してより多くのタスクを学習することができる。
【0056】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【0057】
10 入力部、 20 継続学習部、 30 フィルタ処理部、 40 比較部、 50 重み記憶部、 60 推論部、 70 出力部、 100 機械学習装置。