(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-04
(45)【発行日】2023-12-12
(54)【発明の名称】モデル生成装置、推定装置、モデル生成方法、及びモデル生成プログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20231205BHJP
【FI】
G06N20/00 130
(21)【出願番号】P 2020036237
(22)【出願日】2020-03-03
【審査請求日】2023-01-11
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】100124039
【氏名又は名称】立花 顕治
(74)【代理人】
【識別番号】100179213
【氏名又は名称】山下 未知子
(74)【代理人】
【識別番号】100170542
【氏名又は名称】桝田 剛
(72)【発明者】
【氏名】橋本 敦史
(72)【発明者】
【氏名】岡本 大和
【審査官】山田 辰美
(56)【参考文献】
【文献】特開平5-346915(JP,A)
【文献】特開平9-016553(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
訓練データ、前記訓練データに対する第1推定タスクの正解を示す第1正解データ、前記第1推定タスクとは異なる第2推定タスクであって、前記訓練データに対する第2推定タスクの正解を示す第2正解データの組み合わせによりそれぞれ構成される複数の学習データセットを取得するデータ取得部と、
前記複数の学習データセットを使用して、学習モデルの機械学習を実施する学習処理部であって、
前記学習モデルは、符号器、第1推定器、及び第2推定器を含み、
前記符号器は、与えられた入力データを特徴量に変換するように構成され、
前記第1推定器は、前記特徴量の第1部分の入力を受け付け、入力された前記第1部分に基づいて、前記入力データに対する前記第1推定タスクを遂行するように構成され、
前記第2推定器は、前記特徴量の第2部分であって、前記第1部分以外の第2部分の入力を受け付け、入力された前記第2部分に基づいて、前記入力データに対する前記第2推定タスクを遂行するように構成され、並びに
前記機械学習を実施することは、
前記各学習データセットについて、前記訓練データを前記符号器に与えたときに、前記第1推定器の前記第1推定タスクを遂行した結果が前記第1正解データに適合し、かつ前記第2推定器の前記第2推定タスクを遂行した結果が前記第2正解データに適合するように、前記符号器、前記第1推定器、及び前記第2推定器を訓練する第1訓練ステップ、並びに
前記各学習データセットについて、前記特徴量の前記第1部分と前記第2正解データとの間の相関性が低くなり、かつ前記特徴量の前記第2部分と前記第1正解データとの間の相関性が低くなるように、前記符号器を訓練する第2訓練ステップ、
を含む、
学習処理部と、
を備える、
モデル生成装置。
【請求項2】
前記学習モデルは、前記符号器の出力からマスクを生成するように構成されたマスク生成器を更に備え、
前記機械学習を実施することは、前記各学習データセットについて、前記訓練データを前記符号器に与えたときに、前記第1推定器の前記第1推定タスクを遂行した結果が前記第1正解データに適合するように、前記マスク生成器を訓練する第3訓練ステップを更に含み、
前記第1部分は、生成された前記マスクを前記特徴量に適用することにより抽出される、
請求項1に記載のモデル生成装置。
【請求項3】
前記第3訓練ステップは、前記第1訓練ステップ及び前記第2訓練ステップの少なくともいずれかと同時に実行される、
請求項2に記載のモデル生成装置。
【請求項4】
前記機械学習を実施することは、生成される前記マスクの各要素の2値化が進むように、前記マスク生成器を訓練する第4訓練ステップを更に含む、
請求項2又は3に記載のモデル生成装置。
【請求項5】
前記学習モデルは、第1敵対推定器及び第2敵対推定器を更に含み、
前記第1敵対推定器は、前記特徴量の前記第1部分の入力を受け付け、入力された前記第1部分に基づいて、前記入力データに対する前記第2推定タスクを遂行するように構成され、
前記第2敵対推定器は、前記特徴量の前記第2部分の入力を受け付け、入力された前記第2部分に基づいて、前記入力データに対する前記第1推定タスクを遂行するように構成され、
前記第2訓練ステップは、
前記各学習データセットについて、前記訓練データを前記符号器に与えたときに、前記第1敵対推定器の前記第2推定タスクを遂行した結果が前記第2正解データに適合し、かつ前記第2敵対推定器の前記第1推定タスクを遂行した結果が前記第1正解データに適合するように、前記第1敵対推定器及び前記第2敵対推定器を訓練する第1ステップ、並びに
前記各学習データセットについて、前記訓練データを前記符号器に与えたときに、前記第1敵対推定器の前記第2推定タスクを遂行した結果が前記第2正解データに適合しなくなるように、かつ前記第2敵対推定器の前記第1推定タスクを遂行した結果が前記第1正解データに適合しなくなるように、前記符号器を訓練する第2ステップ、
を交互に繰り返し実行することにより構成される、
請求項1から4のいずれか1項に記載のモデル生成装置。
【請求項6】
前記学習モデルは、前記特徴量から前記入力データを復号化するように構成される復号器を更に含み、
前記機械学習を実施することは、前記各学習データセットについて、前記訓練データを前記符号器に与えたときに、前記復号器により得られる復号化データが前記訓練データに適合するように、前記符号器及び前記復号器を訓練する第5訓練ステップを更に含む、
請求項1から5のいずれか1項に記載のモデル生成装置。
【請求項7】
前記第5訓練ステップは、前記第1訓練ステップ及び前記第2訓練ステップの少なくともいずれかと同時に実行される、
請求項6に記載のモデル生成装置。
【請求項8】
前記第2推定タスクは、前記訓練データの個体性を推定することである、
請求項1から7のいずれか1項に記載のモデル生成装置。
【請求項9】
前記第2正解データは、前記訓練データの識別子を示すように構成され、
前記訓練データの個体性を推定することは、前記識別子を識別することである、
請求項8に記載のモデル生成装置。
【請求項10】
前記識別子は、ハッシュ値により構成される、
請求項9に記載のモデル生成装置。
【請求項11】
前記各学習データセットの前記訓練データはクラス分けされ、
前記識別子は、前記訓練データの属するクラスを示すように構成される、
請求項9に記載のモデル生成装置。
【請求項12】
前記各学習データセットは、前記訓練データに対する高次推定タスクの正解を示す高次正解データを更に備え、
前記学習モデルは、高次推定器を更に含み、
前記高次推定器は、前記特徴量の前記第1部分及び前記第2部分の入力を受け付け、入力された前記第1部分及び前記第2部分に基づいて、前記入力データに対する前記高次推定タスクを遂行するように構成され、並びに
前記機械学習を実施することは、前記各学習データセットについて、前記訓練データを前記符号器に与えたときに、前記高次推定器の前記高次推定タスクを遂行した結果が前記高次正解データに適合するように、前記高次推定器を訓練する高次訓練ステップを更に含む、
請求項1から11のいずれか1項に記載のモデル生成装置。
【請求項13】
対象データを取得するデータ取得部と、
請求項1から11のいずれか1項に記載のモデル生成装置により訓練された前記符号器及び前記第1推定器を使用して、取得された前記対象データに対して前記第1推定タスクを遂行する推定部と、
前記第1推定タスクを遂行した結果に関する情報を出力する出力部と、
を備える、
推定装置。
【請求項14】
対象データを取得するデータ取得部と、
請求項12に記載のモデル生成装置により訓練された前記符号器及び前記高次推定器を使用して、取得された前記対象データに対して前記高次推定タスクを遂行する推定部と、
前記高次推定タスクを遂行した結果に関する情報を出力する出力部と、
を備える、
推定装置。
【請求項15】
訓練データ、及び前記訓練データに対するn個の推定タスクそれぞれの正解をそれぞれ示すn件の正解データの組み合わせによりそれぞれ構成される複数の学習データセットを取得するデータ取得部と、
前記複数の学習データセットを使用して、学習モデルの機械学習を実施する学習処理部であって、
前記学習モデルは、符号器及びn個の推定器を含み、
前記符号器は、与えられた入力データを特徴量に変換するように構成され、
前記特徴量は、前記各推定タスクにそれぞれ対応するn個の部分を含み、
前記各推定器は、前記各推定タスクに割り当てられ、
前記各推定器は、前記特徴量の対応する前記部分の入力を受け付け、入力された前記部分に基づいて、前記入力データに対する割り当てられた前記推定タスクを遂行するように構成され、並びに
前記機械学習を実施することは、
前記各学習データセットについて、前記訓練データを前記符号器に与えたときに、前記各推定器の前記各推定タスクを遂行した結果が対応する前記正解データに適合するように、前記符号器及び前記各推定器を訓練する第1訓練ステップ、並びに
前記各学習データセットについて、前記特徴量の前記各部分と前記各部分に対応する前記推定タスクに対応する前記正解データを除くn-1件の正解データとの間の相関性が低くなるように、前記符号器を訓練する第2訓練ステップ、
を含む、
学習処理部と、
を備え、
前記nは、3以上である、
モデル生成装置。
【請求項16】
前記n個の推定タスクのいずれか1つは、前記訓練データの個体性を推定することである、
請求項15に記載のモデル生成装置。
【請求項17】
コンピュータが、
訓練データ、前記訓練データに対する第1推定タスクの正解を示す第1正解データ、前記第1推定タスクとは異なる第2推定タスクであって、前記訓練データに対する第2推定タスクの正解を示す第2正解データの組み合わせによりそれぞれ構成される複数の学習データセットを取得するステップと、
前記複数の学習データセットを使用して、学習モデルの機械学習を実施するステップであって、
前記学習モデルは、符号器、第1推定器、及び第2推定器を含み、
前記符号器は、与えられた入力データを特徴量に変換するように構成され、
前記第1推定器は、前記特徴量の第1部分の入力を受け付け、入力された前記第1部分に基づいて、前記入力データに対する前記第1推定タスクを遂行するように構成され、
前記第2推定器は、前記特徴量の第2部分であって、前記第1部分以外の第2部分の入力を受け付け、入力された前記第2部分に基づいて、前記入力データに対する前記第2推定タスクを遂行するように構成され、並びに
前記機械学習を実施することは、
前記各学習データセットについて、前記訓練データを前記符号器に与えたときに、前記第1推定器の前記第1推定タスクを遂行した結果が前記第1正解データに適合し、かつ前記第2推定器の前記第2推定タスクを遂行した結果が前記第2正解データに適合するように、前記符号器、前記第1推定器、及び前記第2推定器を訓練する第1訓練ステップ、並びに
前記各学習データセットについて、前記特徴量の前記第1部分と前記第2正解データとの間の相関性が低くなり、かつ前記特徴量の前記第2部分と前記第1正解データとの間の相関性が低くなるように、前記符号器を訓練する第2訓練ステップ、
を含む、
ステップと、
を実行する、
モデル生成方法。
【請求項18】
コンピュータに、
訓練データ、前記訓練データに対する第1推定タスクの正解を示す第1正解データ、前記第1推定タスクとは異なる第2推定タスクであって、前記訓練データに対する第2推定タスクの正解を示す第2正解データの組み合わせによりそれぞれ構成される複数の学習データセットを取得するステップと、
前記複数の学習データセットを使用して、学習モデルの機械学習を実施するステップであって、
前記学習モデルは、符号器、第1推定器、及び第2推定器を含み、
前記符号器は、与えられた入力データを特徴量に変換するように構成され、
前記第1推定器は、前記特徴量の第1部分の入力を受け付け、入力された前記第1部分に基づいて、前記入力データに対する前記第1推定タスクを遂行するように構成され、
前記第2推定器は、前記特徴量の第2部分であって、前記第1部分以外の第2部分の入力を受け付け、入力された前記第2部分に基づいて、前記入力データに対する前記第2推定タスクを遂行するように構成され、並びに
前記機械学習を実施することは、
前記各学習データセットについて、前記訓練データを前記符号器に与えたときに、前記第1推定器の前記第1推定タスクを遂行した結果が前記第1正解データに適合し、かつ前記第2推定器の前記第2推定タスクを遂行した結果が前記第2正解データに適合するように、前記符号器、前記第1推定器、及び前記第2推定器を訓練する第1訓練ステップ、並びに
前記各学習データセットについて、前記特徴量の前記第1部分と前記第2正解データとの間の相関性が低くなり、かつ前記特徴量の前記第2部分と前記第1正解データとの間の相関性が低くなるように、前記符号器を訓練する第2訓練ステップ、
を含む、
ステップと、
を実行させるための、
モデル生成プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、モデル生成装置、推定装置、モデル生成方法、及びモデル生成プログラムに関する。
【背景技術】
【0002】
近年、車両を自律的に運転するための自動運転の技術開発が盛んに行われている。例えば、特許文献1には、訓練済みのニューラルネットワークを用いて、自動運転車両に対してローカル座標内に目的地を確立し、確立されたルートに沿ってナビゲーションするように自動運転車両の加速、制動、及び操舵を決定するためのシステムが提案されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特表2019-533810号公報
【文献】特開2019-125299号公報
【文献】特開2012-026982号公報
【文献】特開2009-083095号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
機械学習により構築された訓練済みの機械学習モデルによれば、与えられた訓練データと同種の未知のデータに対して、回帰、分類等の推定(予測を含む)タスクを遂行することができる。そのため、訓練済みの機械学習モデルの出力に基づいて、自動運転の戦略を決定することは可能である。しかしながら、訓練済みの機械学習モデルを使用する自動運転の技術には次のような問題点があることを本件発明者らは見出した。
【0005】
すなわち、機械学習モデルは、推定タスクを遂行する演算処理を実行するための複数の演算パラメータを備える。例えば、機械学習モデルとしてニューラルネットワークを用いる場合、各ニューロン間の結合の重み及び各ニューロンの閾値が演算パラメータの一例である。推定タスクが複雑になるほど、この演算パラメータの数は多くなり、かつ各次元の要素が複雑に結び付くようになるため、各演算パラメータの演算内容を読解するのは困難になる。また、各演算パラメータの値は、機械学習によって、所望の推定タスクを遂行する能力を獲得するように調節される。同程度の性能を発揮する多数の局所解が存在し、初期値の偶然性等の要因により、各演算パラメータの値はいずれかの局所解に到達する。この際、到達した局所解により、各演算パラメータの値は異なる。そのため、同一の推論タスクを遂行する能力を獲得するように同一の構造を有する機械学習モデルを訓練したとしても、各機械学習の同一の演算パラメータの演算内容が同一になるとは限らない。
【0006】
一例として、これらの要因により、機械学習モデルがその結論を得た理由を分析するのは困難である。換言すると、訓練済みの機械学習モデルの演算内容の説明性が極めて低い。そのため、機械学習モデルの演算結果に基づく自動運転に誤動作が生じた際に、機械学習モデルの演算内容を解析して、その誤動作の原因を解明するのは困難である。
【0007】
機械学習モデルの演算内容の説明性が低いことに起因して生じる問題点はこれに限られるものではない。更には、機械学習モデルの演算内容の説明性が低いことに起因して何らかの問題点が生じるのは、訓練済みの機械学習を自動運転の場面で使用する際に限られるものではない。
【0008】
他の例として、特許文献2では、訓練済みの決定木を使用して、求職者と企業とのマッチングを行うためのシステムが提案されている。このようなシステムにおいて、訓練済みの機械学習モデルの説明性が低く、その演算内容に意図的に介入不能であることで、予期せぬ評価が行われる(例えば、性別により評価が不利になる等の所望しない判定基準が形成される)可能性がある。また、他の例として、特許文献3では、訓練済みのニューラルネットワークを使用して、対象物の欠陥検査を行うためのシステムが提案されている。このようなシステムにおいて、機械学習モデルの説明性が低いと、欠陥検査を誤った原因を解明するのが困難となってしまう。更には、特定の環境(例えば、製品の種別、明るさの条件等)で得られる情報が推定タスクの遂行に影響を与えることで、異なる環境において、訓練済みの機械学習モデルの欠陥検査の精度が低下してしまう可能性がある。訓練済みの機械学習モデルの説明性が低く、その演算内容に意図的に介入不能であることで、このような特定の環境で得られる情報に起因する精度の低下を抑制するのが困難である。また、他の例として、特許文献4では、訓練済みのニューラルネットワークを使用して、ロボット装置の動作を制御するためのシステムが提案されている。このようなシステムにおいて、機械学習モデルの説明性が低いと、ロボット装置の誤動作の原因を解明するのが困難となってしまう。
【0009】
したがって、上記各例のとおり、推定タスクを遂行するのに訓練済みの機械学習モデルを使用する様々な場面において、機械学習モデルの演算内容の説明性が低いことに起因して、その推定タスクに関する何らかの不具合が生じる可能性がある。
【0010】
本発明は、一側面では、このような実情を鑑みてなされたものであり、その目的は、演算内容の説明性が比較的に高い訓練済みの機械学習モデルを生成するための技術を提供することである。
【課題を解決するための手段】
【0011】
本発明は、上述した課題を解決するために、以下の構成を採用する。
【0012】
すなわち、本発明の一側面に係るモデル生成装置は、訓練データ、前記訓練データに対する第1推定タスクの正解を示す第1正解データ、前記第1推定タスクとは異なる第2推定タスクであって、前記訓練データに対する第2推定タスクの正解を示す第2正解データの組み合わせによりそれぞれ構成される複数の学習データセットを取得するデータ取得部と、前記複数の学習データセットを使用して、学習モデルの機械学習を実施する学習処理部と、を備える。前記学習モデルは、符号器、第1推定器、及び第2推定器を含む。前記符号器は、与えられた入力データを特徴量に変換するように構成される。前記第1推定器は、前記特徴量の第1部分の入力を受け付け、入力された前記第1部分に基づいて、前記入力データに対する前記第1推定タスクを遂行するように構成される。前記第2推定器は、前記特徴量の第2部分であって、前記第1部分以外の第2部分の入力を受け付け、入力された前記第2部分に基づいて、前記入力データに対する前記第2推定タスクを遂行するように構成される。そして、前記機械学習を実施することは、前記各学習データセットについて、前記訓練データを前記符号器に与えたときに、前記第1推定器の前記第1推定タスクを遂行した結果が前記第1正解データに適合し、かつ前記第2推定器の前記第2推定タスクを遂行した結果が前記第2正解データに適合するように、前記符号器、前記第1推定器、及び前記第2推定器を訓練する第1訓練ステップ、並びに前記各学習データセットについて、前記特徴量の前記第1部分と前記第2正解データとの間の相関性が低くなり、かつ前記特徴量の前記第2部分と前記第1正解データとの間の相関性が低くなるように、前記符号器を訓練する第2訓練ステップ、を含む。
【0013】
当該構成に係るモデル生成装置では、2つの訓練ステップにより、符号器、第1推定器及び第2推定器を含む学習モデルの機械学習が実施される。第1訓練ステップでは、第1推定器は、符号器により得られる特徴量の第1部分から第1推定タスクを遂行する能力を獲得するように訓練され、第2推定器は、特徴量の第2部分から第2推定タスクを遂行する能力を獲得するように訓練される。この第1訓練ステップによれば、訓練された符号器により得られる特徴量の第1部分には、第1推定タスクに関連する情報が含まれるようになり、特徴量の第2部分には、第2推定タスクに関連する情報が含まれるようになる。一方、第2訓練ステップでは、符号器は、特徴量の第1部分と第1正解データとの間の相関性、及び特徴量の第2部分と第2正解データとの間の相関性が共に低くなるように訓練される。この第2訓練ステップによれば、訓練された符号器により得られる特徴量の第1部分には、第2推定タスクに関連する情報が含まれ難くなり、特徴量の第2部分には、第1推定タスクに関連する情報が含まれ難くなる。
【0014】
したがって、第1訓練ステップ及び第2訓練ステップにより、符号器により得られる特徴量に各推定タスクに関連する情報が含まれるようにしつつ、当該特徴量の第1部分と第2部分との間で情報の排他性を高めることができる。これにより、訓練された符号器により得られる特徴量の第1部分及び第2部分の説明性を高めることができる。すなわち、訓練された符号器により得られる特徴量の第1部分には、第1推定タスクと関連性が高く、かつ第2推定タスクとは関連性の低い情報が含まれており、特徴量の第2部分には、第1推定タスクとは関連性が低く、かつ第2推定タスクと関連性の高い情報が含まれていることを保証することができる。よって、当該構成によれば、演算内容の説明性が比較的に高い訓練済みの機械学習モデルを生成することができる。
【0015】
その結果、例えば、第1推定タスクの遂行に、第2推定タスクに関連する情報による影響を及び難くすることができる。反対も同様である。なお、訓練済みの学習モデルの利用場面として第1推定タスクを遂行する場面を想定する場合、第2推定タスクは、「疑似タスク」と称されてもよい。また、例えば、特徴量の第1部分及び第2部分に基づく他の推定タスク(例えば、後述する高次推定タスク)の結果に誤りが生じた場合に、各部分に含まれる情報が上記のように保証されるため、その誤りの生じた原因を解明しやすくなることを期待することができる。すなわち、特徴量の各部分を参照することで、誤りの生じた原因を解明可能であることを期待することができる。
【0016】
上記一側面に係るモデル生成装置において、前記学習モデルは、前記符号器の出力からマスクを生成するように構成されたマスク生成器を更に備えてもよい。前記機械学習を実施することは、前記各学習データセットについて、前記訓練データを前記符号器に与えたときに、前記第1推定器の前記第1推定タスクを遂行した結果が前記第1正解データに適合するように、前記マスク生成器を訓練する第3訓練ステップを更に含んでもよい。前記第1部分は、生成された前記マスクを前記特徴量に適用することにより抽出されてもよい。
【0017】
特徴量の第1部分及び第2部分それぞれの範囲は予め固定的に決定されていてもよい。ただし、この場合、それぞれの範囲が各推定タスクに適切か否かは不明であり、各推定タスクに対して各部分の範囲が冗長になったり、次元数の不足が生じたりする可能性がある。各部分の範囲が冗長になると、データの無駄が生じる可能性がある。一方、各部分に次元数の不足が生じると、各推定タスクの精度が低くなる可能性がある。これに対して、当該構成によれば、マスク生成器の訓練により、第1推定タスクに関連する情報が含まれるようになる特徴量の第1部分の範囲を訓練データに適応的に決定することができる。これにより、第1推定タスクの精度を担保した上で、特徴量の第1部分の情報量を最適化することができる。その結果、第1推定タスクの計算時間の効率化を期待することができる。また、第1推定タスク及び第2推定タスクの両方に寄与する情報を第1部分及び第2部分それぞれに抽出可能であることを期待することができる。その結果、各推定タスクの精度の向上を図ることができる。
【0018】
上記一側面に係るモデル生成装置において、前記第3訓練ステップは、前記第1訓練ステップ及び前記第2訓練ステップの少なくともいずれかと同時に実行されてよい。当該構成によれば、機械学習の処理の効率化を図ることができる。
【0019】
上記一側面に係るモデル生成装置において、前記機械学習を実施することは、生成される前記マスクの各要素の2値化が進むように、前記マスク生成器を訓練する第4訓練ステップを更に含んでもよい。当該構成によれば、特徴量の第1部分の情報量の最適化を促進することができる。
【0020】
上記一側面に係るモデル生成装置において、前記学習モデルは、第1敵対推定器及び第2敵対推定器を更に含んでもよい。前記第1敵対推定器は、前記特徴量の前記第1部分の入力を受け付け、入力された前記第1部分に基づいて、前記入力データに対する前記第2推定タスクを遂行するように構成されてよい。また、前記第2敵対推定器は、前記特徴量の前記第2部分の入力を受け付け、入力された前記第2部分に基づいて、前記入力データに対する前記第1推定タスクを遂行するように構成されてよい。そして、前記第2訓練ステップは、前記各学習データセットについて、前記訓練データを前記符号器に与えたときに、前記第1敵対推定器の前記第2推定タスクを遂行した結果が前記第2正解データに適合し、かつ前記第2敵対推定器の前記第1推定タスクを遂行した結果が前記第1正解データに適合するように、前記第1敵対推定器及び前記第2敵対推定器を訓練する第1ステップ、並びに前記各学習データセットについて、前記訓練データを前記符号器に与えたときに、前記第1敵対推定器の前記第2推定タスクを遂行した結果が前記第2正解データに適合しなくなるように、かつ前記第2敵対推定器の前記第1推定タスクを遂行した結果が前記第1正解データに適合しなくなるように、前記符号器を訓練する第2ステップ、を交互に繰り返し実行することにより構成されてよい。当該構成によれば、第1ステップ及び第2ステップによる敵対的学習によって、特徴量の第1部分と第2正解データとの間の相関性を低くし、かつ特徴量の第2部分と第1正解データとの間の相関性を低くする訓練を適切に実現することができる。これにより、演算内容の説明性が比較的に高い訓練済みの機械学習モデルを適切に生成することができる。なお、第1ステップ及び第2ステップを交互に繰り返し実行することは、勾配反転層を利用して第1ステップ及び第2ステップを同時に実行すること含んでよい。
【0021】
上記一側面に係るモデル生成装置において、前記学習モデルは、前記特徴量から前記入力データを復号化するように構成される復号器を更に含んでもよい。そして、前記機械学習を実施することは、前記各学習データセットについて、前記訓練データを前記符号器に与えたときに、前記復号器により得られる復号化データが前記訓練データに適合するように、前記符号器及び前記復号器を訓練する第5訓練ステップを更に含んでもよい。当該構成では、復号器の訓練により、入力データ(訓練データ)を特徴量から復元可能であることを保証することができる。これにより、符号器により得られる特徴量において、入力データに関する情報の欠損を抑制することができる。したがって、当該構成によれば、特徴量に変換する過程での情報の欠損を抑えることができるため、構築される訓練済み機械学習モデルの汎化性及びロバスト性の向上を図ることができる。
【0022】
上記一側面に係るモデル生成装置において、前記第5訓練ステップは、前記第1訓練ステップ及び前記第2訓練ステップの少なくともいずれかと同時に実行されてよい。当該構成によれば、機械学習の処理の効率化を図ることができる。
【0023】
上記一側面に係るモデル生成装置において、前記第2推定タスクは、前記訓練データの個体性を推定することであってよい。訓練データに含まれるノイズは、特定の個体特有に現れる現象であるため、訓練データの個体性に対応する。当該構成によれば、訓練された符号器により得られる特徴量の第1部分に、訓練データの個体性に関する情報(すなわち、ノイズに対応し得る情報)が含まれ難くすることができる。これによって、個体性に関する情報が第1推定タスクの遂行に影響を及ぼすことを抑制することができ、第1推定タスクを遂行する訓練済みの機械学習モデル(この場合、符号器及び第1推定器)の汎化性能の向上を図ることができる。換言すると、未知の環境で得られる対象データに対する訓練済みの機械学習モデルの推定精度の向上を期待することができる。なお、個体性を推定することは、個体性の識別及び回帰の少なくとも一方により構成されてよい。個体性の識別は、例えば、識別子、クラス等を識別することであってよい。また、個体性の回帰は、例えば、個体性に関する距離(例えば、識別子に基づくクラス間の距離)を推定することであってよい。
【0024】
上記一側面に係るモデル生成装置において、前記第2正解データは、前記訓練データの識別子を示すように構成されてよく、前記訓練データの個体性を推定することは、前記識別子を識別することであってよい。当該構成によれば、個体性を識別する第2推定タスクを適切に設定することができ、これによって、第1推定タスクを遂行する訓練済みの機械学習モデルの汎化性能の向上を図ることができる。
【0025】
上記一側面に係るモデル生成装置において、前記識別子は、ハッシュ値により構成されてよい。各学習データセットには個別に識別子を与えてもよい。ただし、この場合には、学習データセットの数に応じて第2正解データの情報量が膨大になり得る。当該構成によれば、学習データセットの数に応じた第2正解データの情報量の増大を緩和することができ、これによって、第2推定タスクに関する計算量の低減及び機械学習の処理の効率化を期待することができる。
【0026】
上記一側面に係るモデル生成装置において、前記各学習データセットの前記訓練データはクラス分けされてよく、前記識別子は、前記訓練データの属するクラスを示すように構成されてよい。当該構成によれば、各学習データセットに個別に識別子を与えた場合と比べて、学習データセットの数に応じた第2正解データの情報量の増大を緩和することができ、これによって、第2推定タスクに関する計算量の低減及び機械学習の処理の効率化を期待することができる。なお、「クラス」は、「カテゴリ」と称されてもよい。
【0027】
上記一側面に係るモデル生成装置において、前記各学習データセットは、前記訓練データに対する高次推定タスクの正解を示す高次正解データを更に備えてよい。前記学習モデルは、高次推定器を更に含んでもよい。前記高次推定器は、前記特徴量の前記第1部分及び前記第2部分の入力を受け付け、入力された前記第1部分及び前記第2部分に基づいて、前記入力データに対する前記高次推定タスクを遂行するように構成されてよい。前記機械学習を実施することは、前記各学習データセットについて、前記訓練データを前記符号器に与えたときに、前記高次推定器の前記高次推定タスクを遂行した結果が前記高次正解データに適合するように、前記高次推定器を訓練する高次訓練ステップを更に含んでもよい。当該構成によれば、推定結果に誤りが生じた場合に、その原因を解明しやすい訓練済みの機械学習モデル(この場合、符号器及び高次推定器)を構築することができる。なお、「第1推定タスク」及び「第2推定タスク」はそれぞれ「k次推定タスク」と称されてよく、「高次推定タスク」は「k+1次推定タスク」と称されてもよい(kは1以上の自然数)。
【0028】
なお、上記一側面に係るモデル生成装置において、設定される推定タスク及び特徴量の部分の数は2つに限られなくてもよい。推定タスク及び特徴量の部分の数は3つ以上であってもよい。例えば、本発明の一側面に係るモデル生成装置は、訓練データ、及び前記訓練データに対するn個の推定タスクそれぞれの正解をそれぞれ示すn件の正解データの組み合わせによりそれぞれ構成される複数の学習データセットを取得するデータ取得部と、前記複数の学習データセットを使用して、学習モデルの機械学習を実施する学習処理部とを備えてもよい。前記学習モデルは、符号器及びn個の推定器を含んでもよい。前記符号器は、与えられた入力データを特徴量に変換するように構成されてよい。前記特徴量は、前記各推定タスクにそれぞれ対応するn個の部分を含んでもよい。前記各推定器は、前記各推定タスクに割り当てられ、前記各推定器は、前記特徴量の自身に割り当てられた推定タスクに対応する前記部分の入力を受け付け、入力された前記部分に基づいて、前記入力データに対する割り当てられた前記推定タスクを遂行するように構成されてよい。前記機械学習を実施することは、前記各学習データセットについて、前記訓練データを前記符号器に与えたときに、前記各推定器の前記各推定タスクを遂行した結果が対応する前記正解データに適合するように、前記符号器及び前記各推定器を訓練する第1訓練ステップ、並びに前記各学習データセットについて、前記特徴量の前記各部分と前記各部分に対応する前記推定タスクに対応する前記正解データ(すなわち、前記各部分に対応する前記推定タスクの正解を示す対応の正解データ)を除くn-1件の正解データとの間の相関性が低くなるように、前記符号器を訓練する第2訓練ステップ、を含んでもよい。そして、前記nは、3以上であってよい。加えて、当該一側面に係るモデル生成装置において、前記n個の推定タスクのいずれか1つは、前記訓練データの個体性を推定することであってよい。
【0029】
上記各形態に係るモデル生成装置は、推定タスクの遂行に利用可能な訓練済みの機械学習モデルを生成する様々な場面に適用されてよい。推定タスクは、例えば、製品を検査すること、自動運転の戦略を決定すること、ロボット装置の動作を決定すること、対象を評価すること等であってよい。推定タスクに利用されるデータの種類及び取得方法は、各場面に応じて適宜選択されてよい。
【0030】
また、本発明の形態は、上記モデル生成装置の形態に限られなくてもよい。本発明の一側面は、上記モデル生成装置により生成された訓練済みの機械学習モデルを使用して、推定タスクを遂行するように構成された推定装置であってもよい。なお、推定装置は、適用場面における推定タスクの種類に応じて、検査装置、識別装置、監視装置、評価装置、診断装置、監視装置、予測装置等と読み替えられてよい。
【0031】
例えば、本発明の一側面に係る推定装置は、対象データを取得するデータ取得部と、上記一側面に係るモデル生成装置により訓練された前記符号器及び前記第1推定器を使用して、取得された前記対象データに対して前記第1推定タスクを遂行する推定部と、前記第1推定タスクを遂行した結果に関する情報を出力する出力部と、を備える。当該構成によれば、第1推定タスクの遂行に、第2推定タスクに関連する情報による影響を及び難くすることができる。これにより、所望しない推定基準による推定タスクの遂行を抑制することができる。また、第1推定タスクの推定精度の向上を期待することができる。
【0032】
また、例えば、本発明の一側面に係る推定装置は、対象データを取得するデータ取得部と、上記一側面に係るモデル生成装置により訓練された前記符号器及び前記高次推定器を使用して、取得された前記対象データに対して前記高次推定タスクを遂行する推定部と、前記高次推定タスクを遂行した結果に関する情報を出力する出力部と、を備える。当該構成によれば、高次推定タスクの結果に誤りが生じている場合でも、特徴量の各部分を参照することで、その誤りの生じた原因を解明可能であることを期待することができる。
【0033】
また、上記各形態に係るモデル生成装置及び推定装置それぞれの別の態様として、本発明の一側面は、以上の各構成の全部又はその一部を実現する情報処理方法であってもよいし、プログラムであってもよいし、このようなプログラムを記憶した、コンピュータその他装置、機械等が読み取り可能な記憶媒体であってもよい。ここで、コンピュータ等が読み取り可能な記憶媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。また、本発明の一側面は、上記いずれかの形態に係るモデル生成装置及び推定装置により構成される推定システムであってもよい。
【0034】
例えば、本発明の一側面に係るモデル生成方法は、コンピュータが、訓練データ、前記訓練データに対する第1推定タスクの正解を示す第1正解データ、前記第1推定タスクとは異なる第2推定タスクであって、前記訓練データに対する第2推定タスクの正解を示す第2正解データの組み合わせによりそれぞれ構成される複数の学習データセットを取得するステップと、前記複数の学習データセットを使用して、学習モデルの機械学習を実施するステップと、を実行する、情報処理方法である。前記学習モデルは、符号器、第1推定器、及び第2推定器を含み、前記符号器は、与えられた入力データを特徴量に変換するように構成され、前記第1推定器は、前記特徴量の第1部分の入力を受け付け、入力された前記第1部分に基づいて、前記入力データに対する前記第1推定タスクを遂行するように構成され、前記第2推定器は、前記特徴量の第2部分であって、前記第1部分以外の第2部分の入力を受け付け、入力された前記第2部分に基づいて、前記入力データに対する前記第2推定タスクを遂行するように構成され、並びに前記機械学習を実施することは、前記各学習データセットについて、前記訓練データを前記符号器に与えたときに、前記第1推定器の前記第1推定タスクを遂行した結果が前記第1正解データに適合し、かつ前記第2推定器の前記第2推定タスクを遂行した結果が前記第2正解データに適合するように、前記符号器、前記第1推定器、及び前記第2推定器を訓練する第1訓練ステップ、並びに前記各学習データセットについて、前記特徴量の前記第1部分と前記第2正解データとの間の相関性が低くなり、かつ前記特徴量の前記第2部分と前記第1正解データとの間の相関性が低くなるように、前記符号器を訓練する第2訓練ステップ、を含む。
【0035】
また、例えば、本発明の一側面に係るモデル生成プログラムは、コンピュータに、訓練データ、前記訓練データに対する第1推定タスクの正解を示す第1正解データ、前記第1推定タスクとは異なる第2推定タスクであって、前記訓練データに対する第2推定タスクの正解を示す第2正解データの組み合わせによりそれぞれ構成される複数の学習データセットを取得するステップと、前記複数の学習データセットを使用して、学習モデルの機械学習を実施するステップと、を実行させるための、プログラムである。前記学習モデルは、符号器、第1推定器、及び第2推定器を含み、前記符号器は、与えられた入力データを特徴量に変換するように構成され、前記第1推定器は、前記特徴量の第1部分の入力を受け付け、入力された前記第1部分に基づいて、前記入力データに対する前記第1推定タスクを遂行するように構成され、前記第2推定器は、前記特徴量の第2部分であって、前記第1部分以外の第2部分の入力を受け付け、入力された前記第2部分に基づいて、前記入力データに対する前記第2推定タスクを遂行するように構成され、並びに前記機械学習を実施することは、前記各学習データセットについて、前記訓練データを前記符号器に与えたときに、前記第1推定器の前記第1推定タスクを遂行した結果が前記第1正解データに適合し、かつ前記第2推定器の前記第2推定タスクを遂行した結果が前記第2正解データに適合するように、前記符号器、前記第1推定器、及び前記第2推定器を訓練する第1訓練ステップ、並びに前記各学習データセットについて、前記特徴量の前記第1部分と前記第2正解データとの間の相関性が低くなり、かつ前記特徴量の前記第2部分と前記第1正解データとの間の相関性が低くなるように、前記符号器を訓練する第2訓練ステップ、を含む。
【発明の効果】
【0036】
本発明によれば、演算内容の説明性が比較的に高い訓練済みの機械学習モデルを生成することができる。
【図面の簡単な説明】
【0037】
【
図1】
図1は、本発明が適用される場面の一例を模式的に例示する。
【
図2】
図2は、実施の形態に係るモデル生成装置のハードウェア構成の一例を模式的に例示する。
【
図3】
図3は、実施の形態に係る推定装置のハードウェア構成の一例を模式的に例示する。
【
図4】
図4は、実施の形態に係るモデル生成装置のソフトウェア構成の一例を模式的に例示する。
【
図5A】
図5Aは、実施の形態に係るモデル生成装置による機械学習の処理過程の一例を模式的に例示する。
【
図5B】
図5Bは、実施の形態に係るモデル生成装置による機械学習の処理過程の一例を模式的に例示する。
【
図6】
図6は、実施の形態に係る推定装置のソフトウェア構成の一例を模式的に例示する。
【
図7】
図7は、実施の形態に係るモデル生成装置の処理手順の一例を例示する。
【
図8】
図8は、実施の形態に係るモデル生成装置の機械学習の処理手順の一例を例示する。
【
図9】
図9は、実施の形態に係る推定装置の処理手順の一例を例示する。
【
図10B】
図10Bは、変形例に係る訓練済みの学習モデルの利用場面の一例を模式的に例示する。
【
図11】
図11は、変形例に係る学習モデルの一例を模式的に例示する。
【
図12】
図12は、変形例に係る学習モデルの一例を模式的に例示する。
【
図13】
図13は、本発明が適用される他の場面の一例を模式的に例示する。
【
図14】
図14は、本発明が適用される他の場面の一例を模式的に例示する。
【
図15】
図15は、本発明が適用される他の場面の一例を模式的に例示する。
【
図16】
図16は、本発明が適用される他の場面の一例を模式的に例示する。
【
図17】
図17は、本発明が適用される他の場面の一例を模式的に例示する。
【
図18】
図18は、本発明が適用される他の場面の一例を模式的に例示する。
【発明を実施するための形態】
【0038】
以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
【0039】
§1 適用例
図1は、本発明を適用した場面の一例を模式的に例示する。本実施形態に係る推定システム100は、モデル生成装置1及び推定装置2を備えている。
【0040】
本実施形態に係るモデル生成装置1は、学習モデル5の機械学習を実施するように構成されたコンピュータである。具体的に、モデル生成装置1は、複数の学習データセット120を取得する。各学習データセット120は、訓練データ121、第1正解データ122、及び第2正解データ123の組み合わせにより構成される。第1正解データ122は、訓練データ121に対する第1推定タスクの正解を示す。第2正解データ123は、第1推定タスクとは異なる第2推定タスクであって、訓練データ121に対する第2推定タスクの正解を示す。
【0041】
訓練データ121は、所定種類のデータのサンプルである。所定種類のデータは、例えば、推定タスクの対象となるように何らかの特徴を含み得るデータであれば、そのデータの種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。所定種類のデータは、例えば、画像データ、音データ、数値データ、テキストデータ、その他各種センサにより得られる測定データ等であってよい。所定種類のデータは、複数の異なる種類のデータにより構成されてもよい。所定種類のデータは、例えば、何らかの対象をセンサにより観測することで得られるセンシングデータであってもよい。センサは、例えば、画像センサ(カメラ)、赤外線センサ、音センサ(マイクロフォン)、超音波センサ、光センサ、圧力センサ、気圧センサ、温度センサ等であってよい。また、センサは、例えば、環境センサ、バイタルセンサ、医療検査装置、車載センサ、ホームセキュリティセンサ等であってよい。環境センサは、例えば、気圧計、温度計、湿度計、音圧計、音センサ、紫外線センサ、照度計、雨量計、ガスセンサ等であってよい。バイタルセンサは、例えば、血圧計、脈拍計、心拍計、心電計、筋電計、体温計、皮膚電気反応計、マイクロ波センサ、脳波計、脳磁計、活動量計、血糖値測定器、眼電位センサ、眼球運動計測器等であってよい。医療検査装置は、例えば、CT(Computed Tomography)装置、MRI(Magnetic Resonance Imaging)装置等であってよい。車載センサは、例えば、画像センサ、Lidar(light detection and ranging)センサ、ミリ波レーダ、超音波センサ、加速度センサ等であってよい。ホームセキュリティセンサは、例えば、画像センサ、赤外線センサ、活性度(音声)センサ、ガス(CO2等)センサ、電流センサ、スマートメータ(家電、照明等の電力使用量を計測するセンサ)等であってよい。
【0042】
第1推定タスク及び第2推定タスクは、データに含まれる何らかの特徴を推定するあらゆるタスクから互いに異なるように適宜選択されてよい。特徴は、データに直接的又は間接的に表れ得る成分(要素)に関するものであってよい。直接的に表れるとは、画像データに写る等のデータそのものに表れることを指す。間接的に表れるとは、画像データから推定される等のデータから導出されることを指す。推定することは、分類すること及び回帰することの少なくとも一方により構成されてよい。回帰することは、バウンディングボックス等のデータ内の範囲を特定することを含んでもよい。推定することは、分類及び回帰の少なくとも一方の結果に基づいて、例えば、検出、判定等の認定処理を実行することを含んでもよい。また、推定することは、未来の何らかの要素を予測することを含んでもよく、これに応じて、特徴は、未来に現れる予兆に関するものであってよい。「推定」は、「推論」と読み替えられてもよい。
【0043】
本実施形態では、利用場面で遂行する推定タスクが第1推定タスクとして設定される。そのため、本実施形態に係る第2推定タスクは、「疑似タスク」と称されてよい。ただし、各推定タスクと利用場面との関係はこのような例に限定されなくてもよい。第2推定タスクが、利用場面で遂行される推定タスクとして設定されてもよい。その他、第1推定タスク及び第2推定タスク以外に、訓練済みの機械学習モデルの利用場面で遂行される他の推定タスクが設定されてもよい。この場合、第1推定タスク及び第2推定タスクは事前学習のタスクとして設定されてよい。第1正解データ122及び第2正解データ123はそれぞれ、「教師信号」、「ラベル」等と読み替えられてもよい。各正解データ(122、123)のデータ形式は、推定タスク、機械学習の方法、学習モデル5の構成等に応じて適宜決定されてよい。
【0044】
本実施形態に係るモデル生成装置1は、取得された複数の学習データセット120を使用して、学習モデル5の機械学習を実施する。本実施形態に係る学習モデル5は、符号器50、第1推定器51、及び第2推定器52を含んでいる。符号器50は、与えられた入力データを特徴量3に変換するように構成される。換言すると、符号器50は、データの入力を受け付けて、入力されたデータを特徴量3に変換した結果に対応する出力値を出力するように構成される。第1推定器51は、特徴量3の第1部分31の入力を受け付け、入力された第1部分31に基づいて、入力データに対する第1推定タスクを遂行する(換言すると、第1推定タスクを遂行した結果に対応する出力値を出力する)ように構成される。第2推定器52は、特徴量3の第2部分32であって、第1部分31以外の第2部分32の入力を受け付け、入力された第2部分32に基づいて、入力データに対する第2推定タスクを遂行する(換言すると、第2推定タスクを遂行した結果に対応する出力値を出力する)ように構成される。
【0045】
特徴量3のデータ形式及び各部分(31、32)の範囲は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。本実施形態では、後述するとおり、各部分(31、32)の範囲は、機械学習において適応的に決定される。なお、
図1の例では、各部分(31、32)は、特徴量3の全ての範囲を占めている。しかしながら、各部分(31、32)の範囲は、このような例に限定されなくてもよい。特徴量3には、各部分(31、32)として利用されない範囲が存在してもよい。また、
図1の例では、特徴量3の上側の部分が第1部分31に割り当てられ、下側の部分が第2部分32に割り当てられている。しかしながら、この割り当ては、便宜上に過ぎず、各部分(31、32)の割り当ては、このような例に限定されなくてよく、実施の形態に応じて適宜決定されてよい。
【0046】
また、各推定器(51、52)の出力値の形式は、対応する各推定タスクの遂行の結果を直接的又は間接的に示すように適宜決定されてよい。推定タスクの遂行結果を間接的に示すとは、閾値判定、テーブル参照等の何らかの情報処理が介在して推定の結果に到達することである。符号器50及び各推定器(51、52)は、複数の演算パラメータを備える機械学習モデルにより構成される。機械学習モデルの種類は、各演算を実行可能であれば、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。本実施形態では、後述するとおり、符号器50及び各推定器(51、52)には、ニューラルネットワークが用いられる。
【0047】
本実施形態に係る機械学習を実施することは、第1訓練ステップ及び第2訓練ステップを含む。第1訓練ステップでは、モデル生成装置1は、各学習データセット120について、訓練データ121を符号器50に与えたときに、第1推定器51の第1推定タスクを遂行した結果が第1正解データ122に適合し、かつ第2推定器52の第2推定タスクを遂行した結果が第2正解データ123に適合するように、符号器50、第1推定器51、及び第2推定器52を訓練する。また、第2訓練ステップでは、モデル生成装置1は、各学習データセット120について、訓練データ121を符号器50に与えたときに、特徴量3の第1部分31と第2正解データ123との間の相関性が低くなり、かつ特徴量3の第2部分32と第1正解データ122との間の相関性が低くなるように、符号器50を訓練する。2つの値の「相関性が低い」とは、理想的には2つの値が無相関であることであり、2つの値が統計的に独立している状態、各値の分布間の距離を最小化した状態、又は一方の値を与えても他方の値の推定精度を上げるのが困難(不可能)な状態と言い換えられてよい。各訓練ステップの処理順序は任意であってよい。これにより、第1推定タスクの遂行に利用可能な訓練済みの符号器50及び第1推定器51を生成することができる。なお、本実施形態に係るモデル生成装置1は、単に「生成装置」、「学習装置」等と読み替えられてよい。「訓練済み」は、「学習済み」と読み替えられてよい。
【0048】
一方、本実施形態に係る推定装置2は、モデル生成装置1により生成された訓練済みの機械学習モデルを使用して、所定種類の対象データに対して所定の推定タスクを遂行するように構成されたコンピュータである。推定装置2は、訓練済みの機械学習モデルを使用する利用装置の一例である。本実施形態では、推定装置2は、訓練済みの符号器50及び第1推定器51を使用して、対象データに対する第1推定タスクを遂行する。具体的に、推定装置2は、推定タスクの対象となる対象データを取得する。次に、推定装置2は、モデル生成装置1により生成された訓練済みの符号器50及び第1推定器51を使用して、取得された対象データに対して第1推定タスクを遂行する。そして、推定装置2は、第1推定タスクを遂行した結果に関する情報を出力する。推定装置2は、遂行する推定タスクに応じて、検査装置、識別装置、監視装置、評価装置、予測装置等と読み替えられてよい。
【0049】
以上のとおり、本実施形態では、機械学習は、2つの訓練ステップを含む。上記第1訓練ステップの結果、各学習データセット120について各推定タスクの遂行が成功するように、訓練された符号器50により得られる特徴量3の各部分(31、32)には、各推定タスクに関連する情報が含まれるようになる。一方、上記第2訓練ステップの結果、訓練された符号器50により得られる特徴量3の第1部分31には、第2推定タスクに関連する情報が含まれ難くなり、第2部分32には、第1推定タスクに関連する情報が含まれ難くなる。
【0050】
したがって、本実施形態によれば、第1訓練ステップ及び第2訓練ステップにより、符号器50により得られる特徴量3に各推定タスクに関連する情報が含まれるようにしつつ、特徴量3の第1部分31と第2部分32との間で情報の排他性を高めることができる。これにより、訓練された符号器50により得られる特徴量3の第1部分31及び第2部分32の説明性を高めることができる。すなわち、訓練された符号器50により得られる特徴量3の第1部分31には、第1推定タスクと関連性が高く、かつ第2推定タスクとは関連性の低い情報が含まれており、第2部分32には、第1推定タスクと関連性が低く、かつ第2推定タスクとは関連性の高い情報が含まれていることを保証することができる。よって、本実施形態によれば、演算内容の説明性が比較的に高い訓練済みの機械学習モデルを生成することができる。
【0051】
なお、
図1の例では、モデル生成装置1及び推定装置2は、ネットワークを介して互いに接続されている。ネットワークの種類は、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。ただし、モデル生成装置1及び推定装置2の間でデータをやりとりする方法は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、モデル生成装置1及び推定装置2の間では、記憶媒体を利用して、データがやりとりされてよい。
【0052】
また、
図1の例では、モデル生成装置1及び推定装置2は、それぞれ別個のコンピュータにより構成されている。しかしながら、本実施形態に係る推定システム100の構成は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。たとえば、モデル生成装置1及び推定装置2は一体のコンピュータであってもよい。また、例えば、モデル生成装置1及び推定装置2のうちの少なくとも一方は、複数台のコンピュータにより構成されてもよい。
【0053】
§2 構成例
[ハードウェア構成]
<モデル生成装置>
図2は、本実施形態に係るモデル生成装置1のハードウェア構成の一例を模式的に例示する。
図2に示されるとおり、本実施形態に係るモデル生成装置1は、制御部11、記憶部12、通信インタフェース13、外部インタフェース14、入力装置15、出力装置16、及びドライブ17が電気的に接続されたコンピュータである。なお、
図2では、通信インタフェース及び外部インタフェースを「通信I/F」及び「外部I/F」と記載している。後述の
図3でも同様の表記を用いる。
【0054】
制御部11は、ハードウェアプロセッサであるCPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。CPUは、プロセッサ・リソースの一例である。記憶部12は、メモリ・リソースの一例であり、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部12は、モデル生成プログラム81、複数の学習データセット120、学習結果データ129等の各種情報を記憶する。
【0055】
モデル生成プログラム81は、学習モデル5の機械学習に関する後述の情報処理(
図7及び
図8)をモデル生成装置1に実行させるためのプログラムである。モデル生成プログラム81は、当該情報処理の一連の命令を含む。モデル生成プログラム81は、単に「生成プログラム」、「学習プログラム」等と称されてもよい。複数の学習データセット120は、学習モデル5の機械学習に使用される。学習結果データ129は、機械学習の結果(本実施形態では、機械学習により生成された訓練済みの符号器50及び第1推定器51)に関する情報を示す。本実施形態では、学習結果データ129は、モデル生成プログラム81を実行した結果として生成される。
【0056】
通信インタフェース13は、例えば、有線LAN(Local Area Network)モジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。モデル生成装置1は、この通信インタフェース13を利用して、他の情報処理装置との間で、ネットワークを介したデータ通信を実行してもよい。外部インタフェース14は、例えば、USB(Universal Serial Bus)ポート、専用ポート等であり、外部装置と接続するためのインタフェースである。外部インタフェース14の種類及び数は、接続される外部装置の種類及び数に応じて適宜選択されてよい。訓練データ121等のデータをセンサにより取得する場合、モデル生成装置1は、通信インタフェース13及び外部インタフェース14の少なくとも一方を介して、対象のセンサに接続されてよい。
【0057】
入力装置15は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置16は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。ユーザ等のオペレータは、入力装置15及び出力装置16を利用することで、モデル生成装置1を操作することができる。
【0058】
ドライブ17は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体91に記憶されたプログラム等の各種情報を読み込むためのドライブ装置である。記憶媒体91は、コンピュータその他装置、機械等が、記憶されたプログラム等の各種情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。上記モデル生成プログラム81及び複数の学習データセット120の少なくともいずれかは、記憶媒体91に記憶されていてもよい。モデル生成装置1は、この記憶媒体91から、上記モデル生成プログラム81及び複数の学習データセット120の少なくともいずれかを取得してもよい。なお、
図2では、記憶媒体91の一例として、CD、DVD等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体91の種類は、ディスク型に限られなくてもよく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。ドライブ17の種類は、記憶媒体91の種類に応じて任意に選択されてよい。
【0059】
なお、モデル生成装置1の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、プロセッサ・リソースは、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA(field-programmable gate array)、DSP(digital signal processor)等で構成されてよい。記憶部12は、制御部11に含まれるRAM及びROMにより構成されてもよい。通信インタフェース13、外部インタフェース14、入力装置15、出力装置16及びドライブ17の少なくともいずれかは省略されてもよい。モデル生成装置1は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、モデル生成装置1は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、PC(Personal Computer)等であってもよい。
【0060】
<推定装置>
図3は、本実施形態に係る推定装置2のハードウェア構成の一例を模式的に例示する。
図3に示されるとおり、本実施形態に係る推定装置2は、制御部21、記憶部22、通信インタフェース23、外部インタフェース24、入力装置25、出力装置26、及びドライブ27が電気的に接続されたコンピュータである。
【0061】
推定装置2の制御部21~ドライブ27及び記憶媒体92はそれぞれ、上記モデル生成装置1の制御部11~ドライブ17及び記憶媒体91それぞれと同様に構成されてよい。制御部21は、ハードウェアプロセッサであるCPU、RAM、ROM等を含み、プログラム及びデータに基づいて各種情報処理を実行するように構成される。記憶部22は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。記憶部22は、推定プログラム82、学習結果データ129等の各種情報を記憶する。
【0062】
推定プログラム82は、訓練済みの機械学習モデル(本実施形態では、符号器50及び第1推定器51)を使用して、所定種類のデータに対して所定の推定タスクを遂行する後述の情報処理(
図9)を推定装置2に実行させるためのプログラムである。推定プログラム82は、当該情報処理の一連の命令を含む。推定プログラム81及び学習結果データ129のうちの少なくともいずれかは、記憶媒体92に記憶されていてもよい。また、推定装置2は、推定プログラム81及び学習結果データ129のうちの少なくともいずれかを記憶媒体92から取得してもよい。
【0063】
なお、推定装置2の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、推定装置2のプロセッサ・リソースは、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA、DSP等で構成されてよい。記憶部22は、制御部21に含まれるRAM及びROMにより構成されてもよい。通信インタフェース23、外部インタフェース24、入力装置25、出力装置26、及びドライブ27の少なくともいずれかは省略されてもよい。推定装置2は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、推定装置2は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC等であってもよい。
【0064】
[ソフトウェア構成]
<モデル生成装置>
図4は、本実施形態に係るモデル生成装置1のソフトウェア構成の一例を模式的に例示する。
図5A及び
図5Bは、本実施形態に係るモデル生成装置1による機械学習の処理過程の一例を模式的に例示する。
【0065】
モデル生成装置1の制御部11は、記憶部12に記憶されたモデル生成プログラム81をRAMに展開する。そして、制御部11は、CPUにより、RAMに展開されたモデル生成プログラム81に含まれる命令を解釈及び実行して、各構成要素を制御する。これにより、
図4に示されるとおり、本実施形態に係るモデル生成装置1は、データ取得部111、学習処理部112、及び保存処理部113をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、モデル生成装置1の各ソフトウェアモジュールは、制御部11(CPU)により実現される。
【0066】
データ取得部111は、訓練データ121、第1正解データ122、及び第2正解データ123の組み合わせによりそれぞれ構成される複数の学習データセット120を取得する。学習処理部112は、取得された複数の学習データセット120を使用して、学習モデル5の機械学習を実施する。上記のとおり、学習モデル5は、符号器50、第1推定器51、及び第2推定器52を含んでいる。本実施形態では、これらに加えて、第1敵対推定器53、第2敵対推定器54、マスク生成器56、及び復号器57を更に含んでいる。
【0067】
第1敵対推定器53は、第2訓練ステップのために第1推定器51に対応して与えられ、第1推定器51に割り当てられた推定タスク以外の推定タスクを遂行するように構成される。同様に、第2敵対推定器54は、第2訓練ステップのために第2推定器52に対応して与えられ、第2推定器52に割り当てられた推定タスク以外の推定タスクを遂行するように構成される。本実施形態では、第1敵対推定器53は、特徴量3の第1部分31の入力を受け付け、入力された第1部分の31に基づいて、入力データに対する第2推定タスクを遂行する(換言すると、第2推定タスクを遂行した結果に対応する出力値を出力する)ように構成される。第2敵対推定器54は、特徴量3の第2部分32の入力を受け付け、入力された第2部分32に基づいて、入力データに対する第1推定タスクを遂行する(換言すると、第1推定タスクを遂行した結果に対応する出力値を出力する)ように構成される。
【0068】
マスク生成器56は、符号器50の出力からマスク4を生成する(換言すると、符号器50の出力を入力として受け付け、入力された符号器50の出力からマスク4を生成した結果に対応する出力値を出力する)ように構成される。マスク4は、第1部分31の抽出に使用される。すなわち、第1部分31は、生成されるマスク4を特徴量3に適用することにより抽出される。マスク4の構成は、第1部分31の抽出に使用可能であれば、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。第2部分32は、特徴量3の残りの部分から適宜抽出されてよい。実施形態の一例として、マスク4は、特徴量3と同じ次元数の要素で構成され、マスク4の各要素の値は、特徴量3の各要素を第1部分31として通過させるか否か(例えば、「1」及び「0」)を示すように構成されてよい。また、第2部分32は、特徴量3の第1部分31以外の全ての部分であってよい。この場合、
図4に示されるとおり、第1部分31は、生成されるマスク4と特徴量3とを掛け算することにより算出されてよい(換言すると、第1部分31は、マスク4及び特徴量3の積であってよい)。一方、第2部分32は、生成されるマスク4の各要素の値を反転し、得られた反転マスクと特徴量3とを掛け算することにより算出されてよい。これに応じて、第1部分31を抽出することは、第1部分31以外の部分の要素を無効化する(例えば、「0」に置き換える)ことにより構成されてよい。第2部分32の抽出についても同様である。
【0069】
復号器57は、特徴量3から入力データを復号化する(換言すると、特徴量3を入力として受け付け、入力された特徴量3から入力データを復号化することで得られる復号化データに対応する出力値を出力する)ように構成される。
【0070】
図5A及び
図5Bに示されるとおり、機械学習を実施することは、上記第1訓練ステップ及び第2訓練ステップを含む。
図5Bに示されるとおり、本実施形態に係る第2訓練ステップは、第1敵対推定器53及び第2敵対推定器54を訓練する第1ステップ、並びに符号器50を訓練する第2ステップを交互に繰り返し実行することにより構成される。第1ステップでは、第1敵対推定器53及び第2敵対推定器54が、各学習データセット120について、訓練データ121を符号器50に与えたときに、第1敵対推定器53の第2推定タスクを遂行した結果が第2正解データ123に適合し、かつ第2敵対推定器54の第1推定タスクを遂行した結果が第1正解データ122に適合するように訓練される。この第1ステップの間、符号器50の各演算パラメータは固定される。一方、第2ステップでは、符号器50が、各学習データセット120について、訓練データ121を符号器50に与えたときに、第1敵対推定器53の第2推定タスクを遂行した結果が第2正解データ123に適合しなくなるように、かつ第2敵対推定器54の第1推定タスクを遂行した結果が第1正解データ122に適合しなくなるように訓練される。この第2ステップの間、第1敵対推定器53及び第2敵対推定器54の各演算パラメータは固定される。
【0071】
第1ステップによれば、第1敵対推定器53は、符号器50により得られる特徴量3の第1部分31から第2推定タスクを遂行する能力を獲得し、第2敵対推定器54は、第2部分32から第1推定タスクを遂行する能力を獲得する。一方、第2ステップによれば、第1部分31に基づく第1敵対推定器53の第2推定タスクが失敗し、かつ第2部分32に基づく第2敵対推定器54の第1推定タスクが失敗するような特徴量3に入力データを変換する能力を獲得するように符号器50は訓練される。この第1ステップ及び第2ステップを交互に繰り返し実行することにより、各敵対推定器(53、54)の推定性能の向上に対応して、各敵対推定器(53、54)による各推定タスクが失敗するように、符号器50により得られる第1部分31には第2推定タスクに関する成分が含まれ難く、かつ第2部分32には第1推定タスクに関する成分が含まれ難くすることができる。よって、特徴量3の第1部分31及び第2正解データ123の間の相関性が低くなり、かつ特徴量3の第2部分32及び第1正解データ122の間の相関性を低くなるように、符号器50を訓練することができる。
【0072】
なお、第2ステップの一例として、学習処理部112は、各学習データセット120について、第1正解データ122に対応するダミーデータ1221であって、対応する第1正解データ122とは異なる値で構成されるダミーデータ1221を取得してよい。学習処理部112は、各学習データセット120について、第2正解データ123に対応するダミーデータ1231であって、対応する第2正解データ123とは異なる値で構成されるダミーデータ1231を取得してよい。この場合、第1敵対推定器53の第2推定タスクを遂行した結果が第2正解データ123に適合しなくなるように訓練することは、第1敵対推定器53の第2推定タスクを遂行した結果がダミーデータ1231に適合するものとなるように訓練することにより構成されてよい。第2敵対推定器54の第1推定タスクを遂行した結果が第1正解データ122に適合しなくなるように訓練することは、第2敵対推定器54の第1推定タスクを遂行した結果がダミーデータ1221に適合するものとなるように訓練することにより構成されてよい。ただし、各推定タスクを遂行した結果が各正解データ(122、123)に適合しなくなるように符号器50を訓練する方法は、このような例に限定されなくてよく、実施の形態に応じて適宜決定されてよい。
【0073】
本実施形態では、これらに加えて、機械学習を実施することは、第3訓練ステップ、第4訓練ステップ、及び第5訓練ステップを更に含んでいる。
図5Aに示されるとおり、第3訓練ステップでは、マスク生成器56が、各学習データセット120について、訓練データ121を符号器50に与えたときに、第1推定器51の第1推定タスクを遂行した結果が第1正解データ122に適合するように訓練される。第4訓練ステップでは、マスク生成器56が、生成されるマスク4の各要素の2値化が進むように訓練される。第5訓練ステップでは、符号器50及び復号器57が、各学習データセット120について、訓練データ121を符号器50に与えたときに、復号器57により得られる復号化データが訓練データ121に適合するように訓練される。第3~第5訓練ステップの少なくともいずれかは、第1訓練ステップ及び第2訓練ステップの少なくともいずれかと同時に実行されてよい。
【0074】
以上の各訓練ステップの実行により、訓練済みの学習モデル5が生成される。
図4に示されるとおり、保存処理部113は、訓練済みの学習モデル5に関する情報を学習結果データ129として生成する。そして、保存処理部113は、生成された学習結果データ129を所定の記憶領域に保存する。なお、学習結果データ129は、訓練済みの学習モデル5の構成要素であって、利用場面で使用されない構成要素に関する情報を含んでいなくてもよい。例えば、本実施形態では、訓練済みの第2推定器52、第1敵対推定器53、第2敵対推定器54、及び復号器57は、推定装置2において使用されない。そのため、学習結果データ129は、これらに関する情報を含んでもよいし、含まなくてもよい。
【0075】
(機械学習モデルの構成)
符号器50、第1推定器51、第2推定器52、第1敵対推定器53、第2敵対推定器54、マスク生成器56、及び復号器57それぞれには、機械学習を実施可能な任意のモデルが利用されてよい。
図5A及び
図5Bに示されるとおり、本実施形態では、符号器50、第1推定器51、第2推定器52、第1敵対推定器53、第2敵対推定器54、及び復号器57はそれぞれ、多層構造の全結合型ニューラルネットワークにより構成される。
符号器50、第1推定器51、第2推定器52、第1敵対推定器53、第2敵対推定器54、及び復号器57はそれぞれ、入力層(501、511、521、531、541、571)、中間(隠れ)層(502、512、522、532、542、572)、及び出力層(503、513、523、533、543、573)を備えている。一方、マスク生成器56は、1層のニューラルネットワークにより構成される。
【0076】
ただし、それぞれの構造は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、各中間層(502、512、522、532、542、572)の数は、1つに限られなくてよく、2つ以上であってもよい。或いは、符号器50、第1推定器51、第2推定器52、第1敵対推定器53、第2敵対推定器54、及び復号器57の少なくともいずれかは、2層以下のニューラルネットワークにより構成されてよい(すなわち、中間層は省略されてよい)。マスク生成器56は、2層以上のニューラルネットワークにより構成されてよい。つまり、それぞれのニューラルネットワークを構成する層の数は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。更に、符号器50、第1推定器51、第2推定器52、第1敵対推定器53、第2敵対推定器54、マスク生成器56、及び復号器57の少なくともいずれかの組み合わせでは、少なくとも部分的に構造が一致してもよいし、一致していなくてもよい。また、
図5A及び
図5Bの例では、それぞれのニューラルネットワークは分離されているが、処理の連続する2つ以上の構成要素は、一体のニューラルネットワークにより構成されてよい。
【0077】
各層(501~503、511~513、521~523、531~533、541~543、571~573)及びマスク生成器56の層はそれぞれ、1又は複数のニューロン(ノード)を備えている。それぞれに含まれるニューロン(ノード)の数は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。隣接する層のニューロン同士は適宜結合される。
図5A及び
図5Bの例では、各ニューロンは、隣接する層の全てのニューロンと結合されている。しかしながら、各ニューロンの結合関係は、このような例に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。
【0078】
各結合には、重み(結合荷重)が設定されている。各ニューロンには閾値が設定されており、基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。閾値は、活性化関数により表現されてもよい。この場合、各入力及び各重みの積の和を活性化関数に入力し、活性化関数の演算を実行することで、各ニューロンの出力が決定される。活性化関数の種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。それぞれに含まれる各ニューロン間の結合の重み及び各ニューロンの閾値は、それぞれの演算処理に利用される演算パラメータの一例である。
【0079】
学習モデル5の各構成要素(符号器50等)の演算パラメータの値は、上記機械学習の各訓練ステップにより調節される。具体的に、
図5Aに示されるとおり、第1訓練ステップでは、学習処理部112は、訓練データ121を符号器50の入力層501に入力し、順伝播の演算処理を実行して、各推定タスクの遂行結果に対応する出力値を各推定器(51、52)の出力層(513、523)から取得する。順伝播の演算処理は、入力側から順に各層に含まれる各ニューロンの発火判定を行うことである。学習処理部112は、第1推定器51から得られる出力値及び第1正解データ122の間の誤差が小さくなるように、符号器50及び第1推定器51の各演算パラメータの値を調節する。また、学習処理部112は、第2推定器52から得られる出力値及び第2正解データ123の間の誤差が小さくなるように、符号器50及び第2推定器52の各演算パラメータの値を調節する。
【0080】
図5Bに示されるとおり、第2訓練ステップの第1ステップでは、学習処理部112は、訓練データ121を符号器50の入力層501に入力し、順伝播の演算処理を実行して、各推定タスクの遂行結果に対応する出力値を各敵対推定器(53、54)の出力層(533、543)から取得する。学習処理部112は、符号器50の各演算パラメータの値を固定した上で、第1敵対推定器53から得られる出力値及び第2正解データ123の間の誤差が小さくなるように、第1敵対推定器53の各演算パラメータの値を調節する。また、学習処理部112は、第2敵対推定器54から得られる出力値及び第1正解データ122の間の誤差が小さくなるように、第2敵対推定器54の各演算パラメータの値を調節する。
【0081】
第2訓練ステップの第2ステップでは、学習処理部112は、訓練データ121を符号器50の入力層501に入力し、順伝播の演算処理を実行して、各推定タスクの遂行結果に対応する出力値を各敵対推定器(53、54)の出力層(533、543)から取得する。学習処理部112は、各敵対推定器(53、54)の各演算パラメータの値を固定した上で、第1敵対推定器53から得られる出力値及び第2正解データ123の間の誤差が大きくなり、かつ第2敵対推定器54から得られる出力値及び第1正解データ122の間の誤差が大きくなるように、符号器50の各演算パラメータの値を調節する。一例として、学習処理部112は、第1敵対推定器53から得られる出力値及びダミーデータ1231の間の誤差が小さくなり、かつ第2敵対推定器54から得られる出力値及びダミーデータ1221の間の誤差が小さくなるように、符号器50の各演算パラメータの値を調節する。
【0082】
図5Aに示されるとおり、第3訓練ステップでは、学習処理部112は、各学習データセット120について、訓練データ121を符号器50の入力層501に入力し、順伝播の演算処理を実行して、第1推定器51の出力層513から出力値を取得する。学習処理部112は、第1推定器51から得られる出力値及び第1正解データ123の間の誤差が小さくなるように、マスク生成器56の各演算パラメータの値を調節する。この第3訓練ステップは、第1訓練ステップの一部として実行されてもよい。
【0083】
第4訓練ステップでは、学習処理部112は、各学習データセット120について、訓練データ121を符号器50の入力層501に入力し、順伝播の演算処理を実行して、生成されたマスク4に対応する出力値をマスク生成器56から取得する。学習処理部112は、各要素の2値化が進んでいないほど値の大きくなる指標を用いて、マスク生成器56から得られる出力値の誤差を算出する。学習処理部112は、算出される誤差が小さくなるように、マスク生成器56の各演算パラメータの値を調節する。この第4訓練ステップは、他の訓練ステップ内で実行されてもよい。
【0084】
第5訓練ステップでは、学習処理部112は、各学習データセット120について、訓練データ121を符号器50の入力層501に入力し、順伝播の演算処理を実行して、生成された復号化データに対応する出力値を復号器57の出力層573から取得する。学習処理部112は、復号器57から得られる出力値及び訓練データ121の間の誤差が小さくなるように、符号器50及び復号器57の各演算パラメータの値を調節する。各訓練ステップにおける各誤差の計算及び各演算パラメータの値の調節は、可能な範囲で同時に実行されてよい。
【0085】
保存処理部113は、上記機械学習により構築された訓練済みの学習モデル5の各構成要素の構造及び演算パラメータの値を示す情報を学習結果データ129として生成する。構造は、例えば、ニューラルネットワークにおける入力層から出力層までの層の数、各層の種類、各層に含まれるニューロンの数、隣接する層のニューロン同士の結合関係等により特定されてよい。システム内でモデルの構造が共通化される場合、この構造に関する情報は学習結果データ129から省略されてもよい。また、利用場面で使用されない構成要素に関する情報は学習結果データ129から省略されてよい。保存処理部113は、生成された学習結果データ129を所定の記憶領域に保存する。
【0086】
<推定装置>
図6は、本実施形態に係る推定装置2のソフトウェア構成の一例を模式的に例示する。推定装置2の制御部21は、記憶部22に記憶された推定プログラム82をRAMに展開する。そして、制御部21は、CPUにより、RAMに展開された推定プログラム82に含まれる命令を解釈及び実行して、各構成要素を制御する。これにより、
図6に示されるとおり、本実施形態に係る推定装置2は、データ取得部211、推定部212、及び出力部213をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、推定装置2の各ソフトウェアモジュールは、上記モデル生成装置1と同様に、制御部21(CPU)により実現される。
【0087】
データ取得部211は、推定タスクの遂行対象となる対象データ221を取得する。推定部212は、モデル生成装置1により生成された訓練済みの機械学習モデルを使用して、取得された対象データ221に対して推定タスクを遂行する。本実施形態では、推定部212は、学習結果データ129を保持することで、モデル生成装置1により生成された訓練済みの符号器50、マスク生成器56、及び第1推定器51を備えている。推定部212は、訓練済みの符号器50、マスク生成器56、及び第1推定器51を使用して、取得された対象データ221に対して第1推定タスクを遂行する。推定部212は、遂行する推定タスクに応じて、検査部、識別部、監視部、評価部、予測部等と読み替えられてよい。出力部213は、第1推定タスクを遂行した結果に関する情報を出力する。
【0088】
<その他>
モデル生成装置1及び推定装置2の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、モデル生成装置1及び推定装置2の各ソフトウェアモジュールがいずれも汎用のCPUによって実現される例について説明している。しかしながら、上記ソフトウェアモジュールの一部又は全部が、1又は複数の専用のプロセッサにより実現されてもよい。例えば、訓練データ121及び対象データ221それぞれに画像データが含まれる場合、上記ソフトウェアモジュールの一部又は全部が、グラフィックスプロセッシングユニットにより処理されてもよい。また、モデル生成装置1及び推定装置2それぞれのソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
【0089】
§3 動作例
[モデル生成装置]
図7は、本実施形態に係るモデル生成装置1の処理手順の一例を示すフローチャートである。以下で説明する処理手順は、本発明の「モデル生成方法」の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。更に、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【0090】
(ステップS101)
ステップS101では、制御部11は、データ取得部111として動作し、訓練データ121、第1正解データ122、及び第2正解データ123の組み合わせによりそれぞれ構成される複数の学習データセット120を取得する。
【0091】
各学習データセット120は適宜生成されてよい。例えば、実空間又は仮想空間において、推定タスクの対象となる所定種類のデータのサンプルを訓練データ121として取得してもよい。サンプルを取得する方法は適宜選択されてよい。一例として、所定種類のデータがセンシングデータである場合には、様々な条件でセンサにより対象を観測することで、訓練データ121を取得することができる。観測の対象は、習得させる推定タスクに応じて選択されてよい。取得された訓練データ121に対する第1推定タスク及び第2推定タスクそれぞれの正解を示す情報を、第1正解データ122及び第2正解データ123として、取得された訓練データ121に関連付ける。
【0092】
第1推定タスク及び第2推定タスクはそれぞれ、実施の形態に応じて適宜選択されてよい。例えば、第1推定タスク及び第2推定タスクはそれぞれ、利用場面で遂行する推定タスク又はそれに関連する推定タスクから適宜選択されてよい。本実施形態では、第1推定タスクには、利用場面で遂行する推定タスクが選択される。一方、第2推定タスクは、第1推定タスク以外の推定タスクから適宜選択されてよい。利用場面で遂行する推定タスクが入力データの個体性を推定することではない場合、第2推定タスクは、入力データの個体性を推定することであってよい。学習の場面では、入力データは、訓練データ121であり、利用場面では、入力データは、対象データ221である。個体性を推定することは、個体性の識別及び回帰の少なくとも一方により構成されてよい。個体性の識別は、例えば、識別子、クラス等を識別することであってよい。また、個体性の回帰は、例えば、個体性に関する距離(例えば、識別子に基づくクラス間の距離)を推定することであってよい。
【0093】
一例として、第2正解データ123は、訓練データ121の識別子を示すように構成されてよい。この場合、訓練データ121の個体性を推定することは、識別子を識別することであってよい。識別子は、訓練データ121毎に与えられる個体識別番号により構成されてよい。この場合、訓練データ121の識別子は、取得順、取得時間、ランダム等の所定の規則に従って適宜与えられてよい。
【0094】
或いは、各学習データセット120の訓練データ121はクラス分けされてよく、識別子は、訓練データ121の属するクラスを示すように構成されてよい。クラスは、「カテゴリ」と読み替えられてもよい。クラス分けの方法は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。例えば、公知のクラスタリング手法、所定の規則(例えば、ランダム)に従って割り振る等の方法により、訓練データ121をクラス分けしてもよい。また、例えば、訓練データ121を適宜整列し、先頭から順に所定個ずつ同一グループに割り当てる等のように作為性を有する規則に従って、訓練データ121をクラス分けしてもよい。
【0095】
或いは、識別子は、ハッシュ値により構成されてよい。ハッシュ値を算出する方法には、公知の方法が採用されてよい。ハッシュ値は、訓練データ121又は上記個体識別番号から算出されてよい。なお、ハッシュ値(すなわち、第2正解データ123)は、第1推定タスクの正解(すなわち、同一の学習データセット120に含まれる第1正解データ122)と一致しないように算出されるのが好ましい。その方法は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。その方法の一例として、第1正解データ122により示される正解が同一である学習データセット120を同一のグループに振り分け、グループ毎にハッシュ値を算出し、算出されたハッシュ値を第2正解データ123として利用してもよい。その他、第1正解データ122により示される正解を事前固定部分に含む値からハッシュ値を算出し、算出されたハッシュ値から対応する固定部分を除外することで部分ハッシュ値を導出し、導出された部分ハッシュ値を第2正解データ123として利用してもよい。
【0096】
以上により、各学習データセット120を生成することができる。各学習データセット120は、コンピュータの動作により自動的に生成されてもよいし、少なくとも部分的にオペレータの操作を含むことで手動的に生成されてもよい。また、各学習データセット120の生成は、モデル生成装置1により行われてもよいし、モデル生成装置1以外の他のコンピュータにより行われてもよい。各学習データセット120をモデル生成装置1が生成する場合、制御部11は、自動的に又は入力装置15を介したオペレータの操作により手動的に上記一連の生成処理を実行することで、複数の学習データセット120を取得する。一方、各学習データセット120を他のコンピュータが生成する場合、制御部11は、例えば、ネットワーク、記憶媒体91等を介して、他のコンピュータにより生成された複数の学習データセット120を取得する。一部の学習データセット120がモデル生成装置1により生成され、その他の学習データセット120が1又は複数の他のコンピュータにより生成されてもよい。
【0097】
取得する学習データセット120の件数は任意に選択されてよい。複数の学習データセット120を取得すると、制御部11は、次のステップS102に処理を進める。
【0098】
(ステップS102)
ステップS102では、制御部11は、学習処理部112として動作し、取得された複数の学習データセット120を使用して、学習モデル5の機械学習を実施する。
【0099】
図8は、本実施形態に係る学習モデル5に対するステップS102の機械学習に関するサブルーチンの処理手順の一例を示すフローチャートである。本実施形態に係るステップS102の処理は、以下のステップS121~ステップS127の処理を含む。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【0100】
なお、機械学習の処理対象となる学習モデル5の各構成要素(本実施形態では、符号器50、第1推定器51、第2推定器52、第1敵対推定器53、第2敵対推定器54、マスク生成器56、及び復号器57)を構成するニューラルネットワークは適宜用意されてよい。各構成要素の構造(例えば、層の数、各層に含まれるニューロンの数、隣接する層のニューロン同士の結合関係等)、各ニューロン間の結合の重みの初期値、及び各ニューロンの閾値の初期値は、テンプレートにより与えられてもよいし、オペレータの入力により与えられてもよい。また、再学習を行う場合には、制御部11は、過去の機械学習を行うことで得られた学習結果データに基づいて、学習モデル5の各構成要素を用意してもよい。
【0101】
(ステップS121)
ステップS121では、制御部11は、各学習データセット120について、訓練データ121を符号器50に与えたときに、第1推定器51の第1推定タスクを遂行した結果が第1正解データ122に適合し、かつ第2推定器52の第2推定タスクを遂行した結果が第2正解データ123に適合するように、符号器50、第1推定器51、及び第2推定器52を訓練する。ステップS121は、第1訓練ステップの一例である。この機械学習の訓練処理には、例えば、バッチ勾配降下法、確率的勾配降下法、ミニバッチ勾配降下法等が用いられてよい。後述するステップS122~ステップS126における訓練処理についても同様である。
【0102】
訓練処理の一例として、まず、制御部11は、各学習データセット120について、訓練データ121を符号器50の入力層501に入力し、符号器50、マスク生成器56、第1推定器51及び第2推定器52の順伝播の演算処理を実行する。この演算処理の過程で、符号器50の出力がマスク生成器56に入力される。この符号器50の出力は、特徴量3(すなわち、出力層503の出力)であってもよいし、符号器50の演算途中の結果(例えば、出力層503の一個前の層の演算結果)であってもよい。すなわち、マスク生成器56は、符号器50の出力層503に接続されてもよいし、中間層502に接続されてよい。制御部11は、符号器50までの演算処理により、符号器50の出力層503から特徴量3に対応する出力値を取得する。また、制御部11は、マスク生成器56までの演算処理により、生成されたマスク4に対応する出力値をマスク生成器56から取得する。演算処理の過程において、制御部11は、得られたマスク4を使用して、第1部分31及び第2部分32を特徴量3から抽出する。そして、制御部11は、特徴量3の第1部分31を第1推定器51の入力層511に入力し、第2部分32を第2推定器52の入力層521に入力して、各推定器(51、52)の順伝播の演算処理を実行する。これにより、制御部11は、各推定タスクの遂行結果に対応する出力値を各推定器(51、52)の出力層(513、523)から取得する。
【0103】
制御部11は、各学習データセット120について、第1推定器51から得られる出力値及び第1正解データ122の間の第1誤差を算出する。同様に、制御部11は、各学習データセット120について、第2推定器52から得られる出力値及び第2正解データ123の間の第2誤差を算出する。各誤差(損失)の算出には、損失関数が用いられてよい。損失関数は、機械学習モデルの出力と正解との差分(すなわち、相違の程度)を評価する関数であり、出力値と正解(所望の値)との差分値が大きいほど、損失関数により算出される誤差の値は大きくなる。誤差の計算に利用する損失関数の種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。損失関数には、例えば、平均二乗誤差、交差エントロピー誤差等の公知の損失関数が用いられてよい。なお、第2推定タスクが個体性を回帰する(例えば、識別子に基づくクラス間の距離を推定する)ことである場合、第2誤差は、トリプレットロス等の計量学習に用いられる損失関数により算出されてよい。
【0104】
制御部11は、誤差逆伝播(Back propagation)法により、算出された第1誤差の勾配を用いて、第1推定器51及び符号器50の各演算パラメータ(各ニューロン間の結合の重み、各ニューロンの閾値等)の値の誤差を算出する。同様に、制御部11は、算出された第2誤差の勾配を用いて、第2推定器52及び符号器の各演算パラメータの値の誤差を算出する。制御部11は、算出された各誤差に基づいて、符号器50、第1推定器51及び第2推定器52の各演算パラメータの値を更新する。各演算パラメータの値を更新する程度は、学習率により調節されてよい。学習率は、オペレータの指定により与えられてもよいし、プログラム内の設定値として与えられてもよい。
【0105】
制御部11は、上記一連の更新処理により、算出される各誤差の和が小さくなるように、符号器50、第1推定器51及び第2推定器52の各演算パラメータの値を調整する。例えば、規定回数実行する、算出される誤差の和が閾値以下になる等の所定の条件を満たすまで、制御部11は、上記一連の処理による各演算パラメータの値の調節を繰り返してもよい。これにより、制御部11は、各学習データセット120について、訓練データ121を符号器50に与えることで各推定器(51、52)から得られる各推定タスクの遂行結果が各正解データ(122、123)に適合するように、符号器50及び各推定器(51、52)を訓練することができる。ステップS121の訓練処理が完了すると、制御部11は、次のステップS122に処理を進める。
【0106】
なお、この訓練処理における各誤差の勾配を逆伝播する過程で、制御部11は、マスク生成器56の各演算パラメータの値の誤差を更に算出し、算出された各誤差に基づいて、マスク生成器56の各演算パラメータの値を更新してもよい。これにより、制御部11は、符号器50、第1推定器51及び第2推定器52と共に、マスク生成器56の訓練を実行してもよい。
【0107】
(ステップS122)
ステップS122では、制御部11は、各学習データセット120について、訓練データ121を符号器50に与えたときに、第1敵対推定器53の第2推定タスクを遂行した結果が第2正解データ123に適合し、かつ第2敵対推定器54の第1推定タスクを遂行した結果が第1正解データ122に適合するように、第1敵対推定器53及び第2敵対推定器54を訓練する。ステップS122は、第2訓練ステップの第1ステップの一例である。
【0108】
訓練処理の一例として、まず、制御部11は、各学習データセット120について、訓練データ121を符号器50の入力層501に入力し、符号器50、マスク生成器56、第1敵対推定器53、及び第2敵対推定器54の順伝播の演算処理を実行する。第1推定器51が第1敵対推定器53に置き換わり、第2推定器52が第2敵対推定器54に置き換わる点を除き、この順伝播の演算処理は、上記ステップS121と同様に実行されてよい。これにより、制御部11は、第2推定タスクの遂行結果に対応する出力値を第1敵対推定器53の出力層533から取得し、第1推定タスクの遂行結果に対応する出力値を第2敵対推定器54の出力層543から取得する。
【0109】
次に、制御部11は、各学習データセット120について、上記演算処理で第1敵対推定器53から得られる出力値と第2正解データ123との間の第3誤差を算出する。同様に、制御部11は、第2敵対推定器54から得られる出力値と第1正解データ122との間の第4誤差を算出する。各誤差を算出するための損失関数は、ステップS121と同様、適宜選択されてよい。制御部11は、誤差逆伝播法により、算出された第3誤差の勾配を第1敵対推定器53の出力側から入力側に逆伝播して、第1敵対推定器53の各演算パラメータの値の誤差を算出する。同様に、制御部11は、誤差逆伝播法により、算出された第4誤差の勾配を第2敵対推定器54の出力側から入力側に逆伝播して、第2敵対推定器54の各演算パラメータの値の誤差を算出する。そして、制御部11は、算出された各誤差に基づいて、各敵対推定器(53、54)の各演算パラメータの値を更新する。この各演算パラメータの値を更新する程度は、学習率により調節されてよい。
【0110】
制御部11は、符号器50及びマスク生成器56の各演算パラメータの値を固定した上で、上記一連の更新処理により、算出される誤差の和が小さくなるように、各敵対推定器(53、54)の各演算パラメータの値を調節する。ステップS121と同様に、制御部11は、所定の条件を満たすまで、上記一連の処理による各敵対推定器(53、54)の各演算パラメータの値の調節を繰り返してもよい。これにより、制御部11は、各学習データセット120について、訓練データ121を符号器50に与えることで各敵対推定器(53、54)から得られる各推定タスクの遂行結果が各正解データ(123、122)に適合するように、各敵対推定器(53、54)を訓練することができる。各敵対推定器(53、54)の訓練処理が完了すると、制御部11は、次のステップS123に処理を進める。
【0111】
(ステップS123)
ステップS123では、制御部11は、各学習データセット120について、訓練データ121を符号器50に与えたときに、第1敵対推定器53の第2推定タスクを遂行した結果が第2正解データ123に適合しなくなるように、かつ第2敵対推定器54の第1推定タスクを遂行した結果が第1正解データ122に適合しなくなるように、符号器50を訓練する。ステップS123は、第2訓練ステップの第2ステップの一例である。
【0112】
上記のとおり、この訓練処理では、各ダミーデータ(1221、1231)が用いられてよい。すなわち、制御部11は、第1敵対推定器53の第2推定タスクの遂行結果がダミーデータ1231に適合し、かつ第2敵対推定器54の第1推定タスクの遂行結果がダミーデータ1221に適合するように、符号器50を訓練してもよい。
【0113】
各ダミーデータ(1221、1231)は、各学習データセット120の各正解データ(122、123)に対応して適宜取得されてよい。一例として、対象の学習データセットの各ダミーデータ(1221、1231)は、対象の学習データセットとは異なる他の学習データセットの各正解データ(122、123)により構成されてよい。他の学習データセットは、実施の形態に応じて適宜選択されてよい。選択方法の一例として、他の学習データセットは、複数の学習データセット120の中から、ランダム等の機械的な方法で選択されてもよい。その他の例として、各学習データセット120の訓練データ121に対する各正解データ(122、123)の対応関係が任意の方向にずらされてもよい。これにより、対象の学習データセットに割り当てられた他の学習データセットの各正解データ(122、123)が各ダミーデータ(1221、1231)として利用されてもよい。その他の例として、複数の学習データセット120の中から1つの学習データセットを任意の方法で選択し、選択された学習データセットの各正解データ(122、123)を全ての学習データセットの各ダミーデータ(1221、1231)として利用してもよい。この方法によれば、各ダミーデータ(1221、1231)を生成する計算量を抑えることができ、ステップS123の処理コストの低減を図ることができる。
【0114】
なお、各ダミーデータ(1221、1231)を生成する方法は、このような例に限られなくてよく、実施の形態に応じて適宜決定されてよい。他の方法の一例として、制御部11は、各正解データ(122、123)の値を反転することで、各ダミーデータ(1221、1231)を生成してもよい。更に他の方法の一例として、制御部11は、各正解データ(122、123)の値とは相違するように、ランダム(例えば、乱数)等の機械的な方法で各ダミーデータ(1221、1231)を生成してもよい。複数の学習データセット120のうち各ダミーデータ(1221、1231)と各正解データ(122、123)とが一致する学習データセットが一部に存在してもよい。この場合、当該学習データセットをそのまま訓練に使用してもよいし、或いは当該学習データセットの各ダミーデータ(1221、1231)を適宜変更するようにしてもよい。
【0115】
各ダミーデータ(1221、1231)を利用した訓練処理の一例として、まず、制御部11は、上記ステップS122と同様に、各学習データセット120について、訓練データ121を符号器50の入力層501に入力し、符号器50、マスク生成器56、第1敵対推定器53、及び第2敵対推定器54の順伝播の演算処理を実行する。これにより、制御部11は、各推定タスクの遂行結果に対応する出力値を各敵対推定器(53、54)から取得する。
【0116】
次に、制御部11は、各学習データセット120について、上記演算処理で第1敵対推定器53から得られる出力値とダミーデータ1231との間の第5誤差を算出する。同様に、制御部11は、第2敵対推定器54から得られる出力値とダミーデータ1221との間の第6誤差を算出する。各誤差を算出するための損失関数は、ステップS121等と同様に、適宜選択されてよい。制御部11は、誤差逆伝播法により、算出された第5誤差の勾配を、第1敵対推定器53を介して、符号器50の各演算パラメータに逆伝播する。同様に、制御部11は、誤差逆伝播法により、算出された第6誤差の勾配を、第2敵対推定器54を介して、符号器50の各演算パラメータに逆伝播する。これにより、制御部11は、符号器50の各演算パラメータの値の誤差を算出する。そして、制御部11は、算出される各誤差に基づいて、符号器50の各演算パラメータの値を更新する。この各演算パラメータの値を更新する程度は、学習率により調節されてよい。
【0117】
制御部11は、各敵対推定器(53、54)の各演算パラメータの値を固定した上で、上記一連の更新処理により、算出される各誤差の和が小さくなるように、符号器50の各演算パラメータの値を調節する。ステップS121等と同様に、制御部11は、所定の条件を満たすまで、上記一連の処理による符号器50の各演算パラメータの値の調節を繰り返してもよい。これにより、制御部11は、各学習データセット120について、訓練データ121を符号器50に与えることで各敵対推定器(53、54)から得られる各推定タスクの遂行結果が各正解データ(123、122)に適合しなくなるように、符号器50を訓練することができる。符号器50の訓練処理が完了すると、制御部11は、次のステップS124に処理を進める。
【0118】
なお、ステップS123における符号器50の訓練方法は、上記各ダミーデータ(1221、1231)を利用する方法に限られなくてよい。例えば、訓練処理において、制御部11は、上記ステップS122と同様に、各学習データセット120について、第1敵対推定器53から得られる出力値と第2正解データ123との間の誤差を算出してもよい。同様に、制御部11は、第2敵対推定器54から得られる出力値と第1正解データ122との間の誤差を算出してもよい。そして、制御部11は、算出された各誤差の大きくなる方向に当該各誤差の勾配を算出し、誤差逆伝播法により、算出された各誤差の勾配を符号器50の各演算パラメータに逆伝播してもよい。これにより、制御部11は、符号器50の各演算パラメータの値の誤差を算出し、算出された各誤差に基づいて、符号器50の各演算パラメータの値を更新してもよい。
【0119】
また、ステップS123の訓練処理における各誤差の勾配を逆伝播する過程で、制御部11は、マスク生成器56の各演算パラメータの値の誤差を更に算出し、算出された各誤差に基づいて、マスク生成器56の各演算パラメータの値を更新してもよい。これにより、ステップS123において、制御部11は、符号器50と共に、マスク生成器56の訓練を実行してもよい。更に、上記ステップS122及びステップS122の両方で、制御部11は、各正解の出現頻度に応じた重みを各誤差に掛け合わせてもよい。或いは、制御部11は、各正解の出現頻度に応じて、各学習データセット120のサンプリングレートを調整してもよい。これにより、ステップS122及びステップS122の訓練において、制御部11は、各正解の組み合わせの偏りを補正してもよい。
【0120】
(ステップS124)
ステップS124では、制御部11は、各学習データセット120について、訓練データ121を符号器50に与えたときに、復号器57により得られる復号化データが訓練データ121に適合するよう、符号器50及び復号器57を訓練する。ステップS124は、第5訓練ステップの一例である。
【0121】
ステップS124の訓練処理の一例として、まず、制御部11は、各学習データセット120について、訓練データ121を符号器50の入力層501に入力し、符号器50及び復号器57の順伝播の演算処理を実行する。これにより、制御部11は、生成された復号化データに対応する出力値を復号器57の出力層573から取得する。次に、制御部11は、各学習データセット120について、復号器57から得られる出力値と訓練データ121との間の第7誤差(再構成誤差)を算出する。第7誤差を算出するための損失関数は、ステップS121等と同様に、適宜選択されてよい。制御部11は、誤差逆伝播法により、算出された第7誤差の勾配を復号器57の出力層573から符号器50の入力層501に逆伝播して、復号器57及び符号器50の各演算パラメータの値の誤差を算出する。そして、制御部11は、算出された各誤差に基づいて、符号器50及び復号器57の各演算パラメータの値を更新する。この各演算パラメータの値を更新する程度は、学習率により調節されてよい。
【0122】
制御部11は、上記一連の更新処理により、算出される第7誤差の和が小さくなるように、符号器50及び復号器57の各演算パラメータの値を調節する。ステップS121等と同様に、制御部11は、所定の条件を満たすまで、上記一連の処理による符号器50及び復号器57の各演算パラメータの値の調節を繰り返してもよい。これにより、制御部11は、各学習データセット120について、訓練データ121を符号器50に与えることで復号器57から得られる復号化データが訓練データ121に適合するように、符号器50及び復号器57を訓練することができる。符号器50及び復号器57の訓練処理が完了すると、制御部11は、次のステップS125に処理を進める。
【0123】
(ステップS125)
ステップS125では、制御部11は、訓練データ121を符号器50に与えたときに、第1推定器51の第1推定タスクを遂行した結果が第1正解データ122に適合するように、マスク生成器56を訓練する。ステップS125は、第3訓練ステップの一例である。
【0124】
ステップS125の訓練処理の一例として、まず、制御部11は、上記ステップS121と同様に、各学習データセット120について、訓練データ121を符号器50の入力層501に入力し、符号器50、マスク生成器56、及び第1推定器51の順伝播の演算処理を実行する。これにより、制御部11は、第1推定タスクの遂行結果に対応する出力値を第1推定器51の出力層513から取得する。次に、制御部11は、各学習データセット120について、第1推定器51から得られる出力値と第1正解データ122との間の第8誤差を算出する。第8誤差を算出するための損失関数は、ステップS121等と同様に、適宜選択されてよい。制御部11は、誤差逆伝播法により、算出された第8誤差の勾配を、第1推定器51を介して、マスク生成器56に逆伝播して、マスク生成器56の各演算パラメータの値の誤差を算出する。そして、制御部11は、算出された各誤差に基づいて、マスク生成器56の各演算パラメータの値を更新する。この各演算パラメータの値を更新する程度は、学習率により調節されてよい。
【0125】
制御部11は、上記一連の更新処理により、算出される第8誤差の和が小さくなるように、マスク生成器56の各演算パラメータの値を調節する。ステップS121等と同様に、制御部11は、所定の条件を満たすまで、上記一連の処理によるマスク生成器56の各演算パラメータの値の調節を繰り返してもよい。これにより、制御部11は、各学習データセット120について、訓練データ121を符号器50に与えることで第1推定器51から得られる第1推定タスクの遂行結果が第1正解データ122に適合するように、マスク生成器56を訓練することができる。マスク生成器56の訓練処理が完了すると、制御部11は、ステップS126に処理を進める。
【0126】
なお、このステップS125の訓練処理は、上記ステップS121の訓練処理の一部として実行されてよい。この場合、第8誤差は、上記第1誤差に置き換えられてよい。或いは、ステップS125の訓練処理は、上記ステップS121の訓練処理とは別に実行されてよい。この場合、ステップS125における第1推定器51及び符号器50の訓練は任意であってよい。一例として、ステップS125の訓練処理において、第1推定器51の各演算パラメータの値は固定されてよい(すなわち、第1推定器51の訓練は省略されてよい)。一方、制御部11は、第8誤差の勾配を更に符号器50の入力層501まで逆伝播して、符号器50の各演算パラメータの値の誤差を更に算出し、算出された各誤差に基づいて、符号器50の各演算パラメータの値を更新してもよい。
【0127】
(ステップS126)
ステップS126では、制御部11は、生成されるマスク4の各要素の2値化が進むように、マスク生成器56を訓練する。ステップS126は、第4訓練ステップの一例である。
【0128】
ステップS126の訓練処理の一例として、まず、制御部11は、各学習データセット120の訓練データ121を符号器50の入力層501に入力し、符号器50及びマスク生成器56の順伝播の演算処理を実行する。これにより、制御部11は、生成されたマスク4に対応する出力値をマスク生成器56から取得する。次に、制御部11は、各要素の2値化が進んでいないほど値の大きくなる誤差関数を用いて、マスク生成器56から得られた出力値の第9誤差を算出する。誤差関数には、例えば、以下の式1の関数が用いられてよい。
【0129】
【数1】
x
i及びx
jは、マスク4(出力値)の各要素の値を示す。εは、0以外の定数であり、その値は、適宜与えられてよい。なお、2値化を進めるための誤差関数は、このような例に限定されなくてよく、実施の形態に応じて適宜設定されてよい。例えば、L0ノルム、L1ノルム又はその近似をマスク生成器56の出力値に掛け算するように構成された誤差関数が、第9誤差の算出に用いられてよい。
【0130】
制御部11は、誤差逆伝播法により、算出された第9誤差の勾配をマスク生成器56に逆伝播して、マスク生成器56の各演算パラメータの値の誤差を算出する。そして、制御部11は、算出された各誤差に基づいて、マスク生成器56の各演算パラメータの値を更新する。この各演算パラメータの値を更新する程度は、学習率により調節されてよい。
【0131】
制御部11は、上記一連の更新処理により、算出される第9誤差の和が小さくなるように、マスク生成器56の各演算パラメータの値を調節する。ステップS121等と同様に、制御部11は、所定の条件を満たすまで、上記一連の処理によるマスク生成器56の各演算パラメータの値の調節を繰り返してもよい。これにより、制御部11は、生成されるマスク4の各要素の2値化が進むように、マスク生成器56を訓練することができる。2値化を進めるための訓練処理が完了すると、制御部11は、ステップS127に処理を進める。
【0132】
なお、このステップS126の訓練処理において、制御部11は、第9誤差の勾配を更に符号器50の入力層501まで逆伝播して、符号器50の各演算パラメータの値の誤差を更に算出し、算出された各誤差に基づいて、符号器50の各演算パラメータの値を更新してもよい。これにより、制御部11は、マスク生成器56と共に、マスク4の各要素の2値化が進むように、符号器50の訓練を実行してもよい。この符号器50の訓練により、マスク4の各要素の2値化の促進を期待することができる。また、このステップS126の訓練処理は、上記ステップS121~ステップS125の少なくともいずれかの訓練処理と共に実行されてよい。
【0133】
(ステップS127)
ステップS127では、制御部11は、ステップS121~ステップS126の訓練処理を繰り返すか否かを判定する。判定の基準は、実施の形態に応じて適宜設定されてよい。一例として、訓練処理を繰り返す規定回数が与えられてもよい。規定回数は、例えば、オペレータの指定により与えられてもよいし、プログラム内の設定値として与えられてもよい。この場合、制御部11は、ステップS121~ステップS126の訓練処理を実行した回数が規定回数に到達したか否かを判定する。実行回数が規定回数に到達していないと判定した場合、制御部11は、ステップS121に処理を戻し、ステップS121~ステップS126の訓練処理を再度実行する。これにより、本実施形態では、ステップS122及びステップS123が交互に繰り返し実行される。一方、実行回数が規定回数に到達していると判定した場合、制御部11は、学習モデル5の機械学習の処理を完了し、次のステップS103に処理を進める。
【0134】
なお、上記ステップS121~ステップS126の処理順序は、上記の例に限られなくてもよく、実施の形態に応じて適宜適宜変更されてよい。例えば、ステップS123の処理は、ステップS122の処理の後に実行されてもよい。ステップS121及びステップS124~ステップS126のうちの少なくともいずれかは、ステップS127によるループ外で実行されてもよい。各訓練処理における各構成要素の訓練は、個別に実行されてもよい。上記ステップS121~ステップS126の少なくともいずれかの組み合わせは同時に実行されてもよい。すなわち、上記ステップS121~ステップS126における各誤差の計算及び各演算パラメータの値の調節は、可能な範囲で同時に実行されてよい。この場合、順伝播の演算処理は可能な限り共通に実行されてよく、また、各誤差の勾配は、重み付き和により合計されてよい。これにより、機械学習の処理の効率化を図ることができる。また、制御部11は、ステップS121~ステップS126の各訓練処理において、各演算パラメータの値の調節を繰り返すのではなく、ステップS127の処理により、ステップS121~ステップS126による各演算パラメータの値の調節を繰り返すようにしてもよい。
【0135】
(ステップS103)
図7に戻り、ステップS103では、制御部11は、保存処理部113として動作し、ステップS102による機械学習の結果に関する情報を学習結果データ129として生成する。本実施形態では、制御部11は、機械学習により構築された訓練済みの符号器50、マスク生成器56、及び第1推定器51の構造及び各演算パラメータの値を示す情報を学習結果データ129として生成する。そして、制御部11は、生成された学習結果データ129を所定の記憶領域に保存する。
【0136】
所定の記憶領域は、例えば、制御部11内のRAM、記憶部12、外部記憶装置、記憶メディア又はこれらの組み合わせであってよい。記憶メディアは、例えば、CD、DVD等であってよく、制御部11は、ドライブ17を介して記憶メディアに学習結果データ129を格納してもよい。外部記憶装置は、例えば、NAS(Network Attached Storage)等のデータサーバであってよい。この場合、制御部11は、通信インタフェース13を利用して、ネットワークを介してデータサーバに学習結果データ129を格納してもよい。また、外部記憶装置は、例えば、外部インタフェース14を介してモデル生成装置1に接続された外付けの記憶装置であってもよい。学習結果データ129の保存が完了すると、制御部11は、本動作例に係る処理手順を終了する。
【0137】
なお、生成された学習結果データ129は、任意のタイミングで推定装置2に提供されてよい。例えば、制御部11は、ステップS103の処理として又はステップS103の処理とは別に、学習結果データ129を転送してもよい。推定装置2は、この転送を受信することで、学習結果データ129を取得してもよい。また、推定装置2は、通信インタフェース23を利用して、モデル生成装置1又はデータサーバにネットワークを介してアクセスすることで、学習結果データ129を取得してもよい。また、例えば、推定装置2は、記憶媒体92を介して、学習結果データ129を取得してもよい。また、例えば、学習結果データ129は、推定装置2に予め組み込まれてもよい。
【0138】
更に、制御部11は、上記ステップS101~ステップS103の処理を定期又は不定期に繰り返すことで、学習結果データ129を更新又は新たに生成してもよい。この繰り返しの際には、複数の学習データセット120の少なくとも一部の変更、修正、追加、削除等が適宜実行されてよい。そして、制御部11は、更新した又は新たに生成した学習結果データ129を任意の方法で推定装置2に提供することで、推定装置2の保持する学習結果データ129を更新してもよい。
【0139】
[推定装置]
図9は、本実施形態に係る推定装置2の処理手順の一例を示すフローチャートである。以下で説明する処理手順は、推定方法の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。更に、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【0140】
(ステップS201)
ステップS201では、制御部21は、データ取得部211として動作し、対象データ221を取得する。対象データ221は、第1推定タスクの遂行対象となる所定種類のデータのサンプルである。対象データ221を取得する方法は、データの種類に応じて適宜決定されてよい。対象データ221がセンシングデータである場合、制御部21は、第1推定タスクに関する対象をセンサにより観測することで、対象データ221を取得することができる。対象データ221を取得すると、制御部21は、次のステップS202に処理を進める。
【0141】
(ステップS202)
ステップS202では、制御部21は、推定部212として動作し、学習結果データ129を参照して、訓練済みの符号器50、マスク生成器56、及び第1推定器51の設定を行う。制御部21は、取得された対象データ221を訓練済みの符号器50の入力層501に入力し、訓練済みの符号器50、マスク生成器56、及び第1推定器51の順伝播の演算処理を実行する。この演算処理の過程において、制御部21は、訓練済みの符号器50までの演算処理により、符号器50の出力層503から対象データ221の特徴量3に対応する出力値を取得する。また、制御部21は、訓練済みのマスク生成器56までの演算処理により、対象データ221より生成されたマスク4に対応する出力値を取得する。制御部21は、得られたマスク4を使用して、第1部分31を特徴量3から抽出する。そして、制御部21は、特徴量3の第1部分31を訓練済みの第1推定器51の入力層511に入力し、訓練済みの第1推定器51の順伝播の演算処理を実行する。これにより、制御部21は、対象データ221に対して第1推定タスクを遂行した結果に対応する出力値を訓練済みの第1推定器51の出力層513から取得することができる。すなわち、本実施形態では、対象データ221に対する第1推定タスクを遂行することは、対象データ221を符号器50に与えて、訓練済みの符号器50、マスク生成器56、及び第1推定器51の順伝播の演算処理を実行することにより達成される。第1推定タスクの遂行が完了すると、制御部21は、次のステップS203に処理を進める。
【0142】
(ステップS203)
ステップS203では、制御部21は、出力部213として動作し、第1推定タスクを遂行した結果に関する情報を出力する。
【0143】
出力先及び出力する情報の内容はそれぞれ、実施の形態に応じて適宜決定されてよい。例えば、制御部21は、ステップS202により得られる第1推定タスクを遂行した結果をそのまま出力装置26に出力してもよい。また、例えば、制御部21は、第1推定タスクを遂行した結果に基づいて、何らかの情報処理を実行してもよい。そして、制御部21は、その情報処理を実行した結果を、第1推定タスクの遂行結果に関する情報として出力してもよい。この情報処理を実行した結果の出力には、第1推定タスクの遂行結果に応じて特定のメッセージを出力すること、遂行結果に応じて制御対象装置の動作を制御すること等が含まれてよい。出力先は、例えば、出力装置26、他のコンピュータの出力装置、制御対象装置等であってよい。
【0144】
第1推定タスクの遂行結果に関する情報の出力が完了すると、制御部21は、本動作例に係る処理手順を終了する。なお、所定期間の間、制御部21は、ステップS201~ステップS203の一連の情報処理を継続的に繰り返し実行してもよい。繰り返すタイミングは、任意であってよい。これにより、推定装置2は、第1推定タスクを継続的に遂行してもよい。
【0145】
[特徴]
以上のとおり、本実施形態では、上記ステップS121~ステップS123の訓練処理により、符号器50により得られる特徴量3に各推定タスクに関連する情報が含まれるようにしつつ、特徴量3の第1部分31と第2部分32との間で情報の排他性を高めることができる。これにより、訓練された符号器50により得られる特徴量3の第1部分31及び第2部分32の説明性を高めることができる。よって、本実施形態によれば、演算内容の説明性が比較的に高い訓練済みの機械学習モデルを生成することができる。推定装置2では、第1推定タスクの遂行に、第2推定タスクに関連する情報による影響を及び難くすることができる。
【0146】
また、本実施形態では、学習モデル5は、マスク生成器56を含んでいる。ステップS125におけるマスク生成器56の訓練処理により、特徴量3の第1部分31の範囲を訓練データ121に適応的に決定することができる。これにより、訓練済みの第1推定器51による第1推定タスクの遂行精度を担保した上で、特徴量3の第1部分31の情報量を最適化することができる。その結果、第1推定タスクの計算時間の効率化を期待することができる。また、生成されるマスク4の要素が中間的な値をとることにより、第1推定タスク及び第2推定タスクの両方に寄与する情報を第1部分31及び第2部分32それぞれに抽出可能であることを期待することができる。その結果、各推定タスクの遂行精度の向上を図ることができる。更には、本実施形態では、ステップS126の訓練処理により、特徴量3の第1部分31の情報量の最適化(すなわち、訓練済みのマスク生成器56の生成)を促進することができる。
【0147】
また、本実施形態では、学習モデル5は、復号器57を含んでいる。ステップS124における符号器50及び復号器57の訓練処理により、訓練データ121を特徴量3から復元可能であることを保証することができる。これにより、符号器50により得られる特徴量3において、訓練データ121に関する情報の欠損を抑制することができる。したがって、本実施形態によれば、訓練済みの符号器50により入力データを特徴量3に変換する過程での情報の欠損を抑えることができるため、推定装置2において使用される訓練済み機械学習モデルの汎化性及びロバスト性の向上を図ることができる。
【0148】
また、本実施形態では、第2推定タスクは、訓練データ121の個体性を推定することであってよい。訓練データ121に含まれるノイズは、特定の個体特有に表れる現象であるため、訓練データ121の個体性に対応する。本実施形態によれば、訓練された符号器50により得られる特徴量3の第1部分31に、訓練データ121の個体性に関する情報(すなわち、ノイズに対応し得る情報)が含まれ難くすることができる。これによって、個体性に関する情報が第1推定タスクの遂行に影響を及ぼすことを抑制することができ、第1推定タスクを遂行する訓練済みの機械学習モデル(符号器50、マスク生成器56、及び第1推定器51)の汎化性能の向上を図ることができる。換言すると、推定装置2において、未知の環境で得られる対象データ221に対する第1推定タスクの遂行精度の向上を期待することができる。なお、個体性を推定することは、訓練データ121の識別子を識別することであってよい。これにより、第2推定タスクを適切に設定することができる。また、識別子は、ハッシュ値又はクラスを示すように構成されてよい。これにより、学習データセット120の数に応じた第2正解データ123の情報量の増大を緩和することができる。その結果、第2推定タスクに関する計算量の低減及び機械学習の処理の効率化を期待することができる。
【0149】
§4 変形例
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良又は変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
【0150】
<4.1>
上記実施形態では、第1推定タスクには、推定装置2(すなわち、利用場面)において遂行する推定タスクが設定される。しかしながら、利用場面で遂行される推定タスクは、第1推定タスクに限られなくてよい。その他の一例として、第2推定タスクが、利用場面で遂行されてもよい。更にその他の一例として、第1推定タスク及び第2推定タスク以外の他の推定タスクが利用場面で遂行されてもよい。この場合、利用場面で遂行する他の推定タスクは、複数の推定タスクそれぞれにより推定される特徴に関する情報から更に高次の特徴を推定する高次推定タスクであってよい。「高次」とは、2つ以上の推定タスクの推定結果又はその遂行に利用した情報からより複雑又は抽象的な特徴を推定することに相当する。一例として、第1推定タスク及び第2推定タスクの少なくとも一方は、入力データに含まれる対象物の数をカウントする、対象物の種別を識別する等のより原始的(或いは、単純)な特徴を推定することであってよい。第1推定タスク及び第2推定タスクが共に原始的な特徴を推定することである場合には、第1推定タスク及び第2推定タスクは、原始的な特徴の異なる項目を推定するように設定されてよい。或いは、第1推定タスク及び第2推定タスクの少なくとも一方は、例えば、センシングデータ等の入力データの比較的に近い未来又は過去の値(例えば、許容可能な精度で現在値から推定可能な未来又は過去の値)を推定することであってよい。第1推定タスク及び第2推定タスクが共に入力データの未来又は過去の値を推定することである場合には、第1推定タスク及び第2推定タスクは、互いに異なる時間の値を推定するように設定されてよい。これに対応して、高次推定タスクは、その推定結果に基づいて、自動運転の戦略を決定する等のより高度(複雑又は抽象的)な特徴を推定することであってよい。なお、第1推定タスク及び第2推定タスクも、より低次の推定タスクに対する高次推定タスクであってよい。この点を考慮して、第1推定タスク及び第2推定タスクは「k次推定タスク」と読み替えられてよく、高次推定タスクは「k+1次推定タスク」と読み替えられてよい(kは1以上の自然数)。
【0151】
図10Aは、高次推定タスクが利用場面で遂行される変形例に係る学習モデル5Zの機械学習の処理過程の一例を模式的に例示する。本変形例に係る学習モデル5Zは、高次推定器58を更に含む点を除き、上記学習モデル5と同様に構成されてよい。高次推定器58は、特徴量3の第1部分31及び第2部分32の入力を受け付け、入力された第1部分31及び第2部分32に基づいて、入力データに対する高次推定タスクを遂行する(換言すると、高次推定タスクを遂行した結果に対応する出力値を出力する)ように構成される。
【0152】
上記各推定器(51、52)と同様に、高次推定器58の出力値の形式は、高次推定タスクの遂行結果を直接的又は間接的に示すように適宜決定されてよい。また、高次推定器58を構成する機械学習モデルの種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。
図10Aの例では、高次推定器58は、上記実施形態に係る各推定器(51、52)と同様に、多層構造の全結合型ニューラルネットワークにより構成される。高次推定器58は、入力層581、中間(隠れ)層582、及び出力層583を備える。ただし、上記学習モデル5の各構成要素と同様に、高次推定器58の構造は、このような例に限定されなくてよく、実施の形態に応じて適宜決定されてよい。高次推定器58の層の数は、実施の形態に応じて適宜決定されてよい。各層581~583は、1又は複数のニューロン(ノード)を備えている。各ニューロンの結合関係は、実施の形態に応じて適宜設定されてよい。各層581~583は、上記実施形態と同様に構成されてよい。
【0153】
本変形例に係る学習モデル5Zの機械学習は、上記モデル生成装置1により実施可能である。上記ステップS101において、制御部11は、複数の学習データセット120Zを取得する。各学習データセット120Zは、訓練データ121に対する高次推定タスクの正解を示す高次正解データ124を更に備える点を除き、上記各学習データセット120と同様に構成されてよい。高次正解データ124のデータ形式は、高次推定タスク、機械学習の方法、学習モデル5Zの構成等に応じて適宜決定されてよい。
【0154】
また、上記ステップS102における機械学習を実施することは、高次推定器58を訓練する高次訓練ステップを更に含む点を除き、上記実施形態と同様に構成されてよい。高次訓練ステップでは、制御部11は、各学習データセット120Zについて、訓練データ121を符号器50に与えたときに、高次推定器58の高次推定タスクを遂行した結果が高次正解データ124に適合するように、高次推定器58を訓練する。上記ステップS121等と同様に、この機械学習の訓練処理には、例えば、バッチ勾配降下法、確率的勾配降下法、ミニバッチ勾配降下法等が用いられてよい。
【0155】
訓練処理の一例として、まず、制御部11は、各学習データセット120Zについて、訓練データ121を符号器50の入力層501に入力し、符号器50、マスク生成器56、及び高次推定器58の順伝播の演算処理を実行する。これにより、制御部11は、高次推定タスクの遂行結果に対応する出力値を高次推定器58の出力層583から取得する。なお、この訓練処理において、マスク生成器56の処理は省略されてよい。
【0156】
次に、制御部11は、各学習データセット120Zについて、上記演算処理で高次推定器58から得られる出力値と高次正解データ124との間の誤差を算出する。誤差を算出するための損失関数は、上記ステップS121等と同様に、適宜選択されてよい。制御部11は、誤差逆伝播法により、算出された勾配を高次推定器58の出力側から入力側に逆伝播して、高次推定器58の各演算パラメータの値の誤差を算出する。そして、制御部11は、算出された各誤差に基づいて、高次推定器58の各演算パラメータの値を更新する。この各演算パラメータの値を更新する程度は、学習率により調節されてよい。
【0157】
制御部11は、上記一連の更新処理により、算出される誤差の和が小さくなるように、高次推定器58の各演算パラメータの値を調節する。上記ステップS121等と同様に、制御部11は、所定の条件を満たすまで、上記一連の処理による高次推定器58の各演算パラメータの値の調節を繰り返してもよい。これにより、制御部11は、各学習データセット120Zについて、訓練データ121を符号器50に与えることで高次推定器58から得られる高次推定タスクの遂行結果が高次正解データ124に適合するように、高次推定器58を訓練することができる。
【0158】
この高次訓練ステップを実行するタイミングは、実施の形態に応じて適宜決定されてよい。例えば、高次訓練ステップは、ステップS127によるループ内で(すなわち、ステップS121~ステップS126と共に)実行されてもよいし、ステップS127の後に実行されてもよい。ループ内で実行される場合、高次訓練ステップは、上記ステップS121等と同等に取り扱われてよい。
【0159】
なお、高次訓練ステップにおいて、制御部11は、誤差の勾配を更に符号器50の入力層501まで逆伝播して、符号器50の各演算パラメータの値の誤差を更に算出し、算出された各誤差に基づいて、符号器50の各演算パラメータの値を更新してもよい。これにより、制御部11は、高次推定器58と共に符号器50を訓練してもよい。マスク生成器56も同様に高次推定器58と共に訓練されてよい。
【0160】
上記ステップS103では、制御部11は、機械学習により構築された訓練済みの符号器50、マスク生成器56、及び高次推定器58の構造及び各演算パラメータの値を示す情報を学習結果データ129Zとして生成する。そして、制御部11は、生成された学習結果データ129Zを所定の記憶領域に保存する。生成された学習結果データ129Zは、任意のタイミングで利用装置(例えば、推定装置2)に提供されてよい。
【0161】
なお、高次推定タスクの演算の過程でマスク生成器56の処理を省略する場合には、訓練済みのマスク生成器56に関する情報は、学習結果データ129Zから省略されてよい。また、学習結果データ129Zは、訓練済みの学習モデル5Zの他の構成要素に関する情報を含んでもよい。
【0162】
図10Bは、本変形例に係る訓練済みの学習モデル5Zの利用場面の一例を模式的に例示する。訓練済みの高次推定器58を使用した高次推定タスクの遂行は、上記推定装置2により実行可能である。上記ステップS202では、制御部21は、訓練済みの符号器50、マスク生成器56、及び高次推定器58を使用して、取得された対象データ221に対して高次推定タスクを遂行する。すなわち、制御部21は、学習結果データ129Zを参照して、訓練済みの符号器50、マスク生成器56、及び高次推定器58の設定を行う。制御部21は、取得された対象データ221を訓練済みの符号器50の入力層501に入力し、訓練済みの符号器50、マスク生成器56、及び高次推定器58の順伝播の演算処理を実行する。これにより、制御部21は、対象データ221に対して高次推定タスクを遂行した結果に対応する出力値を訓練済みの高次推定器58から取得することができる。これらの点を除き、推定装置2は、上記実施形態と同様の処理手順により、高次推定タスクに関する処理を実行することができる。なお、ステップS202において、不要な場合には、訓練済みのマスク生成器56は省略されてよい。
【0163】
本変形例によれば、推定結果に誤りが生じた場合に、その原因を解明しやすい訓練済みの機械学習モデル(符号器50、マスク生成器56、及び高次推定器58)を構築することができる。すなわち、推定装置2において、高次推定タスクの遂行結果に誤りが生じた場合、特徴量3の各部分(31、32)を参照する。各部分(31、32)の参照には、訓練済みの各推定器(51、52)が用いられてもよい。参照の結果、第1部分31及び第2部分32の少なくともいずれかが適切な値ではない(すなわち、高次推定タスクよりも低次の第1推定タスク及び第2推定タスクに誤りが生じている)ことが判明した場合、そのことが、高次推定タスクの遂行結果に誤りが生じた原因であると解明することができる。また、高次推定器58の推定結果に誤りが生じた場合に、第1部分31及び第2部分32のいずれかが適切ではないと疑わしいことが判明したと想定する。この場合に、第1部分31及び第2部分32のうちの疑わしい方を取り除いた後、再度、高次推定器58の学習を行い、新たに生成された訓練済みの高次推定器58により高次推定タスクを遂行する。或いは、第1部分31及び第2部分32のうちの疑わしい方を取り除いた後、取り除いた方の部分を適正な値に補完し、高次推定器58により高次推定タスクを遂行する。この遂行の結果が正しかった場合、特徴量3の取り除いた部分が、誤りの原因であると解明することができる。つまり、本変形例によれば、第1部分31及び第2部分32の間の情報の排他性を高めることで特徴量3の説明性を高めたことにより、推定タスクの遂行に問題が生じた際にその原因の検証を行うことができるようになる。
【0164】
<4.2>
上記実施形態では、特徴量3から抽出される部分、対応する推定タスク、及び推定器の数はそれぞれ2つである。しかしながら、それぞれの数は、2つに限られなくてよく、3つ以上であってよい。
【0165】
図11は、本変形例に係る学習モデルの一例を模式的に例示する。本変形例では、n個の推定タスクが設定される。nは、3以上の自然数であってよい。n個の推定タスクのいずれか1つは、上記第2推定タスクと同様に、入力データの個体性を推定することであってよい。本変形例に係る学習モデルは、推定タスクの数に応じて構成要素の数が変更される点を除き、上記実施形態に係る学習モデル5と同様に構成されてよい。本変形例に係る学習モデルは、上記符号器50及びn個の推定器5101~510nを含む。各推定器5101~510nは、上記各推定器(51、52)と同様に構成されてよい。
【0166】
特徴量3は、各推定タスクにそれぞれ対応するn個の部分311~31nを含んでよい。各部分311~31nを抽出するためのマスク4を生成するマスク生成器56の数は、実施の形態に応じて適宜決定されてよい。例えば、1つのマスク生成器56が、各部分311~31nをそれぞれ抽出するためのn個のマスク4を生成するように構成されてよい。また、例えば、学習モデルは、n-1個のマスク生成器56を含み、各マスク生成器56は、第1~第n-1部分を抽出するためのマスク4を生成するように構成されてよい。この場合、第n部分31nは、特徴量3の第1~第n-1部分以外の部分から抽出されてよい。
【0167】
各推定器5101~510nは、各推定タスクに割り当てられる。各推定器5101~510nは、特徴量3の自身に割り当てられた推定タスクに対応する部分311~31nの入力を受け付け、入力された部分311~31nに基づいて、入力データに対する割り当てられた推定タスクを遂行するように構成される。
図11の例では、第1推定器5101は、第1部分311の入力を受け付け、第1推定タスクを遂行するように構成される。第n推定器510nは、第n部分31nの入力を受け付け、第n推定タスクを遂行するように構成される。
【0168】
また、第2訓練ステップを敵対的学習により実現するため、本変形例に係る学習モデルは、各推定器5101~510nにそれぞれ対応するn個の敵対推定器5301~530nを含む。各敵対推定器5301~530nは、特徴量3の対応する部分311~31nの入力を受け付け、入力された部分311~31nに基づいて、対応する推定器5101~510nに割り当てられている推定タスク以外のn-1個の推定タスクを遂行するように構成される。
図11の例では、第1敵対推定器5301は、第1部分311の入力を受け付け、第2~第n推定タスクを遂行するように構成される。第n敵対推定器530nは、第n部分31nの入力を受け付け、第1~第n-1推定タスクを遂行するように構成される。各敵対推定器5301~530nは、上記各敵対推定器(53、54)と同様に構成されてよい。なお、敵対推定器の数は、このような例に限定されなくてよい。例えば、敵対推定器は、推定タスク毎に設定されてもよい。すなわち、各推定器5101~510nにn-1個の敵対推定器が設定されてもよい。
【0169】
本変形例に係る学習モデルの機械学習は、上記モデル生成装置1により実施可能である。上記ステップS101では、制御部11は、複数の学習データセット120Yを取得する。本変形例に係る各学習データセット120Yは、訓練データ121、及び訓練データ121に対するn個の推定タスクそれぞれの正解をそれぞれ示すn件の正解データ1221~122nの組み合わせにより構成される。各正解データ1221~122nは、上記実施形態に係る各正解データ(122、123)に対応する。
【0170】
本変形例に係る機械学習を実施することは、構成要素の数の点を除き、上記実施形態に係るステップS102と同様に構成されてよい。ステップS121では、制御部11は、各学習データセット120Yについて、訓練データ121を符号器50に与えた時に、各推定器5101~510nの各推定タスクを遂行した結果が対応する正解データ1221~122nに適合するように、符号器50及び各推定器5101~510nを訓練する。ステップS122では、制御部11は、各学習データセット120Yについて、訓練データ121を符号器50に与えたときに、各敵対推定器5301~530nにより上記n-1個の推定タスクを遂行した結果が当該n-1個の推定タスクそれぞれの正解をそれぞれ示すn-1件の正解データ(例えば、第1敵対推定器5301の場合、第2~第n正解データ)に適合するように、各敵対推定器5301~530nを訓練する。一方、ステップS123では、制御部11は、各学習データセット120Yについて、訓練データ121を符号器50に与えたときに、各敵対推定器5301~530nにより上記n-1個の推定タスクを遂行した結果が当該n-1個の推定タスクそれぞれの正解をそれぞれ示すn-1件の正解データに適合しなくなるように、符号器50を訓練する。制御部11は、ステップS122及びステップS123を交互に繰り返し実行する。これにより、制御部11は、各学習データセット120Yについて、特徴量3の各部分311~31nと各部分311~31nに対応する推定タスクに対応する正解データ1221~122nを除くn-1件の(他の)正解データ(例えば、第1部分311の場合、第2~第n正解データ)との間の相関性が低くなるように、符号器50を訓練することができる。
【0171】
本変形例に係る訓練済みの学習モデルは、利用場面において推定タスクを遂行するために適宜使用されてよい。例えば、推定装置2は、n個の訓練済みの推定器5101~510nのいずれか及び訓練済みの符号器50を使用して、n個の推定タスクのいずれかを対象データ221に対して遂行してもよい。また、上記<4.1>と同様に、n個の推定タスク以外の高次推定タスクが設定されてよく、本変形例に係る学習モデルは、高次推定器を更に備えてもよい。高次推定タスクは、n個の推定タスクのうちの少なくとも2個の推定タスクに対して設定されてよい。この場合、高次推定器は、特徴量3のn個の部分311~31nの少なくとも2つの入力を受け付け、入力されたn個の部分311~31nの少なくとも2つに基づいて、入力データに対する高次推定タスクを遂行するように構成されてよい。この学習モデルの機械学習を実施することは、上記高次訓練ステップを更に含んでよい。推定装置2は、訓練済みの符号器50及び高次推定器を使用して、対象データ221に対して高次推定タスクを遂行してもよい。
【0172】
本変形例によれば、演算内容の説明性が更に高い訓練済みの機械学習モデルを生成することができる。推定装置2では、いずれかの推定タスクを遂行する際に、他の推定タスクに関連する情報による影響を及び難くすることができる。また、高次推定器を設ける形態では、高次推定タスクの遂行結果に誤りが生じた場合に、各部分311~31nを参照することで、その誤りの生じた原因を解明可能であることを期待することができる。また、高次推定タスクの遂行結果に誤りが生じた際に、特徴量3のn個の部分311~31nから疑わしい部分を取り除いた後、再度、高次推定器58の学習を行い、新たに生成された高次推定器58により高次推定タスクを再度遂行する。或いは、取り除いた方の部分を適正な値に補完し、高次推定器58により高次推定タスクを遂行する。これにより、その誤りが生じた原因の検証を行うことができる。
【0173】
更に、作成者は、適用場面に応じて使用する特徴量3の部分を選択し、選択された部分に基づいて高次推定タスクを遂行するように高次推定器を構成してもよい。例えば、第1部分311が、第1適用場面では高次推定タスクの遂行精度の向上に貢献するのに対して、第2適用場面では高次推定タスクの遂行精度を悪化させるものであると想定する。この場合に、作成者は、第1適用場面では、第1部分311の入力を受け付けるように高次推定器を構築するのに対して、第2適用場面では、高次推定器の入力から第1部分311を除外してもよい。これにより、適用画面に最適な訓練済みの高次推定器の生成を期待することができる。
【0174】
<4.3>
上記実施形態では、ステップS122及びステップS123を独立に実行し、ステップS127により訓練処理をループすることで、第2訓練ステップの第1ステップ及び第2ステップは交互に繰り返し実行されている。しかしながら、第1ステップ及び第2ステップを交互に繰り返し実行することは、このような例に限定されなくてよく、勾配反転層を利用して第1ステップ及び第2ステップを同時に実行することを含んでもよい。
【0175】
図12は、本変形例に係る学習モデル5Xの一例を模式的に例示する。本変形例に係る学習モデル5Xは、各敵対推定器(53、54)の手前にそれぞれ配置される勾配反転層(591、592)を備えている。各勾配反転層(591、592)は、順伝播の演算の際は値をそのまま通過させ、逆伝播時には値を反転するように構成される。本変形例に係る学習モデル5Xの機械学習は、第2訓練ステップ(上記ステップS122及びステップS123)の処理を除いて、上記実施形態と同様に処理されてよい。第2訓練ステップでは、制御部11は、上記ステップS122及びステップS123と同様に、各敵対推定器(53、54)の出力値の誤差を算出する。制御部11は、算出された各誤差を、各敵対推定器(53、54)の出力層(533、534)から符号器50の入力層501まで逆伝播し、符号器50及び各敵対推定器(53、54)の各演算パラメータの値の固定せずに更新する。これにより、制御部11は、ステップS122及びステップS123を同時に処理することができる。なお、上記<4.2>の変形例においても同様の構成が採用されてよい。各勾配反転層は、各敵対推定器5301~530nの手前に配置されてよい。
【0176】
<4.4>
上記実施形態及び変形例では、第2訓練ステップは、第1ステップ及び第2ステップの敵対的学習により構成されている。しかしながら、各部分と正解データとの間の相関性を低くするように符号器50を訓練する方法は、このような例に限定されなくてよい。一例として、第2訓練ステップでは、制御部11は、特徴量3の各部分及び正解データ(上記実施形態では、第1部分31及び第2正解データ123/第2部分32及び第1正解データ122)の分布間の不一致性(discrepancy)を誤差として算出し、算出された誤差を最小化するように符号器50を訓練してもよい。誤差の計算には、MMD(maximum mean discrepancy)、MCD(maximum classifier discrepancy)等の公知の指標が用いられてよい。これにより、制御部11は、各部分と正解データとの間の相関性を低くするように符号器50を訓練してもよい。この場合、各敵対推定器(53、54、5301~530n)は省略されてよい。
【0177】
<4.5>
上記実施形態では、符号器50、各推定器(51、52)、各敵対推定器(53、54)、及び復号器57それぞれには、全結合型のニューラルネットワークが用いられている。しかしながら、それぞれを構成するニューラルネットワークの種類は、このような例に限定されなくてもよい。例えば、畳み込みニューラルネットワーク、再帰型ニューラルネットワーク等の公知のニューラルネットワークが学習モデル5の各構成要素に用いられてよい。更には、学習モデル5の各構成要素は、例えば、ドロップアウト層等の他の種類の層を含んでもよい。マスク生成器56及び高次推定器58についても同様である。
【0178】
また、上記実施形態において、学習モデル5の各構成要素を構成する機械学習モデルの種類は、ニューラルネットワークに限られなくてよい。各構成要素には、例えば、ニューラルネットワーク以外に、サポートベクタマシン、回帰モデル、決定木モデル等が用いられてよい。機械学習モデルの演算内容は、識別及び回帰の少なくとも一方であってよい。機械学習の方法は、それぞれの機械学習モデルの種類に応じて適宜選択されてよい。機械学習の方法には、例えば、k近傍法又はその近似法(例えば、近似最近傍法等)、ランダムフォレスト、バギング、ブースティング等が採用されてよい。高次推定器58についても同様である。なお、機械学習モデルが、例えば、ニューラルネットワーク等の微分可能な関数で構成されない場合、機械学習の方法には、強化学習等の微分不能なモデルの訓練を実行可能な方法が採用されてよい。
【0179】
また、上記実施形態において、学習モデル5の各構成要素の入力及び出力の形式は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。例えば、第1推定器51は、特徴量3の第1部分31(及び第2部分32)以外の情報の入力を更に受け付けるように構成されてもよい。高次推定器58についても同様である。
【0180】
<4.6>
上記実施形態において、ステップS126の訓練処理が、学習モデル5の機械学習の処理手順から省略されてもよい。
【0181】
また、上記実施形態において、マスク生成器56が、学習モデル5から省略されてよい。この場合、ステップS125の訓練処理が、学習モデル5の機械学習の処理手順から省略されてよい。特徴量3の第1部分31及び第2部分32は、例えば、予めその範囲が規定されていることにより、マスク4を用いずに抽出されてよい。すなわち、特徴量3の第1部分31及び第2部分32の範囲は予め固定的に決定されていてもよい。第1部分31及び第2部分32の範囲は、オペレータの指定、プログラム内の設定値等により適宜規定されてよい。或いは、マスク4は、マスク生成器56を用いずに与えられてよい。この場合、マスク4は、予め定められた固定値により構成されてよい。若しくは、マスク4の各要素の値は、例えば、訓練処理が進むにつれて第1部分31の範囲を狭めていく等のように、訓練処理の進捗に応じてカリキュラム的に調整されてよい。
【0182】
また、上記実施形態において、復号器57が、学習モデル5から省略されてもよい。この場合、ステップS124の訓練処理が、学習モデル5の機械学習の処理手順から省略されてよい。
【0183】
<4.7>
上記実施形態に係る推定システム100及び変形例は、所定種類のデータに対して推定タスクを遂行するあらゆる場面に適用されてよい。
【0184】
一例として、上記実施形態に係る推定システム100及び変形例は、センサにより対象(人物、物体等)を観測する場面に適用されてよい。この場合、取り扱うデータ(訓練データ及び対象データ)は、対象を観測するセンサにより生成されるセンシングデータであってよい。この場合、第1推定タスク及び第2推定タスクは、対象の属性、観測の環境等に関して互いに異なる1又は複数の項目を推定する(予測を含む)ことであってよい。例えば、第1推定タスクは、対象の属性を推定することであるのに対して、第2推定タスクは、観測の環境を推定することであってよい。対象の属性は、例えば、対象の状態、状況、評価、種別、識別子等を含んでよい。観測の環境は、例えば、観測場所、センサの観測条件(例えば、センサの設定、設置位置等)、観測範囲の観測条件(例えば、照明条件、外乱光条件等)等を含んでよい。なお、例えば、対象の種別、識別子等のセンサの観測条件に影響する属性は、観測の環境に含まれると解釈されてもよい。また、例えば、第1推定タスクは、対象の属性を推定することであるのに対して、第2推定タスクは、入力データ(訓練データ、対象データ)の個体性を推定することであってよい。
【0185】
また、高次推定タスクが第1推定タスク及び第2推定タスクに対して設定されてよい。この場合、第1推定タスク及び第2推定タスクの少なくとも一方は、対象の属性に関する1又は複数の項目を推定(予測を含む)ことであってよい。これに対して、高次推定タスクは、第1推定タスク及び第2推定タスクよりも複雑な対象の属性を推定すること、対象の属性に応じて制御対象装置(例えば、自動運転車両、ロボット装置等)の動作戦略を推定すること、等であってよい。複雑な対象の推定することは、例えば、第1推定タスク及び第2推定タスクにより推定される項目に基づいて、それらの項目よりも高次の1又は複数の項目を推定することであってよい。第1推定タスク及び第2推定タスクが共に対象の属性に関する1又は複数の項目を推定することである場合、第1推定タスク及び第2推定タスクは、対象の属性に関して互いに異なる1又は複数の項目を推定するように設定される。或いは、第1推定タスク及び第2推定タスクの少なくとも一方は、センサの現在の観測値から未来又は過去の観測値を推定することであってよい。第1推定タスク及び第2推定タスクが共にセンサの未来又は過去の観測値を推定することである場合、第1推定タスク及び第2推定タスクは、互いに異なる時間の観測値を推定するように設定されてよい。この場合、高次推定タスクは、未来及び過去の少なくとも一方の観測値に基づいて、対象の属性を推定することであってよい。n個の推定タスクを設定する場合も同様である。
【0186】
その他の例として、取り扱うデータは、対象の属性に関する属性データであってよい。属性データは、例えば、画像データ、音データ、数値データ、テキストデータ等により構成されてよい。属性データは、センサにより得られたセンシングデータを解析することで得られてもよい。この場合、第1推定タスクは、対象を評価することであってよい。対象を評価することは、例えば、対象の評価点を判定すること、対象の状態を推定すること等であってよい。第2推定タスクは、対象の評価にバイアスをかけないようにする(すなわち、対象を評価する指標から除外する)対象の属性を推定することであってよい。
【0187】
また、第1推定タスク及び第2推定タスクの少なくとも一方は、1又は複数の項目で対象を評価することであってよい。第1推定タスク及び第2推定タスクが共に1又は複数の項目で対象を評価することである場合、第1推定タスク及び第2推定タスクは、互いに異なる1又は複数の項目で対象を評価するように設定されてよい。この場合、高次推定タスクは、第1推定タスク及び第2推定タスクの項目よりも高次の1又は複数の項目で対象を評価することであってよい。或いは、第1推定タスク及び第2推定タスクの少なくとも一方は、現在の属性値から未来又は過去の属性値を推定することであってよい。第1推定タスク及び第2推定タスクが共に未来又は過去の属性値を推定することである場合、第1推定タスク及び第2推定タスクは、互いに異なる時間の属性値を推定するように設定されてよい。この場合、高次推定タスクは、未来及び過去の少なくとも一方の属性値に基づいて、対象を評価することであってよい。n個の推定タスクを設定する場合も同様である。
【0188】
具体例として、上記実施形態に係る推定システム100及び変形例は、例えば、自動運転の戦略を決定する場面、ロボットの動作を決定する場面、製品の外観検査を実施する場面、対象人物を評価する場面、対象人物の状態を診断する場面、植物の栽培状況を監視する場面等に適用されてよい。以下、適用場面を限定した具体例を例示する。
【0189】
(A)自動運転の戦略を決定する場面
図13は、第1具体例に係る制御システム100Aの適用場面の一例を模式的に例示する。第1具体例は、車載センサSAにより得られるセンシングデータを利用して、自動運転の戦略を決定する場面に上記実施形態を適用した例である。第1具体例に係る制御システム100Aは、モデル生成装置1及び制御装置2Aを備える。
【0190】
上記<4.1>と同様に、第1具体例の学習モデルは、高次推定器58を更に備える。第1具体例において取り扱うデータ(訓練データ121及び対象データ221)は、車載センサSAにより得られるセンシングデータである。車載センサSAの種類は適宜選択されてよい。車載センサSAは、例えば、画像センサ、Lidarセンサ、ミリ波レーダ、超音波センサ、加速度センサ等であってよい。
【0191】
第1具体例において、第1推定タスク及び第2推定タスクの少なくとも一方は、車両の状況に関する1又は複数の項目を推定(予測を含む)することであってよい。車両の状況に関する推定項目は、車両の外部及び内部の少なくとも一方に関するものであってよい。車両外部の状況は、例えば、車両周囲に存在する物体の属性、混雑度、車間距離、事故のリスク、天候、時間、道路の存在する場所の属性等により表現されてよい。車両周囲に存在する物体は、例えば、道路、信号機、障害物(人、物)等であってよい。道路の属性は、例えば、走行車線の種別、道路の種別(例えば、交差点、高速道路)、路面状態等を含んでよい。信号機の属性は、例えば、信号機の点灯状態等を含んでよい。障害物の属性は、例えば、障害物の有無、障害物の種別、障害物の大きさ、障害物の速度、障害物に関するイベント等を含んでよい。障害物に関するイベントは、例えば、人又は車両の飛び出し、急発進、急停車、車線変更等を含んでよい。事故のリスクは、例えば、事故の種別及びその事故の発生確率により表現されてよい。時間は、一定の時間帯により表現されてよい。時間帯の表現には、朝、昼、夜等のような時期により時間帯の長さが変動し得る表現方法が用いられてもよいし、或いは、1時から2時等のような固定的な表現方法が用いられてもよい。場所の属性は、例えば、都会、田舎等のその場所の人口密集度の種別を含んでよい。車両内部の状況は、例えば、車両の走行状態、車両に乗車する乗員の属性等により表現されてよい。走行状態は、例えば、速度、加速度、操舵角等の走行動作の変容により表現されてよい。乗員の属性は、例えば、乗員の状態、人数、位置、数、識別情報等を含んでよい。第1推定タスク及び第2推定タスクが共に車両の状況に関する1又は複数の項目を推定することである場合、第1推定タスク及び第2推定タスクは、車両の状況に関して互いに異なる1又は複数の項目を推定するように設定されてよい。或いは、第1推定タスク及び第2推定タスクの少なくとも一方は、車載センサSAの現在の観測値から未来又は過去の観測値を推定することであってよい。第1推定タスク及び第2推定タスクが共に未来又は過去の観測値を推定することである場合、第1推定タスク及び第2推定タスクは、互いに異なる時間の観測値を推定するように設定されてよい。一方、高次推定タスクは、車両の状況に応じて当該車両に対する動作指令を推定すること、すなわち、自動運転の戦略を決定することであってよい。動作指令は、例えば、アクセル量、ブレーキ量、ハンドル操舵角、ライトの点灯、クラクションの使用等により規定されてよい。各正解データ122~124は、各推定タスクの正解を示すように適宜構成されてよい。
【0192】
これらの他、第1具体例の構成は、上記実施形態及び変形例と同様であってよい。第1具体例において、モデル生成装置1は、上記実施形態と同様の処理手順により、自動運転の戦略の決定に使用可能な訓練済みの機械学習モデル(符号器50及び高次推定器58)を生成することができる。この機械学習モデルには、上記マスク生成器56が含まれてもよい。以下の具体例についても同様である。生成された訓練済みの機械学習モデルを示す学習結果データは、任意のタイミングで制御装置2Aに提供されてよい。
【0193】
制御装置2Aは、訓練済みの符号器50及び高次推定器58を使用して、車両の動作を制御するように構成されたコンピュータである。制御装置2Aのハードウェア構成及びソフトウェア構成は、上記推定装置2と同様であってよい。車載センサSAは、外部インタフェース又は通信インタフェースを介して制御装置2Aに接続されてよい。制御装置2Aは、提供されるサービス専用に設計された情報処理装置の他、汎用のコンピュータ、車載装置等であってもよい。
【0194】
制御装置2Aは、上記推定装置2と同様の処理手順により、自動運転の戦略を決定することができる。すなわち、ステップS201では、制御装置2Aの制御部は、車載センサSAから対象データ221を取得する。ステップS202では、制御部は、訓練済みの符号器50及び高次推定器58を使用して、対象データ221に基づいて自動運転の戦略を決定する。ステップS203では、制御部は、決定された戦略の動作指令に基づいて、車両の動作を制御する。
【0195】
(特徴)
第1具体例によれば、モデル生成装置1の機械学習により、推定結果に誤りが生じた場合に、その原因を解明しやすい訓練済みの符号器50及び高次推定器58を構築することができる。すなわち、制御装置2Aにおいて、自動運転の戦略の決定に不具合が生じた場合に、特徴量3の各部分(31、32)を参照する。参照の結果、第1部分31及び第2部分32の少なくともいずれかが適切な値ではない、すなわち、車両の状況に関する推定に誤りが生じていることが判明した場合、そのことが、自動運転の戦略の決定に不具合が生じた原因であると解明することができる。
【0196】
なお、第1具体例において、高次推定タスクは、第1推定タスク及び第2推定タスクと比べて車両のより複雑な状況を推定することに置き換えられてよい。これに応じて、制御装置2Aは、監視装置と読み替えられてよい。また、車両は、例えば、ドローン等の、自律的に飛行可能な飛行体に置き換えられてもよい。
【0197】
(B)ロボットの動作を決定する場面
図14は、第2具体例に係る制御システム100Bの適用場面の一例を模式的に例示する。第2具体例は、センサSBにより得られるセンシングデータを利用して、ロボット装置RBの動作を決定する場面に上記実施形態を適用した例である。第2具体例に係る制御システム100Bは、モデル生成装置1及び制御装置2Bを備える。
【0198】
上記<4.1>と同様に、第2具体例の学習モデルは、高次推定器58を更に備える。第2具体例において取り扱うデータ(訓練データ121及び対象データ221)は、センサSBにより得られるセンシングデータである。センサSBの種類は適宜選択されてよい。センサSBは、例えば、画像センサ、近赤外線画像センサ、マイクロフォン、加速度センサ、触覚センサ、力覚センサ、近接センサ、トルクセンサ、圧力センサ、距離センサ、温度センサ、照度センサ等であってよい。センサSBは、ロボット装置RBの状況を観測可能に適宜配置されてよい。ロボット装置RBの種類は、実施の形態に応じて適宜選択されてよい。ロボット装置RBは、例えば、垂直多関節ロボット、スカラロボット、パラレルリンクロボット、直交ロボット、協調ロボット等の産業用ロボットであってよい。或いは、ロボット装置RBは、人とコミュニケーションを行うコミュニケーションロボット等の自律型ロボットであってよい。
【0199】
第2具体例において、第1推定タスク及び第2推定タスクの少なくとも一方は、ロボット装置RBの状況に関する1又は複数の項目を推定(予測を含む)することであってよい。ロボット装置RBの状況に関する推定項目は、ロボット装置RBの外部及び内部の少なくとも一方に関するものであってよい。ロボット装置RB外部の状況は、例えば、ワークの属性、障害物の属性、作業者の属性等により表現されてよい。ワークは、例えば、加工、運搬等のロボット装置RBの作業対象となり得る物体である。ワーク及び障害物の属性は、例えば、種類、位置、傾き、形状、大きさ、重さ、質感、イベント等を含んでよい。障害物は、例えば、ロボット装置RB以外の他のロボット装置であってもよい。この場合、ロボット装置RB及び他のロボット装置は、互いに通信可能に構成されてよく、障害物の属性は、例えば、他のロボット装置の内部変数、他のロボット装置の動作(例えば、他のロボット装置からのメッセージ)等を含んでもよい。推定タスクの一例として、ロボット装置RBの動作に対する他のロボット装置の反応(例えば、メッセージ出力)が予測されてもよい。メッセージは、通信、視覚提示、音声提示、振動による提示等の方法により他のロボット装置からロボット装置RBに伝達されてよい。作業者の属性は、例えば、位置、身長、姿勢、作業内容、眠気度、疲労度、余裕度、熟練度、視線等を含んでよい。ロボット装置RB内部の状況は、例えば、駆動部(エンドエフェクタ、関節等)の状態、実行する作業の種別等により表現されてよい。第1推定タスク及び第2推定タスクが共にロボット装置RBの状況に関する1又は複数の項目を推定することである場合、第1推定タスク及び第2推定タスクは、ロボット装置RBの状況に関して互いに異なる1又は複数の項目を推定するように設定されてよい。或いは、第1推定タスク及び第2推定タスクの少なくとも一方は、センサSBの現在の観測値から未来又は過去の観測値を推定することであってよい。第1推定タスク及び第2推定タスクが共にセンサSBの未来又は過去の観測値を推定することである場合、第1推定タスク及び第2推定タスクは、互いに異なる時間の観測値を推定するように設定されてよい。一方、高次推定タスクは、ロボット装置RBの状況に応じて当該ロボット装置RBの動作指令を推定すること、すなわち、ロボット装置RBの動作を決定することであってよい。動作指令は、例えば、駆動部の駆動量、信号又は情報の出力等により規定されてよい。信号又は情報の出力は、例えば、データをサーバに送信すること、音声を出力すること、ディスプレイに情報を表示すること、表示灯を点灯すること、プロジェクタにより情報を投影すること、情報内容に応じて振動子を振動すること等を含んでよい。
【0200】
これらの他、第2具体例の構成は、上記実施形態及び変形例と同様であってよい。第2具体例において、モデル生成装置1は、上記実施形態と同様の処理手順により、ロボット装置RBの動作の決定に使用可能な訓練済みの機械学習モデル(符号器50及び高次推定器58)を生成することができる。生成された訓練済みの機械学習モデルを示す学習結果データは、任意のタイミングで制御装置2Bに提供されてよい。
【0201】
制御装置2Bは、訓練済みの符号器50及び高次推定器58を使用して、ロボット装置RBの動作を制御するように構成されたコンピュータである。制御装置2Bのハードウェア構成及びソフトウェア構成は、上記推定装置2と同様であってよい。センサSB及びロボット装置RBは、外部インタフェース又は通信インタフェースを介して制御装置2Bに接続されてよい。また、ロボット装置RBは、専用のコントローラを備えてもよい。この場合、制御装置2Bは、専用のコントローラを介してロボット装置RBに接続されてよい。制御装置2Bは、提供されるサービス専用に設計された情報処理装置の他、汎用のコンピュータ、スマートフォンを含む携帯電話、PLC(programmable logic controller)等であってもよい。
【0202】
制御装置2Bは、上記推定装置2と同様の処理手順により、ロボット装置RBの動作を決定することができる。すなわち、ステップS201では、制御装置2Bの制御部は、センサSBから対象データ221を取得する。ステップS202では、制御部は、訓練済みの符号器50及び高次推定器58を使用して、対象データ221に基づいてロボット装置RBに対する動作指令を決定する。ステップS203では、制御部は、決定された動作指令に基づいて、ロボット装置RBの動作を制御する。
【0203】
(特徴)
第2具体例によれば、モデル生成装置1の機械学習により、推定結果に誤りが生じた場合に、その原因を解明しやすい訓練済みの符号器50及び高次推定器58を構築することができる。すなわち、制御装置2Bにおいて、ロボット装置RBの動作の決定に不具合が生じた場合に、特徴量3の各部分(31、32)を参照する。参照の結果、第1部分31及び第2部分32の少なくともいずれかが適切な値ではない、すなわち、ロボット装置RBの状況に関する推定に誤りが生じていることが判明した場合、そのことが、ロボット装置RBの動作の決定に不具合が生じた原因であると解明することができる。
【0204】
(C)製品の外観検査を実施する場面
図15は、第3具体例に係る検査システム100Cの適用場面の一例を模式的に例示する。第3具体例は、カメラSCにより得られる画像データを利用して、製品RCの外観検査を実施する場面に上記実施形態を適用した例である。第3具体例に係る検査システム100Cは、モデル生成装置1及び検査装置2Cを備える。
【0205】
第3具体例において取り扱うデータ(訓練データ121及び対象データ221)は、カメラSCにより得られる画像データである。カメラSCの種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。カメラSCは、例えば、一般的なRGBカメラ、深度カメラ、赤外線カメラ等であってよい。カメラSCは、製品RCを撮影可能な場所に適宜配置されてよい。
【0206】
製品RCは、例えば、電子機器、電子部品、自動車部品、薬品、食品等の製造ラインで搬送される製品であってよい。電子部品は、例えば、基盤、チップコンデンサ、液晶、リレーの巻線等であってよい。自動車部品は、例えば、コンロッド、シャフト、エンジンブロック、パワーウィンドウスイッチ、パネル等であってよい。薬品は、例えば、包装済みの錠剤、未包装の錠剤等であってよい。製品RCは、製造過程完了後に生成される最終品であってもよいし、製造過程の途中で生成される中間品であってもよいし、製造過程を経過する前に用意される初期品であってもよい。
【0207】
第3具体例において、第1推定タスクは、製品RCの欠陥に関する推定を行うことである。欠陥は、例えば、傷、汚れ、クラック、打痕、バリ、色ムラ、異物混入等であってよい。欠陥に関する推定は、例えば、製品RCに欠陥が含まれるか否かを判定すること、製品RCに欠陥が含まれる確率を判定すること、製品RCに含まれる欠陥の種類を識別すること、製品RCに含まれる欠陥の範囲を特定すること又はこれらの組み合わせにより表現されてよい。一方、第2推定タスクは、第1推定タスクと異なるように適宜設定されてよい。第2推定タスクは、例えば、製品RCの種別、製造工場の識別子、製造ラインの種別、撮影条件、照明条件、外乱光条件等の外観検査の環境を推定することであってよい。撮影条件は、カメラSCの設定、撮影角度、撮影の相対配置等により規定されてよい。カメラSCの設定は、例えば、絞り値、シャッター速度、合焦距離、ズーム倍率等により規定されてよい。撮影の相対配置は、例えば、撮影の際におけるカメラ視野内の製品RCの位置/姿勢、カメラSC及び製品RCの間の距離等により規定されてよい。照明条件は、製品RCに対する照明光の方向、照明光のスペクトル、偏光等により規定されてよい。外乱光条件は、建物内の天井照明の影響、窓からの自然光の影響等により規定されてよい。或いは、第2推定タスクは、上記実施形態と同様に、入力データの個体性を推定することであってよい。個体性は、例えば、製品RCのロット番号等により識別されてよい。
【0208】
これらの他、第3具体例の構成は、上記実施形態及び変形例と同様であってよい。第3具体例において、モデル生成装置1は、上記実施形態と同様の処理手順により、製品RCの外観検査に使用可能な訓練済みの機械学習モデル(符号器50及び第1推定器51)を生成することができる。生成された訓練済みの機械学習モデルを示す学習結果データは、任意のタイミングで検査装置2Cに提供されてよい。
【0209】
検査装置2Cは、訓練済みの符号器50及び第1推定器51を使用して、製品RCの外観検査を実施するように構成されたコンピュータである。検査装置2Cのハードウェア構成及びソフトウェア構成は、上記推定装置2と同様であってよい。カメラSCは、外部インタフェース又は通信インタフェースを介して検査装置2Cに接続されてよい。検査装置2Cは、提供されるサービス専用に設計された情報処理装置の他、汎用のコンピュータ、PLC等であってもよい。
【0210】
検査装置2Cは、上記推定装置2と同様の処理手順により、製品RCの外観検査を実行することができる。すなわち、ステップS201では、検査装置2Cの制御部は、カメラSCから対象データ221を取得する。ステップS202では、制御部は、訓練済みの符号器50及び第1推定器51を使用して、対象データ221に写る製品RCの欠陥に関する推定を実行する。
【0211】
ステップS203では、制御部は、製品RCの欠陥推定の結果に関する情報を出力する。例えば、制御部は、製品RCの欠陥推定の結果をそのまま出力装置に出力してもよい。また、例えば、製品RCに欠陥が含まれると判定した場合、制御部は、そのことを知らせるための警告を出力装置に出力してもよい。また、例えば、製品RCを搬送するコンベア装置に検査装置2Cが接続される場合、制御部は、欠陥推定の結果に基づいて、欠陥のある製品RCと欠陥のない製品RCとを別のラインで搬送されるようにコンベア装置を制御してもよい。
【0212】
(特徴)
第3具体例によれば、モデル生成装置1の機械学習により、演算内容の説明性が比較的に高い訓練済みの機械学習モデルを生成することができる。検査装置2Cでは、製品RCの欠陥に関する推定タスクの遂行(すなわち、製品RCの外観検査)に、第2推定タスクに関連する情報による影響を及び難くすることができる。未知の環境(例えば、訓練データ121を得た工場とは異なる工場)で外観検査を行う場合に、その未知の環境と訓練データを得た学習環境との違いに起因して、訓練済みの機械学習モデルによる推定精度が悪化する可能性がある。この問題に対して、第3具体例では、外観検査の環境を推定することを第2推定タスクに設定することで、当該環境に関する情報による影響を製品RCの外観検査に及び難くすることができる。これにより、製品RCの外観検査の精度の向上を図ることができる。
【0213】
なお、既知の環境で外観検査を行う場合には、環境に関する情報を利用することで、外観検査の精度の向上を見込むことができる。そこで、第1具体例及び第2具体例と同様に、第3具体的においても、学習モデルは、高次推定器58を更に備えてもよい。この場合、高次推定タスクが、製品RCの欠陥に関する推定を行うことであってよい。一方、第1推定タスク及び第2推定タスクは、上記外観検査の環境に関して互いに異なる1又は複数の項目を推定することであってよい。これにより、既知の環境における外観検査の精度の向上を期待することができる。
【0214】
(D)対象人物を評価する場面
図16は、第4具体例に係る評価システム100Dの適用場面の一例を模式的に例示する。第4具体例は、対象人物に関するデータ(以下、「人物データ」と記載する)を利用して、対象人物の評価を行う場面に上記実施形態を適用した例である。第4具体例に係る評価システム100Dは、モデル生成装置1及び評価装置2Dを備える。
【0215】
第4具体例において取り扱うデータ(訓練データ121及び対象データ221)は、評価に利用可能な人物データである。人物データは、例えば、対象人物の経歴、身体測定の結果、健康診断データ、テスト/アンケートの回答、資格(例えば、各種免許)の有無等に関する情報を含んでよい。これらの情報は、画像データにより得られてもよい。また、人物データは、対象人物の写る画像データ、対象人物の音声が録音された音データを含んでよい。人物データは、入力装置、スキャナ等を利用して、適宜取得されてよい。
【0216】
第4具体例において、第1推定タスクは、対象人物の評価点を判定することであってよい。対象人物の評価点を判定することは、例えば、対象人物の採用の可否を判定すること、対象の業務に対する適正を判定すること等であってよい。一方、第2推定タスクは、例えば、対象人物の性別、人種、出身地、国籍、親族等の職業、思想、信条、既往歴、債務の状況、障害の有無、年齢、容姿等の評価にバイアスがかかるのが好ましくない属性を推定することであってよい。
【0217】
これらの他、第4具体例の構成は、上記実施形態及び変形例と同様であってよい。第4具体例において、モデル生成装置1は、上記実施形態と同様の処理手順により、対象人物の評価に使用可能な訓練済みの機械学習モデル(符号器50及び第1推定器51)を生成することができる。生成された訓練済みの機械学習モデルを示す学習結果データは、任意のタイミングで評価装置2Dに提供されてよい。
【0218】
評価装置2Dは、訓練済みの符号器50及び第1推定器51を使用して、対象人物の評価を行うように構成されたコンピュータである。評価装置2Dのハードウェア構成及びソフトウェア構成は、上記推定装置2と同様であってよい。評価装置2Dは、提供されるサービス専用に設計された情報処理装置の他、汎用のコンピュータ(例えば、タブレット端末、デスクトップPC等)、スマートフォンを含む携帯電話等であってよい。
【0219】
評価装置2Dは、上記推定装置2と同様の処理手順により、対象人物の評価を行うことができる。すなわち、ステップS201では、評価装置2Dの制御部は、対象人物の人物データにより構成される対象データ221を取得する。ステップS202では、制御部は、訓練済みの符号器50及び第1推定器51を使用して、対象データ221に基づいて対象人物の評価を行う。ステップS203では、制御部は、対象人物の評価結果に関する情報を出力する。
【0220】
(特徴)
第4具体例によれば、モデル生成装置1の機械学習により、演算内容の説明性が比較的に高い訓練済みの機械学習モデルを生成することができる。評価装置2Dでは、対象人物の評価に関する推定タスクの遂行に、第2推定タスクに関連する情報による影響を及び難くすることができる。上記のとおり、評価にバイアスがかかるのが好ましくない属性を推定することを第2推定タスクに設定することで、対象人物を評価する際に、その属性によるバイアスがかかり難くすることができる。これにより、所望しない判定基準が形成され、予期せぬ評価が行われるのを抑制することができる。
【0221】
(E)対象人物の状態を診断する場面
図17は、第5具体例に係る診断システム100Eの適用場面の一例を模式的に例示する。第5具体例は、センサSEにより得られるセンシングデータを利用して、対象人物の状態を診断する場面に上記実施形態を適用した例である。第5具体例に係る診断システム100Eは、モデル生成装置1及び診断装置2Eを備える。
【0222】
上記<4.1>と同様に、第5具体例の学習モデルは、高次推定器58を更に備える。第5具体例において取り扱うデータ(訓練データ121及び対象データ221)は、センサSEにより生成されるセンシングデータである。センサSEは、対象人物の状態を観測可能であれば、その種類は、特に限定されなくてよい。センサSEは、例えば、カメラ、赤外線センサ、圧力センサ、圧力分布センサ、マイクロフォン、バイタルセンサ、医療検査装置等であってよい。バイタルセンサは、例えば、血圧計、脈拍計、心拍計、心電計、筋電計、体温計、皮膚電気反応計、マイクロ波センサ、脳波計、脳磁計、活動量計、血糖値測定器、眼電位センサ、眼球運動計測器等であってよい。医療検査装置は、例えば、CT装置、MRI装置等であってよい。
【0223】
第5具体例において、第1推定タスク及び第2推定タスクの少なくとも一方は、対象人物の属性に関する1又は複数の項目を推定(予測を含む)することであってよい。対象人物の属性に関する推定項目は、例えば、姿勢、表情、外部刺激に対する眼球運動の追随性及び瞳孔の収縮反応性、眼球運動及び頭部姿勢の連動性、音声に対する応答性、身長、体重、人種、性別、生活習慣等であってよい。第1推定タスク及び第2推定タスクが共に対象人物の属性に関する1又は複数の項目を推定することである場合、第1推定タスク及び第2推定タスクは、対象人物の属性に関して互いに異なる1又は複数の項目を推定ように設定されてよい。或いは、第1推定タスク及び第2推定タスクの少なくとも一方は、センサSEの現在の観測値からセンサSEの未来又は過去の観測値を推定することであってよい。第1推定タスク及び第2推定タスクが共にセンサSEの未来又は過去の観測値を推定することである場合、第1推定タスク及び第2推定タスクは、互いに異なる時間の観測値を推定するように設定されてよい。一方、高次推定タスクは、対象人物の健康状態を推定することであってよい。対象人物の健康状態を推定することは、例えば、健康であるか否かを判定すること、病気になる予兆があるか否かを判定すること、健康状態の種別を識別すること、対象の病気になる確率を判定すること又はこれらの組み合わせにより構成されてよい。また、対象人物は、車両の運転者であってよく、対象人物の状態を推定する場面は、車両を運転する運転者の状態を推定する場面であってもよい。この場合、対象人物の健康状態を推定することは、例えば、運転者の眠気度、疲労度、余裕度等の運転可能性を診断することであってよい。或いは、対象人物は、工場等で作業を行う作業者であってよく、対象人物の健康状態を推定する場面は、当該作業者の状態を推定する場面であってもよい。この場合、対象人物の健康状態を推定することは、例えば、作業者の眠気度、疲労度、余裕度等の作業に対するパフォーマンスを診断することであってよい。各正解データ122~124は、各推定タスクの正解を示すように適宜構成されてよい。
【0224】
これらの他、第5具体例の構成は、上記実施形態及び変形例と同様であってよい。第5具体例において、モデル生成装置1は、上記実施形態と同様の処理手順により、対象人物の状態の診断(すなわち、健康状態の推定)に使用可能な訓練済みの機械学習モデル(符号器50及び高次推定器58)を生成することができる。生成された訓練済みの機械学習モデルを示す学習結果データは、任意のタイミングで診断装置2Eに提供されてよい。
【0225】
診断装置2Eは、訓練済みの符号器50及び高次推定器58を使用して、対象人物の状態を診断するように構成されたコンピュータである。診断装置2Eのハードウェア構成及びソフトウェア構成は、上記推定装置2と同様であってよい。センサSEは、外部インタフェース又は通信インタフェースを介して診断装置2Eに接続されてよい。診断装置2Eは、提供されるサービス専用に設計された情報処理装置の他、汎用のコンピュータ、スマートフォンを含む携帯端末等であってもよい。
【0226】
診断装置2Eは、上記推定装置2と同様の処理手順により、対象人物の健康状態を推定することができる。すなわち、ステップS201では、診断装置2Eの制御部は、センサSEから対象データ221を取得する。ステップS202では、制御部は、訓練済みの符号器50及び高次推定器58を使用して、対象データ221に基づいて対象人物の健康状態を推定する。ステップS203では、制御部は、対象人物の健康状態を推定した結果を出力する。
【0227】
(特徴)
第5具体例によれば、モデル生成装置1の機械学習により、推定結果に誤りが生じた場合に、その原因を解明しやすい訓練済みの符号器50及び高次推定器58を構築することができる。すなわち、診断装置2Eにおいて、対象人物の健康状態の推定結果に誤りが生じた場合に、特徴量3の各部分(31、32)を参照することで、その誤りの生じた原因を検証することができる。
【0228】
なお、第5具体例において、診断システム100Eは、高次推定タスクを遂行するのではなく、第1推定タスクを遂行するように構成されてもよい。この場合、第1推定タスクは、対象人物の健康状態を推定することであってよい。一方、第2推定タスクは、センサSEの観測条件を推定することであってよい。観測条件は、例えば、センサSEの型番、センサSEの配置場所等により規定されてよい。これにより、第1推定タスクの遂行に、観測条件に関連する情報の影響を及び難くすることができる。その結果、第1推定タスクをロバストに実行することができる。或いは、第2推定タスクは、入力データ(訓練データ121、対象データ221)の個体性を推定することであってよい。
【0229】
(F)植物の栽培状況を監視する場面
図18は、第6具体例に係る監視システム100Fの適用場面の一例を模式的に例示する。第6具体例は、植物RFの栽培状況を監視する場面に上記実施形態を適用した例である。第6具体例に係る監視システム100Fは、モデル生成装置1及び監視装置2Fを備える。
【0230】
上記<4.1>と同様に、第6具体例の学習モデルは、高次推定器58を更に備える。第6具体例において取り扱うデータは、環境センサSFにより生成されるセンシングデータ、作業者の入力により得られた植物RFの観察データ、又はこれらの組み合わせにより構成されてよい。環境センサSFは、植物RFの栽培状況を観測可能であれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。環境センサSFは、例えば、気圧計、温度計、湿度計、音圧計、音センサ、紫外線センサ、照度計、雨量計、ガスセンサ、土壌センサ等であってよい。植物RFの種類は任意に選択されてよい。観察データは、例えば、作業記録データ、環境記録データ、又はこれらの組み合わせにより構成されてよい。作業記録データは、例えば、摘花、摘葉、摘芽等の作業の有無、実行日時、量等を示す情報により構成されてよい。また、環境記録データは、作業者が植物RF周囲の環境(例えば、天候、気温、湿度等)を観測した結果を示す情報により構成されてよい。
【0231】
第6具体例において、第1推定タスク及び第2推定タスクの少なくとも一方は、例えば、病気の有無、実/花の数、葉の茂り具合、栄養状態、植物RFに対する光の照射時間、植物RF周囲の温度、植物RFに与える水の量等の基本的な栽培状況に関する1又は複数の項目を推定することであってよい。第1推定タスク及び第2推定タスクが共に栽培状況に関する1又は複数の項目を推定することである場合、第1推定タスク及び第2推定タスクは、栽培状況に関して互いに異なる1又は複数の項目を推定ように設定されてよい。或いは、第1推定タスク及び第2推定タスクの少なくとも一方は、環境センサSFの現在の観測値から未来又は過去の観測値を推定することであってよい。第1推定タスク及び第2推定タスクが共に環境センサSFの未来又は過去の観測値を推定することである場合、第1推定タスク及び第2推定タスクは、互いに異なる時間の観測値を推定するように設定されてよい。これに対して、高次推定タスクは、例えば、植物RFの収穫量、収穫時期、市場価値(市場価格)、最適な(例えば、収穫量が最大となる)生育環境又は作業内容等の高次の栽培状況を推定することであってよい。高次推定タスクは、例えば、植物RFの基本的な栽培状況の推定結果に応じて、植物RFの生育環境を制御するように構成された栽培装置CFに対する制御指令を推定することであってもよい。栽培装置CFは、例えば、カーテン装置、照明装置、空調設備、散水装置等であってよい。カーテン装置は、建物の窓に取り付けられたカーテンを開閉するように構成される。照明装置は、例えば、LED(light emitting diode)照明、蛍光灯等である。空調設備は、例えば、エアコンディショナ等である。散水装置は、例えば、スプリンクラ等である。カーテン装置及び照明装置は、植物RFに光を照射する時間を制御するために利用される。空調設備は、植物RF周囲の温度を制御するために利用される。散水装置は、植物RFに与える水の量を制御するために利用される。各正解データ122~124は、各推定タスクの正解を示すように適宜構成されてよい。
【0232】
これらの他、第6具体例の構成は、上記実施形態及び変形例と同様であってよい。第6具体例において、モデル生成装置1は、上記実施形態と同様の処理手順により、植物RFの栽培状況の監視に使用可能な訓練済みの機械学習モデル(符号器50及び高次推定器58)を生成することができる。生成された訓練済みの機械学習モデルを示す学習結果データは、任意のタイミングで監視装置2Fに提供されてよい。
【0233】
監視装置2Fは、訓練済みの符号器50及び高次推定器58を使用して、植物RFの栽培状況を監視するように構成されたコンピュータである。監視装置2Fのハードウェア構成及びソフトウェア構成は、上記推定装置2と同様であってよい。環境センサSFは、外部インタフェース又は通信インタフェースを介して監視装置2Fに接続されてよい。監視装置2Fは、提供されるサービス専用に設計された情報処理装置の他、汎用のコンピュータ、汎用のサーバ装置等であってよい。
【0234】
監視装置2Fは、上記推定装置2と同様の処理手順により、植物RFの栽培状況を監視することができる。すなわち、ステップS201では、監視装置2Fの制御部は、環境センサSFにより生成されるセンシングデータ、作業者により生成された観察データ、又はこれらの組み合わせにより構成された対象データ221を取得する。ステップS202では、制御部は、訓練済みの符号器50及び高次推定器58を使用して、対象データ221に基づいて植物RFの栽培状況を推定する。ステップS203では、制御部は、植物RFの栽培状況を推定した結果を出力する。例えば、最適な生育環境又は作業内容を高次推定タスクとして推定した場合、制御部は、推定結果を出力することで、植物RFの管理者に栽培装置CFのどうさを制御するように促してもよい。また、例えば、植物RFの栽培状況に応じた栽培装置CFに対する制御指令を推定した場合、制御部は、推定結果により得られた制御指令を栽培装置CFに与えることで、栽培装置CFの動作を制御してもよい。
【0235】
(特徴)
第6具体例によれば、モデル生成装置1の機械学習により、推定結果に誤りが生じた場合に、その原因を解明しやすい訓練済みの符号器50及び高次推定器58を構築することができる。すなわち、監視装置2Fにおいて、植物RFの栽培状況の推定結果に誤りが生じた場合に、特徴量3の各部分(31、32)を参照することで、その誤りの生じた原因を検証することができる。
【0236】
なお、第6具体例において、監視システム100Fは、高次推定タスクを遂行するのではなく、第1推定タスクを遂行するように構成されてもよい。この場合、第1推定タスクは、例えば、植物RFの収穫量、収穫時期、市場価値(市場価格)等の栽培状況を推定することであってよい。或いは、第1推定タスクは、例えば、植物RFの栽培に最適な栽培装置CFに対する制御指令を推定することであってもよい。これに対して、第2推定タスクは、環境センサSFの観測条件を推定することであってよい。観測条件は、例えば、環境センサSFの型番、環境センサSFの種類、栽培場所(例えば、農園、ビニールハウス、ビニールハウス内の位置、緯度・経度等)等により規定されてよい。これにより、第1推定タスクの遂行に、観測条件に関連する情報の影響を及び難くすることができる。その結果、第1推定タスクをロバストに実行することができる。或いは、第2推定タスクは、入力データ(訓練データ121、対象データ221)の個体性を推定することであってよい。
【0237】
<4.8>
上記実施形態において、第1推定タスクは、入力データのドメインを推定することであってよく、第2推定タスクは、入力データの個体性を推定することであってよい。ドメインは、例えば、データの取得環境等に応じて識別されてよい。この場合、第1推定タスク及び第2推定タスクの機械学習は事前学習として行われてよい。上記モデル生成装置1は、ステップS102の機械学習を実行した後に、未知のドメインで得られた複数の学習データセットを使用して、第2推定器52の追加学習を実行し、第2推定器52を他の推定タスクに適用させてよい。追加学習に利用する学習データセットは適宜生成されてよい。追加学習を実行する直前の状態では、特徴量3の第2部分32にはドメインに関する情報が殆ど含まれておらず、かつ第2部分32から入力データの個体性を推定可能である。そのため、訓練された符号器50は、できるだけ細かい単位で与えられたデータを特徴量に量子化するが、その量子化の際にドメインの違いによるばらつきは排除されたものとなる。このため、未知のドメインの学習データセットにより追加学習を行う際、学習すべき差分は、ドメインによるばらつきの排除された特徴に対して未知のドメインから得られるデータの有する共通のバイアス項、及び細かい単位で量子化された特徴空間を、粒度を挙げる方向での再整理のみとなる。よって、未知のドメインにおける推定タスクを遂行可能な訓練済みの第2推定器52を早期に生成する(すなわち、追加学習の時間を短縮する)ことができる。
【符号の説明】
【0238】
1…モデル生成装置、
11…制御部、12…記憶部、
13…通信インタフェース、14…外部インタフェース、
15…入力装置、16…出力装置、17…ドライブ、
111…データ取得部、112…学習処理部、
113…保存処理部、
120…学習データセット、
121…訓練データ、
122…第1正解データ、123…第2正解データ、
129…学習結果データ、
81…モデル生成プログラム、91…記憶媒体、
2…推定装置、
21…制御部、22…記憶部、
23…通信インタフェース、24…外部インタフェース、
25…入力装置、26…出力装置、27…ドライブ、
211…データ取得部、212……推定部、
213…出力部、
221…対象データ、
5…学習モデル、
50…符号器、
51…第1推定器、52…第2推定器