IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ パナソニックIPマネジメント株式会社の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-28
(45)【発行日】2023-10-06
(54)【発明の名称】推論実行方法
(51)【国際特許分類】
   G06N 3/045 20230101AFI20230929BHJP
【FI】
G06N3/045
【請求項の数】 17
(21)【出願番号】P 2020058978
(22)【出願日】2020-03-27
(65)【公開番号】P2021157653
(43)【公開日】2021-10-07
【審査請求日】2022-02-07
(73)【特許権者】
【識別番号】314012076
【氏名又は名称】パナソニックIPマネジメント株式会社
(74)【代理人】
【識別番号】100109210
【弁理士】
【氏名又は名称】新居 広守
(74)【代理人】
【識別番号】100137235
【弁理士】
【氏名又は名称】寺谷 英作
(74)【代理人】
【識別番号】100131417
【弁理士】
【氏名又は名称】道坂 伸一
(72)【発明者】
【氏名】西村 隆
【審査官】金田 孝之
(56)【参考文献】
【文献】特開平06-266688(JP,A)
【文献】特開2016-191966(JP,A)
【文献】特開2019-032833(JP,A)
【文献】国際公開第2019/187372(WO,A1)
【文献】特開2019-204458(JP,A)
【文献】特開2020-144555(JP,A)
【文献】特開2019-175266(JP,A)
【文献】特許第6671694(JP,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00- 3/126
G06N 20/00-20/20
(57)【特許請求の範囲】
【請求項1】
少なくとも1つの情報処理回路が推論用ニューラルネットワークを用いてデータに対して推論を実行するための推論実行方法であって、
学習が行われた1つの学習用ニューラルネットワークから生成された複数の推論用ニューラルネットワーク候補の中から前記推論用ニューラルネットワークを選択し、
前記データを順次取得し、
前記推論用ニューラルネットワークを用いて、順次取得された前記データに対して前記推論を順次実行し、
順次実行された前記推論の結果を順次出力し、
前記データが順次取得され、前記推論が順次実行され、前記推論の結果が順次出力される推論実行期間中に、前記データを用いて、前記複数の推論用ニューラルネットワーク候補のうち1つ以上の推論用ニューラルネットワーク候補のそれぞれを評価し、評価結果に従って、前記1つ以上の推論用ニューラルネットワーク候補の中から新たな推論用ニューラルネットワークを選択することにより、前記複数の推論用ニューラルネットワーク候補の中から前記新たな推論用ニューラルネットワークを選択し、前記推論の実行に用いられる前記推論用ニューラルネットワークを前記新たな推論用ニューラルネットワークに切り替える
推論実行方法。
【請求項2】
前記複数の推論用ニューラルネットワーク候補は、互いに異なるダイナミックレンジと、互いに異なる分解能とを有する
請求項1に記載の推論実行方法。
【請求項3】
前記複数の推論用ニューラルネットワーク候補は、前記データがセンシングによって取得される環境状態の複数の候補である複数の環境状態候補にそれぞれ対応する
請求項1又は2に記載の推論実行方法。
【請求項4】
前記環境状態は、場所、照度又は時間帯に関する属性を含む
請求項3に記載の推論実行方法。
【請求項5】
前記推論実行期間中に、前記複数の推論用ニューラルネットワーク候補のうち、前記推論におけるデータ値を許容範囲に含むダイナミックレンジを有する少なくとも1つの推論用ニューラルネットワーク候補の中で、最も高い分解能を有するニューラルネットワークを前記新たな推論用ニューラルネットワークとして選択する
請求項1~のいずれか1項に記載の推論実行方法。
【請求項6】
さらに、前記環境状態を計測する計測器から前記環境状態を取得し、
前記推論実行期間中に、前記環境状態に従って、前記複数の環境状態候補にそれぞれ対応する前記複数の推論用ニューラルネットワーク候補の中から、前記環境状態に対応するニューラルネットワークを前記新たな推論用ニューラルネットワークとして選択する
請求項3又は4に記載の推論実行方法。
【請求項7】
前記推論実行期間中に、前記推論の精度劣化の有無を判定し、前記精度劣化があると判定された場合に、前記新たな推論用ニューラルネットワークを選択し、前記推論用ニューラルネットワークを前記新たな推論用ニューラルネットワークに切り替える
請求項1~のいずれか1項に記載の推論実行方法。
【請求項8】
前記推論実行期間中に、前記推論におけるデータ値、及び、前記推論の結果に関する尤度のうち、少なくとも一方に従って、前記精度劣化の有無を判定する
請求項に記載の推論実行方法。
【請求項9】
前記データ値が第1範囲内でない場合に、前記精度劣化があると判定する
請求項に記載の推論実行方法。
【請求項10】
前記データ値を予測し、予測された前記データ値が第2範囲内でない場合に、前記精度劣化があると判定する
請求項又はに記載の推論実行方法。
【請求項11】
前記データの第1区間に亘って継続的に前記データ値が第3範囲内である場合に、前記精度劣化があると判定する
請求項10のいずれか1項に記載の推論実行方法。
【請求項12】
前記データの第2区間に亘って継続的に前記尤度が基準よりも低い場合に、前記精度劣化があると判定する
請求項11のいずれか1項に記載の推論実行方法。
【請求項13】
前記推論実行期間中に、周期的に、前記新たな推論用ニューラルネットワークを選択し、前記推論用ニューラルネットワークを前記新たな推論用ニューラルネットワークに切り替える
請求項1~12のいずれか1項に記載の推論実行方法。
【請求項14】
さらに、前記データがセンシングによって取得される環境状態を計測する計測器から前記環境状態を取得し、
前記推論実行期間中に、前記環境状態が変化した場合に、前記新たな推論用ニューラルネットワークを選択し、前記推論用ニューラルネットワークを前記新たな推論用ニューラルネットワークに切り替える
請求項1~13のいずれか1項に記載の推論実行方法。
【請求項15】
さらに、前記1つの学習用ニューラルネットワークから前記複数の推論用ニューラルネットワーク候補を生成する
請求項1~14のいずれか1項に記載の推論実行方法。
【請求項16】
さらに、複数のデータセットを取得し、
前記1つの学習用ニューラルネットワークから、前記複数のデータセットに従って、前記複数のデータセットにそれぞれ対応する前記複数の推論用ニューラルネットワーク候補を生成する
請求項15に記載の推論実行方法。
【請求項17】
請求項1~16のいずれか1項に記載の推論実行方法を前記少なくとも1つの情報処理回路に実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、推論用ニューラルネットワークを用いてデータに対して推論を実行する推論実行方法等に関する。
【背景技術】
【0002】
従来、ニューラルネットワークの事前学習を固定小数点演算の統計データに基づいて再定義する学習プログラムが提案されている(特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【文献】特許第6528893号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、学習フェーズで生成した学習プログラムよりも推論フェーズの動作を行う推論プログラムの数値表現の定義域は縮小する。したがって、推論フェーズにおいて精度劣化が発生する場合がある。
【0005】
そこで、本開示は、推論フェーズにおける精度劣化を抑制することが可能な推論実行方法等を提供する。
【課題を解決するための手段】
【0006】
本開示の一態様に係る推論実行方法は、少なくとも1つの情報処理回路が推論用ニューラルネットワークを用いてデータに対して推論を実行するための推論実行方法であって、学習が行われた1つの学習用ニューラルネットワークから生成された複数の推論用ニューラルネットワーク候補の中から前記推論用ニューラルネットワークを選択し、前記データを順次取得し、前記推論用ニューラルネットワークを用いて、順次取得された前記データに対して前記推論を順次実行し、順次実行された前記推論の結果を順次出力し、前記データが順次取得され、前記推論が順次実行され、前記推論の結果が順次出力される推論実行期間中に、前記データを用いて、前記複数の推論用ニューラルネットワーク候補のうち1つ以上の推論用ニューラルネットワーク候補のそれぞれを評価し、評価結果に従って、前記1つ以上の推論用ニューラルネットワーク候補の中から新たな推論用ニューラルネットワークを選択することにより、前記複数の推論用ニューラルネットワーク候補の中から前記新たな推論用ニューラルネットワークを選択し、前記推論の実行に用いられる前記推論用ニューラルネットワークを前記新たな推論用ニューラルネットワークに切り替える。
【0007】
なお、これらの包括的又は具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラム、又は、コンピュータ読み取り可能なCD-ROMなどの非一時的な記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラム、及び、記録媒体の任意の組み合わせで実現されてもよい。
【発明の効果】
【0008】
本開示の一態様に係る推論実行方法によって、推論フェーズにおける精度劣化を抑制することが可能である。
【図面の簡単な説明】
【0009】
図1図1は、参考例における学習実行装置の動作を示す概念図である。
図2A図2Aは、学習フェーズのデータ値の分布を示すグラフである。
図2B図2Bは、推論フェーズのデータ値の分布を示すグラフである。
図3A図3Aは、ダイナミックレンジが狭く分解能が細かい場合のデータ値の分布を示すグラフである。
図3B図3Bは、ダイナミックレンジが広く分解能が粗い場合のデータ値の分布を示すグラフである。
図4図4は、参考例における推論実行装置の動作を示す概念図である。
図5図5は、実施の形態における学習実行装置及び推論実行装置の構成を示すブロック図である。
図6図6は、実施の形態における学習実行装置の動作を示すフローチャートである。
図7図7は、実施の形態における推論実行装置の動作を示すフローチャートである。
図8図8は、実施の形態における学習実行装置の動作を示す概念図である。
図9図9は、実施の形態における推論実行装置の動作を示す概念図である。
図10図10は、実施の形態における推論実行装置の動作の具体例を示す概念図である。
図11図11は、実施の形態における観測処理を示す概念図である。
図12A図12Aは、実施の形態における精度劣化判定の第1具体例を示す概念図である。
図12B図12Bは、実施の形態における精度劣化判定の第2具体例を示す概念図である。
図12C図12Cは、実施の形態における精度劣化判定の第3具体例を示す概念図である。
図12D図12Dは、実施の形態における精度劣化判定の第4具体例を示す概念図である。
図13図13は、実施の形態における推論用ニューラルネットワークの切り替えのタイミングを示すタイミング図である。
図14図14は、実施の形態における推論実行装置の動作の具体例を示すフローチャートである。
図15図15は、実施の形態における推論用ニューラルネットワーク候補と環境状態候補との関係を示す概念図である。
図16図16は、実施の形態における環境状態に基づく選択処理を示す概念図である。
図17図17は、実施の形態における切り替え処理の具体例を示す概念図である。
【発明を実施するための形態】
【0010】
例えば、高精度な画像認識に畳み込みニューラルネットワーク(CNN)を用いることが注目されている。畳み込みニューラルネットワーク等のニューラルネットワーク(NN)の動作フェーズとして、学習フェーズと推論フェーズとがある。
【0011】
学習フェーズでは、訓練用データを用いて、ニューラルネットワークに対する学習が行われる。具体的には、ニューラルネットワークへ入力された訓練データに対してニューラルネットワークから正解データが出力されるように、ニューラルネットワークのパラメータが調整される。推論フェーズでは、学習が行われたニューラルネットワークに実データが入力され、ニューラルネットワークから実データに対する推論の結果が出力される。
【0012】
学習フェーズでは、大量の訓練データを用いて、ニューラルネットワークのパラメータが調整される。そのため、学習フェーズの演算量は大きい。したがって、処理性能の高い装置が、学習フェーズの動作を行うことが多い。一方、推論フェーズの演算量は、学習フェーズの演算量に比べて小さい。また、実データが用いられる環境において、処理性能の高い装置を準備することが困難な場合がある。したがって、処理性能の低い装置が、推論フェーズの動作を行うことが多い。
【0013】
より具体的には、処理性能の高い汎用コンピュータで学習フェーズの動作が行われ、処理性能の低い組み込み装置で推論フェーズの動作が行われることが多い。したがって、学習フェーズで用いられるニューラルネットワークの数値フォーマットと、推論フェーズで用いられるニューラルネットワークの数値フォーマットとが互いに異なることが多い。
【0014】
具体的には、学習フェーズでは、32ビットの浮動小数点(fp32bit)が用いられ、推論フェーズでは、8ビットの整数(int8bit)が用いられる。すなわち、学習フェーズでは、ニューラルネットワークにおいて用いられる数値、例えばニューラルネットワークのパラメータ及びデータ値(具体的には入力データ、中間データ及び出力データ等の値)等が、32ビットの浮動小数点で表現される。推論フェーズでは、ニューラルネットワークにおいて用いられる数値が8ビットの整数で表現される。
【0015】
例えば、汎用コンピュータでfp32bitのニューラルネットワークが得られる。そして、fp32bitのニューラルネットワークは、組み込み装置で利用可能になるように、int8bitのニューラルネットワークに変換される。これにより、処理性能の高い汎用コンピュータで行われた学習の結果に従って、処理性能の低い組み込み装置で推論フェーズの動作を行うことが可能になる。
【0016】
図1は、参考例における学習実行装置の動作を示す概念図である。図1の例において、学習実行装置100は、学習用ニューラルネットワーク110(学習用NN110)に対して、訓練用データセット120(訓練用DS120)を用いて、学習を行う。例えば、学習実行装置100は、処理性能の高い汎用コンピュータであって、学習用ニューラルネットワーク110は、fp32bitのCNNである。
【0017】
次に、学習実行装置100は、学習が行われた学習用ニューラルネットワーク110を推論用ニューラルネットワーク140(推論用NN140)に変換することにより、推論用ニューラルネットワーク140を生成する。例えば、推論用ニューラルネットワーク140は、int8bitのCNNである。学習実行装置100は、変換において、変換用データセット130(変換用DS130)を用いてもよい。変換用データセット130は、訓練用データセット120のサブセットでもよい。
【0018】
例えば、学習実行装置100は、変換用データセット130を学習用ニューラルネットワーク110に入力する。そして、学習実行装置100は、学習用ニューラルネットワーク110のデータ値がint8bitで可能な限り適切に表現されるように、学習用ニューラルネットワーク110のパラメータセットを調整する。これにより、学習実行装置100は、学習用ニューラルネットワーク110を変換して、推論用ニューラルネットワーク140を生成する。
【0019】
生成された推論用ニューラルネットワーク140は、組み込み装置等に導入されて、推論に用いられる。
【0020】
図2Aは、学習フェーズのデータ値の分布を示すグラフである。例えば、学習フェーズのデータ値は、汎用コンピュータにおいてfp32bitで表現される。したがって、学習フェーズのデータ値は、最小値から最大値に亘って細かく表現される。
【0021】
図2Bは、推論フェーズのデータ値の分布を示すグラフである。例えば、推論フェーズのデータ値は、組み込み装置においてint8bitで表現される。したがって、推論フェーズのデータ値は、学習フェーズのデータ値に比べて、粗く表現される。推論フェーズのデータ値がどのように表現されるかは、数値フォーマットの変換において、ダイナミックレンジ(Dレンジ)と分解能とをどのように設定するかに依存する。
【0022】
ダイナミックレンジは、表現可能な最小値及び最大値の範囲、つまり表現可能な値の範囲に対応する。分解能は、表現可能な値の単位、つまり表現可能な値の細かさに対応する。int8bitで表現可能な値の数は、fp32bitで表現可能な値の数よりも少ない。したがって、例えば、図1に示された学習実行装置100は、学習用ニューラルネットワーク110の変換において、ダイナミックレンジを狭くしたり、分解能を粗くしたりする。ここで、ダイナミックレンジと分解能とは、トレードオフの関係を有する。
【0023】
具体的には、分解能が細かくなると、ダイナミックレンジが狭くなる。一方、ダイナミックレンジが広くなると、分解能が粗くなる。
【0024】
図3Aは、ダイナミックレンジが狭く分解能が細かい場合のデータ値の分布を示すグラフである。この例では、分解能が細かいため、ダイナミックレンジが狭い。したがって、ダイナミックレンジが飽和する。そして、表現可能な最大値よりも大きい値、及び、表現可能な最小値よりも小さい値の発生によって、データ値の精度が劣化し、推論の精度が劣化する。
【0025】
図3Bは、ダイナミックレンジが広く分解能が粗い場合のデータ値の分布を示すグラフである。この例では、ダイナミックレンジが広いため、分解能が粗い。したがって、データ値の精度が劣化し、推論の精度が劣化する。
【0026】
図4は、参考例における推論実行装置の動作を示す概念図である。図4の例において、推論実行装置200は、推論用ニューラルネットワーク140を用いて、入力映像に対して、車両を検知するための推論を実行し、推論の結果として検知した車両を検知枠で囲んだ映像を出力する。図4の出力映像は、推論実行装置200によって出力される映像の例である。
【0027】
例えば、推論実行装置200は、処理性能の低い組み込み装置であって、推論用ニューラルネットワーク140は、図1に示された学習実行装置100によってfp32bitのCNNから生成されたint8bitのCNNである。上述した通り、fp32bitのCNNに比べて、int8bitのCNNでは、表現可能な値の数が少ないため、推論の精度が劣化する可能性が高い。したがって、図4の例のように、誤検知及び未検知が発生する可能性が高い。
【0028】
また、図1に示された学習実行装置100によって、変換用データセット130を用いて推論用ニューラルネットワーク140が生成されるとしても、変換用データセット130のデータパターンを用いて決定したダイナミックレンジと分解能を持つ推論プログラムが全てのセンサ入力に対して適切でない可能性がある。したがって、一部のセンサ入力において精度劣化が発生する可能性がある。
【0029】
また、上述の特許文献1には、学習フェーズにおいて小数点位置を決定することが示されている。しかしながら、上述したように、処理性能の低い組み込み装置等で推論が行われる推論フェーズでは、処理性能の高い汎用コンピュータで学習が行われる学習フェーズに比べて、表現可能な値の数が少ない数値フォーマットが用いられる場合がある。したがって、精度劣化が発生する可能性がある。
【0030】
そこで、本開示の一態様に係る推論実行方法は、少なくとも1つの情報処理回路が推論用ニューラルネットワークを用いてデータに対して推論を実行するための推論実行方法であって、学習が行われた1つの学習用ニューラルネットワークから生成された複数の推論用ニューラルネットワーク候補の中から前記推論用ニューラルネットワークを選択し、前記データを順次取得し、前記推論用ニューラルネットワークを用いて、順次取得された前記データに対して前記推論を順次実行し、順次実行された前記推論の結果を順次出力し、前記データが順次取得され、前記推論が順次実行され、前記推論の結果が順次出力される推論実行期間中に、前記複数の推論用ニューラルネットワーク候補の中から新たな推論用ニューラルネットワークを選択し、前記推論の実行に用いられる前記推論用ニューラルネットワークを前記新たな推論用ニューラルネットワークに切り替える。
【0031】
これにより、推論フェーズにおいて、複数の推論用ニューラルネットワーク候補の中から適応的に推論用ニューラルネットワークを適用することが可能になる場合がある。したがって、推論フェーズにおける精度劣化を抑制することが可能になる場合がある。
【0032】
例えば、前記複数の推論用ニューラルネットワーク候補は、互いに異なるダイナミックレンジと、互いに異なる分解能とを有する。
【0033】
これにより、ダイナミックレンジ及び分解能が異なる複数の推論用ニューラルネットワーク候補の中から適応的に推論用ニューラルネットワークを適用することが可能になる場合がある。したがって、推論フェーズにおける精度劣化を抑制することが可能になる場合がある。
【0034】
また、例えば、前記複数の推論用ニューラルネットワーク候補は、前記データがセンシングによって取得される環境状態の複数の候補である複数の環境状態候補にそれぞれ対応する。
【0035】
これにより、複数の環境状態候補にそれぞれ対応する複数の推論用ニューラルネットワーク候補の中から適応的に推論用ニューラルネットワークを適用することが可能になる場合がある。したがって、推論フェーズにおける精度劣化を抑制することが可能になる場合がある。
【0036】
また、例えば、前記環境状態は、場所、照度又は時間帯に関する属性を含む。
【0037】
これにより、複数の場所、複数の照度、又は、複数の時間帯にそれぞれ対応する複数の推論用ニューラルネットワーク候補の中から適応的に推論用ニューラルネットワークを適用することが可能になる場合がある。したがって、推論フェーズにおける精度劣化を抑制することが可能になる場合がある。
【0038】
また、例えば、前記推論実行期間中に、前記データを用いて、前記複数の推論用ニューラルネットワーク候補のうち1つ以上の推論用ニューラルネットワーク候補のそれぞれを評価し、評価結果に従って、前記1つ以上の推論用ニューラルネットワーク候補の中から前記新たな推論用ニューラルネットワークを選択する。
【0039】
これにより、複数の推論用ニューラルネットワーク候補の中から評価結果に従って推論用ニューラルネットワークを適切に選択することが可能になる場合がある。したがって、推論フェーズにおける精度劣化を抑制することが可能になる場合がある。
【0040】
また、例えば、前記推論実行期間中に、前記複数の推論用ニューラルネットワーク候補のうち、前記推論におけるデータ値を許容範囲に含むダイナミックレンジを有する少なくとも1つの推論用ニューラルネットワーク候補の中で、最も高い分解能を有するニューラルネットワークを前記新たな推論用ニューラルネットワークとして選択する。
【0041】
これにより、複数の推論用ニューラルネットワーク候補の中から、データ値を適切に表現することが可能な推論用ニューラルネットワークを選択することが可能になる場合がある。したがって、推論フェーズにおける精度劣化を抑制することが可能になる場合がある。
【0042】
また、例えば、さらに、前記環境状態を計測する計測器から前記環境状態を取得し、前記推論実行期間中に、前記環境状態に従って、前記複数の環境状態候補にそれぞれ対応する前記複数の推論用ニューラルネットワーク候補の中から、前記環境状態に対応するニューラルネットワークを前記新たな推論用ニューラルネットワークとして選択する。
【0043】
これにより、複数の推論用ニューラルネットワーク候補の中から環境状態に従って推論用ニューラルネットワークを適切に選択することが可能になる場合がある。したがって、推論フェーズにおける精度劣化を抑制することが可能になる場合がある。
【0044】
また、例えば、前記推論実行期間中に、前記推論の精度劣化の有無を判定し、前記精度劣化があると判定された場合に、前記新たな推論用ニューラルネットワークを選択し、前記推論用ニューラルネットワークを前記新たな推論用ニューラルネットワークに切り替える。
【0045】
これにより、推論の精度劣化に従って、推論用ニューラルネットワークを新たな推論用ニューラルネットワークに適切に切り替えることが可能になる場合がある。したがって、推論フェーズにおける精度劣化を抑制することが可能になる場合がある。
【0046】
また、例えば、前記推論実行期間中に、前記推論におけるデータ値、及び、前記推論の結果に関する尤度のうち、少なくとも一方に従って、前記精度劣化の有無を判定する。
【0047】
これにより、データ値又は尤度に従って、精度劣化の有無を適切に判定することが可能になる場合がある。したがって、推論の精度劣化に従って、推論用ニューラルネットワークを新たな推論用ニューラルネットワークに適切に切り替えることが可能になる場合がある。
【0048】
また、例えば、前記データ値が第1範囲内でない場合に、前記精度劣化があると判定する。
【0049】
これにより、データ値がダイナミックレンジ等の範囲を超える場合に、精度劣化があると適切に判定することが可能になる場合がある。したがって、推論の精度劣化に従って、推論用ニューラルネットワークを新たな推論用ニューラルネットワークに適切に切り替えることが可能になる場合がある。
【0050】
また、例えば、前記データ値を予測し、予測された前記データ値が第2範囲内でない場合に、前記精度劣化があると判定する。
【0051】
これにより、予測されたデータ値がダイナミックレンジ等の範囲を超える場合に、精度劣化があると適切に判定することが可能になる場合がある。したがって、推論の精度劣化に従って、推論用ニューラルネットワークを新たな推論用ニューラルネットワークに適切に切り替えることが可能になる場合がある。
【0052】
また、例えば、前記データの第1区間に亘って継続的に前記データ値が第3範囲内である場合に、前記精度劣化があると判定する。
【0053】
これにより、ダイナミックレンジが大きく、継続してデータ値が範囲内に含まれる場合に、精度劣化があると適切に判定することが可能になる場合がある。したがって、推論の精度劣化に従って、推論用ニューラルネットワークを新たな推論用ニューラルネットワークに適切に切り替えることが可能になる場合がある。
【0054】
また、例えば、前記データの第2区間に亘って継続的に前記尤度が基準よりも低い場合に、前記精度劣化があると判定する。
【0055】
これにより、継続して適切な尤度が得られない場合に、精度劣化があると適切に判定することが可能になる場合がある。したがって、推論の精度劣化に従って、推論用ニューラルネットワークを新たな推論用ニューラルネットワークに適切に切り替えることが可能になる場合がある。
【0056】
また、例えば、前記推論実行期間中に、周期的に、前記新たな推論用ニューラルネットワークを選択し、前記推論用ニューラルネットワークを前記新たな推論用ニューラルネットワークに切り替える。
【0057】
これにより、周期的に、推論用ニューラルネットワークを新たな推論用ニューラルネットワークに切り替えることが可能になる場合がある。したがって、推論フェーズにおける精度劣化を抑制することが可能になる場合がある。
【0058】
また、例えば、さらに、前記データがセンシングによって取得される環境状態を計測する計測器から前記環境状態を取得し、前記推論実行期間中に、前記環境状態が変化した場合に、前記新たな推論用ニューラルネットワークを選択し、前記推論用ニューラルネットワークを前記新たな推論用ニューラルネットワークに切り替える。
【0059】
これにより、環境状態の変化に従って、推論用ニューラルネットワークを新たな推論用ニューラルネットワークに切り替えることが可能になる場合がある。したがって、推論フェーズにおける精度劣化を抑制することが可能になる場合がある。
【0060】
また、例えば、さらに、前記1つの学習用ニューラルネットワークから前記複数の推論用ニューラルネットワーク候補を生成する。
【0061】
これにより、学習が行われた1つの学習用ニューラルネットワークから、複数の推論用ニューラルネットワーク候補を適切に取得することが可能になる場合がある。したがって、複数の推論用ニューラルネットワーク候補の中から適応的に推論用ニューラルネットワークを適用することが可能になる場合があり、推論フェーズにおける精度劣化を抑制することが可能になる場合がある。
【0062】
また、例えば、さらに、複数のデータセットを取得し、前記1つの学習用ニューラルネットワークから、前記複数のデータセットに従って、前記複数のデータセットにそれぞれ対応する前記複数の推論用ニューラルネットワーク候補を生成する。
【0063】
これにより、複数のデータセットに従って、複数の推論用ニューラルネットワーク候補を適切に生成することが可能になる場合がある。したがって、適切に生成された複数の推論用ニューラルネットワーク候補の中から適応的に推論用ニューラルネットワークを適用することが可能になる場合があり、推論フェーズにおける精度劣化を抑制することが可能になる場合がある。
【0064】
また、本開示の一態様に係るプログラムは、前記推論実行方法を前記少なくとも1つの情報処理回路に実行させる。
【0065】
これにより、プログラムに従って、複数の推論用ニューラルネットワーク候補の中から適応的に推論用ニューラルネットワークを適用することが可能になる場合がある。したがって、プログラムによって、推論フェーズにおける精度劣化を抑制することが可能になる場合がある。
【0066】
さらに、これらの包括的又は具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラム、又は、コンピュータ読み取り可能なCD-ROMなどの非一時的な記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラム、及び、記録媒体の任意な組み合わせで実現されてもよい。
【0067】
以下、実施の形態について図面を参照しながら具体的に説明する。なお、以下で説明する実施の形態は、いずれも包括的又は具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、請求の範囲を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
【0068】
(実施の形態)
図5は、実施の形態における学習実行装置及び推論実行装置の構成を示すブロック図である。図5のように、学習実行装置300は、情報処理回路350及びメモリ360を備え、推論実行装置400は、情報処理回路450及びメモリ460を備える。
【0069】
学習実行装置300は、複数の情報処理回路350及び複数のメモリ360を備えていてもよい。また、推論実行装置400は、複数の情報処理回路450及び複数のメモリ460を備えていてもよい。また、学習実行装置300は、メモリ360を備えなくてもよく、メモリ360は、学習実行装置300の外部のメモリであってもよい。また、推論実行装置400は、メモリ460を備えなくてもよく、メモリ460は、推論実行装置400の外部のメモリであってもよい。
【0070】
学習実行装置300は、学習を実行する装置である。例えば、学習実行装置300は、上記の学習実行装置100に対応する装置であってもよく、処理性能の高い汎用コンピュータであってもよい。情報処理回路350は、情報処理を行う回路である。情報処理回路350は、汎用プロセッサであってもよいし、専用回路であってもよい。
【0071】
学習実行装置300が行う動作は、主に、情報処理回路350によって行われる。以下、情報処理回路350が行う動作を学習実行装置300が行う動作として説明する場合がある。
【0072】
例えば、学習実行装置300の情報処理回路350は、学習用ニューラルネットワークに対して学習を実行する。そして、情報処理回路350は、学習が実行された学習用ニューラルネットワークから複数の推論用ニューラルネットワーク候補を生成し、複数の推論用ニューラルネットワーク候補を学習実行装置300のメモリ360に格納する。
【0073】
また、学習実行装置300のメモリ360には、学習用ニューラルネットワークに対して学習を実行するためのプログラムが記憶されていてもよい。学習実行装置300の情報処理回路350は、メモリ360に記憶されているプログラムを読み出して実行することにより、学習用ニューラルネットワークに対して学習を実行してもよい。
【0074】
さらに、メモリ360には、学習用ニューラルネットワークが記憶されていてもよいし、学習用ニューラルネットワークに対して学習を実行するための訓練用データセットが記憶されていてもよい。
【0075】
推論実行装置400は、推論を実行する装置である。例えば、推論実行装置400は、上記の推論実行装置200に対応する装置であってもよく、処理性能の低い組み込み装置であってもよい。推論実行装置400は、センサ510及び520に接続されていてもよい。情報処理回路450は、情報処理を行う回路である。情報処理回路450は、汎用プロセッサであってもよいし、専用回路であってもよい。
【0076】
推論実行装置400が行う動作は、主に、情報処理回路450によって行われる。以下、情報処理回路450が行う動作を推論実行装置400が行う動作として説明する場合がある。
【0077】
例えば、推論実行装置400のメモリ460には、学習実行装置300で生成された複数の推論用ニューラルネットワーク候補が格納される。複数の推論用ニューラルネットワーク候補は、学習実行装置300のメモリ360から推論実行装置400のメモリ460へコピーされることで、メモリ460に格納されてもよい。
【0078】
そして、推論実行装置400の情報処理回路450は、複数の推論用ニューラルネットワーク候補のうちの1つを推論用ニューラルネットワークとして用いて、センサ510から得られるデータに対して推論を実行する。
【0079】
また、推論実行装置400のメモリ460には、推論用ニューラルネットワークを用いて推論を実行するためのプログラムが記憶されていてもよい。推論実行装置400の情報処理回路450は、メモリ460に記憶されているプログラムを読み出して実行することにより、推論用ニューラルネットワークを用いて推論を実行してもよい。
【0080】
センサ510は、センシングによってデータを取得するセンサである。例えば、センサ510は、センシングによって映像を取得するイメージセンサである。センサ510は、音のセンシングによって音を示すデータを取得するセンサであってもよいし、においのセンシングによってにおいを示すデータを取得するセンサであってもよい。例えば、センサ510で取得されるデータは、時間的に変化する連続データある。
【0081】
以下の説明では、主に、映像が、センサ510によって取得され、推論対象のデータとして用いられる。しかし、他のデータが、センサ510によって取得され、推論対象のデータとして用いられてもよい。
【0082】
センサ520は、環境状態を計測するセンサである。具体的には、センサ520は、データがセンシングによって取得される環境状態を計測する。センサ520によって計測される環境状態は、センサ510によってデータが取得される際の場所、照度又は時間帯に関連していてもよい。
【0083】
例えば、センサ520は、GPS(Global Positioning Systemu)に対応する位置センサであってもよい。あるいは、センサ520は、照度センサであってもよい。また、センサ520は、環境状態を計測する計測器とも表現され得る。センサ520は、計測器として、センサ510によってデータが取得される際の時間帯を計測してもよい。センサ520は、複数のセンサの組み合わせであってもよい。
【0084】
センサ510によって取得されたデータが推論実行装置400に入力され、センサ510によって取得されたデータに対して、推論が行われる。具体的には、センサ510によって取得されたデータは映像であって、映像に対して車両又は歩行者などの物体の検知が推論として行われる。センサ520によって計測された環境状態は、推論用ニューラルネットワークの切り替えに用いられてもよい。
【0085】
図6は、図5に示された学習実行装置300の動作を示すフローチャートである。まず、学習実行装置300は、学習用ニューラルネットワークに対して学習を行う(S101)。例えば、学習用ニューラルネットワークは、fp32bitのCNNである。
【0086】
そして、学習実行装置300は、学習が行われた1つの学習用ニューラルネットワークから、複数の推論用ニューラルネットワーク候補を生成する(S102)。例えば、複数の推論用ニューラルネットワーク候補のそれぞれは、int8bitのCNNである。複数の推論用ニューラルネットワーク候補は、パラメータ及びデータ値等の数値に対して、互いに異なるダイナミックレンジ、及び、互いに異なる分解能を有する。
【0087】
図7は、図5に示された推論実行装置400の動作を示すフローチャートである。まず、推論実行装置400は、複数の推論用ニューラルネットワーク候補の中から推論用ニューラルネットワークを選択する(S201)。複数の推論用ニューラルネットワーク候補は、学習用ニューラルネットワークから学習実行装置300で生成された複数のニューラルネットワークである。
【0088】
次に、推論実行装置400は、推論用ニューラルネットワークに入力されるデータを取得する(S202)。例えば、推論実行装置400は、車両を検知するための映像を取得する。次に、推論実行装置400は、推論用ニューラルネットワークを用いて、推論を実行する(S203)。例えば、推論実行装置400は、取得したデータに対して、車両を検知するための推論を実行する。次に、推論実行装置400は、推論の結果を出力する(S204)。例えば、推論実行装置400は、車両の検知結果を出力する。
【0089】
次に、推論実行装置400は、推論用ニューラルネットワークの再選択条件が満たされるか否かを判定する(S205)。例えば、再選択条件は、精度劣化があること、環境状態が変化したこと、及び、周期的なタイミングに該当することの少なくとも1つであってもよい。
【0090】
より具体的には、例えば、推論実行装置400は、精度劣化がある場合、環境状態が変化した場合、及び、周期的なタイミングに該当する場合のいずれかにおいて、再選択条件が満たされると判定してもよい。あるいは、推論実行装置400は、周期的なタイミングにおいて、精度劣化があるか否か、又は、環境状態が変化したか否かを判定し、精度劣化がある場合において、又は、環境状態が変化した場合において、再選択条件が満たされると判定してもよい。
【0091】
再選択条件が満たされない場合(S205でNo)、データの取得(S202)から処理が繰り返される。
【0092】
再選択条件が満たされる場合(S205でYes)、推論実行装置400は、複数の推論用ニューラルネットワーク候補の中から新たな推論用ニューラルネットワークを選択する(S206)。そして、推論実行装置400は、推論用ニューラルネットワークを新たな推論用ニューラルネットワークに切り替える(S207)。そして、データの取得(S202)から処理が繰り返される。推論実行装置400は、終了条件が満たされる場合に、一連の処理を終了してもよい。
【0093】
これにより、推論実行装置400は、複数の推論用ニューラルネットワーク候補の中から適応的に推論用ニューラルネットワークを適用することができる。したがって、推論実行装置400は、精度劣化を抑制することができる。以下、学習実行装置300及び推論実行装置400のより具体的な動作を示す。
【0094】
図8は、図5に示された学習実行装置300の動作を示す概念図である。学習実行装置300は、学習用ニューラルネットワーク310(学習用NN310)に対して、訓練用データセット320(訓練用DS320)を用いて、学習を行う。例えば、学習用ニューラルネットワーク310は、fp32bitのCNNである。
【0095】
具体的には、学習用ニューラルネットワーク310へ入力された訓練用データセット320に対して学習用ニューラルネットワーク310から正解データが出力されるように、学習用ニューラルネットワーク310のパラメータセットが調整される。
【0096】
次に、学習実行装置300は、学習が行われた1つの学習用ニューラルネットワーク310を3つの推論用ニューラルネットワーク候補341、342及び343(候補341、342及び343)に変換する。これにより、学習実行装置300は、3つの推論用ニューラルネットワーク候補341、342及び343を生成する。例えば、3つの推論用ニューラルネットワーク候補341、342及び343のそれぞれは、int8bitのCNNである。
【0097】
学習実行装置300は、変換において、3つの変換用データセット331、332及び333(変換用DS331、332及び333)を用いてもよい。3つの変換用データセット331、332及び333のそれぞれは、訓練用データセット320のサブセットでもよい。
【0098】
例えば、学習実行装置300は、変換用データセット331を学習用ニューラルネットワーク310に入力する。そして、学習実行装置300は、学習用ニューラルネットワーク310のデータ値がint8bitで可能な限り適切に表現されるように、学習用ニューラルネットワーク310のパラメータセットを調整する。これにより、学習実行装置300は、学習用ニューラルネットワーク310を変換して、推論用ニューラルネットワーク候補341を生成する。
【0099】
同様に、学習実行装置300は、変換用データセット332を用いて、学習用ニューラルネットワーク310を変換して、推論用ニューラルネットワーク候補342を生成する。また、学習実行装置300は、変換用データセット333を用いて、学習用ニューラルネットワーク310を変換して、推論用ニューラルネットワーク候補343を生成する。
【0100】
上記に従って、学習実行装置300は、学習用ニューラルネットワーク310から、ダイナミックレンジ及び分解能が互いに異なる3つの量子化ニューラルネットワークを3つの推論用ニューラルネットワーク候補341、342及び343として生成する。
【0101】
学習実行装置300は、ユーザによって指定されたダイナミックレンジ及び分解能の少なくとも一方に従って、学習用ニューラルネットワーク310から、3つの推論用ニューラルネットワーク候補341、342及び343を生成してもよい。ダイナミックレンジ及び分解能は、学習用ニューラルネットワーク310の中間層毎に指定されてもよい。
【0102】
例えば、変換用データセット331が学習用ニューラルネットワーク310に入力された場合のデータ値がユーザによって中間層毎に観測されてもよい。そして、中間層毎に、観測されたデータ値に従って、ダイナミックレンジ及び分解能がユーザによって指定されてもよい。そして、ユーザによって指定されたダイナミックレンジ又は分解能に従って、学習用ニューラルネットワーク310が変換され、推論用ニューラルネットワーク候補341が生成されてもよい。
【0103】
同様に、変換用データセット332を用いて、学習用ニューラルネットワーク310のデータ値がユーザによって観測され、ダイナミックレンジ及び分解能がユーザによって指定されることにより、推論用ニューラルネットワーク候補342が生成されてもよい。また、変換用データセット333を用いて、学習用ニューラルネットワーク310のデータ値がユーザによって観測され、ダイナミックレンジ及び分解能がユーザによって指定されることにより、推論用ニューラルネットワーク候補343が生成されてもよい。
【0104】
3つの推論用ニューラルネットワーク候補341、342及び343は、それぞれ、3つのパラメータセット361、362及び363で表現されてもよい。ここで、3つのパラメータセット361、362及び363のそれぞれは、ニューラルネットワークの各層のパラメータ値を示す。そして、3つの推論用ニューラルネットワーク候補341、342及び343を表す3つのパラメータセット361、362及び363が、パラメータ設定情報370として、学習実行装置300のメモリ360に格納されてもよい。
【0105】
生成された3つの推論用ニューラルネットワーク候補341、342及び343は、推論実行装置400に導入されて、推論に用いられる。そのため、3つの推論用ニューラルネットワーク候補341、342及び343を表す3つのパラメータセット361、362及び363が、推論実行装置400のメモリ460に格納されてもよい。
【0106】
図9は、図5に示された推論実行装置400の動作を示す概念図である。例えば、推論実行装置400は、入力映像に対して、車両を検知するための推論を実行し、推論の結果を出力映像として出力する。
【0107】
その際、推論実行装置400は、3つの推論用ニューラルネットワーク候補341、342及び343の中から、推論用ニューラルネットワークを選択する。3つの推論用ニューラルネットワーク候補341、342及び343のそれぞれは、学習実行装置300によってfp32bitのCNNから生成されたint8bitのCNNである。そして、推論実行装置400は、推論用ニューラルネットワークを用いて、推論を実行する。
【0108】
図4に示された推論実行装置200は、固定のパラメータセットを有する固定の推論用ニューラルネットワーク140を用いて、推論を実行する。そのため、誤検知及び未検知等が発生する。一方、図9に示された推論実行装置400は、3つの推論用ニューラルネットワーク候補341、342及び343の中から推論用ニューラルネットワークを切り替えて、推論を実行することができる。
【0109】
具体的には、推論実行装置400は、評価シーンに対応する入力映像に対して、3つの推論用ニューラルネットワーク候補341、342及び343のそれぞれのパラメータセットを評価し、入力映像に適したパラメータセットを選択することができる。つまり、推論実行装置400は、入力映像に対してパラメータセットを動的に切り替えることができる。したがって、推論実行装置400は、誤検知及び未検知の発生を抑制することができる。
【0110】
図10は、図5に示された推論実行装置400の動作の具体例を示す概念図である。例えば、推論実行装置400は、複数の推論用ニューラルネットワーク候補341~343の中から選択される推論用ニューラルネットワーク340(推論用NN340)を用いて、入力映像に対して推論を実行する。
【0111】
さらに、推論の実行時において、推論実行装置400は、推論用ニューラルネットワーク340を評価する。例えば、推論実行装置400は、推論の結果に関する尤度と、中間層のデータ値を観測し、推論の精度を評価する。その際、推論実行装置400は、評価関数に従って、推論用ニューラルネットワーク340の評価値を算出してもよい。
【0112】
具体的には、推論実行装置400は、推論用ニューラルネットワーク340のデータ値がダイナミックレンジに対応する範囲に含まれているか等に従って、推論用ニューラルネットワーク340を評価してもよい。入力映像が時間tに対して変化するため、推論用ニューラルネットワーク340の評価値も時間tに対して変化する。
【0113】
例えば、推論実行装置400は、推論用ニューラルネットワーク340の評価結果(つまり評価値)の低下を精度劣化の予兆と判定する。推論実行装置400は、評価値が閾値を下回った場合、精度劣化があると判定してもよい。
【0114】
精度劣化があると判定された場合、推論実行装置400は、複数の候補341~343のそれぞれを評価する。推論実行装置400は、推論用ニューラルネットワーク340として選択されている候補を除いて、複数の候補341~343のそれぞれを評価してもよい。推論実行装置400は、推論用ニューラルネットワーク340の評価と同じように、入力映像を用いて、複数の候補341~343のそれぞれを評価してもよい。
【0115】
具体的には、推論実行装置400は、評価関数に従って、候補341~343のそれぞれの評価値を算出してもよい。例えば、推論実行装置400は、候補341~343のそれぞれに入力映像を入力し、候補341~343のそれぞれにおいてデータ値がダイナミックレンジに対応する範囲に含まれているか等に従って、候補341~343のそれぞれを評価してもよい。そして、推論実行装置400は、評価結果の高い候補を選択し、選択された候補に推論用ニューラルネットワーク340を切り替える。
【0116】
例えば、推論実行装置400は、候補341~343のうち、ダイナミックレンジに対応する範囲にデータ値が含まれる少なくとも1つの候補の中で、最も高い分解能を有する候補を選択して、選択された候補に推論用ニューラルネットワーク340を切り替える。
【0117】
これにより、推論実行装置400は、適切なダイナミックレンジ及び分解能に従って、推論を実行することができる。したがって、推論実行装置400は、推論の結果を適切に出力することができる。
【0118】
図11は、図5に示された推論実行装置400が行う観測処理を示す概念図である。例えば、候補341~343のそれぞれは、入力層、複数の中間層、及び、出力層を含む。候補341~343から選択される推論用ニューラルネットワーク340も、入力層、複数の中間層、及び、出力層を含む。
【0119】
例えば、推論用ニューラルネットワーク340の第1中間層(中間層#1)は、5ビットに対応するダイナミックレンジと、11ビットに対応する分解能を有する。また、推論用ニューラルネットワーク340の第2中間層(中間層#2)は、7ビットに対応するダイナミックレンジと、9ビットに対応する分解能を有する。推論用ニューラルネットワーク340の出力層は、車両クラス及び歩行者クラスを含む複数のクラスのそれぞれの尤度を示す。
【0120】
このような推論用ニューラルネットワーク340に対して、入力映像が入力された場合におけるデータ値及び尤度のそれぞれの変化がモニタリングされる。そして、モニタリングされたデータ値及び尤度の少なくとも一方に従って、推論用ニューラルネットワーク340が評価され、精度劣化の有無が判定される。具体的には、ダイナミックレンジの飽和境界に対するデータ値の分布、又は、尤度の高さに従って、精度劣化の有無が判定される。
【0121】
図12Aは、図5に示された推論実行装置400が行う精度劣化判定の第1具体例を示す概念図である。例えば、推論実行装置400は、データ値が第1閾値範囲内でない場合、精度劣化があると判定する。つまり、推論実行装置400は、データ値が第1閾値範囲を超えたことを精度劣化の予兆として検知する。第1閾値範囲は、ダイナミックレンジに対応する最大範囲に対して80%等の割合で定められてもよい。
【0122】
例えば、データ値が、ダイナミックレンジに対応する最大範囲を超えた場合、データ値が適切に表現されず、精度劣化が発生すると想定される。したがって、データ値が第1閾値範囲を超えるか否かに従って、精度劣化があるか否かを判定することは有用である。
【0123】
図12Bは、図5に示された推論実行装置400が行う精度劣化判定の第2具体例を示す概念図である。例えば、推論実行装置400は、データ値を予測し、予測されたデータ値が第2閾値範囲内でない場合、精度劣化があると判定する。つまり、推論実行装置400は、予測されたデータ値が第2閾値範囲を超えたことを精度劣化の予兆として検知する。
【0124】
具体的には、推論実行装置400は、N-1の時点におけるデータ値と、Nの時点におけるデータ値との差に従って、N+1の時点におけるデータ値を予測する。より具体的には、推論実行装置400は、N-1の時点におけるデータ値と、Nの時点におけるデータ値との差に、Nの時点におけるデータ値を加算することで、N+1の時点におけるデータ値を予測する。そして、推論実行装置400は、予測されたデータ値が第2閾値範囲を超えるか否かによって、精度劣化があるか否かを判定する。
【0125】
N-1の時点、Nの時点、及び、N+1の時点は、それぞれ、入力映像におけるN-1番目のフレーム、N番目のフレーム、及び、N+1番目のフレームに対応していてもよい。第2閾値範囲は、図12Aの例の第1閾値範囲と同様に、ダイナミックレンジに対応する最大範囲に対して80%等の割合で定められてもよい。あるいは、図12Aの例の第1閾値範囲とは異なる割合で、第2閾値範囲が定められてもよい。つまり、第2閾値範囲は、第1閾値範囲と同じであってもよいし、第1閾値範囲と異なっていてもよい。
【0126】
図12Cは、図5に示された推論実行装置400が行う精度劣化判定の第3具体例を示す概念図である。例えば、推論実行装置400は、入力映像であるデータの第1区間に亘って継続的にデータ値が第3閾値範囲内である場合、精度劣化があると判定する。つまり、推論実行装置400は、第1区間に亘って継続的にデータ値が第3閾値範囲内であることを精度劣化の予兆として検知する。
【0127】
第1区間は、データに対する時間的な区間である。第1区間は、10分間等の時間間隔であってもよいし、入力映像であるデータに対して500フレーム等のデータ量で定められてもよい。第3閾値範囲は、ダイナミックレンジに対応する最大範囲に対して50%等の割合で定められてもよい。第3閾値範囲は、第1閾値範囲及び第2閾値範囲の少なくとも一方と同じであってもよいし、第1閾値範囲とも第2閾値範囲とも異なっていてもよい。特に、第3閾値範囲は、第1閾値範囲及び第2閾値範囲に比べて小さくてもよい。
【0128】
例えば、データ値が小さい範囲で継続的に推移している場合、分解能が粗い状態が続いていると想定される。したがって、第1区間に亘って継続的にデータ値が第3閾値範囲内であるか否かに従って、精度劣化があるか否かを判定することは有用である。
【0129】
図12Dは、図5に示された推論実行装置400が行う精度劣化判定の第4具体例を示す概念図である。例えば、推論実行装置400は、入力映像であるデータの第2区間に亘って継続的に尤度が基準よりも低い場合、精度劣化があると判定する。つまり、推論実行装置400は、第2区間に亘って継続的に尤度が基準よりも低いことを精度劣化の予兆として検知する。
【0130】
具体的には、推論実行装置400は、基準である尤度閾値よりも出力層における尤度が低い状態が継続している場合に、精度劣化があると判定してもよい。この尤度閾値は、他のクラスによって相対的に定められてもよい。つまり、推論実行装置400は、評価対象のクラスの尤度と、他のクラスの尤度との差が小さい状態が継続している場合に、精度劣化があると判定してもよい。評価対象のクラスは、尤度が最も高いクラスであってもよい。他のクラスは、尤度が次に高いクラスであってもよい。
【0131】
第2区間は、図12Cの例の第1区間と同様に、データに対する時間的な区間である。第2区間は、10分間等の時間間隔であってもよいし、入力映像であるデータに対して500フレーム等のデータ量で定められてもよい。第2区間の長さは、第1区間の長さと同じであってもよいし、異なっていてもよい。
【0132】
例えば、高い尤度が得られない状態が継続している場合、適切な推論が実行されていない可能性がある。つまり、高い尤度が得られない状態が継続している場合、精度劣化が発生している可能性がある。したがって、第2区間に亘って継続的に尤度が基準よりも低いか否かに従って、精度劣化があるか否かを判定することは有用である。
【0133】
上記の4つの精度劣化判定条件は、組み合わされてもよい。例えば、推論実行装置400は、4つの精度劣化判定条件のうち、1つの精度劣化判定条件が満たされる場合に、推論実行装置400は、精度劣化があると判定してもよい。あるいは、4つの精度劣化判定条件のうち、2つ以上の精度劣化判定条件が満たされる場合に、精度劣化があると判定してもよい。
【0134】
特に、第3具体例と第4具体例とは、組み合わされてもよい。具体的には、推論実行装置400は、判定処理区間に亘って継続的にデータ値が第3閾値範囲内であり、かつ、同じ判定処理区間に亘って継続的に尤度が基準よりも低い場合、精度劣化があると判定してもよい。これにより、精度劣化があるか否かが適切に判定される。
【0135】
また、推論実行装置400は、センサ520から取得される環境状態に従って、精度劣化があるか否かを判定してもよい。例えば、推論実行装置400は、センサ520から取得される環境状態が変化した場合、精度劣化があると判定してもよい。具体的には、推論実行装置400は、センサ520から取得される環境状態が第1環境状態候補に対応する第1区分から第2環境状態候補に対応する第2区分へ変化した場合、精度劣化があると判定してもよい。
【0136】
図13は、図5に示された推論実行装置400において用いられる推論用ニューラルネットワークの切り替えのタイミングを示すタイミング図である。推論実行装置400は、精度劣化があると判定された場合、つまり、精度劣化の予兆が検知された場合、複数の推論用ニューラルネットワーク候補の評価に従って、新たな推論用ニューラルネットワークを選択する。そして、推論実行装置400は、推論用ニューラルネットワークを新たな推論用ニューラルネットワークに切り替える。
【0137】
図13の例において、第3フレーム(フレーム#3)において、精度劣化の予兆が検知され、第4フレーム(フレーム#4)及び第5フレーム(フレーム#5)を用いて、複数の推論用ニューラルネットワーク候補が評価される。そして、推論用ニューラルネットワークは、評価結果に従って複数の推論用ニューラルネットワーク候補の中から選択される新たな推論用ニューラルネットワークに切り替えられる。
【0138】
そして、第6フレーム(フレーム#6)以降において、新たな推論用ニューラルネットワークを用いて推論が実行される。すなわち、第5フレーム(フレーム#5)まで、旧パラメータセットの推論用ニューラルネットワークが用いられ、第6フレーム(フレーム#6)から、新パラメータセットの新たな推論用ニューラルネットワークが用いられる。
【0139】
図14は、図5に示された推論実行装置400の動作の具体例を示すフローチャートである。まず、推論実行装置400は、複数の推論用ニューラルネットワーク候補の中から推論用ニューラルネットワークを選択する(S301)。この時、推論実行装置400は、複数の推論用ニューラルネットワーク候補の中から、平均的な推論用ニューラルネットワーク候補を推論用ニューラルネットワークとして選択してもよい。
【0140】
次に、推論実行装置400は、推論用ニューラルネットワークに入力するための入力映像を取得する(S302)。例えば、推論実行装置400は、入力映像をNフレーム毎に取得する。つまり、推論実行装置400は、入力映像のNフレームを取得した後、次の処理を行う。
【0141】
次に、推論実行装置400は、取得された入力映像に対して、推論用ニューラルネットワークを用いて推論を実行する(S303)。次に、推論実行装置400は、推論の結果を出力する(S304)。
【0142】
また、推論実行装置400は、推論用ニューラルネットワークを評価する(S305)。すなわち、推論実行装置400は、推論用ニューラルネットワークのパラメータセットを評価する。そして、推論実行装置400は、評価の結果を評価値として導出する。推論実行装置400は、入力映像に対して推論用ニューラルネットワークを用いて推論を実行する際に、推論用ニューラルネットワークをモニタリングし、推論用ニューラルネットワークを評価してもよい。
【0143】
そして、推論実行装置400は、評価値が閾値以下であるか否かを判定する(S306)。評価値が閾値以下でないと判定された場合(S306でNo)、つまり、評価値が閾値よりも高いと判定された場合、推論実行装置400は、入力映像の取得(S302)から処理を繰り返す。
【0144】
評価値が閾値以下であると判定された場合(S306でYes)、推論実行装置400は、複数の推論用ニューラルネットワーク候補に対して、評価対象範囲[S,G]を決定する(S307)。
【0145】
つまり、推論実行装置400は、複数のインデックス値によってそれぞれ示される複数の推論用ニューラルネットワーク候補のうちの評価対象の1つ以上の推論用ニューラルネットワーク候補を示すインデックス範囲を決定する。Sは、評価対象の1つ以上の推論用ニューラルネットワーク候補を示すインデックス範囲のうちの最小インデックス値である。Gは、評価対象の1つ以上の推論用ニューラルネットワーク候補を示すインデックス範囲のうちの最大インデックス値である。
【0146】
次に、推論実行装置400は、評価対象の推論用ニューラルネットワーク候補を示すインデックス値であるiにSを代入する(S308)。次に、推論実行装置400は、iによって示される推論用ニューラルネットワーク候補[i]を用いて、入力映像に対して推論を実行する(S309)。
【0147】
また、推論実行装置400は、推論用ニューラルネットワーク候補[i]を評価する(S310)。すなわち、推論実行装置400は、推論用ニューラルネットワーク候補[i]のパラメータセットを評価する。そして、推論実行装置400は、評価の結果を評価値として導出する。推論実行装置400は、入力映像に対して推論用ニューラルネットワーク候補[i]を用いて推論を実行する際に、推論用ニューラルネットワーク候補[i]をモニタリングし、推論用ニューラルネットワーク候補[i]を評価してもよい。
【0148】
次に、推論実行装置400は、iがGに等しいか否かを判定する(S311)。iがGに等しくないと判定された場合(S311でNo)、推論実行装置400は、iに1を加算する(S312)。そして、推論実行装置400は、推論の実行(S309)から、処理を繰り返す。
【0149】
iがGに等しいと判定された場合(S311でYes)、推論実行装置400は、評価対象の1つ以上の推論用ニューラルネットワーク候補に対する1つ以上の評価値に従って、新たな推論用ニューラルネットワークを選択する(S313)。例えば、推論実行装置400は、評価値が最も高い推論用ニューラルネットワーク候補を新たな推論用ニューラルネットワークとして選択する。そして、推論実行装置400は、推論用ニューラルネットワークを新たな推論用ニューラルネットワークに切り替える(S314)。
【0150】
推論実行装置400は、センサ520によって計測された環境状態に従って、複数の推論用ニューラルネットワーク候補の中から、環境状態に対応する推論用ニューラルネットワークを選択してもよい。そのため、学習実行装置300は、複数の環境状態候補に対応する複数の推論用ニューラルネットワーク候補を生成してもよい。
【0151】
図15は、図5に示された学習実行装置300によって生成される推論用ニューラルネットワーク候補と環境状態候補との関係を示す概念図である。図8に示された例と同様に、学習実行装置300は、複数の推論用ニューラルネットワーク候補341~343を生成する。図15に示された例では、さらに、複数の推論用ニューラルネットワーク候補341~343が、複数の環境状態候補にそれぞれ対応付けられる。
【0152】
具体的には、図15の例において、推論用ニューラルネットワーク候補341には、市街地及び人込みの場所と、70klx、日中及び晴れの照度とに対応付けられる。推論用ニューラルネットワーク候補342には、環状線の場所と、9klx、日中及び曇りの照度とに対応付けられる。推論用ニューラルネットワーク候補343には、高速道路の場所と、0.05klx、夜間及び晴れの照度とに対応付けられる。
【0153】
このような対応付けは、複数の変換用データセット331~333に従って定められてもよい。
【0154】
つまり、変換用データセット331は、市街地及び人込みの場所と、70klx、日中及び晴れの照度とに対応するデータセットであってもよい。また、変換用データセット332は、環状線の場所と、9klx、日中及び曇りの照度とに対応するデータセットであってもよい。また、変換用データセット333は、市街地及び人込みの場所と、高速道路の場所と、0.05klx、夜間及び晴れの照度とに対応するデータセットであってもよい。
【0155】
学習実行装置300は、複数の推論用ニューラルネットワーク候補341~343と、複数の環境状態候補と、それらの対応関係とを示す情報を学習実行装置300のメモリ360に格納してもよい。そして、それらを示す情報が、学習実行装置300のメモリ360から推論実行装置400のメモリ460へコピーされてもよい。
【0156】
図16は、図5に示された推論実行装置400が環境状態に従って行う選択処理を示す概念図である。
【0157】
例えば、推論実行装置400は、センサ520から環境状態を取得する。センサ520として、場所の情報を取得するための位置センサ、及び、照度の情報を取得するための照度センサが用いられてもよい。
【0158】
そして、推論実行装置400は、センサ520から取得された環境状態に従って、複数の推論用ニューラルネットワーク候補341~343のうち、環境状態に対応する推論用ニューラルネットワーク候補を新たな推論用ニューラルネットワークとして選択する。そして、推論実行装置400は、推論用ニューラルネットワークを新たな推論用ニューラルネットワークに切り替える。
【0159】
図15及び図16の例において、場所と照度とが用いられているが、場所、照度、又は、これらの両方に代えて、他の情報が用いられてもよいし、これらの両方に加えて他の情報が用いられてもよい。例えば、時間帯が、用いられてもよい。
【0160】
図17は、図5に示された推論実行装置400が行う切り替え処理の具体例を示す概念図である。例えば、推論実行装置400の情報処理回路450は、演算回路470及びメモリコントローラ480を含む。メモリ460には、複数の推論用ニューラルネットワーク候補341~343にそれぞれ対応する複数のパラメータセット361~363が記憶されている。
【0161】
この例において、演算回路470は、フレーム毎に、読み出し対象のパラメータセットを読み出す。具体的には、まず、演算回路470は、メモリコントローラ480を介して、複数のパラメータセット361~363のうち、選択された推論用ニューラルネットワーク候補341に対応するパラメータセット361を読み出し対象のパラメータセットとして読み出す。そして、演算回路470は、パラメータセット361を用いて推論を実行する。
【0162】
メモリコントローラ480は、メモリ460に対するアクセスを仲介する役割を有する。演算回路470は、推論用ニューラルネットワークの切り替えにおいて、読み出し対象のパラメータセットを指し示すポインタを更新する。具体的には、この例において、演算回路470は、パラメータセット361を指し示すポインタから、パラメータセット362を指し示すポインタへ、読み出し対象のパラメータセットを指し示すポインタを更新する。
【0163】
これにより、演算回路470は、メモリコントローラ480を介して、複数のパラメータセット361~363のうち、新たな推論用ニューラルネットワーク候補342に対応するパラメータセット362を読み出し対象のパラメータセットとして読み出す。そして、演算回路470は、パラメータセット362を用いて推論を実行する。
【0164】
これにより、推論実行装置400は、複数のパラメータセット361~363のうち、読み出し対象のパラメータセットを適切に切り替えることができる。つまり、推論実行装置400は、複数の推論用ニューラルネットワーク候補341~343のうち、推論用ニューラルネットワークを適切に切り替えることができる。
【0165】
推論用ニューラルネットワークの切り替えは、精度劣化があると判定されたタイミングで行われてもよいし、環境状態が変化したタイミングで行われてもよいし、一定間隔に対応する周期的なタイミングで行われてもよい。また、推論用ニューラルネットワークは、入力映像などを用いる評価に従って選択されてもよいし、環境状態に従って選択されてもよい。
【0166】
また、ニューラルネットワークは、畳み込みニューラルネットワークに限られず、他のニューラルネットワークであってもよい。また、複数の推論用ニューラルネットワーク候補の数は、3つに限られず、2つであってもよいし、4つ以上であってもよい。
【0167】
以上の通り、例えば、本開示の一態様に係る推論実行方法では、少なくとも1つの情報処理回路(450)が、推論用ニューラルネットワークを用いてデータに対して推論を実行する。
【0168】
具体的には、例えば、学習が行われた1つの学習用ニューラルネットワークから生成された複数の推論用ニューラルネットワーク候補(341~343)の中から推論用ニューラルネットワークが選択される(S201)。そして、データが順次取得され(S202)、推論用ニューラルネットワークを用いて、順次取得されたデータに対して推論が順次実行され(S203)、順次実行された推論の結果が順次出力される(S204)。
【0169】
また、推論実行期間中に、複数の推論用ニューラルネットワーク候補(341~343)の中から新たな推論用ニューラルネットワークが選択される(S206)。ここで、推論実行期間は、データが順次取得され、推論が順次実行され、推論の結果が順次出力される期間である。そして、推論の実行に用いられる推論用ニューラルネットワークが新たな推論用ニューラルネットワークに切り替えられる(S207)。
【0170】
これにより、推論フェーズにおいて、複数の推論用ニューラルネットワーク候補(341~343)の中から適応的に推論用ニューラルネットワークを適用することが可能になる場合がある。したがって、推論フェーズにおける精度劣化を抑制することが可能になる場合がある。
【0171】
また、例えば、複数の推論用ニューラルネットワーク候補(341~343)は、互いに異なるダイナミックレンジと、互いに異なる分解能とを有していてもよい。これにより、ダイナミックレンジ及び分解能が異なる複数の推論用ニューラルネットワーク候補(341~343)の中から適応的に推論用ニューラルネットワークを適用することが可能になる場合がある。したがって、推論フェーズにおける精度劣化を抑制することが可能になる場合がある。
【0172】
また、例えば、複数の推論用ニューラルネットワーク候補(341~343)は、データがセンシングによって取得される環境状態の複数の候補である複数の環境状態候補にそれぞれ対応していてもよい。これにより、複数の環境状態候補にそれぞれ対応する複数の推論用ニューラルネットワーク候補(341~343)の中から適応的に推論用ニューラルネットワークを適用することが可能になる場合がある。したがって、推論フェーズにおける精度劣化を抑制することが可能になる場合がある。
【0173】
また、例えば、環境状態は、場所、照度又は時間帯に関する属性を含んでいてもよい。これにより、複数の場所、複数の照度、又は、複数の時間帯にそれぞれ対応する複数の推論用ニューラルネットワーク候補(341~343)の中から適応的に推論用ニューラルネットワークを適用することが可能になる場合がある。したがって、推論フェーズにおける精度劣化を抑制することが可能になる場合がある。
【0174】
また、例えば、推論実行期間中に、順次取得されたデータを用いて、複数の推論用ニューラルネットワーク候補(341~343)のうち1つ以上の推論用ニューラルネットワーク候補のそれぞれが評価されてもよい。そして、評価結果に従って、1つ以上の推論用ニューラルネットワーク候補の中から新たな推論用ニューラルネットワークが選択されてもよい。
【0175】
これにより、複数の推論用ニューラルネットワーク候補(341~343)の中から評価結果に従って推論用ニューラルネットワークを適切に選択することが可能になる場合がある。したがって、推論フェーズにおける精度劣化を抑制することが可能になる場合がある。
【0176】
また、例えば、推論におけるデータ値を許容範囲に含むダイナミックレンジを有する少なくとも1つの推論用ニューラルネットワーク候補の中で、最も高い分解能を有するニューラルネットワークが新たな推論用ニューラルネットワークとして選択せれてもよい。
【0177】
これにより、複数の推論用ニューラルネットワーク候補(341~343)の中から、データ値を適切に表現することが可能な推論用ニューラルネットワークを選択することが可能になる場合がある。したがって、推論フェーズにおける精度劣化を抑制することが可能になる場合がある。
【0178】
また、例えば、環境状態を計測する計測器(520)から環境状態が取得されてもよい。そして、環境状態に従って、複数の環境状態候補にそれぞれ対応する複数の推論用ニューラルネットワーク候補(341~343)の中から、環境状態に対応するニューラルネットワークが新たな推論用ニューラルネットワークとして選択されてもよい。
【0179】
これにより、複数の推論用ニューラルネットワーク候補(341~343)の中から環境状態に従って推論用ニューラルネットワークを適切に選択することが可能になる場合がある。したがって、推論フェーズにおける精度劣化を抑制することが可能になる場合がある。
【0180】
また、例えば、推論実行期間中に、推論の精度劣化の有無が判定されてもよい。そして、精度劣化があると判定された場合に、新たな推論用ニューラルネットワークが選択されてもよい。そして、推論用ニューラルネットワークが新たな推論用ニューラルネットワークに切り替えられてもよい。
【0181】
これにより、推論の精度劣化に従って、推論用ニューラルネットワークを新たな推論用ニューラルネットワークに適切に切り替えることが可能になる場合がある。したがって、推論フェーズにおける精度劣化を抑制することが可能になる場合がある。
【0182】
また、例えば、推論実行期間中に、推論におけるデータ値、及び、推論の結果に関する尤度のうち、少なくとも一方に従って、精度劣化の有無が判定されてもよい。これにより、データ値又は尤度に従って、精度劣化の有無を適切に判定することが可能になる場合がある。したがって、推論の精度劣化に従って、推論用ニューラルネットワークを新たな推論用ニューラルネットワークに適切に切り替えることが可能になる場合がある。
【0183】
また、例えば、データ値が第1範囲内でない場合に、精度劣化があると判定されてもよい。これにより、データ値がダイナミックレンジ等の範囲を超える場合に、精度劣化があると適切に判定することが可能になる場合がある。したがって、推論の精度劣化に従って、推論用ニューラルネットワークを新たな推論用ニューラルネットワークに適切に切り替えることが可能になる場合がある。
【0184】
また、例えば、データ値が予測されてもよい。そして、予測されたデータ値が第2範囲内でない場合に、精度劣化があると判定されてもよい。これにより、予測されたデータ値がダイナミックレンジ等の範囲を超える場合に、精度劣化があると適切に判定することが可能になる場合がある。したがって、推論の精度劣化に従って、推論用ニューラルネットワークを新たな推論用ニューラルネットワークに適切に切り替えることが可能になる場合がある。
【0185】
また、例えば、データの第1区間に亘って継続的にデータ値が第3範囲内である場合に、精度劣化があると判定されてもよい。これにより、ダイナミックレンジが大きく、継続してデータ値が範囲内に含まれる場合に、精度劣化があると適切に判定することが可能になる場合がある。したがって、推論の精度劣化に従って、推論用ニューラルネットワークを新たな推論用ニューラルネットワークに適切に切り替えることが可能になる場合がある。
【0186】
また、例えば、データの第2区間に亘って継続的に尤度が基準よりも低い場合に、精度劣化があると判定されてもよい。これにより、継続して適切な尤度が得られない場合に、精度劣化があると適切に判定することが可能になる場合がある。したがって、推論の精度劣化に従って、推論用ニューラルネットワークを新たな推論用ニューラルネットワークに適切に切り替えることが可能になる場合がある。
【0187】
また、例えば、推論実行期間中に、周期的に、新たな推論用ニューラルネットワークが選択されてもよい。そして、推論用ニューラルネットワークが新たな推論用ニューラルネットワークに切り替えられてもよい。これにより、周期的に、推論用ニューラルネットワークを新たな推論用ニューラルネットワークに切り替えることが可能になる場合がある。したがって、推論フェーズにおける精度劣化を抑制することが可能になる場合がある。
【0188】
また、例えば、さらに、データがセンシングによって取得される環境状態を計測する計測器(520)から環境状態が取得されてもよい。そして、推論実行期間中に、環境状態が変化した場合に、新たな推論用ニューラルネットワークが選択されてもよい。そして、推論用ニューラルネットワークが新たな推論用ニューラルネットワークに切り替えられてもよい。
【0189】
これにより、環境状態の変化に従って、推論用ニューラルネットワークを新たな推論用ニューラルネットワークに切り替えることが可能になる場合がある。したがって、推論フェーズにおける精度劣化を抑制することが可能になる場合がある。
【0190】
また、例えば、1つの学習用ニューラルネットワークから複数の推論用ニューラルネットワーク候補(341~343)が生成されてもよい。
【0191】
これにより、学習が行われた1つの学習用ニューラルネットワークから、複数の推論用ニューラルネットワーク候補(341~343)を適切に取得することが可能になる場合がある。したがって、複数の推論用ニューラルネットワーク候補(341~343)の中から適応的に推論用ニューラルネットワークを適用することが可能になる場合があり、推論フェーズにおける精度劣化を抑制することが可能になる場合がある。
【0192】
また、例えば、複数のデータセットが取得されてもよい。そして、1つの学習用ニューラルネットワークから、複数のデータセットに従って、複数のデータセットにそれぞれ対応する複数の推論用ニューラルネットワーク候補(341~343)が生成されてもよい。
【0193】
これにより、複数のデータセットに従って、複数の推論用ニューラルネットワーク候補(341~343)を適切に生成することが可能になる場合がある。したがって、適切に生成された複数の推論用ニューラルネットワーク候補(341~343)の中から適応的に推論用ニューラルネットワークを適用することが可能になる場合があり、推論フェーズにおける精度劣化を抑制することが可能になる場合がある。
【0194】
また、本開示の一態様に係るプログラムは、推論実行方法を少なくとも1つの情報処理回路(450)に実行させてもよい。これにより、プログラムに従って、複数の推論用ニューラルネットワーク候補(341~343)の中から適応的に推論用ニューラルネットワークを適用することが可能になる場合がある。したがって、プログラムによって、推論フェーズにおける精度劣化を抑制することが可能になる場合がある。
【0195】
また、例えば、本開示の一態様に係る推論実行装置(400)は、推論用ニューラルネットワークを用いてデータに対して推論を実行してもよい。また、推論実行装置(400)は、情報処理回路(450)と、メモリ(460)とを備えていてもよい。また、メモリ(460)には、学習が行われた1つの学習用ニューラルネットワークから生成された複数の推論用ニューラルネットワーク候補(341~343)が記録されていてもよい。
【0196】
また、情報処理回路(450)は、複数の推論用ニューラルネットワーク候補(341~343)の中から推論用ニューラルネットワークを選択してもよい。そして、情報処理回路(450)は、データを順次取得し、推論用ニューラルネットワークを用いて、順次取得されたデータに対して推論を順次実行し、順次実行された推論の結果を順次出力してもよい。
【0197】
また、情報処理回路(450)は、推論実行期間中に、複数の推論用ニューラルネットワーク候補(341~343)の中から新たな推論用ニューラルネットワークを選択してもよい。そして、情報処理回路(450)は、推論の実行に用いられる推論用ニューラルネットワークを新たな推論用ニューラルネットワークに切り替えてもよい。
【0198】
これにより、推論実行装置(400)は、推論フェーズにおいて、複数の推論用ニューラルネットワーク候補(341~343)の中から適応的に推論用ニューラルネットワークを適用することができる可能性がある。したがって、推論実行装置(400)は、推論フェーズにおける精度劣化を抑制することができる可能性がある。
【0199】
また、例えば、推論におけるデータ値は、推論の途中の段階における中間データの値であってもよい。より具体的には、推論におけるデータ値は、推論用ニューラルネットワーク又はその候補を用いて推論が実行される場合に、推論用ニューラルネットワーク又はその候補の中間層から出力される中間出力データの値であってもよい。推論におけるデータ値は、実行値と表現されてもよい。また、推論におけるデータ値は、推論における中間データの最小値又は最大値であってもよい。
【0200】
以上、学習実行装置及び推論実行装置の態様を実施の形態に従って説明したが、学習実行装置及び推論実行装置の態様は、実施の形態に限定されない。実施の形態に対して当業者が思いつく変形が施されてもよいし、実施の形態における複数の構成要素が任意に組み合わされてもよい。
【0201】
例えば、実施の形態において特定の構成要素によって実行される処理を特定の構成要素の代わりに別の構成要素が実行してもよい。また、複数の処理の順序が変更されてもよいし、複数の処理が並行して実行されてもよい。また、説明に用いられた第1及び第2等の序数は、適宜、付け替えられてもよい。また、構成要素などに対して、序数が新たに与えられてもよいし、取り除かれてもよい。
【0202】
また、学習実行装置及び推論実行装置の各構成要素が行うステップを含む学習実行方法又は推論実行方法が任意の装置又はシステムによって実行されてもよい。例えば、学習実行方法又は推論実行方法の一部又は全部が、プロセッサ、メモリ及び入出力回路等を備えるコンピュータ(例えば情報処理回路)によって実行されてもよい。その際、コンピュータに学習実行方法又は推論実行方法を実行させるためのプログラムがコンピュータによって実行されることにより、学習実行方法又は推論実行方法が実行されてもよい。
【0203】
また、非一時的なコンピュータ読み取り可能な記録媒体に、上記のプログラムが記録されていてもよい。
【0204】
また、学習実行装置及び推論実行装置の各構成要素は、専用のハードウェアで構成されてもよいし、上記のプログラム等を実行する汎用のハードウェアで構成されてもよいし、これらの組み合わせで構成されてもよい。また、汎用のハードウェアは、プログラムが記録されたメモリ、及び、メモリからプログラムを読み出して実行する汎用のプロセッサ等で構成されてもよい。ここで、メモリは、半導体メモリ又はハードディスク等でもよいし、汎用のプロセッサは、CPU等でもよい。
【0205】
また、専用のハードウェアが、メモリ及び専用のプロセッサ等で構成されてもよい。例えば、専用のプロセッサが、データを記録するためのメモリを参照して、上記の学習実行方法又は推論実行方法を実行してもよい。
【0206】
また、学習実行装置及び推論実行装置の各構成要素は、電気回路であってもよい。これらの電気回路は、全体として1つの電気回路を構成してもよいし、それぞれ別々の電気回路であってもよい。また、これらの電気回路は、専用のハードウェアに対応していてもよいし、上記のプログラム等を実行する汎用のハードウェアに対応していてもよい。
【0207】
また、学習実行装置、推論実行装置、学習実行方法及び推論実行方法は、それぞれ、単に、学習装置、推論装置、学習方法及び推論方法とも表現され得る。また、学習実行装置及び推論実行装置のそれぞれは、分散して配置される複数の装置で構成されていてもよい。また、推論実行方法は、学習実行装置によって行われる学習実行方法を含んでいてもよい。また、学習実行装置及び推論実行装置を備える学習推論システムが、学習実行方法及び推論実行方法を含む学習推論方法を実行してもよい。
【産業上の利用可能性】
【0208】
本開示は、推論用ニューラルネットワークを用いてデータに対して推論を実行する推論実行方法に利用可能であり、物体の検知を行う検知システム、及び、物体の識別を行う識別システム等に適用可能である。
【符号の説明】
【0209】
100、300 学習実行装置
110、310 学習用ニューラルネットワーク(学習用NN)
120、320 訓練用データセット(訓練用DS)
130、331、332、333 変換用データセット(変換用DS)
140、340 推論用ニューラルネットワーク(推論用NN)
200、400 推論実行装置
341、342、343 推論用ニューラルネットワーク候補(候補)
350、450 情報処理回路
360、460 メモリ
361、362、363 パラメータセット
370 パラメータ設定情報
470 演算回路
480 メモリコントローラ
510、520 センサ
図1
図2A
図2B
図3A
図3B
図4
図5
図6
図7
図8
図9
図10
図11
図12A
図12B
図12C
図12D
図13
図14
図15
図16
図17