(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-05
(45)【発行日】2024-11-13
(54)【発明の名称】推論装置、モデル生成装置、推論方法、及び推論プログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20241106BHJP
G06N 3/02 20060101ALI20241106BHJP
【FI】
G06N20/00
G06N3/02
(21)【出願番号】P 2021036254
(22)【出願日】2021-03-08
【審査請求日】2024-01-16
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】100124039
【氏名又は名称】立花 顕治
(74)【代理人】
【識別番号】100170542
【氏名又は名称】桝田 剛
(72)【発明者】
【氏名】長江 成典
【審査官】真木 健彦
(56)【参考文献】
【文献】特開2020-155010(JP,A)
【文献】特開2018-109947(JP,A)
【文献】米国特許出願公開第2019/0303750(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
G06N 3/02
G05B 23/02
(57)【特許請求の範囲】
【請求項1】
対象データを取得するデータ取得部と、
機械学習により訓練済みの推論モデルを使用して、取得された前記対象データに対して推論タスクを遂行する推論部と、
前記推論タスクを遂行した結果に関する情報を出力する出力部と、
を備え、
前記推論モデルの複数のパラメータの少なくとも一部は、行列で表現され、
前記行列は、第1部分行列及び第2部分行列を含み、
前記第1部分行列及び前記第2部分行列の行及び列それぞれの要素の数は同一であり、
前記第2部分行列の各要素の値は、前記第1部分行列及び対角行列の積と一致するように調節されている、
推論装置。
【請求項2】
前記行列の少なくとも一部において、
行及び列それぞれの要素の数が同一である部分行列が行にM個ずつ及び列にN個ずつ並ぶように、前記行列の少なくとも一部は、M×N個の部分行列に分割され、
各列において、いずれかの行に配置される部分行列が、当該いずれかの行を除く他の行に配置される各部分行列に対する前記第1部分行列を構成し、かつ
前記他の行に配置される各部分行列が、前記第2部分行列を構成する、
スケーリング関係が成立している、
請求項1に記載の推論装置。
【請求項3】
前記M及び前記Nは、同一の素数Sである、
請求項2に記載の推論装置。
【請求項4】
前記第1部分行列を構成する部分行列内での前記スケーリング関係の成立が繰り返されることで、前記行列の少なくとも一部内では、前記スケーリング関係が再帰的に成立している、
請求項2又は3に記載の推論装置。
【請求項5】
前記M及び前記Nは、同一の素数Sであり、
前記行列の少なくとも一部は、要素の数が素数Sのべき乗である正方行列により構成される、
請求項4に記載の推論装置。
【請求項6】
前記M及び前記Nはそれぞれ、2である、
請求項2から5のいずれか1項に記載の推論装置。
【請求項7】
前記推論モデルは、ニューラルネットワークにより構成され、
前記行列の各要素は、前記ニューラルネットワークにおける各ニューロン間の結合の重みに対応するように構成される、
請求項1から6のいずれか1項に記載の推論装置。
【請求項8】
前記対象データは、製品の写る画像データにより構成され、
前記推論タスクは、前記画像データに写る製品に欠陥があるか否かを判定することである、
請求項1から7のいずれか1項に記載の推論装置。
【請求項9】
訓練データ、及び前記訓練データに対する推論タスクの正解を示す正解ラベルの組み合わせによりそれぞれ構成される複数の学習データセットを取得するデータ取得部と、
前記複数の学習データセットを使用して、推論モデルの機械学習を実施する学習処理部であって、
前記推論モデルの複数のパラメータの少なくとも一部は、行列で表現され、
前記行列は、第1部分行列及び第2部分行列を含み、
前記第1部分行列及び前記第2部分行列の行及び列それぞれの要素の数は同一であり、
前記機械学習は、前記各学習データセットについて、前記推論モデルを使用して前記訓練データに対して前記推論タスクを遂行した結果が前記正解ラベルにより示される正解に適合すると共に、前記第2部分行列の各要素の値が、前記第1部分行列及び対角行列の積と一致するように調節されるように前記推論モデルを訓練することにより構成される、
学習処理部と、
を備える、
モデル生成装置。
【請求項10】
前記推論モデルを訓練することは、前記行列の少なくとも一部において、行及び列それぞれの要素の数が同一である部分行列が行にM個ずつ及び列にN個ずつ並ぶように、前記行列の少なくとも一部は、M×N個の部分行列に分割され、各列において、いずれかの行に配置される部分行列が、当該いずれかの行を除く他の行に配置される各部分行列に対する前記第1部分行列を構成し、かつ前記他の行に配置される各部分行列が、前記第2部分行列を構成する、スケーリング関係が成立するように前記行列の各要素の値を調節することを含む、
請求項9に記載のモデル生成装置。
【請求項11】
前記推論モデルは、ニューラルネットワークにより構成され、
前記行列の各要素は、前記ニューラルネットワークにおける各ニューロン間の結合の重みに対応するように構成され、
前記推論モデルを訓練することは、前記第1部分行列を構成する部分行列内での前記スケーリング関係の成立が、各部分行列が1×1行列になるまで繰り返されることで、前記行列の少なくとも一部内では、前記スケーリング関係が再帰的に成立するように前記行列の少なくとも一部の各要素の値を調節することを含み、
前記行列の少なくとも一部の各要素の値を調節することは、
前記スケーリング関係が再帰的に成立するように前記行列の少なくとも一部の各要素の初期値を与えること、
順伝播のフェーズにおいて、前記各学習データセットの訓練データに対して推論タスクを遂行した結果を導出すること、並びに
逆伝播のフェーズにおいて、導出された推論タスクの遂行結果及び対応する正解ラベルにより示される正解の間の誤差の勾配を逆伝播することにより、前記行列の少なくとも一部の各要素及び前記対角行列の各要素の値を調節すること、
により構成され、
前記順伝播のフェーズの演算は、
初期の第1部分行列を構成する前記1×1行列及び入力ベクトルの積を計算する第1ステップ、
得られた前記初期の第1部分行列の積の結果及び前記対角行列の対応する要素の積を計算することで、初期の第2部分行列を構成する前記1×1行列及び入力ベクトルの積を導出する第2ステップ、
対象の段階で得られた前記第1部分行列の積の結果及び前記第2部分行列の積の結果から次の段階の第1部分行列を構成する部分行列及び入力ベクトルの積を導出する第3ステップ、
得られた次の段階の前記第1部分行列の積の結果及び前記対角行列の対応する要素の積を計算することで、次の段階の前記第2部分行列を構成する部分行列及び入力ベクトルの積を導出する第4ステップ、並びに、
前記対象の段階で得られた前記第1部分行列の積の結果及び前記第2部分行列の積の結果それぞれの初期値として、前記第1ステップ及び前記第2ステップそれぞれで得られた前記初期の第1部分行列の積の結果及び前記初期の第2部分行列の積の結果それぞれを代入し、かつ前記第3ステップ及び前記第4ステップを再帰的に繰り返すことで、前記行列の少なくとも一部及び入力ベクトルの積を導出する第5ステップ、
により構成され、
前記逆伝播のフェーズの演算は、
前記行列の少なくとも一部及び入力ベクトルの積に対する前記誤差の勾配を取得する第1ステップ、
取得された前記誤差の勾配、並びに前記順伝播のフェーズの再帰的繰り返しの最終の段階で前記第1部分行列を構成する部分行列及び入力ベクトルの積の値に基づいて、当該最終の段階で使用される対角行列の各要素についての誤差の勾配を導出する第2ステップ、
取得された前記誤差の勾配及び前記最終の段階で使用される対角行列の各要素の値に基づいて、前記最終の段階で前記第1部分行列を構成する部分行列及び入力ベクトルの積についての誤差の勾配を導出する第3ステップ、
取得された前記誤差の勾配、前記順伝播のフェーズの再帰的繰り返しの対象の段階で前記第1部分行列を構成する部分行列及び入力ベクトルの積の値、並びに前記順伝播のフェーズの再帰的繰り返しにおいて当該対象の段階の次の段階で前記第1部分行列を構成する部分行列及び入力ベクトルの積についての誤差の勾配に基づいて、当該対象の段階で使用される対角行列の各要素についての誤差の勾配を導出する第4ステップ、
取得された前記誤差の勾配、前記対象の段階で使用される対角行列の各要素の値、並びに前記次の段階で前記第1部分行列を構成する部分行列及び入力ベクトルの積についての誤差の勾配に基づいて、前記対象の段階で前記第1部分行列を構成する部分行列及び入力ベクトルの積についての誤差の勾配を導出する第5ステップ、
前記次の段階で前記第1部分行列を構成する部分行列及び入力ベクトルの積についての誤差の勾配の初期値として、前記逆伝播のフェーズの前記第3ステップで導出される、前記最終の段階で前記第1部分行列を構成する部分行列及び入力ベクトルの積についての誤差の勾配を代入し、かつ前記順伝播のフェーズの再帰的繰り返しの初期の段階で使用される対角行列の各要素についての誤差の勾配を導出するまで、前記逆伝播のフェーズの前記第4ステップ及び前記第5ステップを再帰的に繰り返すことで、各段階で使用される対角行列の各要素についての誤差の勾配を導出する第6ステップ、
前記入力ベクトル、並びに前記第6ステップにより導出される、前記初期の段階で前記第1部分行列を構成する部分行列及び入力ベクトルの積についての誤差の勾配に基づいて、前記初期の第1部分行列を構成する前記1×1行列の要素についての誤差の勾配を導出する第7ステップ、並びに
前記各段階で使用される対角行列の各要素及び前記初期の第1部分行列を構成する前記1×1行列の要素それぞれについて導出された前記誤差の勾配に基づいて、前記各段階で使用される対角行列の各要素及び前記初期の第1部分行列を構成する前記1×1行列の要素それぞれの値を調節する第8ステップ、
により構成される、
請求項
10に記載のモデル生成装置。
【請求項12】
コンピュータが、
対象データを取得するステップと、
機械学習により訓練済みの推論モデルを使用して、取得された前記対象データに対して推論タスクを遂行するステップと、
前記推論タスクを遂行した結果に関する情報を出力するステップと、
を実行する推論方法であって、
前記推論モデルの複数のパラメータの少なくとも一部は、行列で表現され、
前記行列は、第1部分行列及び第2部分行列を含み、
前記第1部分行列及び前記第2部分行列の行及び列それぞれの要素の数は同一であり、
前記第2部分行列の各要素の値は、前記第1部分行列及び対角行列の積と一致するように調節されている、
推論方法。
【請求項13】
コンピュータに、
対象データを取得するステップと、
機械学習により訓練済みの推論モデルを使用して、取得された前記対象データに対して推論タスクを遂行するステップと、
前記推論タスクを遂行した結果に関する情報を出力するステップと、
を実行させるための推論プログラムであって、
前記推論モデルの複数のパラメータの少なくとも一部は、行列で表現され、
前記行列は、第1部分行列及び第2部分行列を含み、
前記第1部分行列及び前記第2部分行列の行及び列それぞれの要素の数は同一であり、
前記第2部分行列の各要素の値は、前記第1部分行列及び対角行列の積と一致するように調節されている、
推論プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、推論装置、モデル生成装置、推論方法、及び推論プログラムに関する。
【背景技術】
【0002】
従来、製造ライン等の製品を製造する場面において、製造される製品を撮影装置により撮影し、得られた画像データを解析することで、製品の良否を検査する技術の開発が進んでいる。例えば、特許文献1では、訓練済みの第1ニューラルネットワークを使用して、画像に写る対象物が正常であるか異常であるかを判定し、異常であると判定した場合に、訓練済みの第2ニューラルネットワークを使用して、その異常の種別を分類する検査装置が提案されている。
【0003】
訓練済みのニューラルネットワークを利用する方法によれば、画像処理の内容を人手により詳細に規定しなくても、訓練済みのニューラルネットワークの演算結果に基づいて製品の外観検査を実施することができる。そのため、外観検査の情報処理を簡略化し、検査プログラムを作成する手間を低減することができる。この作用効果は、ニューラルネットワークを利用するケースに限って得られる訳ではない。ニューラルネットワーク以外の訓練済みの機械学習モデル(例えば、主成分分析により得られる主成分ベクトル、サポートベクタマシン等)を利用する方法でも、外観検査の情報処理を簡略化し、検査プログラムを作成する手間を低減することができる。
【0004】
加えて、訓練済みの機械学習モデルにより遂行可能な推論タスクは、外観検査及び画像に対する推論に限られる訳ではない。所望の情報処理に対応した学習データを機械学習に用いることにより、所定種類のデータに対して所望の推論タスクを遂行する能力を獲得した訓練済みの機械学習モデルを生成することができる。したがって、訓練済みの機械学習モデルを利用する方法によれば、所定種類のデータに対して所望の推論タスクを遂行する情報処理を簡略化し、推論プログラムを作成する手間を低減することができる。
【0005】
一般的に、機械学習モデルは、推論タスクの演算に使用されるパラメータを有する。パラメータの値は、所望の入力に対して所望の出力を得られるように(すなわち、所望の推論タスクを遂行する能力を獲得するように)機械学習により調節される。機械学習モデルにニューラルネットワークを採用する場合、このパラメータは、例えば、各ニューロン間の結合の重み等である。推論タスクの遂行精度を高めようとするほど、機械学習モデルを構成するパラメータの数が増加する傾向にある。特に、機械学習モデルにニューラルネットワークを採用するケースでは、推論タスクの遂行精度を高めるために、ニューラルネットワークの階層を深める傾向にあり、ニューラルネットワークの階層が深くなればなるほど、ニューラルネットワークを構成するパラメータの数が増加してしまう。
【0006】
当然のことながら、機械学習モデルを構成するパラメータの数が増加するほど、推論タスクの遂行精度の向上を見込むことができるが、機械学習モデルの演算処理にかかる計算量が増加してしまう。そのため、機械学習の場面及び推論タスクを遂行する場面の両方で、例えば、計算時間が遅延する、メモリを圧迫する、計算に時間がかかることで消費電力が高くなる、高価なコンピュータでなければ演算を完遂することができない等の計算量の増加に伴う諸問題が発生してしまう(すなわち、計算資源に負担がかかってしまう)。
【0007】
そこで、特許文献2及び特許文献3では、分散処理により、機械学習モデルの演算処理を高速化する方法が提案されている。具体的に、特許文献2では、複数の学習装置及び分散深層学習装置の間で量子化勾配を交換することにより、深層学習を分散して行う方法が提案されている。また、特許文献3では、1方向に通信可能なリング型の通信ネットワークを介して複数の学習ノードを接続し、各学習ノード間での協調処理により深層学習を分散して行う方法が提案されている。その他、非特許文献1では、入力データ及びパラメータの積の計算を高速フーリエ変換により別表現の計算式に変換することで、畳み込み演算における計算回数を低減する方法が提案されている。
【先行技術文献】
【特許文献】
【0008】
【文献】特開2012-026982号公報
【文献】特開2018-120441号公報
【文献】特開2020-003848号公報
【非特許文献】
【0009】
【文献】Tyler Highlander, Andres Rodriguez, "Very Efficient Training of Convolutional Neural Networks using Fast Fourier Transform and Overlap-and-Add", arXiv:1601.06815 [cs.NE], 25 Jan 2016.
【発明の概要】
【発明が解決しようとする課題】
【0010】
本件発明者は、上記従来の方法には、次のような問題点があることを見出した。すなわち、分散処理のみに依拠する方法では、複数のコンピュータを繋ぐことで、1台1台のコンピュータの負担を低減し、かつ演算処理を高速化することはできるが、機械学習モデルの演算処理にかかる計算量を低減することは困難である。むしろ、計算過程の情報を各コンピュータ間で通信する分だけ、機械学習モデルの演算処理にかかる計算量は増加してしまい、全体でみた場合に計算資源にかかる負担が増加してしまう。また、非特許文献1のような、高速フーリエ変換を用いる方法では、畳み込み演算を高速化することは可能であるが、その他の演算に適用することは困難である。加えて、機械学習モデルのパラメータの情報と共に、高速フーリエ変換により得られた別表現の情報を保持する分だけ、計算資源にかかる負担が増加してしまう(特に、メモリが圧迫されてしまう)。したがって、従来の方法では、機械学習モデルの演算処理にかかる計算量を低減し、計算資源にかかる負担を抑えることが困難である。
【0011】
本発明は、一側面では、このような事情を鑑みてなされたものであり、その目的は、機械学習モデルの演算処理にかかる計算量を低減し、計算資源にかかる負担を抑えるための技術を提供することである。
【課題を解決するための手段】
【0012】
本発明は、上述した課題を解決するために、以下の構成を採用する。
【0013】
すなわち、本発明の一側面に係る推論装置は、対象データを取得するデータ取得部と、機械学習により訓練済みの推論モデルを使用して、取得された前記対象データに対して推論タスクを遂行する推論部と、前記推論タスクを遂行した結果に関する情報を出力する出力部と、を備える。前記推論モデルの複数のパラメータの少なくとも一部は、行列で表現される。前記行列は、第1部分行列及び第2部分行列を含む。前記第1部分行列及び前記第2部分行列の行及び列それぞれの要素の数は同一であり、前記第2部分行列の各要素の値は、前記第1部分行列及び対角行列の積と一致するように調節されている。
【0014】
当該構成では、推論モデルの複数のパラメータの少なくとも一部が、第1部分行列及び第2部分行列を含む行列により表現可能であり、第2部分行列の各要素の値が、第1部分行列及び対角行列の積と一致するように調節されている。そのため、第2部分行列の情報を保持していなくても、第1部分行列の演算結果を使い回して、第2部分行列の演算結果を得ることができる。したがって、当該構成によれば、推論モデルを構成するパラメータの数を実質的に低減することができる。具体的には、第2部分行列の要素数と対角行列の0以外の要素数との差分だけパラメータの数を低減することができる。これにより、推論モデルの演算処理にかかる計算量を低減し、計算資源にかかる負担を抑えることができる。
【0015】
上記一側面に係る推論装置では、前記行列の少なくとも一部において、行及び列それぞれの要素の数が同一である部分行列が行にM個ずつ及び列にN個ずつ並ぶように、前記行列の少なくとも一部は、M×N個の部分行列に分割され、各列において、いずれかの行に配置される部分行列が、当該いずれかの行を除く他の行に配置される各部分行列に対する前記第1部分行列を構成し、かつ前記他の行に配置される各部分行列が、前記第2部分行列を構成する、スケーリング関係が成立していてもよい。当該構成によれば、スケーリング関係の成立により推論モデルのパラメータ数を効果的に削減することができる。これにより、推論モデルの演算処理にかかる計算量を効果的に低減し、計算資源にかかる負担を抑えることができる。
【0016】
上記一側面に係る推論装置において、前記M及び前記Nは、同一の素数Sであってよい。当該構成によれば、上記スケーリング関係の成立範囲を容易に調節することができる。
【0017】
上記一側面に係る推論装置において、前記第1部分行列を構成する部分行列内での前記スケーリング関係の成立が繰り返されることで、前記行列の少なくとも一部内では、前記スケーリング関係が再帰的に成立していてもよい。当該構成によれば、スケーリング関係が再帰的に成立していることで、最終的に(すなわち、一番外側で)成立しているスケーリング関係における第1部分列内でも、パラメータ数の低減を図ることができる。よって、推論モデルの演算処理にかかる計算量を更に効果的に低減し、計算資源にかかる負担を更に抑えることができる。なお、スケーリング関係の成立は、各部分行列が任意サイズの行列(例えば、1×1行列)になるまで繰り返されてよい。
【0018】
上記一側面に係る推論装置において、前記M及び前記Nは、同一の素数Sであってよく、前記行列の少なくとも一部は、要素の数が素数Sのべき乗である正方行列により構成されてよい。当該構成によれば、上記スケーリング関係の成立範囲を容易に調節することができる。
【0019】
上記一側面に係る推論装置において、前記M及び前記Nはそれぞれ、2であってよい。当該構成によれば、上記スケーリング関係の成立範囲を容易に調節することができる。
【0020】
上記一側面に係る推論装置において、前記推論モデルは、ニューラルネットワークにより構成されてよく、前記行列の各要素は、前記ニューラルネットワークにおける各ニューロン間の結合の重みに対応するように構成されてよい。当該構成によれば、推論モデル(機械学習モデル)としてニューラルネットワークを採用する場面において、推論モデルの演算処理にかかる計算量を低減し、計算資源にかかる負担を抑えることができる。
【0021】
上記一側面に係る推論装置において、前記対象データは、製品の写る画像データにより構成されてよく、前記推論タスクは、前記画像データに写る製品に欠陥があるか否かを判定することであってよい。当該構成によれば、訓練済みの推論モデルを使用して、製品の外観検査を行う場面において、推論モデルの演算処理にかかる計算量を低減し、計算資源にかかる負担を抑えることができる。
【0022】
また、本発明の形態は、上記推論装置に限られなくてよい。本発明の一側面は、上記いずれかの形態に係る推論装置で使用される訓練済みの推論モデルを生成するモデル生成装置であってもよい。
【0023】
例えば、本発明の一側面に係るモデル生成装置は、訓練データ、及び前記訓練データに対する推論タスクの正解を示す正解ラベルの組み合わせによりそれぞれ構成される複数の学習データセットを取得するデータ取得部と、前記複数の学習データセットを使用して、推論モデルの機械学習を実施する学習処理部と、を備える。前記推論モデルの複数のパラメータの少なくとも一部は、行列で表現される。前記行列は、第1部分行列及び第2部分行列を含む。前記第1部分行列及び前記第2部分行列の行及び列それぞれの要素の数は同一である。そして、前記機械学習は、前記各学習データセットについて、前記推論モデルを使用して前記訓練データに対して前記推論タスクを遂行した結果が前記正解ラベルにより示される正解に適合すると共に、前記第2部分行列の各要素の値が、前記第1部分行列及び対角行列の積と一致するように調節されるように前記推論モデルを訓練することにより構成される。当該構成によれば、推論モデルの演算処理にかかる計算量を低減し、訓練済みの推論モデルを生成する際の計算資源にかかる負担を抑えることができる。
【0024】
上記一側面に係るモデル生成装置において、前記推論モデルを訓練することは、前記行列の少なくとも一部において、行及び列それぞれの要素の数が同一である部分行列が行にM個ずつ及び列にN個ずつ並ぶように、前記行列の少なくとも一部は、M×N個の部分行列に分割され、各列において、いずれかの行に配置される部分行列が、当該いずれかの行を除く他の行に配置される各部分行列に対する前記第1部分行列を構成し、かつ前記他の行に配置される各部分行列が、前記第2部分行列を構成する、スケーリング関係が成立するように前記行列の各要素の値を調節することを含んでよい。当該構成によれば、スケーリング関係が成立している分だけ、推論モデルの演算処理にかかる計算量を低減し、計算資源にかかる負担を抑えることができる。また、このスケーリング関係の成立に基づいて、推論モデルの演算処理にかかる計算量を低減する量を管理することができる。なお、スケーリング関係の成立は、各部分行列が任意サイズの行列(例えば、1×1行列)になるまで、第1部分行列を構成する部分行列内で繰り返されてよい。
【0025】
上記一側面に係るモデル生成装置において、前記推論モデルは、ニューラルネットワークにより構成されてよい。前記行列の各要素は、前記ニューラルネットワークにおける各ニューロン間の結合の重みに対応するように構成されてよい。前記推論モデルを訓練することは、前記第1部分行列を構成する部分行列内での前記スケーリング関係の成立が、各部分行列が1×1行列になるまで繰り返されることで、前記行列の少なくとも一部内では、前記スケーリング関係が再帰的に成立するように前記行列の少なくとも一部の各要素の値を調節することを含んでよい。前記行列の少なくとも一部の各要素の値を調節することは、前記スケーリング関係が再帰的に成立するように前記行列の少なくとも一部の各要素の初期値を与えること、順伝播のフェーズにおいて、前記各学習データセットの訓練データに対して推論タスクを遂行した結果を導出すること、並びに逆伝播のフェーズにおいて、導出された推論タスクの遂行結果及び対応する正解ラベルにより示される正解の間の誤差の勾配を逆伝播することにより、前記行列の少なくとも一部の各要素及び前記対角行列の各要素の値を調節すること、により構成されてよい。前記順伝播のフェーズの演算は、初期の第1部分行列を構成する前記1×1行列及び入力ベクトルの積を計算する第1ステップ、得られた前記初期の第1部分行列の積の結果及び前記対角行列の対応する要素の積を計算することで、初期の第2部分行列を構成する前記1×1行列及び入力ベクトルの積を導出する第2ステップ、対象の段階で得られた前記第1部分行列の積の結果及び前記第2部分行列の積の結果から次の段階の第1部分行列を構成する部分行列及び入力ベクトルの積を導出する第3ステップ、得られた次の段階の前記第1部分行列の積の結果及び前記対角行列の対応する要素の積を計算することで、次の段階の前記第2部分行列を構成する部分行列及び入力ベクトルの積を導出する第4ステップ、並びに、前記対象の段階で得られた前記第1部分行列の積の結果及び前記第2部分行列の積の結果それぞれの初期値として、前記第1ステップ及び前記第2ステップそれぞれで得られた前記初期の第1部分行列の積の結果及び前記初期の第2部分行列の積の結果それぞれを代入し、かつ前記第3ステップ及び前記第4ステップを再帰的に繰り返すことで、前記行列の少なくとも一部及び入力ベクトルの積を導出する第5ステップ、により構成されてよい。前記逆伝播のフェーズの演算は、前記行列の少なくとも一部及び入力ベクトルの積に対する前記誤差の勾配を取得する第1ステップ、取得された前記誤差の勾配、並びに前記順伝播のフェーズの再帰的繰り返しの最終の段階で前記第1部分行列を構成する部分行列及び入力ベクトルの積の値に基づいて、当該最終の段階で使用される対角行列の各要素についての誤差の勾配を導出する第2ステップ、取得された前記誤差の勾配及び前記最終の段階で使用される対角行列の各要素の値に基づいて、前記最終の段階で前記第1部分行列を構成する部分行列及び入力ベクトルの積についての誤差の勾配を導出する第3ステップ、取得された前記誤差の勾配、前記順伝播のフェーズの再帰的繰り返しの対象の段階で前記第1部分行列を構成する部分行列及び入力ベクトルの積の値、並びに前記順伝播のフェーズの再帰的繰り返しにおいて当該対象の段階の次の段階で前記第1部分行列を構成する部分行列及び入力ベクトルの積についての誤差の勾配に基づいて、当該対象の段階で使用される対角行列の各要素についての誤差の勾配を導出する第4ステップ、取得された前記誤差の勾配、前記対象の段階で使用される対角行列の各要素の値、並びに前記次の段階で前記第1部分行列を構成する部分行列及び入力ベクトルの積についての誤差の勾配に基づいて、前記対象の段階で前記第1部分行列を構成する部分行列及び入力ベクトルの積についての誤差の勾配を導出する第5ステップ、前記次の段階で前記第1部分行列を構成する部分行列及び入力ベクトルの積についての誤差の勾配の初期値として、前記逆伝播のフェーズの前記第3ステップで導出される、前記最終の段階で前記第1部分行列を構成する部分行列及び入力ベクトルの積についての誤差の勾配を代入し、かつ前記順伝播のフェーズの再帰的繰り返しの初期の段階で使用される対角行列の各要素についての誤差の勾配を導出するまで、前記逆伝播のフェーズの前記第4ステップ及び前記第5ステップを再帰的に繰り返すことで、各段階で使用される対角行列の各要素についての誤差の勾配を導出する第6ステップ、前記入力ベクトル、並びに前記第6ステップにより導出される、前記初期の段階で前記第1部分行列を構成する部分行列及び入力ベクトルの積についての誤差の勾配に基づいて、前記初期の第1部分行列を構成する前記1×1行列の要素についての誤差の勾配を導出する第7ステップ、並びに前記各段階で使用される対角行列の各要素及び前記初期の第1部分行列を構成する前記1×1行列の要素それぞれについて導出された前記誤差の勾配に基づいて、前記各段階で使用される対角行列の各要素及び前記初期の第1部分行列を構成する前記1×1行列の要素それぞれの値を調節する第8ステップ、により構成されてよい。当該構成によれば、推論モデル(機械学習モデル)としてニューラルネットワークを採用する場面において、機械学習の処理過程で、スケーリング関係が再帰的に成立するように、推論モデルの各パラメータの値を調節することができる。その結果、最終的に成立しているスケーリング関係における第1部分行列内でも、パラメータ数の低減を図ることができる。よって、当該構成によれば、推論モデルの演算処理にかかる計算量を更に低減し、計算資源にかかる負担を更に抑えることができる。なお、この形態において、1×1行列は、任意サイズの単位行列に置き換えられてよい。
【0026】
また、上記各形態に係る推論装置及びモデル生成装置それぞれの別の態様として、本発明の一側面は、以上の各構成の全部又はその一部を実現する情報処理方法であってもよいし、プログラムであってもよいし、このようなプログラムを記憶した、コンピュータその他装置、機械等が読み取り可能な記憶媒体であってもよい。ここで、コンピュータ等が読み取り可能な記憶媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。また、本発明の一側面は、上記いずれかの形態に係る推論装置及びモデル生成装置により構成される推論システムであってもよい。
【0027】
例えば、本発明の一側面に係る推論方法は、コンピュータが、対象データを取得するステップと、機械学習により訓練済みの推論モデルを使用して、取得された前記対象データに対して推論タスクを遂行するステップと、前記推論タスクを遂行した結果に関する情報を出力するステップと、を実行する情報処理方法であって、前記推論モデルの複数のパラメータの少なくとも一部は、行列で表現され、前記行列は、第1部分行列及び第2部分行列を含み、前記第1部分行列及び前記第2部分行列の行及び列それぞれの要素の数は同一であり、前記第2部分行列の各要素の値は、前記第1部分行列及び対角行列の積と一致するように調節されている、情報処理方法である。
【0028】
例えば、本発明の一側面に係る推論プログラムは、コンピュータに、対象データを取得するステップと、機械学習により訓練済みの推論モデルを使用して、取得された前記対象データに対して推論タスクを遂行するステップと、前記推論タスクを遂行した結果に関する情報を出力するステップと、を実行させるためのプログラムであって、前記推論モデルの複数のパラメータの少なくとも一部は、行列で表現され、前記行列は、第1部分行列及び第2部分行列を含み、前記第1部分行列及び前記第2部分行列の行及び列それぞれの要素の数は同一であり、前記第2部分行列の各要素の値は、前記第1部分行列及び対角行列の積と一致するように調節されている、プログラムである。
【発明の効果】
【0029】
本発明によれば、機械学習モデルの演算処理にかかる計算量を低減し、計算資源にかかる負担を抑えることができる。
【図面の簡単な説明】
【0030】
【
図1】
図1は、本発明が適用される場面の一例を模式的に例示する。
【
図2】
図2は、実施の形態に係るモデル生成装置のハードウェア構成の一例を模式的に例示する。
【
図3】
図3は、実施の形態に係る推論装置のハードウェア構成の一例を模式的に例示する。
【
図4】
図4は、実施の形態に係るモデル生成装置のソフトウェア構成の一例を模式的に例示する。
【
図5A】
図5Aは、第1部分行列及び第2部分行列の設定方法の一例を示す。
【
図5B】
図5Bは、4×4のパラメータ行列内でスケーリング関係が再帰的に成立する場面の一例を示す。
【
図5C】
図5Cは、スケーリング関係が再帰的に成立し、各段階で1行目の部分行列が第1部分行列を構成する場合における要素分割の一般化の一例を示す。
【
図6】
図6は、実施の形態に係る推論装置のソフトウェア構成の一例を模式的に例示する。
【
図7】
図7は、実施の形態に係るモデル生成装置の処理手順の一例を示すフローチャートである。
【
図8A】
図8Aは、順伝播のフェーズにおけるパラメータ行列(2×2行列)の演算過程の一例を示す。
【
図8B】
図8Bは、逆伝播のフェーズにおけるパラメータ行列(2×2行列)の演算過程の一例を示す。
【
図9A】
図9Aは、順伝播のフェーズにおけるパラメータ行列(4×4行列)の演算過程の一例を示す。
【
図9B】
図9Bは、逆伝播のフェーズにおけるパラメータ行列(4×4行列)の演算過程の一例を示す。
【
図10A】
図10Aは、順伝播のフェーズにおけるパラメータ行列(任意サイズの行列)の演算過程の一例を示す。
【
図10B】
図10Bは、逆伝播のフェーズにおけるパラメータ行列(任意サイズの行列)の演算過程の一例を示す。
【
図11】
図11は、実施の形態に係る推論装置の処理手順の一例を示すフローチャートである。
【
図12】
図12は、本発明が適用される他の場面の一例を模式的に例示する。
【
図13】
図13は、本発明が適用される他の場面の一例を模式的に例示する。
【
図14】
図14は、本発明が適用される他の場面の一例を模式的に例示する。
【発明を実施するための形態】
【0031】
以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
【0032】
§1 適用例
図1は、本発明を適用した場面の一例を模式的に例示する。
図1に示されるとおり、本実施形態に係る推論システム100は、モデル生成装置1及び推論装置2を備えている。
【0033】
本実施形態に係るモデル生成装置1は、機械学習により訓練済みの推論モデル5を生成するように構成されたコンピュータである。本実施形態では、モデル生成装置1は、複数の学習データセット3を取得する。各学習データセット3は、訓練データ31及び正解ラベル32の組み合わせにより構成される。訓練データ31は、推論タスク等に応じて適宜構成されてよい。正解ラベル32は、訓練データ31に対する推論タスクの正解(真値)を示すように構成される。
【0034】
データに含まれる特徴を推論する任意の種類のタスクが、推論モデル5の推論タスクとして選択されてよい。一例として、画像による外観検査のための訓練済み推論モデル5を生成する場合、推論タスクは、画像データに写る製品に欠陥があるか否か(例えば、欠陥の有無、欠陥の種類、欠陥の存在する範囲の抽出等のタスクを含んでよい)を判定することであってよい。この場合、訓練データ31は、製品の写る画像データにより構成されてよく、正解ラベル32は、対応付けられる訓練データ31に対する当該推論タスクの正解(例えば、欠陥の有無、欠陥の種類、欠陥の存在する範囲等)を示すように構成されてよい。モデル生成装置1は、複数の学習データセット3を使用して、推論モデル5の機械学習を実施する。
【0035】
推論モデル5は、複数のパラメータを備える機械学習モデルにより構成される。機械学習モデルの種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。推論モデル5には、例えば、ニューラルネットワーク、主成分分析により得られる主成分ベクトル、サポートベクタマシン等が採用されてよい。以下では、説明の便宜のため、推論モデル5を構成する機械学習モデルとしてニューラルネットワークを採用した一例を示す(後述する
図4)。推論モデル5がニューラルネットワークにより構成される場合、各ニューロン(ノード)間の結合の重みが、パラメータの一例である。
【0036】
本実施形態では、推論モデル5の複数のパラメータの少なくとも一部が行列により表現可能に構成される。行列は、第1部分行列及び第2部分行列を含むように構成される。第1部分行列及び第2部分行列は、行及び列それぞれの要素の数が同一であるように構成される。各部分行列の行及び列の数はそれぞれ、実施の形態に応じて適宜選択されてよい。行の数と列の数とは一致してもよいし、或いは互いに異なっていてもよい。第1部分行列及び第2部分行列は、スカラー(1×1の行列)であってもよい。
【0037】
機械学習は、各学習データセット3について、推論モデル5を使用して訓練データ31に対して推論タスクを遂行した結果が正解ラベル32により示される正解に適合すると共に、第2部分行列の各要素の値が、第1部分行列及び対角行列の積と一致するように調節されるように推論モデル5を訓練することにより構成される。これにより、推論タスクを遂行する能力を獲得し、かつ第2部分行列の各要素の値が第1部分行列及び対角行列の積と一致するように調節された訓練済みの推論モデル5を生成することができる。
【0038】
図1の例では、w
1-w
4が、行列で表現されるパラメータの一例である。これらのうち、w
1及びw
2が、第1部分行列の一例である。w
3及びw
4が、第2部分行列の一例である。(y
1、y
2)は、推論モデル5における、この行列で表現される構成部分の演算結果(出力)を示す。(x
1、x
2)は、この構成部分に対する入力を示す。一例として、ニューラルネットワークを構成する各層が上記の行列により表現される場合、各層に対する入力が、(x
1、x
2)に対応し、各層からの出力が、(y
1、y
2)に対応する。(a
1、a
2)は、対角行列の対角成分の要素の一例である。対角行列の対角成分の各要素の値が同一である場合、対角行列は、1つの値(スカラー)で表現されてよい。
【0039】
一方、本実施形態に係る推論装置2は、訓練済みの推論モデル5を使用して、推論タスクを遂行するように構成されたコンピュータである。本実施形態では、推論装置2は、対象データ221を取得する。次に、推論装置2は、機械学習により訓練済みの推論モデル5を使用して、取得された対象データ221に対して推論タスクを遂行する。上記のとおり、推論モデル5の複数のパラメータの少なくとも一部は、行列で表現される。当該行列は、第1部分行列及び第2部分行列を含む。第1部分行列及び第2部分行列の行及び列それぞれの要素の数は同一である。第2部分行列の各要素の値は、第1部分行列及び対角行列の積と一致するように調節されている。推論装置2は、推論タスクを遂行した結果に関する情報を出力する。
【0040】
以上のとおり、本実施形態では、推論モデル5の複数のパラメータの少なくとも一部が、第1部分行列及び第2部分行列を含む行列により表現可能である。本実施形態に係るモデル生成装置1によれば、訓練済みの推論モデル5において、第2部分行列の各要素の値が、第1部分行列及び対角行列の積と一致するように調節される。そのため、第2部分行列の情報を保持していなくても、第1部分行列の演算結果を使い回して、第2部分行列の演算結果を得ることができる。
図1の例では、w
3x
1及びw
4x
2の演算を実行しなくても、第1部分行列の演算結果(w
1x
1及びw
2x
2)より、第2部分行列の演算結果(a
1w
1x
1及びa
2w
2x
2)を得ることができる。したがって、本実施形態によれば、推論モデル5を構成するパラメータの数を実質的に低減することができる。具体的には、第2部分行列の要素数と対角行列の0以外の要素数との差分だけパラメータの数を低減することができる。これにより、推論モデル5の演算処理にかかる計算量を低減し、計算資源にかかる負担を抑えることができる。
【0041】
なお、
図1の例では、モデル生成装置1及び推論装置2は、ネットワークを介して互いに接続されている。ネットワークの種類は、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。ただし、モデル生成装置1及び推論装置2の間でデータをやり取りする方法は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、モデル生成装置1及び推論装置2の間では、記憶媒体を利用して、データがやり取りされてよい。
【0042】
また、
図1の例では、モデル生成装置1及び推論装置2は、それぞれ別個のコンピュータにより構成されている。しかしながら、本実施形態に係る推論システム100の構成は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。たとえば、モデル生成装置1及び推論装置2は一体のコンピュータであってもよい。また、例えば、モデル生成装置1及び推論装置2のうちの少なくとも一方は、複数台のコンピュータにより構成されてもよい。
【0043】
§2 構成例
[ハードウェア構成]
<モデル生成装置>
図2は、本実施形態に係るモデル生成装置1のハードウェア構成の一例を模式的に例示する。
図2に示されるとおり、本実施形態に係るモデル生成装置1は、制御部11、記憶部12、通信インタフェース13、外部インタフェース14、入力装置15、出力装置16、及びドライブ17が電気的に接続されたコンピュータである。なお、
図2では、通信インタフェース及び外部インタフェースを「通信I/F」及び「外部I/F」と記載している。
【0044】
制御部11は、ハードウェアプロセッサであるCPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部12は、メモリの一例であり、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部12は、モデル生成プログラム81、複数の学習データセット3、学習結果データ125等の各種情報を記憶する。
【0045】
モデル生成プログラム81は、訓練済みの推論モデル5を生成する後述の機械学習の情報処理(
図7)をモデル生成装置1に実行させるためのプログラムである。モデル生成プログラム81は、当該情報処理の一連の命令を含む。複数の学習データセット3は、訓練済みの推論モデル5の生成に使用される。学習結果データ125は、生成された訓練済みの推論モデル5に関する情報を示す。本実施形態では、学習結果データ125は、モデル生成プログラム81を実行した結果として生成される。詳細は後述する。
【0046】
通信インタフェース13は、例えば、有線LAN(Local Area Network)モジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。モデル生成装置1は、通信インタフェース13を利用して、他の情報処理装置との間で、ネットワークを介したデータ通信を実行することができる。外部インタフェース14は、例えば、USB(Universal Serial Bus)ポート、専用ポート等であり、外部装置と接続するためのインタフェースである。外部インタフェース14の種類及び数は任意に選択されてよい。モデル生成装置1は、通信インタフェース13及び外部インタフェース14の少なくとも一方を介して、訓練データ31を得るためのデバイス(例えば、訓練データ31が画像データである場合、カメラ)に接続されてよい。
【0047】
入力装置15は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置16は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。ユーザ等のオペレータは、入力装置15及び出力装置16を利用することで、モデル生成装置1を操作することができる。
【0048】
ドライブ17は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体91に記憶されたプログラム等の各種情報を読み込むためのドライブ装置である。記憶媒体91は、コンピュータその他装置、機械等が、記憶されたプログラム等の各種情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。上記モデル生成プログラム81及び複数の学習データセット3の少なくともいずれかは、記憶媒体91に記憶されていてもよい。モデル生成装置1は、この記憶媒体91から、上記モデル生成プログラム81及び複数の学習データセット3の少なくともいずれかを取得してもよい。なお、
図2では、記憶媒体91の一例として、CD、DVD等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体91の種類は、ディスク型に限られなくてもよく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。ドライブ17の種類は、記憶媒体91の種類に応じて任意に選択されてよい。
【0049】
なお、モデル生成装置1の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部11は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA(field-programmable gate array)、DSP(digital signal processor)等で構成されてよい。記憶部12は、制御部11に含まれるRAM及びROMにより構成されてもよい。通信インタフェース13、外部インタフェース14、入力装置15、出力装置16及びドライブ17の少なくともいずれかは省略されてもよい。モデル生成装置1は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、モデル生成装置1は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、PC(Personal Computer)、産業用PC(IPC)等であってもよい。
【0050】
<推論装置>
図3は、本実施形態に係る推論装置2のハードウェア構成の一例を模式的に例示する。
図3に示されるとおり、本実施形態に係る推論装置2は、制御部21、記憶部22、通信インタフェース23、外部インタフェース24、入力装置25、出力装置26、及びドライブ27が電気的に接続されたコンピュータである。
【0051】
推論装置2の制御部21~ドライブ27及び記憶媒体92はそれぞれ、上記モデル生成装置1の制御部11~ドライブ17及び記憶媒体91それぞれと同様に構成されてよい。制御部21は、ハードウェアプロセッサであるCPU、RAM、ROM等を含み、プログラム及びデータに基づいて各種情報処理を実行するように構成される。記憶部22は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部22は、推論プログラム82、学習結果データ125等の各種情報を記憶する。
【0052】
推論プログラム82は、訓練済みの推論モデル5を使用して推論タスクを遂行する後述の情報処理(
図11)を推論装置2に実行させるためのプログラムである。推論プログラム82は、当該情報処理の一連の命令を含む。推論プログラム82及び学習結果データ125の少なくともいずれかは、記憶媒体92に記憶されていてもよい。また、推論装置2は、推論プログラム82及び学習結果データ125の少なくともいずれかを記憶媒体92から取得してもよい。
【0053】
推論装置2は、通信インタフェース23及び外部インタフェース24の少なくともいずれかを介して、対象データ221を取得するためのデバイス(センサ、他のコンピュータ等)に接続されてよい。推論装置2は、入力装置25及び出力装置26の利用により、ユーザ等のオペレータからの操作及び入力を受け付けてよい。
【0054】
なお、推論装置2の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部21は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA、DSP等で構成されてよい。記憶部22は、制御部21に含まれるRAM及びROMにより構成されてもよい。通信インタフェース23、外部インタフェース24、入力装置25、出力装置26、及びドライブ27の少なくともいずれかは省略されてもよい。推論装置2は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、推論装置2は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC、産業用PC、PLC(programmable logic controller)等であってもよい。
【0055】
[ソフトウェア構成]
<モデル生成装置>
図4は、本実施形態に係るモデル生成装置1のソフトウェア構成の一例を模式的に例示する。モデル生成装置1の制御部11は、記憶部12に記憶されたモデル生成プログラム81をRAMに展開する。そして、制御部11は、RAMに展開されたモデル生成プログラム81に含まれる命令をCPUにより解釈及び実行して、各構成要素を制御する。これにより、
図4に示されるとおり、本実施形態に係るモデル生成装置1は、データ取得部111、学習処理部112、及び保存処理部113をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、モデル生成装置1の各ソフトウェアモジュールは、制御部11(CPU)により実現される。
【0056】
データ取得部111は、複数の学習データセット3を取得するように構成される。各学習データセット3は、訓練データ31及び正解ラベル32の組み合わせにより構成される。訓練データ31は、推論タスク等に応じて適宜構成されてよい。正解ラベル32は、訓練データ31に対する推論タスクの正解(真値)を示すように構成される。
【0057】
学習処理部112は、複数の学習データセット3を使用して、推論モデル5の機械学習を実施するように構成される。推論モデル5は、複数のパラメータを備える機械学習モデルにより構成される。推論モデル5の複数のパラメータの少なくとも一部が行列により表現可能であれば、推論モデル5の種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。
【0058】
本実施形態では、推論モデル5の複数のパラメータの少なくとも一部が行列により表現可能に構成される。行列(以下、パラメータ行列とも称する)は、第1部分行列及び第2部分行列を含むように構成される。第1部分行列及び第2部分行列は、行及び列それぞれの要素の数が同一であるように構成される。機械学習は、各学習データセット3について、推論モデル5を使用して訓練データ31に対して推論タスクを遂行した結果が正解ラベル32により示される正解に適合すると共に、第2部分行列の各要素の値が、第1部分行列及び対角行列の積と一致するように調節されるように推論モデル5を訓練することにより構成される。
【0059】
保存処理部113は、機械学習により生成された訓練済みの推論モデル5に関する情報を学習結果データ125として生成し、生成された学習結果データ125を所定の記憶領域に保存するように構成される。学習結果データ125は、訓練済みの推論モデル5を再生するための情報を含むように適宜構成されてよい。
【0060】
(推論モデル)
図4に示されるとおり、推論モデル5の一例は、ニューラルネットワークにより構成されてよい。
図4の例では、推論モデル5を構成するニューラルネットワークは、入力層51、1つ以上の中間(隠れ)層52、及び出力層53を備える。中間層52の数は、実施の形態に応じて適宜決定されてよい。各層51~53は、1又は複数のニューロン(ノード)を備えている。各層51~53に含まれるニューロンの数は、実施の形態に応じて適宜決定されてよい。また、各層51~53に含まれるニューロン間の接続関係も、実施の形態に応じて適宜決定されてよい。一例では、各層51~53に含まれる各ニューロンは、隣接する層の全てのニューロンと結合されてよい。これにより、推論モデル5は、全結合型ニューラルネットワークにより構成されてよい。
【0061】
各層51~53の各結合には、重み(結合荷重)が設定される。各ニューロンには閾値が設定されており、基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。閾値は、活性化関数により表現されてよい。この場合、各入力と各重みとの積の和を活性化関数に入力し、活性化関数の演算を実行することで、各ニューロンの出力が決定される。活性化関数の種類は任意に選択されてよい。各層51~53に含まれる各ニューロン間の結合の重みが、推論モデル5のパラメータの一例である。すなわち、推論モデル5がニューラルネットワークにより構成される場合、パラメータ行列の各要素は、ニューラルネットワークにおける各ニューロン間の結合の重みに対応するように構成されてよい。
【0062】
なお、推論モデル5が、
図4に例示されるニューラルネットワークにより構成される場合、各層51~53のパラメータが、別々の行列により表現可能である。この場合、機械学習の結果により、ニューラルネットワークを構成する各層51~53のうちの少なくともいずれかの層の少なくとも一部が、第1部分行列及び第2部分行列を含むパラメータ行列により構成されてよい。一例では、各層51~53が、互いに異なるパラメータ行列により構成されてよい。このとき、各パラメータ行列における上記(x
1、x
2)は、各層51~53に対する入力データに対応し、上記(y
1、y
2)は、各層51~53の演算結果(出力)に対応する。
【0063】
機械学習では、学習処理部112は、各学習データセット3のうちの訓練データ31を入力データとして使用し、正解ラベル32を教師信号として使用する。すなわち、学習処理部112は、各学習データセット3の訓練データ31を入力層51に入力し、推論モデル5の順伝播の演算処理を実行する(順伝播のフェーズ)。この順伝播の演算処理の結果として、学習処理部112は、訓練データ31に対して推論タスクを遂行した結果(すなわち、推論タスクの解を推論した結果)に対応する出力値を出力層53から取得する。出力層53から得られる出力値の形式は、推論結果を特定可能であれば、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。一例では、出力層53の出力値は、推論結果を直接的に示すように構成されてもよい。他の一例では、出力層53の出力値は、閾値処理等の任意の演算処理を介することで推論結果を間接的に示すように構成されてもよい。
【0064】
学習処理部112は、得られた推論タスクの遂行結果と入力した訓練データ31に対応付けられた正解ラベル32により示される間の誤差を算出し、算出された誤差の勾配を更に算出する。そして、学習処理部112は、誤差逆伝播法により、算出された誤差の勾配を逆伝播して、各パラメータの値を調節する(逆伝播のフェーズ)。この調節の際に、学習処理部112は、第2部分行列の各要素の値が、第1部分行列及び対角行列の積と一致するように調節する。学習処理部112は、各学習データセット3について、算出される誤差の和が小さくなるように各パラメータの値を調節する上記一連の処理を繰り返す。この機械学習の結果として、推論タスクを遂行する能力を獲得し、かつ第2部分行列の各要素の値が第1部分行列及び対角行列の積と一致するように調節された訓練済みの推論モデル5を生成することができる。
【0065】
保存処理部113は、上記機械学習により生成された訓練済みの推論モデル5を再生するための学習結果データ125を生成する。訓練済みの推論モデル5を再生可能であれば、学習結果データ125の構成は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。一例として、学習結果データ125は、上記機械学習の調節により得られた各パラメータの値を示す情報を含んでよい。このとき、第2部分行列の各要素の値は、第1部分行列及び対角行列の積と一致するため、第2部分行列を構成するパラメータの値を示す情報は省略可能である。すなわち、学習結果データ125は、上記機械学習の調節により得られた第1部分行列を構成するパラメータの値及び対角行列の対角成分の各値を示す情報を含むように構成されてよい。場合によって、学習結果データ125は、推論モデル5の構造を示す情報を更に含んでもよい。構造は、例えば、入力層から出力層までの層の数、各層の種類、各層に含まれるニューロンの数、隣接する層のニューロン同士の結合関係等により特定されてよい。保存処理部113は、生成された学習結果データ125を所定の記憶領域に保存する。
【0066】
(第1部分行列及び第2部分行列の間の関係)
ここで、第1部分行列及び第2部分行列の間の関係の一例について説明する。本実施形態では、パラメータ行列の一部の要素が第1部分行列に対応し、残りのうちの少なくとも一部の要素が第2部分行列に対応していれば(すなわち、訓練済みの推論モデル5のパラメータ行列の少なくとも一部に比例関係が成立していれば)、パラメータの数を削減する効果を得ることができる。そのため、上記比例関係が、パラメータ行列の少なくとも一部に成立していればよい。ただし、効果的にパラメータの数を削減するためには、パラメータ行列内において、第1部分行列及び第2部分行列(特に、第2部分行列)に該当する範囲が広い方が好ましい。
【0067】
図5Aは、効果的にパラメータの数を削減するための、第1部分行列及び第2部分行列の設定方法の一例を示す。この設定方法では、パラメータ行列の少なくとも一部において、以下の条件(1)~(3)により定義されるスケーリング関係が成立するように、第1部分行列及び第2部分行列が設定される。
・条件(1):行及び列それぞれの要素の数が同一である部分行列が行にM個ずつ及び列にN個ずつ並ぶように、パラメータ行列の少なくとも一部は、M×N個の部分行列に分割される。
・条件(2):各列において、いずれかの行に配置される部分行列が、当該いずれかの行を除く他の行に配置される各部分行列に対応する第1部分行列を構成する。
・条件(3):他の行に配置される各部分行列が、第2部分行列を構成する。
【0068】
図5Aの例において、Wは、パラメータ行列の少なくとも一部に対応し、Xは、当該一部に対する入力データに対応し、Yは、当該一部の演算結果(出力)に対応する。w
1-w
MNが、M×N個の部分行列に該当する。各部分行列w
1-w
MNの行及び列それぞれの要素の数は、各部分行列w
1-w
MN間で同一であれば、特に限定されなくてよく、実施の形態において適宜決定されてよい。各部分行列w
1-w
MNは、1×1行列(スカラー)であってもよい。各入力(x
1-x
N)の要素数は、各部分行列w
1-w
MNの列の要素数に対応する。
【0069】
図5Aの例では、各部分行列w
1-w
MNのうち、1行目の各部分行列w
1-w
Nが、各列における他の行(2行目以降の各行)の部分行列に対する第1部分行列を構成している。そして、残りの各部分行列w
N+1-w
MNが、該当列における1行目の部分行列(第1部分行列)に対する第2部分行列を構成している。つまり、1行目の部分行列w
tは、2行目以降の各行の部分行列w
rN+tに対する第1部分行列を構成し、各部分行列w
rN+tは、部分行列w
tに対する第2部分行列を構成している(tは、1からNの自然数であり、rは、1からM-1の自然数である)。a
2,1-a
M,Nは、対角行列である。a
2,1-a
M,Nの要素数は、部分行列w
1-w
Nの行の要素数に対応する。
【0070】
M及びNの各値は、2以上の自然数であれば、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。一例では、M及びNは、同一の素数Sであってよい。具体例として、M及びNはそれぞれ、2であってよい(
図1の例)。この場合、パラメータ行列の少なくとも一部の行及び列はそれぞれ2分割され、第1部分行列及び第2部分行列それぞれに対応する部分行列を容易に把握することができる。その他の一例では、M及びNは、互いに異なる値であってよい。
【0071】
なお、
図5Aの例では、各列の1行目に配置される部分行列が、各列の他の行(2行目以降の各行)に配置される部分行列に対する第1部分行列を構成し、各列の2行目以降の各行に配置される部分行列が、第2部分行列を構成している。しかしながら、第1部分行列及び第2部分行列の配置は、このような例に限定されなくてよい。各列において、第1部分行列は、2行目以降のいずれかの行に配置されてよい。また、
図5Aの例では、各列の同一行の部分行列が第1部分行列を構成しているが、第1部分行列の配置は、このような例に限定されなくてよい。すなわち、各列の間で、第1部分行列を構成する部分行列の配置される行は異なっていてもよい(例えば、1列目では、1行目の部分行列が第1部分行列を構成するのに対して、2列目では、2行目以降のいずれかの行の部分行列が第1部分行列を構成してもよい)。
【0072】
パラメータの数を更に効果的に削減するため、パラメータ行列の少なくとも一部内において、上記スケーリング関係が再帰的に成立していてもよい(すなわち、各部分行列内で上記スケーリング関係が更に成立していてもよい)。スケーリング関係が再帰的に成立する回数は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。スケーリング関係の成立は、各部分行列が任意サイズの行列になるまで繰り返されてよい。この場合、任意サイズの行列は、「単位行列」と称してよい。ただし、パラメータの数を更により効果的に削減するためには、第1部分行列を構成する部分行列内でのスケーリング関係の成立が、各部分行列が1×1行列(スカラー)になるまで繰り返されるように、スケーリング関係が再帰的に成立していることが望ましい。これにより、推論モデル5の演算処理にかかる計算量を効果的に低減し、計算資源にかかる負担を抑えることができる。
【0073】
図5Bは、4×4のパラメータ行列内において、各部分行列が1×1行列になるまでスケーリング関係が再帰的に成立する場面の一例を示す。まず、4×4のパラメータ行列Wは、2×2個の部分行列(サイズは2×2)に分割される。このうち、各列の1行目のW
1及びW
2が、第1部分行列を構成し、各列の2行目の部分行列が、第2部分行列を構成する。A1及びA2(サイズは2×2)は、この段階で使用される対角行列である。これにより、4×4のパラメータ行列内では、スケーリング関係が成立している。そして、各第1部分行列(W
1、W
2)は、2×2個の部分行列(サイズは1×1)に更に分割される。このうち、各部分行列内の各列の1行目の部分行列(w
1-w
4)が、第1部分行列を構成し、各列の2行目の部分行列が、第2部分行列を構成する。a
1-a
4(サイズは1×1)は、この段階で使用される対角行列である。各第1部分行列(W
1、W
2)内では、スケーリング関係が更に成立している。対角行列の情報は、対角成分のみ保持すればよい。そのため、
図5Bの例では、Wにおける16個のパラメータを12個(w
1-w
4、a
1-a
4、A
1、A
2)まで削減することができる。
【0074】
なお、
図5Bの例では、スケーリング関係が2段階で再帰的に成立し、各段階での分割数M×Nがそれぞれ同一(2×2)である。しかしながら、再帰的に成立する回数は、このような例に限定されなくてよく、実施の形態に応じて適宜決定されてよい。また、各段階における分割数M×Nは、少なくとも一部において異なっていてもよい。例えば、1段階目の分割数M
1×N
1と2段階目の分割数M
2×N
2との間で、M
i及びN
iの少なくともいずれか一方が異なっていてもよい。
【0075】
図5Cは、スケーリング関係が再帰的に成立し、各段階で1行目の部分行列が第1部分行列を構成する場合における要素分割の一般化の一例を示す。W
j
iが、p
i-1×q
i-1個の部分行列(小行列とも記載する)に分割され、各段階で1行目の部分行列が第1部分行列を構成すると仮定した場合、各段階における該当行列W
j
i内の小行列を、
図5Cの式により表現することができる。iは、再帰の段階に対応する。iには、1からl+1までの自然数が代入される。
図5Cの要素分割は、iが2からl+1までの範囲で成立する。lは、スケーリング関係が再帰的に成立する回数を示す。jは、各段階における該当行列の配置列の番号に対応する。jには、1からJ
iまでの自然数が代入される。J
iは、以下の式1により示される。
【0076】
【数1】
W
1
l+1が、スケーリング関係により要素を分割する前のパラメータ行列の少なくとも一部(すなわち、パラメータ行列のうちのスケーリング関係が再帰的に成立する範囲の部分)に対応する。W
j
l-W
j
1が、各段階における第1部分行列に対応する。k(i,j)(=q
i-1×(j-1))は、同一段階の他の行列(例えば、W
j-1
i)との間で該当行列W
j
i内の小行列を連続番号で表示するためのオフセットである。A
g
i-1は、サイズM
i-1×M
i-1の対角行列である。gは、(2,k(i,j)+1)-(p
i-1,k(i,j)+q
i-1)である。1段階前の要素数との関係で、W
j
iの行の要素数M
iは、M
i+1/p
iと表現でき、W
j
iの列の要素数N
iは、N
i+1/q
iと表現できる。最終の分割におけるW
j
1は、1×1行列(スカラー)であってよい。この場合、W
1
l+1の行の要素数は、p
1×・・・×p
lであり、W
1
l+1の列の要素数は、q
1×・・・×q
lである。スケーリング関係がこのように再帰的に成立する場合、最終の分割におけるW
j
1及び各段階の対角行列A
g
1-A
g
lの情報を学習結果データ125として保持すれば、訓練済みの推論モデル5を再生して、パラメータ行列の少なくとも一部の演算処理を実行することができる。つまり、パラメータ行列の少なくとも一部のパラメータ数をp
1×・・・×p
l×q
1×・・・×q
lからW
j
1及び各段階の対角行列A
g
1-A
g
lの要素数まで削減することができる。
【0077】
各段階におけるpi-1及びqi-1は、各段階における分割数M及びNに対応する。pi-1及びqi-1の値は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。各段階における分割数は、各段階間で同一であってもよいし、或いは異なっていてもよい。pi-1及びqi-1の値は、互いに同一であってもよいし、或いは異なっていてもよい。一例として、pi-1及びqi-1は、同一の素数Sであってよく、各段階間で分割数は同一であってもよい。例えば、素数Sは、2であってよい。この場合、パラメータ行列の少なくとも一部(W1
l+1)は、要素の数が素数Sのべき乗(S2l)である正方行列により構成される。これにより、第1部分行列及び第2部分行列それぞれに対応する部分行列を容易に把握することができる。
【0078】
なお、以下では、説明の便宜のため、特に明示しない限り、各段階における各列の第1部分行列を構成する部分行列の配置は1行目であり、2行目以降の部分行列は第2部分行列を構成すると仮定する。ただし、各段階における各列の第1部分行列を構成する部分行列の配置は、1行目に限られなくてもよい。各段階における各列の第1部分行列は、2行目以降のいずれかに配置されてよい。各列の第1部分行列の配置は、各段階間で同一であってもよいし、或いは異なっていてもよい。また、最終の分割におけるWj
1は、1×1行列に限られなくてよい。他の一例では、最終の分割におけるWj
1は、任意のサイズの行列であってよい。
【0079】
<推論装置>
図6は、本実施形態に係る推論装置2のソフトウェア構成の一例を模式的に例示する。推論装置2の制御部21は、記憶部22に記憶された推論プログラム82をRAMに展開する。そして、制御部21は、RAMに展開された推論プログラム82に含まれる命令をCPUにより解釈及び実行して、各構成要素を制御する。これにより、
図6に示されるとおり、本実施形態に係る推論装置2は、データ取得部211、推論部212、及び出力部213をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、推論装置2の各ソフトウェアモジュールも、モデル生成装置1と同様に、制御部21(CPU)により実現される。
【0080】
データ取得部211は、対象データ221を取得するように構成される。推論部212は、学習結果データ125を保持していることで、機械学習により訓練済みの推論モデル5を備えている。推論部212は、訓練済みの推論モデル5を使用して、取得された対象データ221に対して推論タスクを遂行するように構成される。出力部213は、推論タスクを遂行した結果に関する情報を出力するように構成される。
【0081】
<その他>
モデル生成装置1及び推論装置2の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、モデル生成装置1及び推論装置2の各ソフトウェアモジュールがいずれも汎用のCPUによって実現される例について説明している。しかしながら、上記ソフトウェアモジュールの一部又は全部が、1又は複数の専用のプロセッサ(例えば、グラフィックスプロセッシングユニット)により実現されてもよい。上記各モジュールは、ハードウェアモジュールとして実現されてもよい。また、モデル生成装置1及び推論装置2それぞれのソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
【0082】
§3 動作例
[モデル生成装置]
図7は、本実施形態に係るモデル生成装置1による機械学習に関する処理手順の一例を示すフローチャートである。以下で説明するモデル生成装置1の処理手順は、モデル生成方法の一例である。ただし、以下で説明するモデル生成装置1の処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。また、以下の処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が行われてよい。
【0083】
(ステップS101)
ステップS101では、制御部11は、データ取得部111として動作し、訓練データ31及び当該訓練データ31に対する推論タスクの正解を示す正解ラベル32の組み合わせによりそれぞれ構成される複数の学習データセット3を取得する。
【0084】
各学習データセット3は、適宜生成されてよい。例えば、実空間又は仮想空間において推論タスクを遂行する環境を想定し、当該環境において任意の対象を観測することで、訓練データ31(訓練サンプル)を取得することができる。観測対象は、推論タスクに応じて適宜選択されてよい。訓練データ31の取得には任意のセンサが用いられてよい。一例として、推論タスクが製品の外観検査である場合、欠陥の存在する又は存在しない製品をカメラにより撮影することで、訓練データ31を取得することができる。次に、取得された訓練データ31に対して推論タスクを遂行した結果(正解/真値)を示す情報を正解ラベル32として取得する。この場面では、推論タスクの遂行はオペレータ等の人手により行われてよい。そして、得られた正解ラベル32を当該訓練データ31に関連付ける。これにより、各学習データセット3を生成することができる。
【0085】
各学習データセット3は、コンピュータの動作により自動的に生成されてもよいし、或いは少なくとも部分的にオペレータの操作を含むことで手動的に生成されてもよい。また、各学習データセット3の生成は、モデル生成装置1により行われてもよいし、モデル生成装置1以外の他のコンピュータにより行われてもよい。各学習データセット3をモデル生成装置1が生成する場合、制御部11は、自動的に又は入力装置15を介したオペレータの操作により手動的に上記一連の生成処理を実行することで、複数の学習データセット3を取得する。一方、各学習データセット3を他のコンピュータが生成する場合、制御部11は、例えば、ネットワーク、記憶媒体91等を介して、他のコンピュータにより生成された複数の学習データセット3を取得する。一部の学習データセット3がモデル生成装置1により生成され、その他の学習データセット3が1又は複数の他のコンピュータにより生成されてもよい。
【0086】
取得する学習データセット3の件数は任意に選択されてよい。複数の学習データセット3を取得すると、制御部11は、次のステップS102に処理を進める。
【0087】
(ステップS102)
ステップS102では、制御部11は、学習処理部112として動作し、複数の学習データセット3を使用して、推論モデル5の機械学習を実施する。本実施形態では、機械学習は、各学習データセット3について、推論モデル5を使用して訓練データ31に対して推論タスクを遂行した結果が正解ラベル32により示される正解に適合すると共に、第2部分行列の各要素の値が、第1部分行列及び対角行列の積と一致するように調節されるように推論モデル5を訓練することにより構成される。
【0088】
上記スケーリング関係が成立する訓練済みの推論モデル5を生成する場合、推論モデル5を訓練することは、スケーリング関係が成立するようにパラメータ行列の少なくとも一部の各要素の値を調節することを含む。更に、上記スケーリング関係が再帰的に成立する訓練済みの推論モデル5を生成する場合には、推論モデル5を訓練することは、第1部分行列を構成する部分行列内でのスケーリング関係の成立が繰り返されることにより、パラメータ行列の少なくとも一部内でスケーリング関係が再帰的に成立するようにパラメータ行列の少なくとも一部の各要素の値を調節することを含む。このスケーリング関係の再帰的な成立は、各部分行列が1×1行列(スカラー)になるまで繰り返されてよい。すなわち、スケーリング関係による最終的な分割により得られる第1部分行列(Wj
1)は、1×1行列であってよい。機械学習の方法は、推論モデル5を構成する機械学習モデルの種類に応じて適宜選択されてよい。
【0089】
一例では、推論モデル5の訓練(パラメータ行列の少なくとも一部の各要素の値を調節すること)は、
・推論モデル5の初期設定を行う(各パラメータに初期値を与える)こと、
・順伝播のフェーズにおいて、各学習データセット3の訓練データ31に対して推論タスクを試行的に遂行した結果を導出すること、並びに
・逆伝播のフェーズにおいて、導出された推論タスクの遂行結果及び対応する正解ラベル32により示される正解の間の誤差の勾配を逆伝播することにより、推論モデル5のパラメータ(パラメータ行列の少なくとも一部の各要素及び対角行列の各要素)の値を調節すること、
により構成される。
【0090】
(初期設定)
まず、制御部11は、機械学習の処理対象となる推論モデル5の初期設定を行う。本実施形態では、制御部11は、ニューラルネットワークの構造(例えば、層の数、各層の種類、各層に含まれるニューロンの数、隣接する層のニューロン同士の結合関係等)及び各ニューロン間の結合の重みの初期値は、テンプレートにより与えられてもよいし、オペレータの入力により与えられてもよい。また、再学習を行う場合には、制御部11は、過去の機械学習により得られた学習結果データに基づいて、ニューラルネットワークの初期設定を行ってもよい。
【0091】
本実施形態では、パラメータ行列の各要素は、各ニューロン間の結合の重みに対応する。そのため、各ニューロン間の結合の重みの初期値を与えることは、パラメータ行列の各要素の初期値を与えることに対応する。第2部分行列は第1部分行列及び対角行列の積で表現されるため、第2部分行列に対応する要素の初期値を与えることは省略されてよい。つまり、各ニューロン間の結合の重みの初期値を与えることは、第1部分行列に対応する要素及び対角行列の対角成分の各要素の初期値を与えることにより構成されてよい。
【0092】
スケーリング関係が再帰的に成立する訓練済みの推論モデル5を生成する場合には、制御部11は、スケーリング関係が再帰的に成立するようにパラメータ行列の少なくとも一部の各要素の初期値を与える。具体例として、制御部11は、最終の分割(すなわち、最終的に成立するスケーリング関係)において第1部分行列を構成するWj
1の各要素及び各段階で使用される対角行列の各要素の初期値を与える。
【0093】
(順伝播のフェーズ)
次に、順伝播のフェーズでは、制御部11は、各学習データセット3の訓練データ31を入力層51に入力し、推論モデル5の順伝播の演算処理を実行する。この順伝播の演算処理の際、まず、制御部11は、第1部分行列を構成する部分行列及び入力ベクトルの積を計算する。パラメータ行列が入力層51に対応する場合、入力ベクトルは、各学習データセット3の訓練データ31である。パラメータ行列が中間層52又は出力層53に対応する場合、入力ベクトルは、対応する層の前の層の計算結果(出力)である。次に、制御部11は、第1部分行列の積の結果及び対角行列の対応する要素の積を計算することで、第2部分行列を構成する部分行列及び入力ベクトルの積を導出する。つまり、制御部11は、第1部分行列の積の結果及び対角行列を掛け算し、掛け算により得られた計算結果を、第2部分行列及び入力ベクトルの積の結果として取得する。
【0094】
スケーリング関係が再帰的に成立する訓練済みの推論モデル5を生成する場合、順伝播のフェーズの演算は、以下の第1ステップ~第5ステップの演算により構成されてよい。
・第1ステップ:スケーリング関係を再帰的に成立させるパラメータ行列の少なくとも一部内において、初期の第1部分行列を構成する部分行列及び入力ベクトルの積を計算する
・第2ステップ:得られた初期の第1部分行列の積の結果及び対角行列の対応する要素の積を計算することで、初期の第2部分行列を構成する部分行列及び入力ベクトルの積を導出する
・第3ステップ:再帰的繰り返しの対象の段階で得られた第1部分行列の積の結果及び第2部分行列の積の結果から次の段階の第1部分行列を構成する部分行列及び入力ベクトルの積を導出する
・第4ステップ:得られた次の段階の第1部分行列の積の結果及び対角行列の対応する要素の積を計算することで、次の段階の第2部分行列を構成する部分行列及び入力ベクトルの積を導出する
・第5ステップ:対象の段階で得られた第1部分行列の積の結果及び第2部分行列の積の結果それぞれの初期値として、第1ステップ及び第2ステップそれぞれで得られた初期の第1部分行列の積の結果及び初期の第2部分行列の積の結果それぞれを代入し、かつ第3ステップ及び第4ステップを再帰的に繰り返す(すなわち、得られた次の段階の各部分行列の積の結果を新たな対象の段階の各部分行列の積の結果として代入し、第3ステップ及び第4ステップの処理を繰り返す)ことで、パラメータ行列の少なくとも一部及び入力ベクトルの積を導出する
なお、初期の第1部分行列及び初期の第2部分行列は、1×1行列により構成されてよい。
【0095】
(逆伝播のフェーズ)
逆伝播のフェーズでは、制御部11は、順伝播のフェーズにより得られた推論タスクの遂行結果と入力した訓練データ31に対応付けられた正解ラベル32により示される正解との間の誤差を算出し、算出された誤差の勾配を更に算出する。そして、制御部11は、誤差逆伝播法により、算出された誤差の勾配を逆伝播して、各パラメータの値を調節する。この調節の際に、制御部11は、第2部分行列の各要素の値が、第1部分行列及び対角行列の積と一致するように各パラメータの値を調節する。つまり、制御部11は、第2部分行列の各要素に対応するように第1部分行列及び対角行列の各要素の値を調節する。
【0096】
スケーリング関係が再帰的に成立する訓練済みの推論モデル5を生成する場合、逆伝播のフェーズの演算は、以下の第1ステップ~第8ステップの演算により構成されてよい。
・第1ステップ:パラメータ行列の少なくとも一部及び入力ベクトルの積に対する誤差の勾配を取得する
・第2ステップ:取得された誤差の勾配の対応する各要素、並びに順伝播のフェーズの第5ステップの再帰的繰り返しの最終の段階で第1部分行列を構成する部分行列及び入力ベクトルの積の値に基づいて、当該最終の段階で使用される(すなわち、最終の段階の第1部分行列に掛け算される)対角行列の各要素についての誤差の勾配を導出する
・第3ステップ:取得された誤差の勾配及び最終の段階で使用される対角行列の各要素の値に基づいて、最終の段階で第1部分行列を構成する部分行列及び入力ベクトルの積の各要素についての誤差の勾配を導出する
・第4ステップ:取得された誤差の勾配、順伝播のフェーズの再帰的繰り返しの対象の段階で第1部分行列を構成する部分行列及び入力ベクトルの積の値、並びに順伝播のフェーズの再帰的繰り返しにおいて当該対象の段階の次の段階で第1部分行列を構成する部分行列及び入力ベクトルの積についての誤差の勾配に基づいて、当該対象の段階で使用される対角行列の各要素についての誤差の勾配を導出する
・第5ステップ:取得された誤差の勾配、対象の段階で使用される対角行列の各要素の値、並びに次の段階で第1部分行列を構成する部分行列及び入力ベクトルの積についての誤差の勾配に基づいて、対象の段階で第1部分行列を構成する部分行列及び入力ベクトルの積の各要素についての誤差の勾配を導出する
・第6ステップ:次の段階で第1部分行列を構成する部分行列及び入力ベクトルの積の各要素についての誤差の勾配の初期値として、逆伝播のフェーズの第3ステップで導出される、最終の段階で第1部分行列を構成する部分行列及び入力ベクトルの積の各要素についての誤差の勾配を代入し、かつ順伝播のフェーズの再帰的繰り返しの初期の段階で使用される対角行列の各要素についての誤差の勾配を導出するまで、逆伝播のフェーズの第4ステップ及び第5ステップを再帰的に繰り返すことで、各段階で使用される対角行列の各要素についての誤差の勾配を導出する
・第7ステップ:入力ベクトル、並びに第6ステップにより導出される、初期の段階で第1部分行列を構成する部分行列及び入力ベクトルの積についての誤差の勾配に基づいて、初期の第1部分行列を構成する部分行列の要素についての誤差の勾配を導出する
・第8ステップ:各段階で使用される対角行列の各要素及び初期の第1部分行列を構成する部分行列の要素それぞれについて導出された誤差の勾配に基づいて、各段階で使用される対角行列の各要素及び初期の第1部分行列を構成する部分行列の要素それぞれの値を調節する
パラメータ行列が出力層53に対応する場合、第1ステップの誤差の勾配は、順伝播のフェーズにより得られた推論タスクの遂行結果と入力した訓練データ31に対応付けられた正解ラベル32により示される正解との間の誤差から算出される。パラメータ行列が中間層52又は入力層51に対応する場合、第1ステップの誤差の勾配は、対応する層の後の層から逆伝播される勾配である。なお、上記のとおり、初期の第1部分行列は、1×1行列により構成されてよい。
【0097】
(A)第1具体例(2×2行列)
まず、
図8A及び
図8Bを用いて、簡単なケース(2×2行列)でスケーリング関係が成立する場合の順伝播及び逆伝播の演算過程の一例について説明する。
図8A及び
図8Bは、スケーリング関係が成立するパラメータ行列(2×2行列)の順伝播及び逆伝播のフェーズにおける演算過程の一例を示す。本ケースは、
図1の各部分行列w
1-w
4が1×1行列であるケースに相当する。
【0098】
順伝播のフェーズでは、制御部11は、第1部分行列を構成する部分行列(w1、w2)及び入力ベクトル(x1、x2)の積を計算する。それぞれの要素を以下の式2及び式3のとおり表現すると、この計算によって、Y1
1及びY2
1を得ることができる。
【0099】
【0100】
続いて、制御部11は、第1部分行列の積の演算結果(Y
1
1、Y
2
1)及び対角行列の対応する要素(a
1、a
2)の積を計算することで、第2部分行列を構成する部分行列及び入力ベクトルの積(Z
1
1、Z
2
1)を導出する。
図8Aは、これまでの演算過程を例示する。この演算処理の結果、パラメータ行列及び入力ベクトルの積の結果(y
1、y
2)を導出することができる。パラメータ行列が入力層51又は中間層52に対応する場合、制御部11は、得られた積の結果を次の層に順伝播する。一方、パラメータ行列が出力層53に対応する場合、制御部11は、推論タスクの遂行結果として積の結果を取得する。
【0101】
逆伝播のフェーズでは、制御部11は、パラメータ行列及び入力ベクトルの積に対する誤差Lの勾配(∂L/∂y1、∂L/∂y2)を取得する。上記のとおり、パラメータ行列が出力層53に対応する場合、制御部11は、順伝播のフェーズにより得られた推論タスクの遂行結果と対応する正解ラベル32により示される正解との間の誤差を偏微分することで、誤差の勾配(∂L/∂y1、∂L/∂y2)を得ることができる。一方、パラメータ行列が中間層52又は入力層51の場合、制御部11は、対応する層の後の層から逆伝播される勾配を誤差の勾配(∂L/∂y1、∂L/∂y2)として得ることができる。
【0102】
【数4】
【数5】
対角行列の要素(∂L/∂a
1)は、チェイン・ルールにより上記式4及び式5により表現することができる。上記式3から(∂y
2/∂Z
1
1)は、1である。したがって、(∂L/∂Z
1
1)は、(∂L/∂y
2)となる。また、上記式2から(∂Z
1
1/∂a
1)は、(Y
1
1)となる。よって、(∂L/∂a
1)は、(∂L/∂y
2)×(Y
1
1)となる。対角行列の他方の要素(∂L/∂a
2)も同様に演算すると、(∂L/∂a
2)は、(∂L/∂y
2)×(Y
2
1)となる。そのため、制御部11は、取得された誤差の勾配の対応する各要素(∂L/∂y
2)、並びに第1部分行列を構成する部分行列及び入力ベクトルの積の値(Y
1
1、Y
2
1)に基づいて、対角行列の各要素についての誤差の勾配(∂L/∂a
1、∂L/∂a
2)を導出することができる。
【0103】
【数6】
【数7】
続いて、制御部11は、第1部分行列を構成する部分行列の各要素についての誤差の勾配(∂L/∂w
1、∂L/∂w
2)を算出する。第1部分行列の誤差の勾配のうち(∂L/∂w
1)は、チェイン・ルールにより上記式6及び式7により表現することができる。
図8Aに示されるとおり、Y
1
1の変化は、y
1及びZ
1
1に伝達される。そのため、(∂L/∂Y
1
1)は、式7により表現される。
【0104】
上記式3から(∂y1/∂Y1
1)は、1である。上記式2から(∂Z1
1/∂Y1
1)は、a1である。また、(∂Y1
1/∂w1)は、x1である。したがって、(∂L/∂Y1
1)は、「(∂L/∂y1)+(∂L/∂Z1
1)×a1」となり、(∂L/∂w1)は、「(∂L/∂Y1
1)×x1」となる。同様に、(∂L/∂Y2
1)は、「(∂L/∂y1)+(∂L/∂Z2
1)×a2」となり、(∂L/∂w2)は、「(∂L/∂Y2
1)×x2」となる。(∂L/∂Z1
1)及び(∂L/∂Z2
1)は、先の演算(例えば、式5)により既に計算されている。そこで、制御部11は、取得された誤差の勾配(∂L/∂y1、∂L/∂y2)及び対角行列の各要素の値(a1、a2)に基づいて、第1部分行列を構成する部分行列及び入力ベクトルの積の各要素についての誤差の勾配(∂L/∂Y1
1、∂L/∂Y2
1)を導出する。そして、制御部11は、入力ベクトル(x1、x2)、並びに第1部分行列及び入力ベクトルの積についての誤差の勾配(∂L/∂Y1
1、∂L/∂Y2
1)に基づいて、第1部分行列を構成する部分行列の各要素についての誤差の勾配(∂L/∂w1、∂L/∂w2)を導出する。
【0105】
【数8】
更に、制御部11は、前の層に誤差を逆伝播するため、入力ベクトルについての誤差の勾配を算出する。入力ベクトルについての誤差の勾配のうち(∂L/∂x
1)は、チェイン・ルールにより上記式8により表現することができる。(∂L/∂Y
1
1)は、先の演算により既に計算済みである。上記式2により、(∂Y
1
1/∂x
1)は、w
1である。そのため、(∂L/∂x
1)は、「(∂L/∂Y
1
1)×w
1」となる。同様に、(∂L/∂x
2)は、「(∂L/∂Y
2
1)×w
2」となる。そこで、制御部11は、第1部分行列を構成する部分行列の各要素の値(w
1、w
2)、並びに第1部分行列及び入力ベクトルの積についての誤差の勾配(∂L/∂Y
1
1、∂L/∂Y
2
1)に基づいて、入力ベクトルについての誤差の勾配(∂L/∂x
1、∂L/∂x
2)を算出する。パラメータ行列が中間層52又は出力層53に対応する場合、制御部11は、算出された誤差の勾配を前の層に逆伝播する。
図8Bは、これまでの演算過程を例示する。この演算処理の結果、第1部分行列の各要素及び対角行列の各要素を調節するためのそれぞれの誤差の勾配を得ることができる。制御部11は、得られた誤差の勾配により、各パラメータ(第1部分行列の各要素及び対角行列の各要素)の値を調節する。
【0106】
(B)第2具体例(4×4行列)
次に、
図9A及び
図9Bを用いて、簡単なケース(4×4行列)でスケーリング関係が再帰的に成立する場合の順伝播及び逆伝播の演算過程の一例について説明する。
図9A及び
図9Bは、スケーリング関係が再帰的に成立するパラメータ行列(4×4行列)の順伝播及び逆伝播のフェーズにおける演算過程の一例を示す。本ケースは、
図5Bの最終の分割における各部分行列(w
1-w
4等)が1×1行列であるケースに相当する。
【0107】
順伝播のフェーズでは、制御部11は、初期の第1部分行列を構成する部分行列(w1-w4)及び入力ベクトル(x1-x4)の積を計算する。この計算は、上記順伝播フェーズの第1ステップの演算に相当する。それぞれの要素を以下の式9及び式10のとおり表現すると、この計算によって、初期の第1部分行列の積の結果(Y1
1、Y2
1、Y3
1、Y4
1)を得ることができる。
【0108】
【0109】
続いて、制御部11は、第1部分行列の積の演算結果(Y1
1-Y4
1)及び対角行列の対応する各要素(a1-a4)の積を計算することで、初期の第2部分行列を構成する部分行列及び入力ベクトルの積(Z1
1-Z4
1)を導出する。この計算は、上記順伝播フェーズの第2ステップの演算に相当する。(w1、w2、a1w1、a2w2)及び(w3、w4、a3w3、a4w4)それぞれが、次の段階の第1部分行列(W1、W2)に相当する。次の段階の第1部分行列の各要素は、以下の式11及び式12により表現することができる。
【0110】
【0111】
そこで、制御部11は、初期の第1部分行列の積の結果(Y1
1-Y4
1)及び第2部分行列の積の結果(Z1
1-Z4
1)から次の段階の第1部分行列を構成する部分行列及び入力ベクトルの積(Y1
2-Y4
2)を導出する。この計算は、対象の段階で得られた第1部分行列の積の結果及び第2部分行列の積の結果それぞれの初期値として、第1ステップ及び第2ステップそれぞれで得られた初期の第1部分行列の積の結果及び初期の第2部分行列の積の結果それぞれを代入して実行する上記順伝播フェーズの第3ステップの演算に相当する。
【0112】
そして、制御部11は、得られた次の段階の第1部分行列の積の結果(Y1
2-Y4
2)及び対角行列の対応する各要素(A1、A2)の積を計算することで、次の段階の第2部分行列を構成する部分行列及び入力ベクトルの積(Z1
2-Z4
2)を導出する。この計算は、上記順伝播フェーズの第4ステップの演算に相当する。第2部分行列の積は、以下の式13により表現することができる。
【0113】
【数13】
本ケースでは、スケーリング関係が再帰的に成立する回数が1回であるため、当該演算処理により、上記順伝播フェーズの第5ステップの演算が達成される。つまり、制御部11は、パラメータ行列及び入力ベクトルの積の結果(y
1-y
4)を導出することができる。
図9Aは、これまでの演算過程を例示する。パラメータ行列が入力層51又は中間層52に対応する場合、制御部11は、得られた積の結果を次の層に順伝播する。一方、パラメータ行列が出力層53に対応する場合、制御部11は、推論タスクの遂行結果として積の結果を取得する。
【0114】
逆伝播のフェーズでは、制御部11は、パラメータ行列及び入力ベクトルの積に対する誤差Lの勾配(∂L/∂y1-∂L/∂y4)を取得する。取得方法は、上記第1具体例と同様である。この処理は、上記逆伝播フェーズの第1ステップの処理に相当する。
【0115】
続いて、制御部11は、最終の段階で使用される対角行列(A1、A2)の各要素についての誤差の勾配を導出する。対角行列A1の対角成分をdiag(A11、A12)と表現し、対角行列A2の対角成分をdiag(A21、A22)と表現すると、上記第1具体例と同様に、チェイン・ルールにより、最終段階での第2部分行列の誤差の勾配(∂L/∂Z1
2-∂L/∂Z4
2)を経由して、各要素の勾配(∂L/∂A11、∂L/∂A12、∂L/∂A21、∂L/∂A22)は、以下の式14-式17を満たす。
【0116】
【数14】
【数15】
【数16】
【数17】
そのため、制御部11は、取得された誤差の勾配の対応する各要素(∂L/∂y
3、∂L/∂y
4)、並びに順伝播のフェーズの第5ステップの再帰的繰り返しの最終の段階で第1部分行列を構成する部分行列及び入力ベクトルの積の値(Y
1
2-Y
4
2)に基づいて、当該最終の段階で使用される対角行列の各要素についての誤差の勾配(∂L/∂A
11、∂L/∂A
12、∂L/∂A
21、∂L/∂A
22)を導出する。この演算は、上記逆伝播フェーズの第2ステップに相当する。第1部分行列の積の値(Y
1
2-Y
4
2)は、順伝播のフェーズにより計算済みである。
【0117】
同様に、チェイン・ルールにより、最終の段階での第2部分行列の積についての誤差の勾配(∂L/∂Z1
2-∂L/∂Z4
2)を経由して、最終の段階で第1部分行列を構成する部分行列及び入力ベクトルの積の各要素についての誤差の勾配(∂L/∂Y1
2-∂L/∂Y4
2)は、以下の式18-式21を満たす。
【0118】
【数18】
【数19】
【数20】
【数21】
そのため、制御部11は、取得された誤差の勾配の対応する各要素(∂L/∂y
3、∂L/∂y
4)及び最終の段階で使用される対角行列の各要素の値(A
11、A
12、A
21、A
22)に基づいて、最終の段階で第1部分行列を構成する部分行列及び入力ベクトルの積の各要素についての誤差の勾配(∂L/∂Y
1
2-∂L/∂Y
4
2)を導出する。この演算は、上記逆伝播フェーズの第3ステップに相当する。
【0119】
次に、制御部11は、1つ前の段階(対象の段階)で使用される対角行列の各要素についての誤差の勾配(∂L/∂a1-∂L/∂a4)を導出する。チェイン・ルールにより、当該段階での第2部分行列の積についての誤差の勾配(∂L/∂Z1
1-∂L/∂Z4
1)を経由して、各要素の誤差の勾配(∂L/∂a1-∂L/∂a4)は、以下の式22-式25を満たす。
【0120】
【数22】
【数23】
【数24】
【数25】
そのため、制御部11は、取得された誤差の勾配(∂L/∂y
2)、対象の段階で第1部分行列を構成する部分行列及び入力ベクトルの積の値(Y
1
1-Y
4
1)、並びに対象の段階の次の段階(この場合は、最終の段階)で第1部分行列を構成する部分行列及び入力ベクトルの積についての誤差の勾配(∂L/∂Y
2
2、∂L/∂Y
4
2)に基づいて、対象の段階で使用される対角行列の各要素についての誤差の勾配(∂L/∂a
1-∂L/∂a
4)を導出する。この演算は、次の段階で第1部分行列を構成する部分行列及び入力ベクトルの積の各要素についての誤差の勾配の初期値として、上記第3ステップで導出される、最終の段階で第1部分行列を構成する部分行列及び入力ベクトルの積の各要素についての誤差の勾配を代入して実行する上記逆伝播フェーズの第4ステップの演算に相当する。第1部分行列の積の値(Y
1
1-Y
4
1)は、順伝播のフェーズにより計算済みである。
【0121】
次に、制御部11は、対象の段階で第1部分行列を構成する部分行列及び入力ベクトルの積の各要素についての誤差の勾配(∂L/∂Y1
1-∂L/∂Y4
1)を導出する。チェイン・ルールにより、当該段階での第2部分行列の積についての誤差の勾配(∂L/∂Z1
1-∂L/∂Z4
1)を経由して、対象の段階での第1部分行列の積についての誤差の勾配(∂L/∂Y1
1-∂L/∂Y4
1)は、以下の式26-式29を満たす。
【0122】
【数26】
【数27】
【数28】
【数29】
そのため、制御部11は、取得された誤差の勾配(∂L/∂y
1、∂L/∂y
2)、対象の段階で使用される対角行列の各要素の値(a
1-a
4)、並びに次の段階(この場合は、最終の段階)で第1部分行列を構成する部分行列及び入力ベクトルの積についての誤差の勾配(∂L/∂Y
1
2-∂L/∂Y
4
2)に基づいて、対象の段階で第1部分行列を構成する部分行列及び入力ベクトルの積の各要素についての誤差の勾配(∂L/∂Y
1
1-∂L/∂Y
4
1)を導出する。この演算は、上記逆伝播フェーズの第5ステップの演算に相当する。本ケースでは、スケーリング関係が再帰的に成立する回数が1回であるため、当該演算処理により、上記逆伝播フェーズの第6ステップの演算が達成される。つまり、これまでの処理により、各段階で使用される対角行列の各要素についての誤差の勾配(∂L/∂A
11、∂L/∂A
12、∂L/∂A
21、∂L/∂A
22、∂L/∂a
1-∂L/∂a
4)、並びに初期の段階で第1部分行列を構成する部分行列及び入力ベクトルの積についての誤差の勾配(∂L/∂Y
1
1-∂L/∂Y
4
1)が導出される。
【0123】
次に、制御部11は、初期の第1部分行列を構成する部分行列の要素についての誤差の勾配(∂L/∂w1-∂L/∂w4)を導出する。チェイン・ルールにより、初期の第1部分行列の誤差の勾配(∂L/∂w1-∂L/∂w4)は、以下の式30-式33を満たす。
【0124】
【0125】
そのため、制御部11は、入力ベクトル(x1-x4)、並びに第6ステップにより導出される、初期の段階で第1部分行列を構成する部分行列及び入力ベクトルの積についての誤差の勾配(∂L/∂Y1
1-∂L/∂Y4
1)に基づいて、初期の第1部分行列を構成する部分行列の要素についての誤差の勾配(∂L/∂w1-∂L/∂w4)を導出する。この演算は、上記逆伝播フェーズの第7ステップに相当する。これまでの演算により、パラメータ行列の調節(更新)に使用される誤差の勾配、すなわち、初期の第1部分行列を構成する部分行列の要素及び各段階で使用される対角行列の各要素についての誤差の勾配(本ケースでは、∂L/∂w1-∂L/∂w4、∂L/∂A11、∂L/∂A12、∂L/∂A21、∂L/∂A22、∂L/∂a1-∂L/∂a4)の情報を得ることができる。制御部11は、各段階で使用される対角行列の各要素及び初期の第1部分行列を構成する部分行列の要素それぞれについて導出された誤差の勾配に基づいて、各段階で使用される対角行列の各要素及び初期の第1部分行列を構成する部分行列の要素それぞれの値を、推論結果との誤差が小さくなる方向に調節する。調節量は、学習率により適宜調整されてよい。この演算は、上記逆伝播フェーズの第8ステップに相当する。
【0126】
なお、パラメータ行列が中間層52又は出力層53に対応する場合、制御部11は、前の層に誤差を逆伝播するため、入力ベクトルについての誤差の勾配(∂L/∂x1-∂L/∂x4)を導出する。チェイン・ルールにより、入力ベクトルについての誤差の勾配(∂L/∂x1-∂L/∂x4)は、以下の式34-式37を満たす。
【0127】
【0128】
そのため、制御部11は、初期の段階で第1部分行列を構成する部分行列の各要素の値(w
1-w
4)、並びに初期の段階で第1部分行列を構成する部分行列及び入力ベクトルの積についての誤差の勾配(∂L/∂Y
1
1-∂L/∂Y
4
1)に基づいて、入力ベクトルについての誤差の勾配(∂L/∂x
1-∂L/∂x
4)を導出する。
図9Bは、これまでの演算過程を例示する。制御部11は、導出された誤差の勾配を前の層に逆伝播する。
【0129】
(C)第3具体例(任意サイズの行列)
次に、
図10A及び
図10Bを用いて、一般化されたケース(任意サイズの行列)でスケーリング関係が再帰的に成立する場合の順伝播及び逆伝播の演算過程の一例について説明する。
図10A及び
図10Bは、スケーリング関係が再帰的に成立するパラメータ行列の順伝播及び逆伝播のフェーズにおける演算過程の一例を示す。本ケースは、
図5Cで例示されるパラメータ行列のケースに相当する。本ケースの演算過程は、要素数が一般化されている点を除き、上記第2具体例と同様である。
【0130】
順伝播のフェーズでは、制御部11は、第1ステップの処理として、初期の第1部分行列を構成する部分行列(Wj
1)及び入力ベクトル(xj)の積を計算する(式38)。この計算によって、制御部11は、初期の第1部分行列の積の結果(Yj
1)を得る。
【0131】
【0132】
続いて、制御部11は、第2ステップの処理として、第1部分行列の積の演算結果(Yj
1)及び対角行列(Ak,j
1)の積を計算することで、初期の第2部分行列を構成する部分行列及び入力ベクトルの積(Zk,j
1)を導出する(式39のi=1のケース)。
【0133】
【0134】
次に、制御部11は、第3ステップの処理として、再帰的繰り返しの対象の段階で得られた第1部分行列の積の結果(Yj
i)及び第2部分行列の積の結果(Zk,j
i)から次の段階の第1部分行列を構成する部分行列及び入力ベクトルの積(Yj
i+1)を導出する。ここで、Yj
iおよびZk,j
iの各要素をそれぞれYj,m
i、Zk,j,m
iとする(式40)。また、制御部11は、第4ステップの処理として、得られた次の段階の第1部分行列の積の結果(Yj
i+1)及び対角行列(Ak,j
i+1)の積を計算することで、次の段階の第2部分行列を構成する部分行列及び入力ベクトルの積(Zk,j
i+1)を導出する(式39)。
【0135】
【0136】
制御部11は、対象の段階で得られた第1部分行列の積の結果(Y
j
i)及び第2部分行列の積の結果(Z
k,j
i)それぞれの初期値として、第1ステップ及び第2ステップそれぞれで得られた初期の第1部分行列の積の結果(Y
j
1)及び初期の第2部分行列の積の結果(Z
k,j
1)それぞれを代入する。そして、制御部11は、第3ステップ及び第4ステップを再帰的に繰り返す。これら一連の処理は、上記順伝播フェーズの第5ステップの処理に相当する。本ケースでは、制御部11は、第3ステップ及び第4ステップの処理をl回繰り返す。この演算結果により、制御部11は、パラメータ行列及び入力ベクトルの積の結果(式40のi=lのケース)を導出することができる。
図10Aは、これまでの演算過程を例示する。パラメータ行列が入力層51又は中間層52に対応する場合、制御部11は、得られた積の結果を次の層に順伝播する。一方、パラメータ行列が出力層53に対応する場合、制御部11は、推論タスクの遂行結果として積の結果を取得する。
【0137】
逆伝播のフェーズでは、制御部11は、第1ステップの処理として、パラメータ行列及び入力ベクトルの積に対する誤差Lの勾配(∂L/∂Yj
l+1)を取得する。取得方法は、上記第1具体例と同様である。続いて、制御部11は、第2ステップの処理として、
取得された誤差の勾配(∂L/∂Yj
l+1)の対応する各要素、並びに順伝播のフェーズの第5ステップの再帰的繰り返しの最終の段階で第1部分行列を構成する部分行列及び入力ベクトルの積の値(Yj
l)に基づいて、最終の段階で使用される対角行列(Ak,j
l)の各要素(Ak,j,m
l)についての誤差の勾配を導出する(式41及び式42のi=lのケース)。
【0138】
【0139】
次に、制御部11は、第3ステップの処理として、取得された誤差の勾配(∂L/∂Yj
l+1)及び最終の段階で使用される対角行列(Ak,j
l)の各要素(Ak,j,m
l)の値に基づいて、最終の段階で第1部分行列を構成する部分行列及び入力ベクトルの積の各要素についての誤差の勾配(∂L/∂Yj
l)の各要素(∂L/∂Yj,m
l)を導出する(式42、式43のi=lのケース)。
【0140】
【0141】
続いて、制御部11は、第4ステップの処理として、取得された誤差の勾配(∂L/∂Yj
l+1)、順伝播のフェーズの再帰的繰り返しの対象の段階で第1部分行列を構成する部分行列及び入力ベクトルの積の値(Yj
i)、並びに順伝播のフェーズの再帰的繰り返しにおいて当該対象の段階の次の段階で第1部分行列を構成する部分行列及び入力ベクトルの積についての誤差の勾配(∂L/∂Yj
i+1)に基づいて、当該対象の段階で使用される対角行列の各要素についての誤差の勾配(∂L/∂Ak,j
i)を導出する(式41、式42)。
【0142】
制御部11は、第5ステップの処理として、取得された誤差の勾配(∂L/∂Yj
l+1)、対象の段階で使用される対角行列(Ak,j
i)の各要素の値、並びに次の段階で第1部分行列を構成する部分行列及び入力ベクトルの積についての誤差の勾配(∂L/∂Yj
i+1)に基づいて、対象の段階で第1部分行列を構成する部分行列及び入力ベクトルの積の各要素についての誤差の勾配(∂L/∂Yj
i)を導出する(式42、式43)。
【0143】
制御部11は、次の段階で第1部分行列を構成する部分行列及び入力ベクトルの積の各要素についての誤差の勾配(∂L/∂Yj
i+1)の初期値として、逆伝播のフェーズの第3ステップで導出される、最終の段階で第1部分行列を構成する部分行列及び入力ベクトルの積の各要素についての誤差の勾配(∂L/∂Yj
l)を代入する。そして、制御部11は、順伝播のフェーズの再帰的繰り返しの初期の段階で使用される対角行列の各要素についての誤差の勾配(∂L/∂Ak,j
1)を導出するまで、上記逆伝播フェーズの第4ステップ及び第5ステップを再帰的に繰り返すことで、各段階で使用される対角行列の各要素についての誤差の勾配(∂L/∂Ak,j
i、iは、1からlの自然数)を導出する。これら一連の処理は、上記逆伝播フェーズの第6ステップの処理に相当する。これまでの処理により、各段階で使用される対角行列の各要素についての誤差の勾配(∂L/∂Ak,j
i)、並びに初期の段階で第1部分行列を構成する部分行列及び入力ベクトルの積についての誤差の勾配(∂L/∂Yj
1)が導出される。
【0144】
次に、制御部11は、第7ステップの処理として、入力ベクトル(xj)、並びに第6ステップにより導出される、初期の段階で第1部分行列を構成する部分行列及び入力ベクトルの積についての誤差の勾配(∂L/∂Yj
1)に基づいて、初期の第1部分行列を構成する部分行列の要素についての誤差の勾配(∂L/∂Wj
1)を導出する。
【0145】
【0146】
制御部11は、第8ステップの処理として、各段階で使用される対角行列の各要素及び初期の第1部分行列を構成する部分行列の要素それぞれについて導出された誤差の勾配(∂L/∂Ak,j
i、∂L/∂Wj
1)に基づいて、各段階で使用される対角行列の各要素及び初期の第1部分行列を構成する部分行列の要素それぞれの値(Ak,j
i、Wj
1)を調節する。
【0147】
また、パラメータ行列が中間層52又は出力層53に対応する場合、制御部11は、前の層に誤差を逆伝播するため、初期の段階で第1部分行列を構成する部分行列の各要素の値(W
j
1)、並びに初期の段階で第1部分行列を構成する部分行列及び入力ベクトルの積についての誤差の勾配(∂L/∂Y
j
1)に基づいて、入力ベクトルについての誤差の勾配(∂L/∂x
j)を導出する(式45)。
図10Bは、これまでの演算過程を例示する。制御部11は、導出された誤差の勾配を前の層に逆伝播する。
【0148】
【0149】
(小括)
以上の各演算過程により、各ケースにおいて、制御部11は、順伝播のフェーズ及び逆伝播のフェーズの処理を実行し、推論モデル5のパラメータの値を調節することができる。制御部11は、所定の条件(例えば、規定回数実行する、算出される誤差の和が閾値以下になる)を満たすまで、順伝播のフェーズ及び逆伝播のフェーズの各処理を繰り返し実行してもよい。
【0150】
上記機械学習の処理結果として、制御部11は、推論タスクを遂行する能力を獲得し、かつ第2部分行列の各要素の値が第1部分行列及び対角行列の積と一致するように調節された訓練済みの推論モデル5を生成することができる。特に、上記第2具体例及び第3具体例によれば、パラメータ行列の少なくとも一部内でスケーリング関係が再帰的に成立するように各パラメータの値が調節された訓練済みの推論モデル5を生成することができる。機械学習の処理が完了すると、制御部11は、次のステップS103に処理を進める。
【0151】
(ステップS103)
図7に戻り、ステップS103では、制御部11は、保存処理部113として動作し、機械学習により生成された訓練済みの推論モデル5に関する情報を学習結果データ125として生成する。学習結果データ125には、訓練済みの推論モデル5を再生するための情報が保持される。一例として、学習結果データ125は、上記機械学習の調節により得られた第1部分行列を構成するパラメータの値及び対角行列の対角成分の各値を示す情報を含むように構成されてよく、第2部分行列を構成するパラメータに関する情報は省略されてよい。他の一例として、スケーリング関係が再帰的に成立する場合、学習結果データ125は、上記機械学習の調節により得られた初期の第1部分行列を構成するパラメータの値(W
j
1)及び各段階で使用される対角行列の各要素の値(A
k,j
i)を示す情報を含むように構成されてよく、これら以外のパラメータに関する情報は省略されてよい。制御部11は、生成された学習結果データ125を所定の記憶領域に保存する。
【0152】
所定の記憶領域は、例えば、制御部11内のRAM、記憶部12、外部記憶装置、記憶メディア又はこれらの組み合わせであってよい。記憶メディアは、例えば、CD、DVD等であってよく、制御部11は、ドライブ17を介して記憶メディアに学習結果データ125を格納してもよい。外部記憶装置は、例えば、NAS(Network Attached Storage)等のデータサーバであってよい。この場合、制御部11は、通信インタフェース13を利用して、ネットワークを介してデータサーバに学習結果データ125を格納してもよい。また、外部記憶装置は、例えば、外部インタフェース14を介してモデル生成装置1に接続された外付けの記憶装置であってもよい。
【0153】
学習結果データ125の保存が完了すると、制御部11は、本動作例に係るモデル生成装置1の処理手順を終了する。
【0154】
なお、生成された学習結果データ125は、任意のタイミングで推論装置2に提供されてよい。例えば、制御部11は、ステップS103の処理として又はステップS103の処理とは別に、学習結果データ125を推論装置2に転送してもよい。推論装置2は、この転送を受信することで、学習結果データ125を取得してもよい。また、例えば、推論装置2は、通信インタフェース23を利用して、モデル生成装置1又はデータサーバにネットワークを介してアクセスすることで、学習結果データ125を取得してもよい。また、例えば、推論装置2は、記憶媒体92を介して、学習結果データ125を取得してもよい。また、例えば、学習結果データ125は、推論装置2に予め組み込まれてもよい。
【0155】
更に、制御部11は、上記ステップS101~ステップS103の処理を定期又は不定期に繰り返すことで、学習結果データ125を更新又は新たに生成してもよい。この繰り返しの際に、機械学習に使用する学習データセット3の少なくとも一部の変更、修正、追加、削除等が適宜実行されてよい。そして、制御部11は、更新した又は新たに生成した学習結果データ125を任意の方法で推論装置2に提供することで、推論装置2の保持する学習結果データ125を更新してもよい。
【0156】
[推論装置]
図11は、本実施形態に係る推論装置2による推論タスクの遂行に関する処理手順の一例を示すフローチャートである。以下で説明する推論装置2の処理手順は、推論方法の一例である。ただし、以下で説明する推論装置2の処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。また、以下の処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が行われてよい。
【0157】
(ステップS201)
ステップS201では、制御部21は、データ取得部211として動作し、対象データ221を取得する。対象データ221は、推定タスクの遂行対象となる所定種類のデータのサンプルである。対象データ221を取得する方法は、データの種類に応じて適宜決定されてよい。一例として、推論対象をセンサ(例えば、カメラ)により観測することで、対象データ221が生成されてよい。また、対象データ221を取得する経路は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。一例として、制御部21は、センサ等の装置から対象データ221を直接的に取得してもよい。他の一例では、制御部21は、他のコンピュータ、記憶媒体92等を介して、対象データ221を間接的に取得してもよい。対象データ221を取得すると、制御部21は、次のステップS202に処理を進める。
【0158】
(ステップS202)
ステップS202では、制御部21は、推論部212として動作し、学習結果データ125を参照して、訓練済みの推論モデル5の設定を行う。そして、制御部21は、訓練済みの推論モデル5を使用して、取得された対象データ221に対して推論タスクを遂行する。
【0159】
ステップS202における推論処理は、上記機械学習の訓練処理における順伝播(すなわち、推論試行)のフェーズの演算処理と同様であってよい。すなわち、制御部21は、対象データ221を入力層51に入力し、推論モデル5の順伝播の演算処理を実行する。この順伝播の演算処理の際、制御部21は、第1部分行列を構成する部分行列及び入力ベクトルの積を計算する。パラメータ行列が入力層51に対応する場合、入力ベクトルは、対象データ221である。パラメータ行列が中間層52又は出力層53に対応する場合、入力ベクトルは、対応する層の前の層の計算結果(出力)である。次に、制御部21は、第1部分行列の積の結果及び対角行列の対応する要素の積を計算することで、第2部分行列を構成する部分行列及び入力ベクトルの積を導出する。つまり、制御部21は、第1部分行列の積の結果及び対角行列を掛け算し、掛け算により得られた計算結果を、第2部分行列及び入力ベクトルの積の結果として取得する。スケーリング関係が再帰的に成立する場合には、制御部21は、上記順伝播フェーズの第1ステップ~第5ステップの演算を実行する。これらの演算の結果、制御部21は、対象データ221に対して推論タスクを遂行した結果に対応する出力値を出力層53から取得する。推論処理が完了すると、制御部21は、次のステップS203に処理を進める。
【0160】
(ステップS203)
ステップS203では、制御部21は、出力部213として動作し、推論タスクを遂行した結果(推論結果)に関する情報を出力する。
【0161】
出力先及び出力する情報の内容はそれぞれ、実施の形態に応じて適宜決定されてよい。例えば、制御部21は、ステップS202により得られた推論結果をそのまま出力装置26に出力してもよい。また、制御部21は、得られた推論の結果に基づいて、任意の情報処理を実行してもよい。そして、制御部21は、その情報処理を実行した結果を、推論結果に関する情報として出力してもよい。この情報処理を実行した結果の出力には、推論結果に応じて制御対象装置の動作を制御すること等が含まれてよい。出力先は、例えば、出力装置26、他のコンピュータの出力装置、制御対象装置等であってよい。
【0162】
推論タスクを遂行した結果に関する情報の出力が完了すると、制御部21は、本動作例に係る推論装置2の処理手順を終了する。なお、制御部21は、ステップS201~ステップS203の一連の情報処理を継続的に繰り返し実行してもよい。繰り返すタイミングは、実施の形態に応じて適宜決定されてよい。これにより、推論装置2は、上記推論タスクを継続的に繰り返し遂行するように構成されてよい。
【0163】
[特徴]
以上のとおり、本実施形態に係るモデル生成装置1によれば、ステップS101~ステップS103の処理により、第1部分行列及び第2部分行列を含む行列により表現され、かつ第2部分行列の各要素の値が第1部分行列及び対角行列の積と一致するように調節された訓練済みの推論モデル5を生成することができる。これにより、推論装置2のステップS202の処理において、第2部分行列の情報を保持していなくても、第1部分行列の演算結果を使い回して、第2部分行列の演算結果を得ることができる。同様に、そのような関係を満たすように各パラメータに初期値を与える(つまり、第1部分行列及び対角行列の各要素の値を設定する)ことで、ステップS102の処理においても、第2部分行列の情報を保持せずに、第1部分行列の演算結果を使い回して、第2部分行列の演算結果を得ることができる。したがって、本実施形態によれば、学習結果データ125において第2部分行列に関する情報を省略し、推論モデル5を構成するパラメータの数を実質的に低減することができる。具体的には、第2部分行列の要素数と対角行列の0以外の要素数との差分だけパラメータの数を低減することができる。スケーリング関係が再帰的に成立する場合には、パラメータ行列の少なくとも一部の要素数を、初期の第1部分行列を構成する部分行列の要素及び各段階で使用される対角行列の要素の数までパラメータの数を低減することができる。したがって、本実施形態によれば、推論モデル5の演算処理にかかる計算量を低減し、計算資源にかかる負担を抑えることができる。なお、本実施形態においても、特許文献2及び特許文献3で例示される分散処理、非特許文献1で例示される畳み込み演算の高速処理等の他の高速化手法が併用されてよい。
【0164】
§4 変形例
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良又は変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
【0165】
<4.1>
上記実施形態に係る推論システム100は、所定種類のデータに対して任意の推論タスクを遂行するあらゆる場面に適用されてよい。推論タスクは、例えば、画像データに写る製品に欠陥があるか否かを判定すること、画像データに写る対象物の種別を識別すること、センシングデータに表れる対象物の状態を推論すること等であってよい。訓練データ31及び対象データ221は、例えば、画像データ、音データ、数値データ、テキストデータ、その他各種センサにより得られる測定データ等であってよい。訓練データ31及び対象データ221は、任意の対象をセンサにより観測することで生成されるセンシングデータであってよい。センサは、例えば、カメラ、マイクロフォン、エンコーダ、環境センサ、バイタルセンサ、医療検査装置、車載センサ、ホームセキュリティセンサ等であってよい。環境センサは、例えば、気圧計、温度計、湿度計、音圧計、音センサ、紫外線センサ、照度計、雨量計、ガスセンサ等であってよい。バイタルセンサは、例えば、血圧計、脈拍計、心拍計、心電計、筋電計、体温計、皮膚電気反応計、マイクロ波センサ、脳波計、脳磁計、活動量計、血糖値測定器、眼電位センサ、眼球運動計測器等であってよい。医療検査装置は、例えば、CT(Computed Tomography)装置、MRI(Magnetic Resonance Imaging)装置等であってよい。車載センサは、例えば、画像センサ、Lidar(light detection and ranging)センサ、ミリ波レーダ、超音波センサ、加速度センサ等であってよい。ホームセキュリティセンサは、例えば、画像センサ、赤外線センサ、活性度(音声)センサ、ガス(CO2等)センサ、電流センサ、スマートメータ(家電、照明等の電力使用量を計測するセンサ)等であってよい。以下、適用場面を限定した変形例を例示する。
【0166】
(A)外観検査の場面
図12は、第1変形例に係る検査システム100Aの適用場面の一例を模式的に例示する。本変形例は、製品の写る画像データを利用して、製品の外観検査を実施する場面に上記実施形態を適用した例である。本変形例に係る検査システム100Aは、上記推論システム100の一例であり、モデル生成装置1及び検査装置2Aを備えている。上記実施形態と同様に、モデル生成装置1及び検査装置2Aは、ネットワークを介して互いに接続されてよい。
【0167】
本変形例において取り扱われる所定種類のデータ(訓練データ31A及び対象データ221A)は、製品RAの写る画像データ(画像サンプル)により構成される。画像データは、カメラSAで製品RAを撮影することで得られてよい。推論タスクは、画像データに写る製品RAに欠陥があるか否かを判定することである。欠陥があるか否かを判定することは、欠陥の有無を識別すること、製品RAに欠陥が含まれる確率を推定すること、製品RAに含まれる欠陥の種別(「欠陥がない」ことを示す種別が含まれてもよい)を識別すること、製品RAに含まれる欠陥の範囲を抽出すること又はこれらに組み合わせにより構成されてよい。これらの限定を除き、本変形例に係る検査システム100Aは、上記実施形態に係る推論システム100と同様に構成されてよい。
【0168】
なお、製品RAは、例えば、電子機器、電子部品、自動車部品、薬品、食品等の製造ラインで搬送される製品であってよい。電子部品は、例えば、基盤、チップコンデンサ、液晶、リレーの巻線等であってよい。自動車部品は、例えば、コンロッド、シャフト、エンジンブロック、パワーウィンドウスイッチ、パネル等であってよい。薬品は、例えば、包装済みの錠剤、未包装の錠剤等であってよい。製品RAは、製造過程完了後に生成される最終品であってもよいし、製造過程の途中で生成される中間品であってもよいし、製造過程を経過する前に用意される初期品であってもよい。欠陥は、例えば、傷、汚れ、クラック、打痕、バリ、色ムラ、異物混入等であってよい。
【0169】
(モデル生成装置)
本変形例では、モデル生成装置1は、上記ステップS101において、複数の学習データセット3Aを取得する。各学習データセット3Aは、訓練データ31A及び正解ラベル32Aの組み合わせにより構成される。訓練データ31Aは、製品RAの写る画像データにより構成される。訓練データ31Aの取得には、任意の種類のカメラが用いられてよい。正解ラベル32Aは、例えば、欠陥の有無、欠陥の種別、欠陥の存在する範囲等の、訓練データ31Aに写る製品の欠陥に関する推論タスクの正解を示すように構成される。
【0170】
モデル生成装置1は、上記ステップS102の処理により、取得された複数の学習データセット3Aを使用して、推論モデル5の機械学習を実施する。これにより、画像データに写る製品RAに欠陥があるか否かを判定する能力を獲得し、かつ第2部分行列の各要素の値が第1部分行列及び対角行列の積と一致するように調節された訓練済みの推論モデル5を生成することができる。モデル生成装置1は、上記ステップS103の処理により、訓練済みの推論モデル5に関する情報を学習結果データ125として所定の記憶領域に適宜保存する。生成された学習結果データ125は、任意のタイミングで検査装置2Aに提供されてよい。
【0171】
(検査装置)
検査装置2Aは、上記推論装置2の一例である。検査装置2Aのハードウェア構成及びソフトウェア構成は、上記実施形態に係る推論装置2と同様であってよい。本変形例では、検査装置2Aは、通信インタフェース又は外部インタフェースを介してカメラSAに接続されてよい。或いは、カメラSAは他のコンピュータに接続され、検査装置2Aは、当該他のコンピュータに接続することで、カメラSAから画像データを取得可能に構成されてもよい。カメラSAは、例えば、一般的なRGBカメラ、深度カメラ、赤外線カメラ等であってよい。カメラSAは、製品RAを撮影可能な場所に適宜配置されてよい。例えば、カメラSAは、製品RAを搬送するコンベア装置の近傍に配置されてよい。
【0172】
検査装置2Aは、上記推論装置2と同様の処理手順により、外観検査に関する一連の情報処理を実行する。すなわち、ステップS201では、検査装置2Aは、カメラSAから対象データ221Aを取得する。対象データ221Aは、検査対象の製品RAの写る画像データにより構成される。ステップS202では、検査装置2Aは、訓練済みの推論モデル5を使用して、対象データ221A(画像データ)に写る製品RAに欠陥があるか否かを判定する。そして、ステップS203では、検査装置2Aは、製品RAに欠陥があるか否かを判定した結果に関する情報を出力する。一例では、検査装置2Aは、製品RAに欠陥があるか否かを判定した結果をそのまま出力装置に出力してよい。他の一例では、検査装置2Aは、製品RAに欠陥が含まれると判定した場合、そのことを知らせるための警告を出力装置に出力してもよい。これらの情報の出力先は、検査装置2Aの出力装置に限られず、他のコンピュータの出力装置であってもよい。更にその他の一例では、製品RAを搬送するコンベア装置に検査装置2Aが接続される場合、検査装置2Aは、判定結果に基づいて、欠陥のある製品と欠陥のない製品とを別のラインで搬送されるようにコンベア装置を制御してもよい。
【0173】
(特徴)
本変形例によれば、推論モデル5を構成するパラメータの数を実質的に低減することで、外観検査に使用される推論モデル5の演算処理にかかる計算量を低減し、計算資源にかかる負担を抑えることができる。これにより、外観検査の高速化、低廉なコンピュータでの外観検査の実施等の効果を期待することができる。
【0174】
(B)画像識別の場面
図13は、第2変形例に係る識別システム100Bの適用場面の一例を模式的に例示する。本変形例は、画像データに写る対象物を識別する場面に上記実施形態を適用した例である。本変形例に係る識別システム100Bは、上記推論システム100の一例であり、モデル生成装置1及び識別装置2Bを備えている。上記実施形態と同様に、モデル生成装置1及び識別装置2Bは、ネットワークを介して互いに接続されてよい。
【0175】
本変形例において取り扱われる所定種類のデータ(訓練データ31B及び対象データ221B)は、対象物RBの写る画像データ(画像サンプル)により構成される。画像データは、カメラSBで対象物RBを撮影することで得られてよい。推論タスクは、画像データに写る対象物RBの種別を識別することである。対象物RBの種別を識別することは、セグメンテーション(対象の写る範囲を抽出すること)を含んでよい。対象物RBは、人物であってもよいし、任意の物であってもよい。画像データに写る範囲は、対象物RBの特定部位(例えば、顔等)であってもよいし、或いは対象物RBの全体であってもよい。対象物RBが人物である場合、識別対象は、例えば、顔等の身体の一部であってもよい。人物の種別を識別することは、例えば、個人を推定することであってもよいし、或いは身体部位(顔、腕、脚、関節等)を推定することであってもよい。任意の物についても同様である。これらの限定を除き、本変形例に係る識別システム100Bは、上記実施形態に係る推論システム100と同様に構成されてよい。
【0176】
(モデル生成装置)
本変形例では、モデル生成装置1は、上記ステップS101において、複数の学習データセット3Bを取得する。各学習データセット3Bは、訓練データ31B及び正解ラベル32Bの組み合わせにより構成される。訓練データ31Bは、対象物RBの写る画像データにより構成される。訓練データ31Bの取得には、任意の種類のカメラが用いられてよい。正解ラベル32Bは、訓練データ31Bに写る対象物RBの種別(正解)を示すように構成される。
【0177】
モデル生成装置1は、上記ステップS102の処理により、取得された複数の学習データセット3Bを使用して、推論モデル5の機械学習を実施する。これにより、画像データに写る対象物RBの種別を識別する能力を獲得し、かつ第2部分行列の各要素の値が第1部分行列及び対角行列の積と一致するように調節された訓練済みの推論モデル5を生成することができる。モデル生成装置1は、上記ステップS103の処理により、訓練済みの推論モデル5に関する情報を学習結果データ125として所定の記憶領域に適宜保存する。生成された学習結果データ125は、任意のタイミングで識別装置2Bに提供されてよい。
【0178】
(識別装置)
識別装置2Bは、上記推論装置2の一例である。識別装置2Bのハードウェア構成及びソフトウェア構成は、上記実施形態に係る推論装置2と同様であってよい。本変形例では、識別装置2Bは、通信インタフェース又は外部インタフェースを介してカメラSBに接続されてよい。或いは、カメラSBは他のコンピュータに接続され、識別装置2Bは、当該他のコンピュータに接続することで、カメラSBから画像データを取得可能に構成されてもよい。カメラSBは、例えば、一般的なRGBカメラ、深度カメラ、赤外線カメラ等であってよい。カメラSBは、対象物RBを撮影可能な場所に適宜配置されてよい。
【0179】
識別装置2Bは、上記推論装置2と同様の処理手順により、対象物RBの識別に関する一連の情報処理を実行する。すなわち、ステップS201では、識別装置2Bは、カメラSBから対象データ221Bを取得する。対象データ221Bは、識別対象である対象物RBの写る画像データにより構成される。ステップS202では、識別装置2Bは、訓練済みの推論モデル5を使用して、対象データ221B(画像データ)に写る対象物RBの種別を識別する。そして、ステップS203では、識別装置2Bは、対象物RBの種別を識別した結果に関する情報を出力する。一例では、識別装置2Bは、対象物RBを識別した結果をそのまま出力装置に出力してよい。他の一例では、識別装置2Bは、対象物RBを識別した結果に応じて任意の情報処理を実行してよい。例えば、識別装置2Bは、識別された対象人物(対象物RB)が特定の個人である場合に、ロックを解除する等の情報処理を実行してもよい。
【0180】
(特徴)
本変形例によれば、推論モデル5を構成するパラメータの数を実質的に低減することで、対象物RBの識別に使用される推論モデル5の演算処理にかかる計算量を低減し、計算資源にかかる負担を抑えることができる。その結果、対象物RBの識別処理の高速化、低廉なコンピュータでの識別処理の実施等の効果を期待することができる。
【0181】
(C)状態推論の場面
図14は、第3変形例に係る推論システム100Cの適用場面の一例を模式的に例示する。本変形例は、センシングデータに表れる対象物RCの状態を推論(識別/回帰)する場面に上記実施形態を適用した例である。本変形例に係る推論システム100Cは、上記推論システム100の一例であり、モデル生成装置1及び推論装置2Cを備えている。上記実施形態と同様に、モデル生成装置1及び推論装置2Cは、ネットワークを介して互いに接続されてよい。
【0182】
本変形例において取り扱われる所定種類のデータ(訓練データ31C及び対象データ221C)は、対象物RCをセンサSCにより観測することで生成されたセンシングデータにより構成される。センサSCは、例えば、カメラ、マイクロフォン、エンコーダ、環境センサ、バイタルセンサ、医療検査装置、車載センサ、ホームセキュリティセンサ等であってよい。推論タスクは、センシングデータに表れる対象物RCの状態を推論(識別/回帰)することである。推論することは、予測すること(すなわち、センシングデータが得られた時点から未来の状態を推論すること)を含んでよい。これらの限定を除き、本変形例に係る推論システム100Cは、上記実施形態に係る推論システム100と同様に構成されてよい。
【0183】
なお、センサSCの種類は、推論タスクに応じて適宜選択されてよい。一例として、対象物RCは人物であり、対象物RCの状態を推論することは、対象人物の状態を推論することであってよい。この場合、センサSCは、例えば、カメラ、マイクロフォン、バイタルセンサ、及び医療検査装置の少なくともいずれかにより構成されてよい。対象人物の状態を推論することは、例えば、所定の疾患を発症する確率、体調変化が生じる確率等の健康状態を推論することであってよい。或いは、対象人物は、例えば、車両の運転者であってよく、対象人物の状態を推論することは、運転者の状態(例えば、眠気度、疲労度、余裕度等)を推論することであってよい。
【0184】
他の一例として、対象物RCは産業用機械であり、対象物RCの状態を推論することは、産業用機械に異常があるか否かを推論(検知又は予測)することであってよい。この場合、センサSCは、例えば、マイクロフォン、エンコーダ、及び環境センサの少なくともいずれかにより構成されてよい。センシングデータは、モータのエンコーダ値、温度、動作音等により構成されてよい。
【0185】
他の一例として、対象物RCは、車両の外部に存在する物体であり、対象物RCの状態を推論することは、車両外部の状況を推論することであってよい。この場合、センサSCは、例えば、カメラ、及び車載センサの少なくともいずれかにより構成されてよい。車両外部の状況を推論することは、例えば、車両外部に存在する物体の属性を推論すること、混雑状況を推論すること、事故のリスクを推論すること等であってよい。車両外部に存在する物体は、例えば、道路、信号機、障害物(人、物)等であってよい。車両外部に存在する物体の属性を推論することは、例えば、人又は車両の飛び出し、急発進、急停車、車線変更等のイベントの発生を推論することを含んでよい。
【0186】
他の一例として、対象物RCは、例えば、屋外、所定の屋内(例えば、ビニルハウス内等)の特定の場所に存在する物体であり、対象物RCの状態を推論することは、特定の場所の状況を推論することであってよい。この場合、センサSCは、例えば、カメラ、マイクロフォン、及び環境センサの少なくともいずれかにより構成されてよい。具体例として、対象物RCは植物であってよく、特定の場所の状況を推論することは、植物の栽培状況を推論することであってよい。
【0187】
他の一例として、対象物RCは、例えば、住宅内に存在する物体であり、対象物RCの状態を推論することは、住宅内の状況を推論することであってよい。この場合、センサSCは、例えば、カメラ、マイクロフォン、環境センサ、及びホームセキュリティセンサの少なくともいずれかにより構成されてよい。
【0188】
(モデル生成装置)
本変形例では、モデル生成装置1は、上記ステップS101において、複数の学習データセット3Cを取得する。各学習データセット3Cは、訓練データ31C及び正解ラベル32Cの組み合わせにより構成される。訓練データ31Cは、対象物RCをセンサSCにより観測することで生成されたセンシングデータにより構成される。正解ラベル32Cは、訓練データ31Cに表れる対象物RCの状態(正解)を示すように構成される。
【0189】
モデル生成装置1は、上記ステップS102の処理により、取得された複数の学習データセット3Cを使用して、推論モデル5の機械学習を実施する。これにより、センシングデータに表れる対象物RCの状態を推論する能力を獲得し、かつ第2部分行列の各要素の値が第1部分行列及び対角行列の積と一致するように調節された訓練済みの推論モデル5を生成することができる。モデル生成装置1は、上記ステップS103の処理により、訓練済みの推論モデル5に関する情報を学習結果データ125として所定の記憶領域に適宜保存する。生成された学習結果データ125は、任意のタイミングで推論装置2Cに提供されてよい。
【0190】
(推論装置)
推論装置2Cは、上記推論装置2の一例である。推論装置2Cのハードウェア構成及びソフトウェア構成は、上記実施形態に係る推論装置2と同様であってよい。本変形例では、推論装置2Cは、通信インタフェース又は外部インタフェースを介してセンサSCに接続されてよい。或いは、センサSCは他のコンピュータに接続され、推論装置2Cは、当該他のコンピュータに接続することで、センサSCからセンシングデータを取得可能に構成されてよい。
【0191】
推論装置2Cは、上記推論装置2と同様の処理手順により、対象物RCの状態推論に関する一連の情報処理を実行する。すなわち、ステップS201では、推論装置2Cは、センサSCから対象データ221Cを取得する。対象データ221Cは、推論対象である対象物RCをセンサSCにより観測することで生成されたセンシングデータにより構成される。ステップS202では、推論装置2Cは、訓練済みの推論モデル5を使用して、対象データ221C(センシングデータ)に表れる対象物RCの状態を推論する。
【0192】
そして、ステップS203では、推論装置2Cは、対象物RCの状態を推論した結果に関する情報を出力する。一例では、推論装置2Cは、対象物RCの状態を推論した結果をそのまま出力装置に出力してよい。他の一例では、推論装置2Cは、対象物RCの状態を推論した結果に応じて任意の情報処理を実行してよい。具体例として、対象物RCの状態を推論することが、対象人物の健康状態を推論することである場合、推論装置2Cは、対象人物の健康状態に異常があると判定される(例えば、所定の疾患の発症確率が閾値を超える)ときにそのことを知らせるための警告を出力してもよい。他の具体例として、対象物RCの状態を推論することが、運転者の状態を推論することである場合、推論装置2Cは、運転者の眠気度又は疲労度が閾値を超えるときに、運転の休憩を促すメッセージを通知する、自動運転から手動運転の切り替えを禁止する等の出力を実行してもよい。他の具体例として、対象物RCの状態を推論することが、産業用機械に異常があるか否かを推論ことである場合、産業用機械に異常がある又はその予兆があると判定されるときに、推論装置2Cは、そのことを知らせるための警告を出力してもよい。他の具体例として、対象物RCの状態を推論することが、車両外部の状況を推論することである場合、推論装置2Cは、推論される車両外部の状況に応じて車両に対する動作指令を決定し、決定された動作指令により車両を制御してもよい(例えば、人の飛び出しを検知した場合に、車両の一時停止を実行する)。
【0193】
(特徴)
本変形例によれば、推論モデル5を構成するパラメータの数を実質的に低減することで、対象物RCの状態推論に使用される推論モデル5の演算処理にかかる計算量を低減し、計算資源にかかる負担を抑えることができる。その結果、対象物RCの状態を推論する処理の高速化、低廉なコンピュータでの推論処理の実施等の効果を期待することができる。
【0194】
<4.2>
上記実施形態では、推論モデル5は、全結合型ニューラルネットワークにより構成されている。しかしながら、推論モデル5を構成するニューラルネットワークの種類は、このような例に限定されなくてもよい。他の一例では、推論モデル5は、畳み込みニューラルネットワーク、再帰型ニューラルネットワーク等により構成されてよい。推論モデル5を構成するニューラルネットワークは、例えば、畳み込み層、プーリング層、正規化層、ドロップアウト層等の他の種類の層を含んでもよい。
【0195】
また、上記実施形態において、推論モデル5を構成する機械学習モデルの種類は、ニューラルネットワークに限られなくてもよい。パラメータを行列により表現可能であれば、推論モデル5を構成する機械学習モデルの種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。他の一例として、推論モデル5は、例えば、主成分分析により得られる主成分ベクトル、サポートベクタマシン等により構成されてよい。機械学習の方法は、採用される機械学習モデルの種類に応じて適宜決定されてよい。
【符号の説明】
【0196】
1…モデル生成装置、
11…制御部、12…記憶部、13…通信インタフェース、
14…外部インタフェース、
15…入力装置、16…出力装置、17…ドライブ、
81…モデル生成プログラム、91…記憶媒体、
111…データ取得部、112…学習処理部、
113…保存処理部、125…学習結果データ、
2…推論装置、
21…制御部、22…記憶部、23…通信インタフェース、
24…外部インタフェース、
25…入力装置、26…出力装置、27…ドライブ、
82…推論プログラム、92…記憶媒体、
211…データ取得部、212…推論部、213…出力部、
221…対象データ、
3…学習データセット、
31…訓練データ、32…正解ラベル、
5…推論モデル、
51…入力層、52…中間(隠れ)層、53…出力層