(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-28
(45)【発行日】2023-12-06
(54)【発明の名称】情報処理方法
(51)【国際特許分類】
G06N 20/00 20190101AFI20231129BHJP
G06N 3/084 20230101ALI20231129BHJP
【FI】
G06N20/00
G06N3/084
(21)【出願番号】P 2022510291
(86)(22)【出願日】2020-03-26
(86)【国際出願番号】 JP2020013810
(87)【国際公開番号】W WO2021192182
(87)【国際公開日】2021-09-30
【審査請求日】2022-09-08
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100124811
【氏名又は名称】馬場 資博
(74)【代理人】
【識別番号】100088959
【氏名又は名称】境 廣巳
(74)【代理人】
【識別番号】100097157
【氏名又は名称】桂木 雄二
(74)【代理人】
【識別番号】100187724
【氏名又は名称】唐鎌 睦
(72)【発明者】
【氏名】小林 悠記
【審査官】多賀 実
(56)【参考文献】
【文献】特開2010-020445(JP,A)
【文献】特開2018-055259(JP,A)
【文献】HE, Xiaoxi et al.,"Multi-Task Zipping via Layer-wise Neuron Sharing",arXiv.org [online],arXiv:1805.09791v2,Cornell University,2019年03月,pp.1-11,[検索日 2020.06.29], インターネット<URL:https://arxiv.org/pdf/1805.09791v2>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
第一の学習データセットを用いて第一の学習処理を行い、第一の重みパラメタを含む第一の学習モデルを生成すると共に、第二の学習データセットを用いて第二の学習処理を行い、第二の重みパラメタを含む第二の学習モデルを生成し、
前記第一の学習処理と前記第二の学習処理とを行う際に、前記第一の重みパラメタと前記第二の重みパラメタとが略同一の値となるよう前記第一の重みパラメタと前記第二の重みパラメタとを更新する、
情報処理方法。
【請求項2】
請求項1に記載の情報処理方法であって、
前記第一の学習処理として、前記第一の重みパラメタを用いて順伝搬処理を行うと共に、前記第一の重みパラメタに対する第一の勾配を算出する逆伝搬処理を行い、
前記第二の学習処理として、前記第二の重みパラメタを用いて順伝搬処理を行うと共に、前記第二の重みパラメタに対する第二の勾配を算出する逆伝搬処理を行い、
前記第一の重みパラメタと、前記第一の勾配と、前記第二の重みパラメタと、前記第二の勾配と、を用いて、前記第一の重みパラメタと前記第二の重みパラメタとが略同一の値となるよう前記第一の重みパラメタと前記第二の重みパラメタとを更新する、
情報処理方法。
【請求項3】
請求項2に記載の情報処理方法であって、
前記第一の重みパラメタと、前記第一の勾配と、前記第二の重みパラメタと、前記第二の勾配と、を用いて、調停後の第一の勾配と調停後の第二の勾配とを算出し、前記調停後の第一の勾配と前記調停後の第二の勾配とに基づいて、前記第一の重みパラメタと前記第二の重みパラメタとを更新する、
情報処理方法。
【請求項4】
請求項3に記載の情報処理方法であって、
前記第一の重みパラメタをP1、前記第一の勾配をG1、前記第二の重みパラメタをP2、前記第二の勾配をG2、前記調停後の第一の勾配をG1n、前記調停後の第二の勾配をG2n、前記第一の学習処理と前記第二の学習処理との優先度をβ(0≦β≦1)、とした場合に、
G1n=G1+β{(P2+G2)-(P1+G1)}
G2n=G2+(1-β){(P1+G1)-(P2+G2)}
にて前記調停後の第一の勾配と前記調停後の第二の勾配とを算出する、
情報処理方法。
【請求項5】
請求項3又は4に記載の情報処理方法であって、
前記第一の重みパラメタと前記調停後の第一の勾配とに基づいて、前記第一の重みパラメタを更新し、前記第二の重みパラメタと前記調停後の第二の勾配とに基づいて、前記第二の重みパラメタを更新する、
情報処理方法。
【請求項6】
請求項5に記載の情報処理方法であって、
前記第一の重みパラメタをP1、前記調停後の第一の勾配をG1n、更新後の第一の重みパラメタP1n、前記第二の重みパラメタをP2、前記調停後の第二の勾配をG2n、更新後の第二の重みパラメタをP2n、学習率をλ(0<λ<1)、とした場合に、
P1n=P1+λ・G1n
P2n=P2+λ・G2n
にて前記更新後の第一の重みパラメタと前記更新後の第二の重みパラメタとを算出する、
情報処理方法。
【請求項7】
第一の学習データセットを用いて第一の学習処理を行い、第一の重みパラメタを含む第一の学習モデルを生成する第一の学習手段と、
第二の学習データセットを用いて第二の学習処理を行い、第二の重みパラメタを含む第二の学習モデルを生成する第二の学習手段と、
前記第一の学習処理と前記第二の学習処理とを行う際に、前記第一の重みパラメタと前記第二の重みパラメタとが略同一の値となるよう前記第一の重みパラメタと前記第二の重みパラメタとを更新する調停手段と、
を備えた情報処理装置。
【請求項8】
請求項7に記載の情報処理装置であって、
前記第一の学習手段は、前記第一の学習処理として、前記第一の重みパラメタを用いて順伝搬処理を行うと共に、前記第一の重みパラメタに対する第一の勾配を算出する逆伝搬処理を行い、
前記第二の学習手段は、前記第二の学習処理として、前記第二の重みパラメタを用いて順伝搬処理を行うと共に、前記第二の重みパラメタに対する第二の勾配を算出する逆伝搬処理を行い、
前記調停手段は、前記第一の重みパラメタと、前記第一の勾配と、前記第二の重みパラメタと、前記第二の勾配と、を用いて、前記第一の重みパラメタと前記第二の重みパラメタとが略同一の値となるよう前記第一の重みパラメタと前記第二の重みパラメタとを更新する、
情報処理装置。
【請求項9】
情報処理装置に、
第一の学習データセットを用いて第一の学習処理を行い、第一の重みパラメタを含む第一の学習モデルを生成する第一の学習手段と、
第二の学習データセットを用いて第二の学習処理を行い、第二の重みパラメタを含む第二の学習モデルを生成する第二の学習手段と、
前記第一の学習処理と前記第二の学習処理とを行う際に、前記第一の重みパラメタと前記第二の重みパラメタとが略同一の値となるよう前記第一の重みパラメタと前記第二の重みパラメタとを更新する調停手段と、
を実現させるためのプログラ
ム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、深層学習を行う情報処理方法、情報処理装置、プログラムに関する。
【背景技術】
【0002】
近年、畳み込みニューラルネットワーク(Convolutional Neural Network: CNN)に代表される深層学習の進化は目覚ましく、深層学習に対する要求性能がますます高まっている。特に、監視カメラ等のエッジ機器においては、最新の深層学習アルゴリズムに求められる高い性能をできる限り小さい消費電力で実現することが重要である。
【0003】
エッジ機器で深層学習を実行する場合、汎用プロセッサを用いる方法、エッジ向けGPUを用いる方法、エッジAI向け ASSP (Application Specific Standard Product)を用いる方法、専用ASIC (Application Specific Integrated Circuit)を用いる方法などが考えられるが、そのいずれにしても、学習済みモデルを保持する記憶容量が問題となる。ここで、学習済みモデルは、畳込層(Convolution Layer)および全結合層(Fully Connected Layer)などから構成されるネットワーク構造と、各層で用いられる重みパラメタ(Weight parameter)の集合を表す。そして、記憶容量が問題となるのは重みパラメタである。
【0004】
例えば、大規模画像データセットで学習された16層からなる学習済みの畳み込みニューラルネットワークであるVGG-16の重みパラメタ数は138百万個あり、4バイトで格納すると500MB以上の容量となる。これは、記憶容量が限られたエッジ機器では負担となる。また、エッジ機器においては、複数の学習済みモデルを同時または切り替えて利用することも考えられる。一例として、監視カメラといったエッジ機器を想定した場合、例えば、昼間用の物体検出モデルと、夜間用の物体検出モデルを両方用意し、周囲の明るさに合わせて切り替えて使用することが考えられる。このような場合、複数の学習済みモデルをそのまま格納すると、モデルの個数分の記憶容量が必要となり、エッジ機器では大きな負担となる。
【0005】
ここで、単一の学習済みモデルの大きさを削減する手法として、Pruningと言われる手法が知られている(非特許文献1)。これは、値がゼロに近い重みパラメタを削除するもので、単一の学習済みモデルの容量を減らすことが可能である。ところが、重みパラメタを削除することで、認識精度の劣化が生じたり、認識精度の劣化を抑えるために再学習が必要となる。なお、学習済みモデル中の削除される重みパラメタは非連続のため、CSR(Compressed Sparse Row)などの形式で格納される。
【0006】
また、ある学習済みモデルの最初の層群を流用し、全結合層など後段の層のみを学習し直す転移学習という手法がある。これにより、異なる学習済みモデルを利用する際の記憶容量をある程度効率化できる。また、大きな深層学習モデルから小さな深層学習モデルを生成する蒸留という手法もある。
【先行技術文献】
【非特許文献】
【0007】
【文献】Song Han, Huizi Mao, William J. Dally:“Deep Compression: Compressing Deep Neural Network with Pruning, Trained Quantization and Huffman Coding”, ICLR 2016.
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、上述した転移学習や蒸留が適用できず、異なる学習データセットに対して全層の重みパラメタを再学習して作った複数の学習済みモデルを利用する場合、上述した既存手法は適用できない。すなわち、上述したように学習済みモデルを実装する機器に、複数の学習済みモデルの個数分だけ記憶容量が必要となり、記憶容量の削減を図ることができない、という問題が生じる。
【0009】
このため、本発明の目的は、上述した課題である、機器に複数の学習済みモデルを実装する際において記憶容量の削減を図ることができない、という問題を解決することにある。
【課題を解決するための手段】
【0010】
本発明の一形態である情報処理方法は、
第一の学習データセットを用いて第一の学習処理を行い、第一の重みパラメタを含む第一の学習モデルを生成すると共に、第二の学習データセットを用いて第二の学習処理を行い、第二の重みパラメタを含む第二の学習モデルを生成し、
前記第一の学習処理と前記第二の学習処理とを行う際に、前記第一の重みパラメタと前記第二の重みパラメタとが略同一の値となるよう前記第一の重みパラメタと前記第二の重みパラメタとを更新する、
という構成をとる。
【0011】
本発明の一形態である情報処理装置は、
第一の学習データセットを用いて第一の学習処理を行い、第一の重みパラメタを含む第一の学習モデルを生成する第一の学習手段と、
第二の学習データセットを用いて第二の学習処理を行い、第二の重みパラメタを含む第二の学習モデルを生成する第二の学習手段と、
前記第一の学習処理と前記第二の学習処理とを行う際に、前記第一の重みパラメタと前記第二の重みパラメタとが略同一の値となるよう前記第一の重みパラメタと前記第二の重みパラメタとを更新する調停手段と、
を備えた、
という構成をとる。
【0012】
本発明の一形態であるプログラムは、
情報処理装置に、
第一の学習データセットを用いて第一の学習処理を行い、第一の重みパラメタを含む第一の学習モデルを生成する第一の学習手段と、
第二の学習データセットを用いて第二の学習処理を行い、第二の重みパラメタを含む第二の学習モデルを生成する第二の学習手段と、
前記第一の学習処理と前記第二の学習処理とを行う際に、前記第一の重みパラメタと前記第二の重みパラメタとが略同一の値となるよう前記第一の重みパラメタと前記第二の重みパラメタとを更新する調停手段と、
を実現させる、
という構成をとる。
【発明の効果】
【0013】
本発明は、以上のように構成されることにより、機器に複数の学習済みモデルを実装する際において記憶容量の削減を図ることができる。
【図面の簡単な説明】
【0014】
【
図1】本発明の実施形態1における学習装置の構成を示すブロック図である。
【
図2】
図1に開示した学習装置の詳細な構成を示すブロック図である。
【
図3】
図2に開示した重み調停部の詳細な構成を示すブロック図である。
【
図4】
図1に開示した学習装置の動作を示すフローチャートである。
【
図5】
図1に開示した学習装置による処理の様子を示す図である。
【
図6】
図1に開示した学習装置による効果を説明するための図である。
【
図7】
図1に開示した学習装置による効果を説明するための図である。
【
図8】本発明の実施形態2における情報処理装置のハードウェア構成を示すブロック図である。
【
図9】本発明の実施形態2における情報処理装置の構成を示すブロック図である。
【
図10】本発明の実施形態2における情報処理装置の動作を示すフローチャートである。
【発明を実施するための形態】
【0015】
<実施形態1>
本発明の第1の実施形態を、
図1乃至
図7を参照して説明する。
図1乃至
図3は、学習装置の構成を説明するための図であり、
図4乃至
図5は、学習装置の処理動作を説明するための図である。
図6乃至
図7は、学習装置による効果を説明するための図である。
【0016】
[構成]
本実施形態における学習装置1は、例えば、監視カメラ等のエッジ機器に搭載される学習モデルを学習するためのものである。特に、学習装置1は、一例として、2つの学習モデルを学習する際に、各学習モデルで用いられる重みパラメタが同一の値となるよう学習モデルを生成する機能を有する。これにより、各学習モデルで用いられる重みパラメタのデータ容量を抑制し、エッジ機器の記憶容量の削減を図ることとする。但し、学習装置1が学習する学習モデルはいかなる内容のものであってもよく、いかなる装置にて利用されるものであってもよい。
【0017】
上記学習装置1は、演算装置と記憶装置とを備えた1台又は複数台の情報処理装置にて構成される。そして、学習装置1は、
図1に示すように、第一の学習部100、第二の学習部200、モデル調停部300、を備える。第一の学習部100、第二の学習部200、モデル調停部300、の機能は、演算装置が記憶装置に格納された各機能を実現するためのプログラムを実行することにより、実現することができる。また、学習装置1は、学習データ記憶部400を備える。学習データ記憶部400は記憶装置により構成され、第一の学習データセット410、第二の学習データセット420、を記憶している。以下、各構成について詳述する。
【0018】
上記第一の学習部100(第一の学習手段)は、第一の学習データセット410から学習データおよび教師データを読み込み、深層学習の学習を行い、学習モデル(第一の学習モデル)を生成する。すなわち、ある学習データに対し、現状態における重みパラメタ(第一の重みパラメタ)を用いて各層の計算を行い、最終層の出力までを求める(順伝搬処理)。その後、教師データと最終層の出力とを比較し、差分(勾配(第一の勾配))を計算する。そして、計算した勾配を入力とし、各層の逆演算を行い、各層における重みパラメタとの勾配を出力する(逆伝搬処理)。この一連の動作を、深層学習の学習処理(Training)と呼称する。
【0019】
上記第二の学習部200(第二の学習手段)は、上述した第一の学習部100と同様に、第二の学習データセット420から学習データおよび教師データを読み込み、深層学習の学習を行い、学習モデル(第二の学習モデル)を生成する。すなわち、ある学習データに対し、現状態における重みパラメタ(第二の重みパラメタ)を用いて各層の計算を行い、最終層の出力までを求める(順伝搬処理)。その後、教師データと最終層の出力とを比較し、差分(勾配(第一の勾配))を計算する。そして、計算した勾配を入力とし、各層の逆演算を行い、各層における重みパラメタとの勾配を出力する(逆伝搬処理)。
【0020】
上記モデル調停部300(調停手段)は、第一の学習部100および第二の学習部200の各層について、重みパラメタ(第一の重みパラメタ、第二の重みパラメタ)および重みパラメタに対する勾配(第一の勾配、第二の勾配)を入力として受け取る。そして、モデル調停部300は、後述する調停演算を行った後、第一の学習部100および第二の学習部200の各層に対して重みパラメタの更新後の値をそれぞれ出力する。後述するように、モデル調停部300の調停のもとに並行して第一の学習部100と第二の学習部200とが学習処理を行うことで、第一の学習部100の重みパラメタ(第一の重みパラメタ)と第二の学習部200の重みパラメタ(第二の重みパラメタ)がそれぞれ共通する値を持つようになる。
【0021】
次に、上述した第一の学習部100、第二の学習部200、モデル調停部300の構成についてさらに詳述する。
【0022】
図2に示すように、第一の学習部100は、中間層記憶部111~115と、中間層演算器121~124と、ロス関数計算部130と、とから構成されている。そして、第一の学習部100は、学習データセット140を対象に学習処理を行う。なお、学習データセットは、学習対象データと教師データとから構成される。学習対象データは、最初の中間層記憶部111に入力され、教師データはロス関数計算部130に入力される。
【0023】
上述したように、第一の学習部100は、順伝搬処理と逆伝搬処理を交互に繰り返す。まず、順伝搬処理では、中間層演算器121は、重みパラメタ(第一の重みパラメタ)の現在の値を保持し、中間層記憶部111から入力されるデータに対し、下記数1式で表される畳込み演算を行い、中間層記憶部112に出力する。
【0024】
【0025】
ここで、上述した数1式における下記数2式に示す項は、第l層の中間層記憶が格納する第rチャネルの座標(j,k)のデータであり、数1式における下記数3式に示す項は、第l層の中間層演算器が入力チャネルrに対して出力チャネルiの計算に用いる重みパラメタである。
【0026】
【0027】
【0028】
上記ロス関数計算部130は、最後の中間層記憶部115からの出力と、第一の学習データセットからの教師データと、を入力として受け取り、ロス関数を計算し、中間層の出力と教師データとの差分である勾配を中間層記憶部115へと出力する。
【0029】
次に、逆伝搬処理では、中間層演算器124は、保持している現在の重みパラメタの値と、中間層記憶部115から入力されるデータとを用いて、逆畳み込み演算を行い、結果を中間層記憶部114に出力する。これと同時に、現在の重みパラメタとの差分を表す勾配を計算し、かかる勾配と現在の重みパラメタとをモデル調停部300に出力する。そして、モデル調停部300から返された更新後の重みパラメタで、自身が保持する現在の重みパラメタを更新する。なお、他の中間層演算器121~122も同様である。
【0030】
なお、第二の学習部200も、
図2に示すように、第一の学習部100と同様の構成である。
【0031】
また、モデル調停部300は、
図2に示すように、第一の学習部100および第二の学習部200の各層に対応する重み調停部310をそれぞれ有する。そして、重み調停部310は、
図3に示すように、勾配調停部311と、第一の重みパラメタ更新部321と、第二の重みパラメタ更新部322と、を備える。
【0032】
上記勾配調停部311は、下記数4式及び数5式を用いて、それぞれの重みパラメタに対する調停後の勾配を計算し、第一の重みパラメタ更新部321および第二の重みパラメタ更新部322に出力する。
【0033】
【0034】
【0035】
ここで、"grad1"は第一の学習部100から入力された勾配(第一の勾配)、"grad2"は第二の学習部200から入力された勾配(第二の勾配)である。"param1cur"は第一の学習部100から入力された現在の重みパラメタ(第一の重みパラメタ)、"param2cur"は、第二の学習部200から入力された現在の重みパラメタ(第二の重みパラメタ)である。"arbgrad1"は第一の学習部100の重みパラメタに対する調停後の勾配(調停後の第一の勾配)、"arbgrad2"は第二の学習部200の重みパラメタに対する調停後の勾配(調停後の第二の勾配)である。"β"は第一の学習部100と第二の学習部200の優先度を表す0以上1以下の実数である。
【0036】
上記第一の重みパラメタ更新部321は、下記数6式を用いて、上述した数4式にて算出された調停後の勾配(調停後の第一の勾配)と、第一の学習部100から入力された現在の重みパラメタ(第一の重みパラメタ)をもとに、第一の学習部100における更新後の重みパラメタ(更新後の第1の重みパラメタ)を計算し、第一の学習部100に出力する。
【0037】
【0038】
ここで、"param1new"は更新後の重みパラメタ、"param1cur"は現在の重みパラメタ、"arbgrad1"は調停後の勾配、"λ"は学習率を表す0<λ<1の実数である。
【0039】
上記第二の重みパラメタ更新部322は、下記数7式を用いて、上述した数5式にて算出された調停後の勾配(調停後の第二の勾配)と、第二の学習部200から入力された現在の重みパラメタ(第二の重みパラメタ)をもとに、第二の学習部200における更新後の重みパラメタ(更新後の第1の重みパラメタ)を計算し、第二の学習部200に出力する。
【0040】
【0041】
ここで、"param2new"は更新後の重みパラメタ、"param2cur"は現在の重みパラメタ、"arbgrad2"は調停後の勾配、"λ"は学習率を表す0<λ<1の実数である。
【0042】
なお、上記では、第一の学習部100と第二の学習部200とのネットワーク構造は同一であることとして説明しているが、これらのネットワーク構造は異なるものであってもよい。また、上記では、2つの学習部100,200を並行して学習する場合を例示しているが、3つ以上の学習部を備え、これらの学習を並行して行い、各学習部における重みパラメタの調停を行ってもよい。
【0043】
[動作]
次に、主に
図2のブロック図及び
図4のフローチャートを参照して、上述した学習装置1の動作を説明する。まず、第一の学習部100は、第一の学習データセット410からデータを読み込み(ステップS1)、順伝搬処理を行う(ステップS3)。並行して、第二の学習部200は、第二の学習データセット420からデータを読み込み(ステップS2)、順伝搬処理を行う(ステップS4)。
【0044】
続いて、第一の学習部100は、逆伝搬処理を開始する(ステップS5)。並行して、第二の学習部200も逆伝搬処理を開始する(ステップS6)。そして、第一の学習部100および第二の学習部200は、それぞれの逆伝搬処理の中で得られる勾配(第一の勾配、第二の勾配)をモデル調停部300に与える。モデル調停部300は、得られた勾配の調停を行って調停後の勾配を算出し、かかる調停後の勾配を用いて第一の学習部100および第二の学習部200のそれぞれにおける重みパラメタを更新する(ステップS7)。そして、モデル調停部300は、更新した重みパラメタをそれぞれ第一の学習部100および第二の学習部200に返すことで、第一の学習部100および第二の学習部200はそれぞれの重みパラメタを更新する。
【0045】
次に、
図5を参照してモデル調停部300の具体的な動作を説明する。ここでは、数6式及び数7式における"λ"が「0.8」、数4式及び数5式における"β"が「0.4」、第一の学習部100における第一の重みパラメタ(param1cur)の初期値が「30」、第二の学習部200における第二の重みパラメタ(param2cur)の初期値が「70」である場合を例に挙げる。
【0046】
最初のステップであるStep1においては、"param1cur"は「30」、"param2cur"は「70」である。このとき、逆伝搬処理において、第一の学習部100における第一の勾配"grad1"および第二の学習部200における第二の勾配"grad2"が、それぞれ「+20」、「-40」と計算されたとする。すると、上記数4式及び数5式に基づき、第一の学習部100の重みパラメタに対応する調停後の勾配(調停後の第一の勾配)"arggrad1"、および、第二の学習部200の重みパラメタに対応する調停後の勾配(調停後の第二の勾配)"arggrad2"は、それぞれ「+12」、「-28」と計算される。さらに、数6式及び数7式に基づき、第一の学習部100における更新後の重みパラメタ(更新後の第一の重みパラメタ)"param1new"は「39.6」、第二の学習部200における更新後の重みパラメタ(更新後の第二の重みパラメタ)"param12new"は「47.6」と計算され、"param1new"および"param2new"の値で、第一の重みパラメタ"param1cur"及び第二の重みパラメタ"param1cur"が更新される。
【0047】
次のステップであるStep2においては、逆伝搬処理において、勾配"grad1"および"grad2"がそれぞれ「+12」、「-18」と計算されたとする。このとき、Step1と同様に計算され、第一の重みパラメタ"param1cur"及び第二の重みパラメタ"param2cur"は、それぞれ「42.2」及び「43.8」と更新される。なお、勾配"grad1"の値は、第一の学習部100中の他の重みパラメタに影響を受けて計算されるため、あるステップでの重みパラメタと勾配の和と別のステップでの重みパラメタと勾配の和とは必ずしも同じ値とはならない。
【0048】
以上のように、ステップを進めていくと、
図5の例では、Step5において、第一の重みパラメタ"param1cur"と第二の重みパラメタ"param2cur"の値が同じ値となる。なお、第一の重みパラメタと第二の重みパラメタの値が同じ値になったとしても、学習が終了するとは限らない。また、学習終了時点で上述したように二つのパラメタの値が必ず同じ値になっている保証はなく、また、同じ値に収束している必要があるわけではない。この場合、第一の重みパラメタと第二の重みパラメタの値の差が小さければ同一の値とみなしてもよい。つまり、モデル調停部300は、第一の重みパラメタと第二の重みパラメタとを完全に同一の値となるよう更新することに限らず、両者に差があったとしても、予め設定された基準により同一と判断される範囲内の値であれば、略同一の値とみなして更新してもよい。
【0049】
なお、第二の学習部200の重みパラメタに対応する調停後の勾配"arbgrad2"は、下記数8式にて算出してもよい。この場合、"β"は、注目する学習部のもう一方の学習部に対する優先度を表す0以上1以下の実数と定義される。
【0050】
【0051】
[効果]
次に、本実施形態の効果について、
図6乃至
図7を参照して説明する。本実施形態では、2つの学習済みモデルの重みパラメタにできるだけ共通性をもたせる、つまり、略同一となるように学習するように構成されているため、重みパラメタを格納するために必要な記憶容量を削減できる。
【0052】
まず、
図6を用いて、重みパラメタを格納するために必要な記憶容量を削減する例を示す。
図6の左側の表は、8つの32bitデータを、アドレス0b000~0b111に格納する例を示す。ここで「0x」は16進数、「0b」は2進数を表すものとする。このように、
図6の左側の例では、8x32=256ビットの記憶容量が必要となる。
【0053】
これに対し、
図6の右側の1つ目の表では、データの持つ冗長性を利用し、記憶容量を削減している。例えば、アドレス0b000、0b011、0b101、0b110に対するデータは同じ値0x12345678であるため、インデックス0とだけ記憶する。そして、
図6の右側の2つ目の別の表においては、インデックス0に対応するデータとして0x12345678を記憶する。この例では、インデックスは3種類だけであるので、インデックスの記憶に必要なビット幅は高々2ビットであり、
図6の右側に示す例では、合計記憶容量は8x2+3x32=112ビットとなり、記憶容量を256ビットから大幅に削減することができる。
【0054】
また、
図7に、組合せ回路を用いて重みパラメタを格納するのに必要な記憶容量を削減する例を示す。
図7の左側に示す例では、8入力セレクタを用いて、8つの32ビットデータを選択して出力する回路となっている。これに対し、
図7の右側に示す例では、3入力セレクタと、アドレスをデコードするデコード回路を用い、
図7の左側に示す例と同じ機能を実現している。
【0055】
例えば、デコーダは
0b10 when (addr == 0b010) or (addr == 0b111) else
0b01 when (addr == 0b001) or (addr == 0b100) else
0b00
という簡単な回路で実現でき、
図7の左側に示す例と比較して記憶容量(回路規模)を削減できる。
【0056】
以上のように、本実施形態では、複数の学習済みモデルの重みパラメタが略同一となるよう学習しているため、複数の学習済みモデルの重みパラメタを格納するために必要な記憶容量を削減することができる。
【0057】
<実施形態2>
次に、本発明の第2の実施形態を、
図8乃至
図10を参照して説明する。
図8乃至
図9は、実施形態2における情報処理装置の構成を示すブロック図であり、
図10は、情報処理装置の動作を示すフローチャートである。なお、本実施形態では、上述した実施形態で説明した学習装置及び学習方法の構成の概略を示している。
【0058】
まず、
図8を参照して、本実施形態における情報処理装置500のハードウェア構成を説明する。情報処理装置500は、一般的な情報処理装置にて構成されており、一例として、以下のようなハードウェア構成を装備している。
・CPU(Central Processing Unit)501(演算装置)
・ROM(Read Only Memory)502(記憶装置)
・RAM(Random Access Memory)503(記憶装置)
・RAM503にロードされるプログラム群504
・プログラム群504を格納する記憶装置505
・情報処理装置外部の記憶媒体510の読み書きを行うドライブ装置506
・情報処理装置外部の通信ネットワーク511と接続する通信インタフェース507
・データの入出力を行う入出力インタフェース508
・各構成要素を接続するバス509
【0059】
そして、情報処理装置500は、プログラム群504をCPU501が取得して当該CPU501が実行することで、
図9に示す第一の学習手段521と第二の学習手段522と調停手段523とを構築して装備することができる。なお、プログラム群504は、例えば、予め記憶装置505やROM502に格納されており、必要に応じてCPU501がRAM503にロードして実行する。また、プログラム群504は、通信ネットワーク511を介してCPU501に供給されてもよいし、予め記憶媒体510に格納されており、ドライブ装置506が該プログラムを読み出してCPU501に供給してもよい。但し、上述した第一の学習手段521と第二の学習手段522と調停手段523とは、かかる手段を実現させるための専用の電子回路で構築されるものであってもよい。
【0060】
なお、
図8は、情報処理装置500のハードウェア構成の一例を示しており、情報処理装置のハードウェア構成は上述した場合に限定されない。例えば、情報処理装置は、ドライブ装置506を有さないなど、上述した構成の一部から構成されてもよい。
【0061】
そして、情報処理装置500は、上述したようにプログラムによって構築された第一の学習手段521と第二の学習手段522と調停手段523との機能により、
図20のフローチャートに示す情報処理方法を実行する。
【0062】
図10に示すように、情報処理装置500は、
第一の学習データセットを用いて第一の学習処理を行い、第一の重みパラメタを含む第一の学習モデルを生成すると共に、第二の学習データセットを用いて第二の学習処理を行い、第二の重みパラメタを含む第二の学習モデルを生成し(ステップS101)、
前記第一の学習モデルと前記第二の学習モデルとを生成する際に、前記第一の重みパラメタと前記第二の重みパラメタとが略同一の値となるよう前記第一の重みパラメタと前記第二の重みパラメタとを更新する(ステップS102)、
という処理を実行する。
【0063】
本発明は、以上のように構成されることにより、複数の学習モデルの重みパラメタが略同一となるよう学習しているため、複数の学習モデルの重みパラメタを格納するために必要な記憶容量を削減することができる。
【0064】
なお、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0065】
以上、上記実施形態等を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。また、上述した第一の学習手段521と第二の学習手段522と調停手段523との機能のうちの少なくとも一以上の機能は、ネットワーク上のいかなる場所に設置され接続された情報処理装置で実行されてもよく、つまり、いわゆるクラウドコンピューティングで実行されてもよい。
【0066】
<付記>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明における情報処理方法、情報処理装置、プログラムの構成の概略を説明する。但し、本発明は、以下の構成に限定されない。
(付記1)
第一の学習データセットを用いて第一の学習処理を行い、第一の重みパラメタを含む第一の学習モデルを生成すると共に、第二の学習データセットを用いて第二の学習処理を行い、第二の重みパラメタを含む第二の学習モデルを生成し、
前記第一の学習処理と前記第二の学習処理とを行う際に、前記第一の重みパラメタと前記第二の重みパラメタとが略同一の値となるよう前記第一の重みパラメタと前記第二の重みパラメタとを更新する、
情報処理方法。
(付記2)
付記1に記載の情報処理方法であって、
前記第一の学習処理として、前記第一の重みパラメタを用いて順伝搬処理を行うと共に、前記第一の重みパラメタに対する第一の勾配を算出する逆伝搬処理を行い、
前記第二の学習処理として、前記第二の重みパラメタを用いて順伝搬処理を行うと共に、前記第二の重みパラメタに対する第二の勾配を算出する逆伝搬処理を行い、
前記第一の重みパラメタと、前記第一の勾配と、前記第二の重みパラメタと、前記第二の勾配と、を用いて、前記第一の重みパラメタと前記第二の重みパラメタとが略同一の値となるよう前記第一の重みパラメタと前記第二の重みパラメタとを更新する、
情報処理方法。
(付記3)
付記2に記載の情報処理方法であって、
前記第一の重みパラメタと、前記第一の勾配と、前記第二の重みパラメタと、前記第二の勾配と、を用いて、調停後の第一の勾配と調停後の第二の勾配とを算出し、前記調停後の第一の勾配と前記調停後の第二の勾配とに基づいて、前記第一の重みパラメタと前記第二の重みパラメタとを更新する、
情報処理方法。
(付記4)
付記3に記載の情報処理方法であって、
前記第一の重みパラメタをP1、前記第一の勾配をG1、前記第二の重みパラメタをP2、前記第二の勾配をG2、前記調停後の第一の勾配をG1n、前記調停後の第二の勾配をG2n、前記第一の学習処理と前記第二の学習処理との優先度をβ(0≦β≦1)、とした場合に、
G1n=G1+β{(P2+G2)-(P1+G1)}
G2n=G2+(1-β){(P1+G1)-(P2+G2)}
にて前記調停後の第一の勾配と前記調停後の第二の勾配とを算出する、
情報処理方法。
(付記5)
付記3又は4に記載の情報処理方法であって、
前記第一の重みパラメタと前記調停後の第一の勾配とに基づいて、前記第一の重みパラメタを更新し、前記第二の重みパラメタと前記調停後の第二の勾配とに基づいて、前記第二の重みパラメタを更新する、
情報処理方法。
(付記6)
付記5に記載の情報処理方法であって、
前記第一の重みパラメタをP1、前記調停後の第一の勾配をG1n、前記更新後の第一の重みパラメタP1n、前記第二の重みパラメタをP2、前記調停後の第二の勾配をG2n、前記更新後の第二の重みパラメタをP2n、学習率をλ(0<λ<1)、とした場合に、
P1n=P1+λ・G1n
P2n=P2+λ・G2n
にて前記更新後の第一の重みパラメタと前記更新後の第二の重みパラメタとを算出する、
情報処理方法。
(付記7)
第一の学習データセットを用いて第一の学習処理を行い、第一の重みパラメタを含む第一の学習モデルを生成する第一の学習手段と、
第二の学習データセットを用いて第二の学習処理を行い、第二の重みパラメタを含む第二の学習モデルを生成する第二の学習手段と、
前記第一の学習処理と前記第二の学習処理とを行う際に、前記第一の重みパラメタと前記第二の重みパラメタとが略同一の値となるよう前記第一の重みパラメタと前記第二の重みパラメタとを更新する調停手段と、
を備えた情報処理装置。
(付記8)
付記7に記載の情報処理装置であって、
前記第一の学習手段は、前記第一の学習処理として、前記第一の重みパラメタを用いて順伝搬処理を行うと共に、前記第一の重みパラメタに対する第一の勾配を算出する逆伝搬処理を行い、
前記第二の学習手段は、前記第二の学習処理として、前記第二の重みパラメタを用いて順伝搬処理を行うと共に、前記第二の重みパラメタに対する第二の勾配を算出する逆伝搬処理を行い、
前記調停手段は、前記第一の重みパラメタと、前記第一の勾配と、前記第二の重みパラメタと、前記第二の勾配と、を用いて、前記第一の重みパラメタと前記第二の重みパラメタとが略同一の値となるよう前記第一の重みパラメタと前記第二の重みパラメタとを更新する、
情報処理装置。
(付記8.1)
付記8に記載の情報処理装置であって、
前記調停手段は、前記第一の重みパラメタと、前記第一の勾配と、前記第二の重みパラメタと、前記第二の勾配と、を用いて、調停後の第一の勾配と調停後の第二の勾配とを算出し、前記調停後の第一の勾配と前記調停後の第二の勾配とに基づいて、前記第一の重みパラメタと前記第二の重みパラメタとを更新する、
情報処理装置。
(付記8.2)
付記8.1に記載の情報処理装置であって、
前記調停手段は、前記第一の重みパラメタをP1、前記第一の勾配をG1、前記第二の重みパラメタをP2、前記第二の勾配をG2、前記調停後の第一の勾配をG1n、前記調停後の第二の勾配をG2n、前記第一の学習処理と前記第二の学習処理との優先度をβ(0≦β≦1)、とした場合に、
G1n=G1+β{(P2+G2)-(P1+G1)}
G2n=G2+(1-β){(P1+G1)-(P2+G2)}
にて前記調停後の第一の勾配と前記調停後の第二の勾配とを算出する、
情報処理装置。
(付記8.3)
付記8.1又は8.2に記載の情報処理装置であって、
前記調停手段は、前記第一の重みパラメタと前記調停後の第一の勾配とに基づいて、前記第一の重みパラメタを更新し、前記第二の重みパラメタと前記調停後の第二の勾配とに基づいて、前記第二の重みパラメタを更新する、
情報処理装置。
(付記8.4)
付記8.3に記載の情報処理装置であって、
前記調停手段は、前記第一の重みパラメタをP1、前記調停後の第一の勾配をG1n、更新後の第一の重みパラメタP1n、前記第二の重みパラメタをP2、前記調停後の第二の勾配をG2n、更新後の第二の重みパラメタをP2n、学習率をλ(0<λ<1)、とした場合に、
P1n=P1+λ・G1n
P2n=P2+λ・G2n
にて前記更新後の第一の重みパラメタと前記更新後の第二の重みパラメタとを算出する、
情報処理装置。
(付記9)
情報処理装置に、
第一の学習データセットを用いて第一の学習処理を行い、第一の重みパラメタを含む第一の学習モデルを生成する第一の学習手段と、
第二の学習データセットを用いて第二の学習処理を行い、第二の重みパラメタを含む第二の学習モデルを生成する第二の学習手段と、
前記第一の学習処理と前記第二の学習処理とを行う際に、前記第一の重みパラメタと前記第二の重みパラメタとが略同一の値となるよう前記第一の重みパラメタと前記第二の重みパラメタとを更新する調停手段と、
を実現させるためのプログラムを記憶したコンピュータにて読み取り可能な記憶媒体。
【符号の説明】
【0067】
1 学習装置
100 第一の学習部
111,112,113,114,115 中間層記憶部
121,122,124 中間層演算器
130 ロス関数計算部
200 第二の学習部
300 モデル調停部
310 重み調停部
311 勾配調停部
321 第一の重みパラメタ更新部
322 第二の重みパラメタ更新部
400 学習データ記憶部
410 第一の学習データセット
420 第二の学習データセット
500 情報処理装置
501 CPU
502 ROM
503 RAM
504 プログラム群
505 記憶装置
506 ドライブ装置
507 通信インタフェース
508 入出力インタフェース
509 バス
510 記憶媒体
511 通信ネットワーク
521 第一の学習手段
522 第二の学習手段
523 調停手段