(57)【要約】【課題】組込システムでの学習モデルの出力の損失を軽量化前の学習モデルにフィードバックする方法を提供する。【解決手段】コンピュータを用いて実行する情報処理方法では、第１学習モデルの出力データを学習データとして用い、かつ第１学習モデルの変換により得られる第２学習モデルの出力データを正解データとして用いた学習により得られた第３学習モデルに、第１学習モデルへの第１入力データに対応する第１出力データを入力して第２出力データを取得し（Ｓ４２）、第１入力データに対する第１正解データを取得し（Ｓ４４）、第３学習モデル出力データと第１正解データとの差分に対応する第１差分データを用いて、第１学習モデルの再学習を行う（Ｓ４９）。【選択図】図４
2019133626.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを用いて、
第１学習モデルの出力データを学習データとして用い、かつ前記第１学習モデルの変換により得られる第２学習モデルの出力データを正解データとして用いた学習により得られる第３学習モデルに、前記第１学習モデルへの第１入力データに対応する第１出力データを入力して第２出力データを取得し、
前記第１入力データに対する第１正解データを取得し、
前記第２出力データと前記第１正解データとの差分に対応する第１差分データを用いて、前記第１学習モデルの再学習を行う、
情報処理方法。
【請求項２】
前記第２学習モデルの出力データと前記第１学習モデルへの入力データに対する正解データとの差分に対応する差分データを学習データとして用い、かつ前記第１学習モデルの出力データと前記第１学習モデルの入力データに対応する正解データとの差分に対応する差分データを正解データとして用いた学習により得られる第４学習モデルに、前記第１差分データを入力して第２差分データを取得し、
前記第２差分データを用いて、前記第１学習モデルの再学習を行う、
請求項１に記載の情報処理方法。
【請求項３】
前記第３学習モデルは、前記第１学習モデルの出力データに対応する入力データをさらなる学習データとして用いた学習により得られる、
請求項１又は２に記載の情報処理方法。
【請求項４】
前記第３学習モデルは、前記第１学習モデルの出力データに対応する学習パラメタをさらなる学習データとして用いた学習により得られる、
請求項１から３のいずれか一項に記載の情報処理方法。
【請求項５】
前記第１学習モデル及び前記第２学習モデルは、ニューラルネットワーク型の学習モデルであり、
前記学習パラメタは、ニューラルネットワークのノードに対応する重みである、
請求項４に記載の情報処理方法。
【請求項６】
前記第１学習モデルの変換は、ニューラルネットワークの軽量化である、
請求項５に記載の情報処理方法。
【請求項７】
前記第１学習モデルの出力データを学習データとして用い、かつ前記第２学習モデルの出力データを正解データとして用いて、前記第３学習モデルの学習を行う、
請求項１から６のいずれか１項に記載の情報処理方法。
【請求項８】
前記第２学習モデルの出力データと前記第１学習モデルへの入力データに対する正解データとの差分に対応する差分データを学習データとして用い、かつ前記第１学習モデルの出力データと前記第１学習モデルの入力データに対応する正解データとの差分に対応する差分データを正解データとして用いて、前記第４学習モデルの学習を行う、
請求項２に記載の情報処理方法。
【請求項９】
コンピュータを備える情報処理システムであって、
前記コンピュータは、
第１学習モデルの出力データを学習データとして用い、かつ前記第１学習モデルの変換により得られる第２学習モデルの出力データを正解データとして用いた学習により得られる第３学習モデルに、前記第１学習モデルへの第１入力データに対応する第１出力データを入力して第２出力データを取得し、
前記第１入力データに対する第１正解データを取得し、
前記第２出力データと前記第１正解データとの差分に対応する第１差分データを用いて、前記第１学習モデルの再学習を行う、
情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習モデルを実行する情報処理システム及び当該情報処理システムで行われる情報処理方法に関する。
【背景技術】
【０００２】
近年、機械学習によって得られる学習モデルを軽量化して組込システムへ適用することに関連する技術が提案されている。このように提案される技術には、適用後の組込システムでの学習モデルの性能を高めるための手法がある（例えば特許文献１及び非特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１７／０３８１０４号
【非特許文献】
【０００４】
【非特許文献１】Benoit Jacob、他７名、"Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference"、［online］、インターネット〈URL：https://arxiv.org/abs/1712.05877〉
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、学習モデルを変換する変換ツールの変換内容が不明（すなわち変換ツールがブラックボックス）である場合には、上記従来技術を利用することができない。
【０００６】
そこで本発明は、学習モデルを変換する変換ツールの変換内容が不明であっても、変換後の学習モデルの性能を高めることができる情報処理方法等を提供する。
【課題を解決するための手段】
【０００７】
本発明の一態様に係る情報処理方法は、コンピュータを用いて、第１学習モデルの出力データを学習データとして用い、かつ前記第１学習モデルの変換により得られる第２学習モデルの出力データを正解データとして用いた学習により得られる第３学習モデルに、前記第１学習モデルへの第１入力データに対応する第１出力データを入力して第２出力データを取得し、前記第１入力データに対する第１正解データを取得し、前記第２出力データと前記第１正解データとの差分に対応する第１差分データを用いて、前記第１学習モデルの再学習を行う情報処理方法である。
【０００８】
また、本発明の一態様に係る情報処理システムは、コンピュータを備える情報処理システムであって、前記コンピュータは、第１学習モデルの出力データを学習データとして用い、かつ前記第１学習モデルの変換により得られる第２学習モデルの出力データを正解データとして用いた学習により得られる第３学習モデルに、前記第１学習モデルへの第１入力データに対応する第１出力データを入力して第２出力データを取得し、前記第１入力データに対する第１正解データを取得し、前記第２出力データと前記第１正解データとの差分に対応する第１差分データを用いて、前記第１学習モデルの再学習を行う。
【０００９】
なお、本発明のこの包括的又は具体的な態様は、装置、集積回路、コンピュータプログラム又はコンピュータ読み取り可能なＣＤ−ＲＯＭなどの記録媒体で実現されてもよく、装置、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
【発明の効果】
【００１０】
本発明の情報処理方法及び情報処理システムでは、学習モデルを変換する変換ツールの変換内容が不明であっても、変換後の学習モデルの性能を高めることができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、学習モデルの学習及び組込システムへの適用の概要を説明するための図である。
【図２】図２は、実施の形態における、組込システムでのモデルの出力の損失を学習モデルに反映するための仕組みの概要を説明するための図である。
【図３】図３は、実施の形態における再学習の工程を実現する情報処理システムの機能構成を示すブロック図である。
【図４】図４は、実施の形態におけるデータの流れを時系列的に示すシーケンス図である。
【図５】図５は、実施の形態の変形例における、組込システムでのモデルの出力の損失を学習モデルに反映するための仕組みの概要を説明するための図である。
【発明を実施するための形態】
【００１２】
（本発明の基礎となった知見）
本発明者らは、上述した機械学習によって得られるモデル（以下、学習モデルともいう）を軽量化しての組込システムへの適用に関して以下の問題が生じることを見出した。
【００１３】
組込システムは通常、演算速度、メモリサイズ、供給可能な電力量の面で、学習モデルが構築される環境に劣る。例えば学習には、より高い精度を求めて、ＦＰ３２（３２ビット浮動小数点）等の数値表現が用いられ、またこのような大きさの数値表現であってもより短い時間で処理ができるようなコンピュータが用いられる。その一方で組込システムは、その組込先である機器に応じて処理回路の規模が制限される。また、自動車のように利用できる電力にも制限がある環境で使用される組込システムには、処理回路の選択に消費電力も考慮される必要がある。
【００１４】
上記のようなコンピュータで構築された学習モデルは、これらの制限下でも要求される速度で実行が可能なように、軽量化のための変換を行った上で組込システムに実装される。図１は、学習モデルの構築とその組込システムへの適用の概要を説明するための図である。この例では、学習部での学習処理によりニューラルネットワーク型の学習モデルＬＭが構築されている。学習部は、例えば商用電源の供給を受けて動作するパーソナルコンピュータ上で所定のプログラムが実行されることで構築される機能的構成であり、ＦＰ３２の数値表現を用いて学習処理を行う。そして、このニューラルネットワークのパラメタである、ノードに対応する重み１Ａ、２Ａ及び３Ａが、量子化ツールによって１６ビット又は８ビット等のより少ない桁数での整数表現に変換、つまり量子化されたものが、重み１ａ、２ａ及び３ａである。これらのパラメタを含む学習モデルｌｍは元の学習モデルＬＭよりも実行の負荷が小さいため、パーソナルコンピュータのものより処理速度が遅いプロセッサ及び小さなメモリを備える組込システム上での処理時間の短縮に貢献する。
【００１５】
ただし、このように量子化によって得られた学習モデルｌｍでは、入力に対する結果として出力される推論は、元の学習モデルによる推論とは一致しない場合がある。そして、学習モデルｌｍは、推論の精度で元の学習モデルＬＭに劣るのが通常である。つまり、入力に対する正解データとの差分である損失は、学習モデルｌｍの方が大きい傾向にある。しかしながら、組込システムが、例えば上記で例に挙げた自動車の運転支援、又は自動運転において認識機能を担う場合、推論の不十分な精度がもとで物体の誤検出又は未検出が発生すれば、安全問題に関わる。
【００１６】
学習モデルの推論の精度の改善には既存の方法がある。例えば図１の学習部では、誤差逆伝播法と呼ばれる方法を用いて再学習が実行される。この方法の流れを大まかに説明すると、まず、推論の出力データＢと、その出力データＢに対応する入力データに対する正解データとの差分である損失Ｃが求められ、その損失を用いて出力層から前段に順次遡るようにニューロンの重みが調整される（図１の一点鎖線の矢印参照）。
【００１７】
しかし、この方法は、あくまで精度の高い推論が可能な数値表現が利用される学習部で実行される推論の損失を小さくするためのものである。この損失が小さくなるように学習モデルＬＭの再学習が実行されたとしても、組込システムでの推論の結果のデータであって出力データＢとは異なる出力データｂと正解データとの差分が小さくなるとは限らない。別の表現をすると、この方法で出力データＢの損失が解消されても、出力データｂの正解データに対する差分が解消するとは限らない。このように組込システムで解消されない差分は、上記の自動車の例で言えば、車両外部の物体の誤検出又は未検出につながる。
【００１８】
また、特許文献１には、上記の学習部に相当するパーソナルコンピュータのＣＰＵでの推論の結果と、図１の組込システムに相当する組込系チップでの推論の結果とを比較するステップが開示されている。その次のステップではコードのチューニングが実行されているが、この比較の結果をチューニングでどのように用いるかの詳細がその開示に含まれていないため、組込システムでの推論の精度の改善効果は知り得ない。
【００１９】
非特許文献１に開示される技術では、上記の学習部に相当するパーソナルコンピュータでの学習モデルにおいて推論のパスに、上記の量子化ツールに相当する変換ツールが埋め込まれている。これにより、組込システムに実装される学習モデルがパーソナルコンピュータ上に仮想的に構築される。そして、この仮想的に構築された学習モデルの推論の結果を用いて再学習が行われる。これにより、パーソナルコンピュータ上の学習モデルと組込システム上の学習モデルとが不一致であることに起因する、組込システムでの推論の精度の向上が図れないという問題を解決している。ここで、非特許文献１に開示される方法は、変換ツールの中身が明らかであることが前提である。しかしながら、量子化ツール等の変換ツールは、当該ツールを含むフレームワークの提供元であるベンダーが中身を公開しておらず、利用者にとってはブラックボックスであることが一般的である。つまり、変換ツールの利用者は、組込システムでの学習モデルｌｍの出力データｂの損失の解消を図るためにこの方法を利用することができない。
【００２０】
本発明は、上記のように変換ツールの中身を知り得ないニューラルネットワークの利用者であっても、組込システムで学習モデルの出力の誤差を解消するために利用可能な情報処理方法を提供するものである。
【００２１】
本発明の一態様に係る情報処理方法は、コンピュータを用いて、第１学習モデルの出力データを学習データとして用い、かつ前記第１学習モデルの変換により得られる第２学習モデルの出力データを正解データとして用いた学習により得られる第３学習モデルに、前記第１学習モデルへの第１入力データに対応する第１出力データを入力して第２出力データを取得し、前記第１入力データに対する第１正解データを取得し、前記第２出力データと前記第１正解データとの差分に対応する第１差分データを用いて、前記第１学習モデルの再学習を行う情報処理方法である。
【００２２】
これにより、組込システムの推論の結果である出力データの正解データに対する差分（損失）に基づいて再学習を実行できるため、学習モデルを変換する変換ツールの変換内容が不明であっても、変換後の学習モデルの性能を高めることができる。具体的には、組込システムでの学習モデルの出力の誤差の解消が図られ、組込システムの推論の精度を向上させることができる。
【００２３】
また例えば、前記第２学習モデルの出力データと前記第１学習モデルへの入力データに対する正解データとの差分に対応する差分データを学習データとして用い、かつ前記第１学習モデルの出力データと前記第１学習モデルの入力データに対応する正解データとの差分に対応する差分データを正解データとして用いた学習により得られる第４学習モデルに、前記第１差分データを入力して第２差分データを取得し、前記第２差分データを用いて、前記第１学習モデルの再学習を行ってもよい。
【００２４】
例えば、異なる環境での差分をそのまま再学習に利用すると、誤差逆伝播法での重み付けの調整が過剰又は不足し、再学習の結果、推論の精度が向上しなかったり、かえって悪化したりする事態も起こり得る。しかし、この構成によって、再学習に用いる上記の差分として、このような事態を発生させにくい、より適切なものが得られ、再学習の効率の向上が図られる。
【００２５】
また例えば、前記第３学習モデルは、前記第１学習モデルの出力データに対応する入力データをさらなる学習データとして用いた学習により得られてもよく、または、前記第３学習モデルは、前記第１学習モデルの出力データに対応する学習パラメタをさらなる学習データとして用いた学習により得られてもよい。
【００２６】
これにより、推論される組込システムの出力データとしてより適切なものが得られ、再学習の効率の向上が図られる。
【００２７】
また例えば、前記第１学習モデル及び前記第２学習モデルは、ニューラルネットワーク型の学習モデルであり、前記学習パラメタは、ニューラルネットワークのノードに対応する重みであってもよい。
【００２８】
これにより、学習環境下で得られた高精度のニューラルネットワークの、実行環境の制約の厳しい組込システムへの適用時に懸念される精度の低下を抑えることができる。
【００２９】
また例えば、前記第１学習モデルの変換は、ニューラルネットワークの軽量化である。
【００３０】
これにより、構築時の環境よりもリソースの制限の厳しい組込システムで使用されるために軽量化される学習モデルの性能の向上が図られる。
【００３１】
また例えば、前記第１学習モデルの出力データを学習データとして用い、かつ前記第２学習モデルの出力データを正解データとして用いて、前記第３学習モデルの学習を行ってもよい。また、前記第２学習モデルの出力データと前記第１学習モデルへの入力データに対する正解データとの差分に対応する差分データを学習データとして用い、かつ前記第１学習モデルの出力データと前記第１学習モデルの入力データに対応する正解データとの差分に対応する差分データを正解データとして用いて、前記第４学習モデルの学習を行ってもよい。
【００３２】
これにより、組込システムで使用される学習モデルを得るための量子化ツールの中身がブラックボックスであるという条件下でも利用可能なデータを用いて第２学習モデルの出力データの損失を模擬したものが得られる。この模擬したもので第１学習モデルにフィードバックして、組込システムで使用される学習モデルの性能の向上が図られる。
【００３３】
また、本発明の一態様に係る情報処理システムは、コンピュータを備える情報処理システムであって、前記コンピュータは、第１学習モデルの出力データを学習データとして用い、かつ前記第１学習モデルの変換により得られる第２学習モデルの出力データを正解データとして用いた学習により得られる第３学習モデルに、前記第１学習モデルへの第１入力データに対応する第１出力データを入力して第２出力データを取得し、前記第１入力データに対する第１正解データを取得し、前記第２出力データと前記第１正解データとの差分に対応する第１差分データを用いて、前記第１学習モデルの再学習を行う。
【００３４】
これにより、組込システムの推論の結果である出力データの正解データに対する差分（損失）に基づいて再学習を実行できるため、学習モデルを変換する変換ツールの変換内容が不明であっても、変換後の学習モデルの性能を高めることができる。具体的には、組込システムでの学習モデルの出力の誤差の解消が図られ、組込システムの推論の精度を向上させることができる。
【００３５】
以下、実施の形態に係る情報処理方法及び情報処理システムについて、図面を参照しながら具体的に説明する。
【００３６】
なお、以下の実施の形態は、本発明の包括的又は具体的な例を示すものである。したがって、以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置及び接続形態、並びにステップ（工程）及びステップの順序等は、一例であって本発明を限定するものではない。そして、以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。また、各図は模式図であり、必ずしも厳密に図示されたものではない。
【００３７】
（実施の形態）
図２は、実施の形態における、組込システムでのモデルの出力の、正解データに対する差分を学習モデルに反映するための仕組みの概要を説明するための図である。以下、この仕組みを欠く図１に示される状況と比較しながら説明する。
【００３８】
ニューラルネットワーク学習部１０は、例えばパーソナルコンピュータ等において、プロセッサにより所定のプログラムが実行されることで実現される。ニューラルネットワーク学習部１０は、例えばＦＰ３２といった高精度な推論が可能な数値表現を扱って、学習による学習モデルＬＭの構築を行う。また、ニューラルネットワーク学習部１０は、構築された学習モデルＬＭによる入力データに対する推論の実行、及び推論の結果である出力データの正解データとの差分を用いての学習モデルＬＭの再学習も行うことができる。これらの点は図１に示されるものと共通である。学習モデルＬＭは、本実施の形態における第１学習モデルの例である。
【００３９】
量子化ツール１５は、図１に示されるものと共通であり、ニューラルネットワーク学習部１０において構築された学習モデルＬＭの重みを量子化することで、より軽量な学習モデルｌｍを取得する。量子化ツールは、例えばＴｅｎｓｏｒＲＴ、ＸＮＮＣ（Ｘｔｅｎｓａ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ  Ｃｏｍｐｉｌｅｒ）、ＣＤＮＮ（ＣＥＶＡ  Ｄｅｅｐ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）といった、ベンダーが提供するディープニューラルネットワークソフトウェアフレームワークに含まれるものであり、ユーザにとってはブラックボックスである。
【００４０】
学習モデルｌｍも図１に示されるものと共通であり、例えばｉｎｔ１６（整数１６ビット）又はｉｎｔ８（整数８ビット）といった、ニューラルネットワーク学習部１０よりも処理負荷が小さい数値表現を扱う組込システム２０に実装される。学習モデルｌｍは、本実施の形態における第２学習モデルの例である。
【００４１】
フィードバック部３０は、学習モデルｌｍの出力データの損失を学習モデルＬＭにフィードバックする、図１の仕組みにはない要素である。
【００４２】
フィードバック部３０に含まれる第１変換モデルＣＭ１は、学習モデルＬＭの推論の結果である出力データを学習データとして用い、かつ学習モデルｌｍの出力データを正解データとして用いた学習により得られる学習モデルであり、例えばニューラルネットワークによるものである。フィードバック部３０における第１変換モデルＣＭ１の機能は、学習モデルＬＭへのある入力データに対応する出力データＢを入力として受け、学習モデルｌｍによる推論の結果を模擬した出力データｂｂを取得することである。学習モデルｌｍからの出力を示す矢印の軸が破線であるのは、出力データｂｂが模擬的なものであり、実際に学習モデルｌｍによって出力されたものではないことを示す。第１変換モデルＣＭ１は、本実施の形態における第３学習モデルの例である。また、出力データＢは、本実施の形態における第１出力データの例であり、第１出力データと対応する入力データは本実施の形態における第１入力データの例である。また、出力データｂｂは、本実施の形態における第２出力データの例である。つまり、第２出力データは、第２学習モデルの出力データを模擬したものである。
【００４３】
フィードバック部３０では、さらに損失計算部（図２に図示なし、後述）が第１入力データに対する正解データを取得し、この正解データと出力データｂｂとの差分である損失ｃを算出する。損失計算部によって出力データｂｂと比較される、第１入力データに対する正解データは、本実施の形態における第１正解データの例である。また、損失ｃは本実施の形態における第１差分データの例である。
【００４４】
第２変換モデルＣＭ２は、ある入力データに対応する、学習モデルｌｍの推論の結果である出力データと、当該入力データに対する正解データとの差分である損失を学習データとして用い、かつ学習モデルＬＭの出力データと当該出力データに対応する入力データに対する正解データとの差分を正解データとして用いた学習により得られる学習モデルであり、例えばニューラルネットワークによるものである。フィードバック部３０における第２変換モデルＣＭ２の機能は、損失ｃを入力として受け、学習モデルＬＭからの出力データの損失を模擬した損失ＣＣを取得することである。第２変換モデルＣＭ２は、本実施の形態における第４学習モデルの例であり、損失ＣＣは、本実施の形態における第２差分データの例である。つまり、第２差分データは、学習モデルＬＭの出力データの損失を模擬したものである。
【００４５】
ニューラルネットワーク学習部１０は、第２変換モデルＣＭ２が出力した損失ＣＣを用いて学習モデルＬＭの重みの再調整、つまり再学習を行う。
【００４６】
このような仕組みにより、まず、パーソナルコンピュータ上の学習モデルＬＭの出力データから組込システム２０上の学習モデルＬＭの模擬的な出力データが生成される。そして、この模擬的な出力データと、対応する入力データに対する正解データとの差分を用いて学習モデルＬＭの再学習が行われる。これにより、組込システムによる推論の結果の学習モデルＬＭへのフィードバックを、量子化ツール１５がブラックボックスであり、量子化ツール１５による変換の内容が不明である場合にも適切に行うことができる。
【００４７】
なお、損失ｃは、第２変換モデルＣＭ２によって損失ＣＣに変換されることなく学習モデルＬＭの再学習に用いられてもよい。ただし、学習モデルＬＭと、推論の結果が模擬される学習モデルｌｍとの仕様の差異、例えば使用される数値表現の違いに起因して、損失ｃをそのまま用いた再学習では、学習モデルＬＭ自体の推論の精度が悪化することも起こり得る。このような場合には再学習後の学習モデルＬＭを変換して得られる学習モデルｌｍの精度も向上しないおそれがある。第２変換モデルＣＭ２は、このような状況の回避の目的で必要に応じてフィードバック部３０に含められる。
【００４８】
また、本実施の形態における再学習の工程は、図１に示される再学習の工程にとって代わるものではない。図２では示されていないが、図１に示される再学習によって学習モデルＬＭの精度の向上も図られてもよい。
【００４９】
次に、本実施の形態における再学習の工程を実現する構成について説明する。図３は、本実施の形態における上記の再学習の工程を実現する情報処理システム１００の機能構成を示すブロック図である。
【００５０】
情報処理システム１００は学習モデルの学習及び再学習を実行するシステムであり、一台又は複数のコンピュータで構成される。この学習モデルの学習及び再学習は、図２にも示されるニューラルネットワーク（図３では英文表記Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋの頭字語を用いてＮＮと表記）学習部１０によって行われる。情報処理システム１００はニューラルネットワーク学習部１０の他に、第１変換部３１、損失計算部３３、正解データ３５及び第２変換部３７を機能的な構成要素として備える。
【００５１】
第１変換部３１は、情報処理システム１００を構成するコンピュータが備えるプロセッサによって図２の第１変換モデルＣＭ１が構築されることで実現される機能的な構成要素である。第１変換部３１は、入力として受けた学習モデルＬＭの推論の結果を示す出力データＢを、構築した第１変換モデルＣＭ１によって変換して、学習モデルｌｍの推論の結果を示す出力データを模擬した出力データｂｂを取得し出力する。
【００５２】
損失計算部３３は、情報処理システム１００を構成するコンピュータが備えるプロセッサによって実行される所定のプログラムによって提供される機能的な構成要素である。損失計算部３３は、出力データｂｂ及び第１正解データを入力として受け、これらの差分を算出し、この差分を損失ｃとして出力する。
【００５３】
正解データ３５は、情報処理システム１００を構成するコンピュータが備える記憶装置に保持されるデータであり、第１正解データは正解データ３５に含まれる。また、図１に示される、ニューラルネットワーク学習部１０が再学習に用いる損失を求めるための正解データもこの正解データ３５に含まれる。
【００５４】
第２変換部３７は、情報処理システム１００を構成するコンピュータが備えるプロセッサによって図２の第２変換モデルＣＭ２が構築されることで実現される機能的な構成要素である。第２変換部３７は、入力として受けた学習モデルｌｍの出力データの損失ｃを構築した第２変換モデルＣＭ２によって変換して損失ＣＣを取得し、出力する。損失ＣＣは、ニューラルネットワーク学習部１０によって学習モデルＬＭの再学習に用いられる。
【００５５】
なお、上記の第１変換部３１、損失計算部３３、正解データ３５及び第２変換部３７は、ニューラルネットワーク学習部１０を実現するコンピュータ上で実現されてもよいし、別のコンピュータ上で実現されてもよい。また、ニューラルネットワーク学習部１０自体も一台のコンピュータ上で実現されてもよいし、複数台のコンピュータ上で実現されてもよい。
【００５６】
次に、図３を用いて説明した構成要素を含む上記の仕組みの中でのデータの流れ及び処理の手順について説明する。
【００５７】
図４は、本実施の形態におけるデータの流れを時系列的に示すシーケンス図である。以下の説明では、データの流れを次の４つのフェーズに分けて説明する。
【００５８】
第１フェーズ：学習モデルの構築から組込システムへの実装まで
第２フェーズ：学習による第一変換モデルの構築
第３フェーズ：学習による第二変換モデルの構築
第４フェーズ：再学習
【００５９】
なお、図４では見やすさのために正解データ３５は図示を省略している。
【００６０】
まず、第１フェーズにおいては、ニューラルネットワーク学習部１０において、学習データ及び正解データを用いた学習によって学習モデルＬＭが構築される（ステップＳ１０）。図示していないが、この段階でも、図１に示されるような再学習による学習モデルＬＭの推論の精度の向上が図られてもよい。構築された学習モデルＬＭは、量子化ツール１５に入力されて（ステップＳ１１）、量子化される（ステップＳ１２）。量子化済みの学習モデルｌｍは、組込システム２０に実装される（ステップＳ１３）。これにより、組込システム２０では、学習モデルｌｍによる推論が実行可能な状態となる。
【００６１】
第２フェーズにおいては、ニューラルネットワーク学習部１０において、第１フェーズで構築された学習モデルＬＭによる推論が行われる（ステップＳ２０）。また、組込システム２０において、第１フェーズで実装された学習モデルｌｍによる推論が行われる（ステップＳ２２）。これらの推論は、同一の入力データを用いて実行される。なお、組込システム２０において入力データが加工されてもよい。
【００６２】
学習モデルＬＭによる推論の結果及び学習モデルｌｍによる推論の結果を取得（ステップＳ２１、Ｓ２３）した第１変換部３１は、学習モデルＬＭによる推論の結果を学習データとして用い、かつ学習モデルｌｍによる推論の結果を正解データとして用いる学習（ステップＳ２４）によって、第１変換モデルＣＭ１を構築する。なお、事前に行われた学習処理により構築された第１変換モデルＣＭ１がメモリなどから取得されてもよい。
【００６３】
第３フェーズにおいては、損失計算部３３は、学習モデルｌｍによって既にした推論の結果を取得し（ステップＳ３０）、また、正解データ３５からこの推論の結果（出力データ）に対応する入力データに対する正解データを取得する（ステップＳ３１）。そして損失計算部３３は、学習モデルｌｍによる推論の結果に対する当該正解データからの損失（差分）を算出する（ステップＳ３２）。
【００６４】
一方で、ニューラルネットワーク学習部１０は、学習モデルＬＭによって既にした推論の結果（出力データ）に対応する入力データに対する正解データを正解データ３５から取得し（ステップＳ３４）、学習モデルＬＭによる推論の結果に対する当該正解データからの損失（差分）を算出する（ステップＳ３５）。
【００６５】
損失計算部３３が算出した学習モデルｌｍの推論結果の損失、及びニューラルネットワーク学習部１０が算出した学習モデルＬＭの推論結果の損失を取得（ステップＳ３３、Ｓ３６）した第２変換部３７は、学習モデルｌｍの推論結果の損失を学習データとして用い、かつ学習モデルＬＭの推論結果の損失を正解データとして用いる学習（ステップＳ３７）によって、第２変換モデルＣＭ２を構築する。なお、事前に行われた学習処理により構築された第２変換モデルＣＭ２がメモリなどから取得されてもよい。
【００６６】
第１フェーズから第３フェーズまでを経て、図２に示されるフィードバック部３０が情報処理システム１００に構築される。第４フェーズは、この状態に至った情報処理システム１００で実行される。
【００６７】
第４フェーズにおいては、ニューラルネットワーク学習部１０で学習モデルＬＭによって実行された推論の結果（出力データＢ）が、第１変換部３１において第１変換モデルＣＭ１によって変換される（ステップＳ４０〜Ｓ４２）。変換されたこの推論の結果（出力データｂｂ）は、学習モデルＬＭによる推論の結果（出力データＢ）に対応する入力データから学習モデルｌｍによって推論される結果を模擬したものである。
【００６８】
出力データｂｂを取得（ステップＳ４３）した損失計算部３３は、学習モデルＬＭによる推論の結果（出力データＢ）に対応する入力データに対する正解データ（第１正解データ）を正解データ３５から取得する（ステップＳ４４）。そして損失計算部３３は、模擬された学習モデルｌｍによる推論の結果に対する第１正解データからの損失（差分）を算出する（ステップＳ４５）。
【００６９】
第２変換部３７は、第２変換モデルＣＭ２によって当該損失を変換する（ステップＳ４６、Ｓ４７）。ニューラルネットワーク学習部１０は、この変換済みの損失を取得し（ステップＳ４８）、学習モデルＬＭの再学習（ステップＳ４９）に用いる。
【００７０】
学習モデルＬＭの再学習によって重み１Ａ〜３Ａが更新されると、第１フェーズに戻って、量子化（ステップＳ１２）以降の処理を実行することで再学習が重ねられもよい。
【００７１】
（変形例）
以上、１つ又は複数の態様に係る情報処理方法及び情報処理システムについて、実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものも、１つ又は複数の態様の範囲内に含まれてもよい。
【００７２】
図５は、そのような変形の一例を説明するための図である。以下、図２に示される仕組みとの差異点を中心に説明する。
【００７３】
図５に示される、本変形例における正解データに対する差分を学習モデルに反映するための仕組みでは、第１変換モデルへの入力が、学習モデルＬＭの出力データＢに加えて、出力データＢに対応する入力データ、及び学習モデルＬＭのパラメタである重み１Ａ〜３Ａを含む点が図２に示される仕組みと異なる。
【００７４】
つまりは、本変形例においては、第２フェーズにおいて、第１変換モデルＣＭ１の構築のための学習データとして、出力データＢ、出力データＢに対応する入力データ、及び学習モデルＬＭのパラメタが用いられている。このように、第１変換モデルＣＭ１の学習のための学習データとしても用いられる学習モデルＬＭのパラメタは、本変形例における学習パラメタの例である。
【００７５】
このように、より多くの学習データを用いた学習により得られる第１変換モデルＣＭ１は、学習モデルｌｍの出力データをより高い精度で模擬する出力データｂｂを出力することができる。
【００７６】
なお、第１変換モデルＣＭ１に入力される学習データ及び推論のための入力データとして出力データＢに追加されるデータは、出力データＢに対応する入力データ及び学習モデルＬＭのパラメタのいずれかのみであってもよい。
【００７７】
また別の変形例として、出力データｂｂの代わりに、出力データｂが使用されて損失ｃが算出されてもよい。つまり、第１変換モデルＣＭ１を用いることなく、学習モデルｌｍの推論結果による出力データが損失ｃの算出に用いられてもよい。
【００７８】
また別の変形例として、第１変換モデルＣＭ１及び第２変換モデルＣＭ２を用いた変換の有無に応じて、予測される学習モデルｌｍの性能の変化が提示されてもよい。例えば、損失計算部３３は、第１変換モデルＣＭ１のみが用いられる場合、算出される損失ｃと損失Ｃとの差分から学習モデルｌｍの精度の変化を推定する。また、損失計算部３３は、第１変換モデルＣＭ１及び第２変換モデルＣＭ２が用いられる場合、算出される損失ＣＣと損失Ｃとの差分から学習モデルｌｍの精度の変化を推定する。そして、情報処理システムが別途に備える提示装置が推定された学習モデルｌｍの精度の変化を提示する。提示装置は、ディスプレイ、プロジェクタ、又はスピーカなどであってよい。
【産業上の利用可能性】
【００７９】
本発明は、学習モデルが構築時の環境よりも制限の厳しい実行環境に適用される分野に利用可能であり、例えば自動車（自動運転車を含む）、家庭用電気機器、ウエアラブル情報端末、産業機器、その他のＩｏＴに取り込まれる各種の産業分野において利用可能である。
【符号の説明】
【００８０】
１Ａ、１ａ、２Ａ、２ａ、３Ａ、３ａ  パラメタ（重み）
１０  ニューラルネットワーク学習部
１５  量子化ツール
２０  組込システム
３０  フィードバック部
３１  第１変換部
３３  損失計算部
３５  正解データ
３７  第２変換部
１００  情報処理システム
Ｂ、ｂ、ｂｂ  出力データ
Ｃ、ＣＣ、ｃ  損失
ＣＭ１  第１変換モデル
ＣＭ２  第２変換モデル
ＬＭ、ｌｍ  学習モデル
【図１】
2019133626.tif 000003
【図２】
2019133626.tif 000004
【図３】
2019133626.tif 000005
【図４】
2019133626.tif 000006
【図５】
2019133626.tif 000007