以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
§1 適用例
まず、図1を用いて、本発明が適用される場面の一例について説明する。図1は、本発明を適用した場面の一例を模式的に例示する。
図1に示されるとおり、本実施形態に係るシステムは、学習装置1、推定装置2、及びデータ生成装置3を備えている。学習装置1及び推定装置2により、学習モデル5の機械学習を実施し、当該機械学習の成果を利用して、対象データに含まれる特徴を推定する推定システムが構成される。また、学習装置1及びデータ生成装置3により、学習モデル5の機械学習を実施し、当該機械学習の成果を利用して、対象データに関連する新たなデータを生成するデータ生成システムが構成される。
本実施形態に係る学習装置1は、学習モデル5の機械学習を実施するように構成されたコンピュータである。具体的に、本実施形態に係る学習装置1は、複数の学習データセット121を取得する。各学習データセット121は、訓練データ122、当該訓練データ122の取得に関する属性を示すメタデータ123、及び当該訓練データ122に含まれる特徴(すなわち、当該訓練データ122に対する推定タスクの正解)を示す正解データ124の組み合わせにより構成される。
訓練データ122の種類は、特に限定されなくてもよく、学習モデル5に習得させる推定タスクに応じて適宜選択されてよい。訓練データ122には、例えば、画像データ、音データ、数値データ、テキストデータ、その他センサにより得られる測定データ等であってよい。図1の例では、センサSにより得られるセンシングデータに含まれる特徴を推定する能力を学習モデル5に習得させる場面が想定されている。そのため、本実施形態では、訓練データ122は、センサS又はこれと同種のセンサ(以下、同種のセンサを含んでセンサSと称する)により得られるセンシングデータである。
センサSの種類は、特に限定されなくてもよく、学習モデル5に習得させる推定タスクに応じて適宜選択されてよい。センサSは、例えば、画像センサ(カメラ)、赤外線センサ、音センサ(マイクロフォン)、超音波センサ、光センサ、圧力センサ、気圧センサ、温度センサ等であってよい。また、センサSは、例えば、環境センサ、バイタルセンサ、車載センサ、ホームセキュリティセンサ等であってよい。環境センサは、例えば、気圧計、温度計、湿度計、音圧計、音センサ、紫外線センサ、照度計、雨量計、ガスセンサ等であってよい。バイタルセンサは、例えば、血圧計、脈拍計、心拍計、心電計、筋電計、体温計、皮膚電気反応計、マイクロ波センサ、脳波計、脳磁計、活動量計、血糖値測定器、眼電位センサ、眼球運動計測器等であってよい。車載センサは、例えば、画像センサ、レーザセンサ、マイクロ波センサ等であってよい。ホームセキュリティセンサは、例えば、画像センサ、赤外線センサ、活性度(音声)センサ、ガス(CO2等)センサ、電流センサ、スマートメータ(家電、照明等の電力使用量を計測するセンサ)等であってよい。
メタデータ123は、訓練データ122の取得に関する属性を示すように構成される。この訓練データ122の取得に関する属性は、訓練データ122を取得した何らかの条件を識別可能なあらゆる情報を含んでよい。例えば、当該訓練データ122の取得に関する属性は、訓練データ122を取得した時間に関する属性を含んでもよい。時間に関する属性は、例えば、時間帯の種別、曜日の種別、平日及び休日の別、月の種別、季節の種別等を含んでもよい。時間帯の種別は、朝、昼、夜等の区分により表現されてもよいし、7時から9時まで等のように所定の時間の区分により表現されてもよい。
また、本実施形態では、訓練データ122は、センサSにより得られるため、訓練データ122の取得に関する属性は、センサSに関連するあらゆる種類の情報を含んでよい。例えば、訓練データ122の取得に関する属性は、センサSの利用形態に関する属性、センサSの仕様に関する属性、センサSの観測環境に関する属性等を含んでもよい。センサSの利用形態に関する属性は、例えば、センサSの動作設定に関する属性、センサSの設置状況に関する属性等を含んでもよい。センサSの動作設定に関する属性は、例えば、計測範囲の設定値、計測範囲の分解能の設定値、サンプリング周波数の設定値等を含んでもよい。センサSの設置状況に関する属性は、例えば、センサSの設置角度、センサSの周囲の温度、センサSと観測対象との間の距離、センサSの設置間隔等を含んでもよい。センサSの仕様に関する属性は、例えば、センサSの性能に関する属性、センサSの機器情報に関する属性、センサSの初期設置条件に関する属性等を含んでもよい。センサSの性能に関する属性は、例えば、センサSの感度限界、ダイナミックレンジ、空間分解能の設定可能範囲、サンプリング周波数の設定可能範囲等を含んでもよい。センサSの機器情報に関する属性は、例えば、センサSの種別、センサSの名称、センサSの説明等を含んでもよい。センサSの初期設置条件に関する属性は、例えば、設置場所の固有名詞等の情報を含んでもよい。センサSの観測環境に関する属性は、例えば、場所、天候、気温、湿度、照度等を含んでもよい。
また、訓練データ122が何らかの対象物に対して得られる場合、訓練データ122の取得に関する属性は、当該対象物に関するあらゆる種類の情報を含んでもよい。本実施形態では、センサSによる観察対象が当該対象物であってよい。訓練データ122の取得に関する属性は、例えば、対象物の種別、対象物を識別するための識別情報等を含んでもよい。対象物が人物である場合、訓練データ122の取得に関する属性は、例えば、人物(被験者)の識別子、性別、年齢、体格、人種等の識別情報(個人情報)を含んでもよい。また、訓練データ122が人物の何らかの行動に対して得られる場合には、訓練データ122の取得に関する属性は、人物の行動に関するあらゆる種類の情報を含んでもよい。
正解データ124は、訓練データ122に含まれる特徴、すなわち、訓練データ122に対する推定タスクの正解を示すように構成される。訓練データ122に含まれる特徴は、分類、回帰等の推定(予測を含む)タスクの対象となり得るものであれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。特徴を推定することには、分類すること、回帰すること等が含まれてよい。特徴は、データから推定可能なあらゆる要素を含んでよい。特徴を推定することには、未来の何らかの要素を予測することが含まれてよい。この場合、特徴は、未来に現れる要素の予兆を含んでよい。正解データ124は、習得させる推定タスクに応じて適宜決定されてよい。正解データ124は、例えば、特徴のカテゴリを示す情報、特徴の表れる確率を示す情報、特徴の値を示す情報、特徴の写る範囲を示す情報等により構成されてよい。
一例として、道路の交通状況を予測する場面では、センサSには、道路を走行する車両を観察するセンサとして、カメラ、超音波センサ、赤外線センサ等が用いられてよい。これに応じて、訓練データ122は、画像データ、単位時間当たりの車両の通過台数の計測結果を示すデータ、平均速度の計測結果を示すデータ等であってよい。メタデータ123は、道路の属性、センサSの観察角度、センサSの設置間隔、センサSの種類等を示す情報により構成されてよい。道路の属性は、例えば、直線道路であるか否か、曲がり道であるか否か、有料道路の料金所があるか否か、合流点であるか否か、分岐点であるか否か等により示されてよい。正解データ124は、道路の交通状況に関する情報により構成されてよい。交通状況は、訓練データ122により現れる現在のものであってもよいし、未来のものであってもよい。道路の交通状況に関する情報は、例えば、渋滞発生の有無、渋滞発生の確率、発生した渋滞の継続時間、センサSの設置場所から所定の場所までの所要時間等により表現されてよい。渋滞発生の有無は、所定時間後に渋滞が発生するか否かにより表現されてもよい。
本実施形態に係る学習装置1は、取得された複数の学習データセット121を使用して、学習モデル5の機械学習を実施する。本実施形態では、学習モデル5は、第1符号器51、第2符号器52、第1メタ識別器53、第2メタ識別器54、及び推定器55を含んでいる。第1符号器51は、与えられた入力データを第1特徴量に変換するように構成される。第2符号器52は、与えられた入力データを第2特徴量に変換するように構成される。各特徴量のデータ形式は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。第1メタ識別器53は、第1符号器51の出力値(第1特徴量)が入力され、入力された第1特徴量から入力データの取得に関する属性を識別するように構成される。第2メタ識別器54は、第2符号器52の出力値(第2特徴量)が入力され、入力された第2特徴量から入力データの取得に関する属性を識別するように構成される。推定器55は、第1符号器51及び第2符号器52の出力値(第1特徴量及び第2特徴量)が入力され、入力された第1特徴量及び第2特徴量から入力データに含まれる特徴を推定するように構成される。
本実施形態では、機械学習を実施することは、第1~第4訓練ステップを含む。第1訓練ステップでは、学習装置1は、各学習データセット121について、訓練データ122を第2符号器52に与えることで第2メタ識別器54から得られる識別の結果がメタデータ123に適合するように、第2符号器52及び第2メタ識別器54を訓練する。第2訓練ステップでは、学習装置1は、各学習データセット121について、訓練データ122を第1符号器51及び第2符号器52に与えることで推定器55から得られる推定の結果が正解データ124に適合するように、第1符号器51、第2符号器52及び推定器55を訓練する。
第3訓練ステップでは、学習装置1は、各学習データセット121について、訓練データ122を第1符号器51に与えることで第1メタ識別器53から得られる識別の結果がメタデータ123に適合するように、第1メタ識別器53を訓練する。第4訓練ステップでは、学習装置1は、各学習データセット121について、訓練データ122を第1符号器51に与えることで第1メタ識別器53から得られる識別の結果がメタデータ123に適合しないように、第1符号器51を訓練する。学習装置1は、第3訓練ステップ及び第4訓練ステップを交互に繰り返し実行する。なお、以下、説明の便宜上、各メタ識別器(53、54)により得られる識別の結果を「メタ識別」とも記載する。
本実施形態に係る推定装置2は、学習済みの学習モデル5を利用して、対象データに対して推定タスクを遂行するように構成されたコンピュータである。本実施形態では、推定装置2には、センサSが接続されている。推定装置2は、センサSから対象データを取得する。推定装置2は、学習済みの学習モデル5を利用して、取得された対象データに含まれる特徴を推定する。そして、推定装置2は、推定の結果に関する情報を出力する。
本実施形態に係るデータ生成装置3は、学習済みの学習モデル5を利用して、対象データに関連する新たなデータを生成するように構成されたコンピュータである。本実施形態では、データ生成装置3には、センサSが接続されている。データ生成装置3は、センサSから対象データを取得する。データ生成装置3は、学習済みの学習モデル5を利用して、取得された対象データに関連する新たなデータを生成する。新たなデータは、取得された対象データから抽出された第1特徴量及び第2特徴量の少なくともいずれかであってよい。また、新たなデータは、後述する復号器により生成された復号化データであってもよい。データ生成装置3は、生成された新たなデータを所定の記憶領域に保存する。
以上のとおり、本実施形態では、学習装置1の第1訓練ステップにより、訓練データ122の取得に関する属性を第2メタ識別器54が適切に識別可能となるように、学習済みの第2符号器52により得られる第2特徴量には、当該取得に関する属性に対応する成分が含まれるようになる。また、第2訓練ステップにより、学習済みの第1符号器51及び第2符号器52により得られる第1特徴量及び第2特徴量には、訓練データ122に含まれる特徴(すなわち、推定タスクの正解)に対応する成分が含まれるようになる。更に、本実施形態では、第3訓練ステップ及び第4訓練ステップにより、第1符号器51及び第1メタ識別器53の敵対的学習を実施する。これにより、第1メタ識別器53の識別性能が向上するのに対応して、この第1メタ識別器53による識別が失敗するように、学習済みの第1符号器51により得られる第1特徴量には、訓練データ122の取得に関する属性に対応する成分が含まれないようになる。
すなわち、本実施形態では、上記機械学習の結果、訓練データ122に含まれる特徴に関して、学習済みの第2符号器52の符号化により得られる第2特徴量には、メタデータ123に対応する成分が含まれやすくなる。これに対して、学習済みの第1符号器51により得られる第1特徴量には、訓練データ122に含まれる特徴に関する、メタデータ123以外の情報に対応する成分が含まれやすくなる。推定器55は、この両方の特徴量から訓練データ122に含まれる特徴を推定するように訓練される。一例として、上記道路の交通状況を予測する場面では、第1特徴量は、ドメインに共通の情報として、スポット的に発生する交通流の数及びその増減の変化傾向に対応する成分を含むようになる。一方、第2特徴量は、ドメインに特有の情報として、定常的に表れる地形起因の交通流の傾向、及び複数の地点で共起する交通流の傾向に対応する成分を含むようになる。推定器55は、これら両方の情報に基づいて、渋滞発生の確率、渋滞の有無等を推定するタスクを遂行することができる。したがって、本実施形態に係る推定装置2では、学習済みの第1符号器51、第2符号器52、及び推定器55を利用することで、対象データを取得するドメインに特有の情報、及び共通の情報の両方に基づいて、対象データに含まれる特徴を推定するタスクを実行することができる。そのため、対象データを取得するドメインに特有の情報が推定タスクに有益であるケースで、対象データに含まれる特徴を推定する精度を高めることができる。
また、対象データの取得に関する属性に特有の情報が推定タスクの精度に悪影響を及ぼす場合、推定装置2は、学習済みの第2符号器52により得られる第2特徴量は利用せずに、学習済みの第1符号器51により得られる第1特徴量に基づいて、対象データに含まれる特徴を推定することができる。これにより、推定タスクを実行する際に、対象データの取得に関する属性に対応する成分の影響を除外することができる。そのため、対象データの取得に関する属性の情報が推定タスクの精度に悪影響を及ぼすケースにおいても、対象データに含まれる特徴を推定する精度を高めることができる。
加えて、学習済みの第2符号器52に入力データを入力することで、当該第2符号器52から第2特徴量として得られる出力値は、当該入力データのドメイン(すなわち、入力データの取得に関する属性)を推定した結果に対応する。この推定の結果が正しければ、第2符号器52から得られる出力値を学習済みの第2メタ識別器54に入力することで、当該第2メタ識別器54から得られる出力値(すなわち、メタ識別の結果)は、入力データの取得に関する属性に適合する。そのため、本実施形態に係る推定装置2では、対象データを第2符号器52に入力し、第2メタ識別器54から得られるメタ識別の結果が対象データの取得に関する属性に適合しているか否かにより、当該対象データに対して学習済みの学習モデル5が推定タスクを適切に遂行可能か否か、を判定することができる。これにより、学習済みの学習モデル5が適切に推定タスクを遂行できない対象データが与えられているときに、この対象データに対して推定タスクを遂行するのを避けることができる。また、異なるドメインから得られた学習データセットにより学習済みの複数の学習モデル5が存在する場合には、対象データに対して適切な学習済みの学習モデル5を選択することができる。
更に、本実施形態では、第1符号器51及び第2符号器52の2つの符号器が用意される。第1符号器51が、データの取得に関する属性以外の情報に対応する成分を含む特徴量(第1特徴量)を抽出する役割を果たす。第2符号器52が、データの取得に関する属性に対応する特徴量(第2特徴量)を抽出する役割を果たす。異なるドメインから得られた対象データに第1符号器51及び第2符号器52を共通に利用することができる。そのため、本実施形態では、対象データを取得するドメイン毎に抽出器を用意しなくてもよい。
したがって、本実施形態によれば、対象データを取得するドメイン毎に学習済みの抽出器を用意する手間を省略することができる。また、対象データの取得に関する属性に特有の情報が推定タスクに有用なケース及び悪影響を及ぼすケースの両方で、比較的に高精度に推定タスクを実行可能な学習済みの学習モデル5を構築することができる。更には、学習済みの第2符号器52及び第2メタ識別器54を利用することで、学習済みの学習モデル5が対象データに対して適切に推定タスクを遂行可能か否か、を評価することができる。この評価の結果に基づいて、適切に推定タスクを遂行不能な対象データに対して学習済みの学習モデル5が利用されるのを防止したり、対象データに適切な学習済みの学習モデル5を選択したりすることができる。そのため、本実施形態によれば、導入コストが比較的に低廉で、かつ対象データの取得に関する属性の相違にロバストな学習済みの学習モデル5を構築することができる。
なお、図1の例では、学習装置1、推定装置2、及びデータ生成装置3は、ネットワークを介して互いに接続されている。ネットワークの種類は、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。ただし、各装置1~3の間でデータをやりとりする方法は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、学習装置1、推定装置2、及びデータ生成装置3では、記憶媒体を利用して、データがやりとりされてよい。
また、図1の例では、学習装置1、推定装置2、及びデータ生成装置3は、それぞれ別個のコンピュータである。しかしながら、本実施形態に係るシステムの構成は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、学習装置1、推定装置2、及びデータ生成装置3のうちの少なくともいずれかのペアは一体のコンピュータであってよい。また、例えば、学習装置1、推定装置2、及びデータ生成装置3のうちの少なくともいずれかは、複数台のコンピュータにより構成されてよい。
§2 構成例
[ハードウェア構成]
次に、図2を用いて、本実施形態に係る学習装置1のハードウェア構成の一例について説明する。図2は、本実施形態に係る学習装置1のハードウェア構成の一例を模式的に例示する。
図2に示されるとおり、本実施形態に係る学習装置1は、制御部11、記憶部12、通信インタフェース13、入力装置14、出力装置15、及びドライブ16が電気的に接続されたコンピュータである。なお、図2では、通信インタフェースを「通信I/F」と記載している。
制御部11は、ハードウェアプロセッサであるCPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部12は、メモリの一例であり、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部12は、学習プログラム81、複数の学習データセット121、学習結果データ128等の各種情報を記憶する。
学習プログラム81は、学習モデル5の機械学習に関する後述の情報処理(図8、図9)を学習装置1に実行させるためのプログラムである。学習プログラム81は、当該情報処理の一連の命令を含む。複数の学習データセット121は、当該学習モデル5の機械学習に利用される。学習結果データ128は、学習済みの学習モデル5に関する情報を示す。学習結果データ128は、学習プログラム81の実行結果として得られる。詳細は後述する。
通信インタフェース13は、例えば、有線LAN(Local Area Network)モジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。学習装置1は、この通信インタフェース13を利用することで、ネットワークを介したデータ通信を他の情報処理装置(例えば、推定装置2、データ生成装置3)と行うことができる。
入力装置14は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置15は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置14及び出力装置15を介して、学習装置1を操作することができる。入力装置14及び出力装置15は、タッチパネルディスプレイ等により一体的に構成されてもよい。
ドライブ16は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体91に記憶されたプログラムを読み込むためのドライブ装置である。ドライブ16の種類は、記憶媒体91の種類に応じて適宜選択されてよい。上記学習プログラム81及び複数の学習データセット121の少なくともいずれかは、この記憶媒体91に記憶されていてもよい。
記憶媒体91は、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。学習装置1は、この記憶媒体91から、上記学習プログラム81及び複数の学習データセット121の少なくともいずれかを取得してもよい。
ここで、図2では、記憶媒体91の一例として、CD、DVD等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体91の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
なお、学習装置1の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部11は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA(field-programmable gate array)、DSP(digital signal processor)等で構成されてよい。記憶部12は、制御部11に含まれるRAM及びROMにより構成されてもよい。通信インタフェース13、入力装置14、出力装置15及びドライブ16の少なくともいずれかは省略されてもよい。学習装置1は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、学習装置1は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC(Personal Computer)等であってもよい。
<推定装置>
次に、図3を用いて、本実施形態に係る推定装置2のハードウェア構成の一例について説明する。図3は、本実施形態に係る推定装置2のハードウェア構成の一例を模式的に例示する。
図3に示されるとおり、本実施形態に係る推定装置2は、制御部21、記憶部22、通信インタフェース23、入力装置24、出力装置25、ドライブ26及び外部インタフェース27が電気的に接続されたコンピュータである。なお、図3では、外部インタフェースを「外部I/F」と記載している。本実施形態に係る推定装置2の制御部21~ドライブ26はそれぞれ、上記学習装置1の制御部11~ドライブ16それぞれと同様に構成されてよい。
すなわち、制御部21は、ハードウェアプロセッサであるCPU、RAM、ROM等を含み、プログラム及びデータに基づいて各種情報処理を実行するように構成される。記憶部22は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部22は、推定プログラム82、学習結果データ128等の各種情報を記憶する。
推定プログラム82は、学習済みの学習モデル5を利用して、対象データに含まれる特徴を推定する後述の情報処理(図10)を推定装置2に実行させるためのプログラムである。推定プログラム82は、当該情報処理の一連の命令を含む。詳細は後述する。
通信インタフェース23は、例えば、有線LANモジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。推定装置2は、この通信インタフェース23を利用することで、ネットワークを介したデータ通信を他の情報処理装置(例えば、学習装置1)と行うことができる。
入力装置24は、例えば、マウス、キーボード等の入力を行うための装置である。出力装置25は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置24及び出力装置25を介して、推定装置2を操作することができる。入力装置24及び出力装置25は、タッチパネルディスプレイ等により一体的に構成されてもよい。
ドライブ26は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体92に記憶されたプログラムを読み込むためのドライブ装置である。上記推定プログラム82及び学習結果データ128のうちの少なくともいずれかは、記憶媒体92に記憶されていてもよい。また、推定装置2は、記憶媒体92から、上記推定プログラム82及び学習結果データ128のうちの少なくともいずれかを取得してもよい。記憶媒体92の種類は、ディスク型であってもよいし、ディスク型以外であってもよい。
外部インタフェース27は、例えば、USB(Universal Serial Bus)ポート、専用ポート等であり、外部装置と接続するためのインタフェースである。外部インタフェース27の種類及び数は、接続される外部装置の種類及び数に応じて適宜選択されてよい。本実施形態では、推定装置2は、外部インタフェース27を介して、センサSに接続される。
センサSは、推定タスクの対象となる対象データを取得するのに利用される。センサSの種類及び配置場所は、特に限定されなくてもよく、遂行する推定タスクの種類に応じて適宜決定されてよい。なお、センサSとの接続方法は、このような例に限定されなくてよい。例えば、センサSが通信インタフェースを備えている場合、推定装置2は、外部インタフェース27ではなく、通信インタフェース23を介して、センサSに接続されてよい。
なお、推定装置2の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部21は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA、DSP等で構成されてよい。記憶部22は、制御部21に含まれるRAM及びROMにより構成されてもよい。通信インタフェース23、入力装置24、出力装置25、ドライブ26及び外部インタフェース27の少なくともいずれかは省略されてもよい。推定装置2は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、推定装置2は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC等であってもよい。
<データ生成装置>
次に、図4を用いて、本実施形態に係るデータ生成装置3のハードウェア構成の一例について説明する。図4は、本実施形態に係るデータ生成装置3のハードウェア構成の一例を模式的に例示する。
図4に示されるとおり、本実施形態に係るデータ生成装置3は、制御部31、記憶部32、通信インタフェース33、入力装置34、出力装置35、ドライブ36、及び外部インタフェース37が電気的に接続されたコンピュータである。データ生成装置3の制御部31~外部インタフェース37はそれぞれ、上記推定装置2の制御部21~外部インタフェース27それぞれと同様に構成されてよい。
すなわち、制御部31は、ハードウェアプロセッサであるCPU、RAM、ROM等を含み、プログラム及びデータに基づいて各種情報処理を実行するように構成される。記憶部32は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。記憶部32は、生成プログラム83、学習結果データ128等の各種情報を記憶する。
生成プログラム83は、学習済みの学習モデル5を利用して、対象データに関連する新たなデータを生成する後述の情報処理(図11)をデータ生成装置3に実行させるためのプログラムである。生成プログラム83は、当該情報処理の一連の命令を含む。詳細は後述する。
通信インタフェース33は、例えば、有線LANモジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。データ生成装置3は、この通信インタフェース33を利用することで、ネットワークを介したデータ通信を他の情報処理装置(例えば、学習装置1)と行うことができる。
入力装置34は、例えば、マウス、キーボード等の入力を行うための装置である。出力装置35は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置34及び出力装置35を介して、データ生成装置3を操作することができる。入力装置34及び出力装置35は、タッチパネルディスプレイ等により一体的に構成されてもよい。
ドライブ36は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体93に記憶されたプログラムを読み込むためのドライブ装置である。上記生成プログラム83及び学習結果データ128のうちの少なくともいずれかは、記憶媒体93に記憶されていてもよい。また、データ生成装置3は、記憶媒体93から、上記生成プログラム83及び学習結果データ128のうちの少なくともいずれかを取得してもよい。記憶媒体93の種類は、ディスク型であってもよいし、ディスク型以外であってもよい。
外部インタフェース37は、例えば、USBポート、専用ポート等であり、外部装置と接続するためのインタフェースである。外部インタフェース37の種類及び数は、接続される外部装置の種類及び数に応じて適宜選択されてよい。本実施形態では、データ生成装置3は、外部インタフェース37を介して、センサSに接続される。センサSの種類及び配置場所は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。なお、センサSとの接続方法は、このような例に限定されなくてよい。例えば、センサSが通信インタフェースを備えている場合、データ生成装置3は、外部インタフェース37ではなく、通信インタフェース33を介して、センサSに接続されてよい。
なお、データ生成装置3の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部31は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA、DSP等で構成されてよい。記憶部32は、制御部31に含まれるRAM及びROMにより構成されてもよい。通信インタフェース33、入力装置34、出力装置35、ドライブ36及び外部インタフェース37の少なくともいずれかは省略されてもよい。データ生成装置3は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、データ生成装置3は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC等であってもよい。
[ソフトウェア構成]
<学習装置>
次に、図5A~図5Dを用いて、本実施形態に係る学習装置1のソフトウェア構成の一例について説明する。図5A~図5Dは、本実施形態に係る学習装置1のソフトウェア構成及び各モジュールによる情報処理の過程の一例を模式的に例示する。
学習装置1の制御部11は、記憶部12に記憶された学習プログラム81をRAMに展開する。そして、制御部11は、CPUにより、RAMに展開された学習プログラム81を解釈して、当該学習プログラム81に含まれる一連の命令群を実行することで、各構成要素を制御する。これにより、図5A~図5Dに示されるとおり、本実施形態に係る学習装置1は、データ取得部111、学習処理部112、及び保存処理部113をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、学習装置1の各ソフトウェアモジュールは、制御部11(CPU)により実現される。
データ取得部111は、複数の学習データセット121を取得する。本実施形態では、各学習データセット121は、訓練データ122、訓練データ122の取得に関する属性を示すメタデータ123、訓練データ122に含まれる特徴を示す正解データ124、及び訓練データ122に含まれる他の特徴を示す他の正解データ125の組み合わせにより構成される。複数の学習データセット121に含まれる少なくとも1つ以上の第1の学習データセット、及び少なくとも1つ以上の第2の学習データセットは、それぞれのメタデータ123により示される属性が相違するように異なるドメインから取得されてよい。
他の正解データ125により示される他の特徴は、正解データ124により示される特徴とは別であり、訓練データ122を取得するドメインに共通に現れる特徴であることが望ましい。ドメインに共通に現れる情報とは、例えば、メタデータ123により示される訓練データ122の取得に関する属性に依存しない情報である。一例として、外観検査に利用する学習済みのモデルを構築するために、製品の写る画像データが訓練データ122として与えられている場面を想定する。この場面において、製品に生じる欠陥の有無は、画像データの取得に関する属性に依存し難い情報である。そのため、他の正解データ125は、訓練データ122に含まれる他の特徴として、欠陥の有無を示してよい。この場合、正解データ124は、訓練データ122に含まれる特徴として、例えば、欠陥の種別等のこれら以外の情報を示してよい。ドメインに共通に現れる特徴を示す他の正解データ125が与えられる場合には、正解データ124は、ドメインに特有の情報により推定精度が向上し得る特徴を示すのが好ましい。
学習処理部112は、取得された複数の学習データセット121を使用して、学習モデル5の機械学習を実施する。上記のとおり、学習モデル5は、第1符号器51、第2符号器52、第1メタ識別器53、第2メタ識別器54、及び推定器55を含んでいる。本実施形態では、学習モデル5は、これらに加えて、復号器56及び他の推定器57を更に含んでいる。第1符号器51及び第2符号器52は入力側に並列に配置される。第1符号器51の出力は、第1メタ識別器53、推定器55、復号器56、及び他の推定器57の入力に接続している。第2符号器52の出力は、第2メタ識別器54、推定器55、及び復号器56の入力に接続している。これにより、第1符号器51の出力値(第1特徴量)は、第1メタ識別器53及び他の推定器57それぞれに入力される。第2符号器52の出力値(第2特徴量)は、第2メタ識別器54に入力される。第1符号器51及び第2符号器52の出力値(第1特徴量及び第2特徴量)は、推定器55及び復号器56それぞれに入力される。
第1符号器51は、与えられた入力データを第1特徴量に変換するように構成される。第2符号器52は、与えられた入力データを第2特徴量に変換するように構成される。第1メタ識別器53は、第1符号器51により得られた第1特徴量から入力データの取得に関する属性を識別するように構成される。第2メタ識別器54は、第2符号器52により得られた第2特徴量から入力データの取得に関する属性を識別するように構成される。推定器55は、第1符号器51及び第2符号器52により得られた第1特徴量及び第2特徴量から入力データに含まれる特徴を推定するように構成される。復号器56は、第1符号器51及び第2符号器52により得られた第1特徴量及び第2特徴量から入力データを復号化するように構成される。他の推定器57は、第1符号器51により得られた第1特徴量から入力データに含まれる特徴(正解データ124により示される特徴又は他の正解データ125により示される他の特徴)を推定するように構成される。
学習フェーズでは、各学習データセット121の訓練データ122が入力データである。一方、利用フェーズでは、対象データ(後述する対象データ(221、321))が入力データである。入力データは、画像データ及び音データにより構成される等のように、複数の異なる種類のデータにより構成されてよい。この場合、第1符号器51及び第2符号器52はそれぞれ、入力データの種類毎に用意されてよい。すなわち、第1符号器51及び第2符号器52はそれぞれ複数の部分符号器を備えてよい。各部分符号器は、対応する種類のデータの入力を受け付けて、入力された対応する種類のデータを特徴量に変換するように構成されてよい。この場合、入力データの種類毎に第1特徴量及び第2特徴量が算出される。算出された各第1特徴量は、第1メタ識別器53、推定器55、復号器56、及び他の推定器57に入力される。また、算出された各第2特徴量は、第2メタ識別器54、推定器55、及び復号器56に入力される。
図5B及び図5Cに示されるとおり、機械学習の処理は、上記第1~第4訓練ステップを含んでいる。図5Bに示されるとおり、第1訓練ステップでは、学習処理部112は、各学習データセット121について、訓練データ122を第2符号器52に与えることで第2メタ識別器54から得られる識別の結果がメタデータ123に適合するように、第2符号器52及び第2メタ識別器54を訓練する。第1訓練ステップにより、第2符号器52は、メタデータ123により示される訓練データ122の取得に関する属性に対応する成分を第2特徴量が含むように訓練され得る。第2訓練ステップでは、学習処理部112は、各学習データセット121について、訓練データ122を第1符号器51及び第2符号器52に与えることで推定器55から得られる推定の結果が正解データ124に適合するように、第1符号器51、第2符号器52及び推定器55を訓練する。
図5Cに示されるとおり、第3訓練ステップでは、学習処理部112は、各学習データセット121について、訓練データ122を第1符号器51に与えることで第1メタ識別器53から得られる識別の結果がメタデータ123に適合するように、第1メタ識別器53を訓練する。第4訓練ステップでは、学習処理部112は、各学習データセット121について、訓練データ122を第1符号器51に与えることで第1メタ識別器53から得られる識別の結果がメタデータ123に適合しないように、第1符号器51を訓練する。学習処理部112は、第3訓練ステップ及び第4訓練ステップを交互に繰り返し実行する。第4訓練ステップにより、第1符号器51は、各学習データセット121の訓練データ122を取得するドメインに共通に現れる情報に対応する成分を第1特徴量が含むように訓練され得る。
図5Bに示されるとおり、本実施形態では、機械学習の処理は、これら第1~第4訓練ステップに加えて、第5~第7訓練ステップを更に含んでいる。第5訓練ステップでは、学習処理部112は、各学習データセット121について、訓練データ122を第1符号器51に与えることで第1符号器51から第1特徴量として得られる出力値と訓練データ122を第2符号器52に与えることで第2符号器52から第2特徴量として得られる出力値との相互情報量が少なくなるように、第1符号器51及び第2符号器52を訓練する。第6訓練ステップでは、学習処理部112は、各学習データセット121について、訓練データ122を第1符号器51及び第2符号器52に与えることで復号器56により得られる復号化データが訓練データ122に適合するように、第1符号器51、第2符号器52、及び復号器56を訓練する。
第7訓練ステップでは、学習処理部112は、各学習データセット121について、訓練データ122を第1符号器51に与えることで他の推定器57から得られる推定の結果が正解データ124又は他の正解データ125に適合するように、第1符号器51及び他の推定器57を訓練する。第7訓練ステップにおいて、正解データ124を使用し、他の正解データ125を使用しない場合、当該他の正解データ125は、各学習データセット121から省略されてよい。この場合、正解データ124により示される特徴は、訓練データ122を取得するドメインに共通に現れる特徴であることが望ましい。
保存処理部113は、学習済みの学習モデル5に関する情報を学習結果データ128として生成する。そして、保存処理部113は、生成された学習結果データ128を所定の記憶領域に保存する。所定の記憶領域は、例えば、制御部11内のRAM、記憶部12、記憶媒体91、外部記憶装置又はこれらの組み合わせであってよい。
(各器の構成)
次に、各器51~57の構成について説明する。各器51~57には、機械学習を実施可能な任意のモデルが利用されてよい。図5Aに示されるとおり、本実施形態では、各器51~57は、深層学習に用いられる多層構造のニューラルネットワークにより構成されている。各器51~57は、入力層(511、521、531、541、551、561、571)、中間(隠れ)層(512、522、532、542、552、562、572)、及び出力層(513、523、533、543、553、563、573)を備えている。
ただし、各器51~57の構造は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、中間層(512、522、532、542、552、562、572)の数は、1つに限定されなくてもよく、2つ以上であってもよい。また、各器51~57の少なくともいずれかの組み合わせでは、少なくとも部分的に構造が一致していてもよい。或いは、各器51~57の構造は、一致していなくてもよい。
各層(511~513、521~523、531~533、541~543、551~553、561~563、571~573)は1又は複数のニューロン(ノード)を備えている。各層(511~513、521~523、531~533、541~543、551~553、561~563、571~573)に含まれるニューロン(ノード)の数は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。
隣接する層のニューロン同士は適宜結合され、各結合には重み(結合荷重)が設定されている。また、各ニューロンには閾値が設定されており、基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。各層(511~513、521~523、531~533、541~543、551~553、561~563、571~573)に含まれる各ニューロン間の結合の重み及び各ニューロンの閾値は、各器51~57の演算パラメータの一例である。
各器51~57の演算パラメータは、各器51~57の演算処理に利用され、機械学習の上記各訓練ステップにより調整される。具体的には、第1訓練ステップでは、学習処理部112は、各学習データセット121について、訓練データ122を第2符号器52の入力層521に入力し、第2メタ識別器54の出力層543から出力値(メタ識別の結果)を取得する。学習処理部112は、取得される出力値とメタデータ123との誤差が小さくなるように、第2符号器52及び第2メタ識別器54の演算パラメータの値を調整する。
第2訓練ステップでは、学習処理部112は、各学習データセット121について、訓練データ122を各符号器(51、52)の入力層(511、512)に入力し、推定器55の出力層553から出力値(識別の結果)を取得する。学習処理部112は、取得される出力値と正解データ124との誤差が小さくなるように、第1符号器51、第2符号器52及び推定器55の演算パラメータの値を調整する。
第3訓練ステップでは、学習処理部112は、各学習データセット121について、訓練データ122を第1符号器51の入力層511に入力し、第1メタ識別器53の出力層533から出力値(メタ識別の結果)を取得する。学習処理部112は、取得される出力値とメタデータ123との誤差が小さくなるように、第1メタ識別器53の演算パラメータの値を調整する。第3訓練ステップでは、第1メタ識別器53の演算パラメータの値は調整されるのに対して、第1符号器51の演算パラメータの値は固定される。
これに対して、第4訓練ステップでは、学習処理部112は、各学習データセット121について、訓練データ122を第1符号器51の入力層511に入力し、第1メタ識別器53の出力層533から出力値(メタ識別の結果)を取得する。学習処理部112は、取得される出力値とメタデータ123との誤差が大きくなるように、第1符号器51の演算パラメータの値を調整する。第4訓練ステップでは、第1符号器51の演算パラメータの値は調整されるのに対して、第1メタ識別器53の演算パラメータの値は固定される。
なお、第4訓練ステップでは、学習処理部112は、各学習データセット121について、メタデータ123に対応するダミーメタデータ129であって、対応するメタデータ123とは異なる値で構成されたダミーメタデータ129を取得してもよい。この場合、第1メタ識別器53から得られる識別の結果がメタデータ123に適合しないように第1符号器51を訓練することは、訓練データ122を第1符号器51に与えることで第1メタ識別器53から得られる識別の結果がダミーメタデータ129に適合するように第1符号器51を訓練することにより構成されてよい。換言すると、学習処理部112は、各学習データセット121について、訓練データ122を第1符号器51の入力層511に入力することで第1メタ識別器53の出力層533から得られる出力値とダミーメタデータ129との誤差が小さくなるように、第1符号器51の演算パラメータの値を調整してよい。
第5訓練ステップでは、学習処理部112は、各学習データセット121について、訓練データ122を各符号器(51、52)の入力層(511、521)に入力し、各符号器(51、52)の出力層(513、523)から出力値(第1特徴量及び第2特徴量)を取得する。学習処理部112は、第1符号器51から得られる第1特徴量及び第2符号器52から得られる第2特徴量の間の相互情報量を算出する。そして、学習処理部112は、算出された相互情報量から導出される誤差が小さくなるように、第1符号器51及び第2符号器52の少なくとも一方の演算パラメータの値を調整する。相互情報量から導出される誤差は、相互情報量の値そのままでもよいし、二乗したり、対数をとったりする等の所定の演算を相互情報量の値に適用することで算出されてもよい。
第6訓練ステップでは、学習処理部112は、各学習データセット121について、訓練データ122を各符号器(51、52)の入力層(511、521)を入力し、復号器56の出力層563から出力データ(復元化データ)を取得する。学習処理部112は、取得される出力データと訓練データ122との誤差が小さくなるように、第1符号器51、第2符号器52、及び復号器56の演算パラメータの値を調整する。
第7訓練ステップでは、学習処理部112は、各学習データセット121について、訓練データ122を第1符号器51の入力層511に入力し、他の推定器57の出力層573から出力値(推定の結果)を取得する。学習処理部112は、取得される出力値と正解データ124又は他の正解データ125との誤差が小さくなるように、第1符号器51及び他の推定器57の演算パラメータの値を調整する。
なお、第3訓練ステップ及び第4訓練ステップを交互に繰り返し実行する際に、第1、第2、及び第5~第7訓練ステップも繰り返し実行されてよい。換言すると、学習処理部112は、第1~第7訓練ステップによる演算パラメータの値の調整を繰り返す過程で、第3訓練ステップ及び第4訓練ステップによる演算パラメータの値の調整を交互に繰り返してもよい。或いは、第1、第2、及び第5~第7訓練ステップは、第3訓練ステップ及び第4訓練ステップによる敵対的学習の事前学習として実行されてよい。換言すると、学習処理部112は、第1、第2、及び第5~第7訓練ステップによる演算パラメータの値の調整が完了した後に、第3訓練ステップ及び第4訓練ステップによる演算パラメータの値の調整を交互に繰り返してもよい。
また、第1、第2、及び第5~第7訓練ステップは個別に実行されてよい。換言すると、学習処理部112は、第1、第2、及び第5~第7訓練ステップそれぞれによる演算パラメータの値の調整を別々に実行してもよい。或いは、第1、第2、及び第5~第7訓練ステップの少なくともいずれかの組み合わせは同時に実行されてよい。例えば、第1訓練ステップ及び第2訓練ステップを同時に実行する場面を想定する。この場面では、学習処理部112は、訓練データ122を各符号器(51、52)に入力し、第2メタ識別器54及び推定器55それぞれから出力値を取得してよい。続いて、学習処理部112は、第2メタ識別器54の出力値とメタデータ123との誤差、及び推定器55の出力値と正解データ124との誤差を算出してもよい。そして、学習処理部112は、各誤差が小さくなるように、第1符号器51、第2符号器52、第2メタ識別器54及び推定器55の演算パラメータの値を調整してもよい。
また、本実施形態において、上記第1~第7訓練ステップでは、訓練データ122と共にノイズ61が各符号器(51、52)に入力されてよい。その上で、上記各訓練が実行されてよい。なお、訓練データ122と共にノイズ61を入力する形態は、このような例に限定されなくてもよい。第1~第7訓練ステップの少なくともいずれかにおいて、ノイズ61の入力は省略されてよい。
また、本実施形態において、第1、第2、第6訓練ステップでは、訓練データ122を第2符号器52に与えることで第2符号器52から第2特徴量として出力値が取得されてよい。そして、取得された出力値(第2特徴量)と共にノイズ62が第2メタ識別器54、推定器55、及び復号器56に入力されて、各訓練が実行されてよい。なお、第2特徴量と共にノイズ62を入力する形態は、このような例に限定されなくてもよい。第1、第2、及び第6訓練ステップのうちの少なくともいずれかにおいて、ノイズ62の入力が省略されてよい。
更に、図5Dに示されるとおり、本実施形態において、データ取得部111は、学習処理部112が学習モデル5の機械学習を実施した後に、複数の学習データセット121の少なくともいずれかの訓練データ122を第1符号器51に与えることで、第1符号器51から第1特徴量としての出力値を取得してもよい。また、データ取得部111は、当該訓練データ122を第2符号器52にも与えることで、第2符号器52から第2特徴量としての出力値を取得してもよい。そして、データ取得部111は、第1符号器51から取得された出力値(第1特徴量)を復号器56に入力し、かつ第2符号器52から取得された出力値(第2特徴量)と共にノイズ63を復号器56に入力することで、復号器56から復号化データとして出力データを取得してよい。第2特徴量と共にノイズ63を入力する方法及びノイズ63の種類は、特に限定されなくてもよく、上記ノイズ62と同様であってよい。学習処理部112は、取得された出力データを新たな訓練データ192として使用して、学習モデル5の機械学習を再度実施してもよい。なお、学習データセット121と同様に、新たな訓練データ192には、メタデータ193、正解データ194、及び他の正解データ195が関連付けられてよい。メタデータ193、正解データ194、及び他の正解データ195はそれぞれ適宜取得されてよい。
保存処理部113は、上記機械学習により構築された学習済みの学習モデル5の各器51~57の構造及び演算パラメータの値を示す情報を学習結果データ128として生成する。各器51~57の構造は、例えば、ニューラルネットワークにおける入力層から出力層までの層の数、各層の種類、各層に含まれるニューロンの数、隣接する層のニューロン同士の結合関係等により特定されてよい。システム内で各器51~57の構造が共通化される場合、この構造に関する情報は学習結果データ128から省略されてよい。保存処理部113は、生成された学習結果データ128を所定の記憶領域に保存する。
<推定装置>
次に、図6を用いて、本実施形態に係る推定装置2のソフトウェア構成の一例について説明する。図6は、本実施形態に係る推定装置2のソフトウェア構成の一例を模式的に例示する。
推定装置2の制御部21は、記憶部22に記憶された推定プログラム82をRAMに展開する。そして、制御部21は、CPUにより、RAMに展開された推定プログラム82を解釈して、当該推定プログラム82に含まれる一連の命令群を実行することで、各構成要素を制御する。これにより、図6に示されるとおり、本実施形態に係る推定装置2は、データ取得部211、評価部212、推定部213、及び出力部214をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、推定装置2の各ソフトウェアモジュールは、上記学習装置1と同様に、制御部21(CPU)により実現される。
データ取得部211は、推定タスクの実行対象となる対象データ221を取得する。本実施形態では、データ取得部211は、センサSから対象データ221を取得する。評価部212及び推定部213は、学習結果データ128を保持することで、学習済みの学習モデル5を備えている。推定部213は、学習装置1により訓練された第1符号器51、第2符号器52、及び推定器55を利用して、取得された対象データ221に含まれる特徴を推定してもよい。或いは、推定部213は、学習装置1により訓練された第1符号器51及び他の推定器57を利用して、取得された対象データ221に含まれる特徴を推定してもよい。出力部214は、特徴を推定した結果に関する情報を出力する。
評価部212は、学習装置1により訓練された第2符号器52及び第2メタ識別器54を利用して、対象データ221の取得に関する属性を識別する。そして、評価部212は、当該識別の結果に基づいて、推定部213により特徴を推定した結果を採用するか否かを判定する。推定した結果を採用しないことは、推定部213による推定処理を実行した後に、当該推定の結果を破棄すること、及び推定処理を実行しないことを含んでよい。
なお、推定装置2(評価部212及び推定部213)は、必ずしも学習済みの学習モデル5の全ての構成要素を保持しなければならない訳ではない。学習済みの学習モデル5において、推定装置2の利用しない部分は省略されてよい。この場合、推定装置2の保持する学習結果データ128からその部分に対応する情報が省略されてよい。
<データ生成装置>
次に、図7を用いて、本実施形態に係るデータ生成装置3のソフトウェア構成の一例について説明する。図7は、本実施形態に係るデータ生成装置3のソフトウェア構成の一例を模式的に例示する。
データ生成装置3の制御部31は、記憶部32に記憶された生成プログラム83をRAMに展開する。そして、制御部31は、CPUにより、RAMに展開された生成プログラム83を解釈して、当該生成プログラム83に含まれる一連の命令群を実行することで、各構成要素を制御する。これにより、図7に示されるとおり、本実施形態に係るデータ生成装置3は、データ取得部311、生成部312、及び保存処理部313をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、データ生成装置3の各ソフトウェアモジュールは、上記学習装置1及び推定装置2と同様に、制御部31(CPU)により実現される。
データ取得部311は、新たなデータを生成する元となる対象データ321を取得する。本実施形態では、データ取得部311は、センサSから対象データ321を取得する。生成部312は、学習結果データ128を保持することで、学習済みの学習モデル5を備えている。生成部312は、学習装置1により訓練された第1符号器51に対象データ321を与えることで第1符号器51から第1特徴量として出力値を取得する。そして、生成部312は、訓練された復号器56を利用して、第2符号器52から取得される出力値(第2特徴量)を与えずに、第1符号器51から取得された出力値(第1特徴量)から対象データ321を復号化することで、復号化データを生成する。保存処理部313は、生成された復号化データを新たなデータとして所定の記憶領域に保存する。所定の記憶領域は、例えば、制御部31内のRAM、記憶部32、記憶媒体93、外部記憶装置又はこれらの組み合わせであってよい。
なお、データ生成装置3により生成される新たなデータは復号化データに限定されなくてもよい。データ生成装置3は、第1符号器51及び第2符号器52の少なくとも一方を利用して、第1特徴量及び第2特徴量の少なくとも一方を生成してもよい。この場合、保存処理部313は、生成された第1特徴量及び第2特徴量の少なくとも一方を新たなデータとして所定の記憶領域に保存してもよい。
また、データ生成装置3(生成部312)は、必ずしも学習済みの学習モデル5の全ての構成要素を保持しなければならない訳ではない。学習済みの学習モデル5において、データ生成装置3の利用しない部分は省略されてよい。この場合、データ生成装置3の保持する学習結果データ128からその部分に対応する情報が省略されてよい。
<その他>
学習装置1、推定装置2及びデータ生成装置3の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、学習装置1、推定装置2及びデータ生成装置3の各ソフトウェアモジュールがいずれも汎用のCPUによって実現される例について説明している。しかしながら、以上のソフトウェアモジュールの一部又は全部が、1又は複数の専用のプロセッサにより実現されてもよい。また、学習装置1、推定装置2及びデータ生成装置3それぞれのソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
§3 動作例
[学習装置]
次に、図8を用いて、学習装置1の動作例について説明する。図8は、本実施形態に係る学習装置1の処理手順の一例を示すフローチャートである。以下で説明する処理手順は、学習方法の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
(ステップS101)
ステップS101では、制御部11は、データ取得部111として動作し、複数の学習データセット121を取得する。本実施形態では、制御部11は、訓練データ122、メタデータ123、正解データ124、及び他の正解データ125の組み合わせによりそれぞれ構成される複数の学習データセット121を取得する。
各学習データセット121を取得する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、センサSを用意し、用意したセンサSにより様々な条件で観測を行うことで生成されるセンシングデータを訓練データ122として取得する。観測の対象は、学習モデル5に習得させる推定タスクに応じて適宜選択されてよい。取得された訓練データ122に対して、メタデータ123、正解データ124、及び他の正解データ125を適宜取得する。
メタデータ123は、オペレータの入力により与えられてもよい。或いは、メタデータ123は、センサSの利用形態、仕様、観測環境等を示す参照情報から得られてもよい。また、正解データ124、及び他の正解データ125は、オペレータの入力により与えられてもよい。或いは、正解データ124、及び他の正解データ125は、学習済みの推定器により訓練データ122に含まれる特徴を推定した結果に基づいて与えられてもよい。訓練データ122に対して、取得されたメタデータ123、正解データ124、及び他の正解データ125を関連付ける。これにより、各学習データセット121を生成することができる。
各学習データセット121は、コンピュータの動作により自動的に生成されてもよいし、オペレータの操作により手動的に生成されてもよい。また、各学習データセット121の生成は、学習装置1により行われてもよいし、学習装置1以外の他のコンピュータにより行われてもよい。各学習データセット121を学習装置1が生成する場合、制御部11は、自動的に又はオペレータの入力装置14を介した操作により手動的に上記一連の処理を実行することで、複数の学習データセット121を取得する。一方、各学習データセット121を他のコンピュータが生成する場合、制御部11は、例えば、ネットワーク、記憶媒体91等を介して、他のコンピュータにより生成された複数の学習データセット121を取得する。複数の学習データセット121のうち一部の学習データセットが学習装置1により生成され、その他の学習データセットが1又は複数の他のコンピュータにより生成されてもよい。
なお、複数の学習データセット121に含まれる少なくとも1つ以上の第1の学習データセット、及び少なくとも1つ以上の第2の学習データセットは、それぞれのメタデータ123により示される属性が相違するように異なるドメインから取得されてよい。異なるドメインとは、訓練データ122の取得に関する属性が相違することであり、メタデータ123が複数の属性を示す場合には、少なくとも一部の属性が相違することである。ドメインは、例えば、データを取得する条件等のデータの取得に関する属性を規定する。一例として、センサSがカメラである場合、カメラの向き、カメラの解像度、環境の明るさ、撮影対象等の撮影条件が異なれば、訓練データ122の取得に関する属性が相違する。この場合、それぞれの撮影条件が異なるドメインの一例である。
取得される学習データセット121の件数は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。複数の学習データセット121を取得すると、制御部11は、次のステップS102に処理を進める。
(ステップS102)
ステップS102では、制御部11は、学習処理部112として動作し、取得された複数の学習データセット121を使用して、学習モデル5の機械学習を実施する。本実施形態では、学習モデル5は、第1符号器51、第2符号器52、第1メタ識別器53、第2メタ識別器54、推定器55、復号器56及び他の推定器57を含む。制御部11は、第1~第7訓練ステップにより、学習モデル5の各器51~57を訓練する。各訓練ステップの処理順序は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。
<機械学習>
図9を更に用いて、ステップS102における機械学習の処理の一例を詳細に説明する。図9は、本実施形態に係る学習装置1による機械学習の処理手順の一例を例示するフローチャートである。本実施形態に係るステップS102の処理は、以下のステップS201~S208の処理を含む。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。
ステップS201を実行する前に、制御部11は、機械学習の処理対象となる学習モデル5を用意する。用意する学習モデル5の各器51~57の構造、及び演算パラメータの初期値は、テンプレートにより与えられてもよいし、オペレータの入力により与えられてもよい。テンプレートは、ニューラルネットワークの構造に関する情報、及びニューラルネットワークの演算パラメータの初期値に関する情報を含んでよい。各器51~57の構造は、例えば、ニューラルネットワークにおける入力層から出力層までの層の数、各層の種類、各層に含まれるニューロンの数、隣接する層のニューロン同士の結合関係等により特定されてよい。再学習を行う場合、制御部11は、過去の機械学習により得られた学習結果データに基づいて、処理対象となる学習モデル5を用意してもよい。
(ステップS201)
ステップS201では、制御部11は、各学習データセット121について、訓練データ122を第2符号器52に与えることで第2メタ識別器54から得られる識別の結果がメタデータ123に適合するように、第2符号器52及び第2メタ識別器54を訓練する。ステップS201は、第1訓練ステップの一例である。本実施形態では、制御部11は、訓練データ122を入力データとして利用し、メタデータ123を教師データとして利用して、第2符号器52及び第2メタ識別器54を構成するニューラルネットワークの学習処理を実行する。この学習処理には、バッチ勾配降下法、確率的勾配降下法、ミニバッチ勾配降下法等が用いられてよい。
一例として、第1のステップでは、制御部11は、各学習データセット121について、訓練データ122を第2符号器52に入力し、第2符号器52及び第2メタ識別器54の演算処理を実行する。すなわち、制御部11は、訓練データ122を第2符号器52の入力層521に入力し、入力側から順に各層(521~523、541~543)に含まれる各ニューロンの発火判定を行う。この演算処理により、制御部11は、第2メタ識別器54の出力層543から、訓練データ122の取得に関する属性を第2特徴量から識別した結果に対応する出力値を取得する。
第2のステップでは、制御部11は、出力層543から取得された出力値とメタデータ123との誤差を損失関数に基づいて算出する。損失関数には、平均二乗誤差、交差エントロピー誤差等の公知の損失関数が用いられてよい。第3のステップでは、制御部11は、算出された誤差の小さくなる方向に当該誤差の勾配を算出し、誤差逆伝播(Back propagation)法により、算出された勾配を逆伝播することで、各層(521~523、541~543)に含まれる演算パラメータ(例えば、各ニューロン間の結合の重み、各ニューロンの閾値等)の誤差を算出する。第4のステップでは、制御部11は、算出された各誤差に基づいて、演算パラメータの値を更新する。
制御部11は、上記第1~第4のステップを繰り返すことで、各学習データセット121について、出力層543から出力される出力値とメタデータ123との誤差が小さくなるように、第2符号器52及び第2メタ識別器54の演算パラメータの値を調整する。繰り返す回数は適宜決定されてよい。例えば、演算パラメータの値の調整を繰り返す規定回数が設定されていてもよい。規定回数は、例えば、設定値により与えられてもよいし、オペレータの指定により与えられてもよい。この場合、制御部11は、繰り返し回数が規定回数に到達するまで、上記第1~第4のステップを繰り返す。また、例えば、誤差の和が閾値以下になるまで、制御部11は、上記第1~第4のステップを繰り返してもよい。
この機械学習の結果、各学習データセット121について、訓練データ122を第2符号器52に入力すると、メタデータ123に適合する出力値が第2メタ識別器54から出力されるように訓練された第2符号器52及び第2メタ識別器54を構築することができる。この「適合する」ことは、閾値等により許容可能な差異が、出力層の出力値と教師データとの間で生じることを含んでもよい。ステップS201の機械学習により、第2符号器52は、メタデータ123により示される訓練データ122の取得に関する属性に対応する成分を第2特徴量が含むように訓練され得る。第2符号器52及び第2メタ識別器54の訓練が完了すると、制御部11は、次のステップS202に処理を進める。
(ステップS202)
ステップS202では、制御部11は、各学習データセット121について、訓練データ122を第1符号器51及び第2符号器52に与えることで推定器55から得られる推定の結果が正解データ124に適合するように、第1符号器51、第2符号器52及び推定器55を訓練する。ステップS202は、第2訓練ステップの一例である。本実施形態では、制御部11は、訓練データ122を入力データとして利用し、正解データ124を教師データとして利用して、第1符号器51、第2符号器52及び推定器55を構成するニューラルネットワークの学習処理を実行する。この学習処理において、各符号器(51、52)及び推定器55の演算パラメータの値を調整する方法は、上記ステップS201と同様であってよい。
一例として、第1のステップでは、制御部11は、各学習データセット121について、訓練データ122を各符号器(51、52)の入力層(511、512)に入力し、第1符号器51、第2符号器52及び推定器55の演算処理を実行する。この演算処理により、制御部11は、推定器55の出力層553から、訓練データ122に含まれる特徴を第1特徴量及び第2特徴量から推定した結果に対応する出力値を取得する。
第2のステップでは、制御部11は、出力層553から取得された出力値と正解データ124との誤差を損失関数に基づいて算出する。第3のステップでは、制御部11は、算出された誤差の小さくなる方向に当該誤差の勾配を算出し、誤差逆伝播法により、算出された勾配を逆伝播することで、各層(511~513、521~523、551~553)に含まれる演算パラメータの誤差を算出する。第4のステップでは、制御部11は、算出された各誤差に基づいて、演算パラメータの値を更新する。
制御部11は、上記第1~第4のステップを繰り返すことで、各学習データセット121について、出力層553から出力される出力値と正解データ124との誤差が小さくなるように、第1符号器51、第2符号器52及び推定器55の演算パラメータの値を調整する。制御部11は、繰り返し回数が規定回数に到達するまで、上記第1~第4のステップを繰り返してもよい。或いは、制御部11は、誤差の和が閾値以下になるまで、上記第1~第4のステップを繰り返してもよい。
この機械学習の結果、各学習データセット121について、訓練データ122を各符号器(51、52)に入力すると、正解データ124に適合する出力値が推定器55から出力されるように訓練された第1符号器51、第2符号器52及び推定器55を構築することができる。第1符号器51、第2符号器52及び推定器55の訓練が完了すると、制御部11は、次のステップS203に処理を進める。
(ステップS203)
ステップS203では、制御部11は、各学習データセット121について、訓練データ122を第1符号器51及び第2符号器52に与えることで復号器56により得られる復号化データが訓練データ122に適合するように、第1符号器51、第2符号器52、及び復号器56を訓練する。ステップS203は、第6訓練ステップの一例である。本実施形態では、制御部11は、訓練データ122を入力データ及び教師データとして利用して、第1符号器51、第2符号器52及び復号器56を構成するニューラルネットワークの学習処理を実行する。この学習処理において、各符号器(51、52)及び復号器56の演算パラメータの値を調整する方法は、上記ステップS201等と同様であってよい。
一例として、第1のステップでは、制御部11は、各学習データセット121について、訓練データ122を各符号器(51、52)の入力層(511、512)に入力し、第1符号器51、第2符号器52及び復号器56の演算処理を実行する。この演算処理により、制御部11は、復号器56の出力層563から、第1特徴量及び第2特徴量から訓練データ122を復号化した結果に対応する出力データを取得する。
第2のステップでは、制御部11は、出力層563から取得された出力データと訓練データ122との誤差を損失関数に基づいて算出する。第3のステップでは、制御部11は、算出された誤差の小さくなる方向に当該誤差の勾配を算出し、誤差逆伝播法により、算出された勾配を逆伝播することで、各層(511~513、521~523、561~563)に含まれる演算パラメータの誤差を算出する。第4のステップでは、制御部11は、算出された各誤差に基づいて、演算パラメータの値を更新する。
制御部11は、上記第1~第4のステップを繰り返すことで、各学習データセット121について、出力層563から出力される出力データと訓練データ122との誤差が小さくなるように、第1符号器51、第2符号器52及び復号器56の演算パラメータの値を調整する。制御部11は、繰り返し回数が規定回数に到達するまで、上記第1~第4のステップを繰り返してもよい。或いは、制御部11は、誤差の和が閾値以下になるまで、上記第1~第4のステップを繰り返してもよい。
この機械学習の結果、各学習データセット121について、訓練データ122を各符号器(51、52)に入力すると、訓練データ122に適合する復号化データが復号器56から出力されるように訓練された第1符号器51、第2符号器52及び復号器56を構築することができる。第1符号器51、第2符号器52及び復号器56の訓練が完了すると、制御部11は、次のステップS204に処理を進める。
(ステップS204)
ステップS204では、制御部11は、各学習データセット121について、訓練データ122を第1符号器51に与えることで他の推定器57から得られる推定の結果が正解データ124又は他の正解データ125に適合するように、第1符号器51及び他の推定器57を訓練する。ステップS204は、第7訓練ステップの一例である。本実施形態では、制御部11は、訓練データ122を入力データとして利用し、正解データ124又は他の正解データ125を教師データとして利用して、第1符号器51及び他の推定器57を構成するニューラルネットワークの学習処理を実行する。この学習処理において、第1符号器51及び他の推定器57の演算パラメータの値を調整する方法は、上記ステップS201等と同様であってよい。
一例として、第1のステップでは、制御部11は、各学習データセット121について、訓練データ122を第1符号器51の入力層511に入力し、第1符号器51及び他の推定器57の演算処理を実行する。この演算処理により、制御部11は、他の推定器57の出力層573から、訓練データ122に含まれる特徴を第1特徴量から推定した結果に対応する出力値を取得する。
第2のステップでは、制御部11は、出力層573から取得された出力値と正解データ124又は他の正解データ125との誤差を損失関数に基づいて算出する。第3のステップでは、制御部11は、算出された誤差の小さくなる方向に当該誤差の勾配を算出し、誤差逆伝播法により、算出された勾配を逆伝播することで、各層(511~513、571~573)に含まれる演算パラメータの誤差を算出する。第4のステップでは、制御部11は、算出された各誤差に基づいて、演算パラメータの値を更新する。
制御部11は、上記第1~第4のステップを繰り返すことで、各学習データセット121について、出力層573から出力される出力値と正解データ124又は他の正解データ125との誤差が小さくなるように、第1符号器51及び他の推定器57の演算パラメータの値を調整する。制御部11は、繰り返し回数が規定回数に到達するまで、上記第1~第4のステップを繰り返してもよい。或いは、制御部11は、誤差の和が閾値以下になるまで、上記第1~第4のステップを繰り返してもよい。
この機械学習の結果、各学習データセット121について、訓練データ122を第1符号器51に入力すると、正解データ124又は他の正解データ125に適合する出力値が他の推定器57から出力されるように訓練された第1符号器51及び他の推定器57を構築することができる。第1符号器51及び他の推定器57の訓練が完了すると、制御部11は、次のステップS205に処理を進める。
(ステップS205)
ステップS205では、制御部11は、各学習データセット121について、訓練データ122を第1符号器51に与えることで第1符号器51から得られる出力値(第1特徴量)と訓練データ122を第2符号器52に与えることで第2符号器52から得られる出力値(第2特徴量)との相互情報量が少なくなるように、第1符号器51及び第2符号器52を訓練する。ステップS205は、第5訓練ステップの一例である。本実施形態では、制御部11は、訓練データ122を入力データとして利用して、相互情報量が小さくなるように(例えば、相互情報量が0となることを教師データとして利用して)、第1符号器51及び第2符号器52を構成するニューラルネットワークの学習処理を実行する。この学習処理において、第1符号器51及び第2符号器52の少なくともいずれか一方の演算パラメータの値を調整する方法は、上記ステップS201等と基本的には同様である。
一例として、第1のステップでは、制御部11は、各学習データセット121について、訓練データ122を各符号器(51、52)の入力層(511、521)に入力し、各符号器(51、52)の演算処理を実行する。この演算処理には、制御部11は、各符号器(51、52)の出力層(513、523)から、訓練データ122を各特徴量に変換した結果に対応する出力値を取得する。
第2のステップでは、制御部11は、第1符号器51及び第2符号器52から得られた出力値(第1特徴量及び第2特徴量)間の相互情報量を算出し、損失関数に基づいて相互情報量から誤差を導出する。相互情報量の計算手法には公知の方法が採用されてよい。また、損失関数が絶対値を算出するように定義されることで、相互情報量の値がそのまま誤差として利用されてもよい。或いは、損失関数は、二乗したり、対数をとったりする等の所定の演算を相互情報量の値に適用するように定義されてもよい。第3のステップでは、制御部11は、算出された誤差の小さくなる方向に当該誤差の勾配を算出し、誤差逆伝播法により、第1符号器51及び第2符号器52の少なくとも一方に算出された勾配を逆伝播する。これにより、制御部11は、第1符号器51の各層511~513及び第2符号器52の各層521~523の少なくとも一方に含まれる演算パラメータの誤差を算出する。第4のステップでは、制御部11は、算出された各誤差に基づいて、演算パラメータの値を更新する。
制御部11は、上記第1~第4のステップを繰り返すことで、各学習データセット121について、第1符号器51の出力層513から出力される出力値と第2符号器52の出力層523から出力される出力値との相互情報量が少なくなるように、第1符号器51及び第2符号器52の少なくとも一方の演算パラメータの値を調整する。制御部11は、繰り返し回数が規定回数に到達するまで、上記第1~第4のステップを繰り返してもよい。或いは、制御部11は、誤差の和が閾値以下になるまで、上記第1~第4のステップを繰り返してもよい。
この機械学習の結果、各学習データセット121について、訓練データ122を各符号器(51、52)に入力すると、相互情報量の少ない出力値が各符号器(51、52)から出力されるように訓練された各符号器(51、52)を構築することができる。各符号器(51、52)の訓練が完了すると、制御部11は、次のステップS206に処理を進める。
(ステップS206)
ステップS206では、制御部11は、各学習データセット121について、訓練データ122を第1符号器51に与えることで第1メタ識別器53から得られる識別の結果がメタデータ123に適合するように、第1メタ識別器53を訓練する。ステップS206は、第3訓練ステップの一例である。このステップS206では、第1メタ識別器53の演算パラメータの値は調整されるのに対して、第1符号器51の演算パラメータの値は固定される。本実施形態では、制御部11は、訓練データ122を入力データとして利用し、メタデータ123を教師データとして利用して、第1メタ識別器53を構成するニューラルネットワークの学習処理を実行する。この学習処理において、第1メタ識別器53の演算パラメータの値を調整する方法は、第1符号器51の演算パラメータの値を固定する点を除き、ステップS201等と同様であってよい。
一例として、第1のステップでは、制御部11は、各学習データセット121について、訓練データ122を第1符号器51の入力層511に入力し、第1符号器51及び第1メタ識別器53の演算処理を実行する。この演算処理により、制御部11は、第1メタ識別器53の出力層533から、訓練データ122の取得に関する属性を第1特徴量から識別した結果に対応する出力値を取得する。
第2のステップでは、制御部11は、出力層533から出力された出力値とメタデータ123との誤差を損失関数に基づいて算出する。第3のステップでは、制御部11は、算出された誤差の小さくなる方向に当該誤差の勾配を算出し、誤差逆伝播法により、算出された勾配を逆伝播する。制御部11は、この勾配の逆伝播を、第1メタ識別器53の入力層531までで停止する。これにより、制御部11は、第1メタ識別器53の各層531~533に含まれる演算パラメータの誤差を算出する。第4のステップでは、制御部11は、算出された各誤差に基づいて、第1メタ識別器53の演算パラメータの値を更新する。
制御部11は、上記第1~第4のステップを繰り返すことで、各学習データセット121について、出力層533から出力される出力値とメタデータ123との誤差が小さくなるように、第1メタ識別器53の演算パラメータの値を調節する。制御部11は、繰り返し回数が規定回数に到達するまで、上記第1~第4のステップを繰り返してもよい。或いは、制御部11は、誤差の和が閾値以下になるまで、上記第1~第4のステップを繰り返してもよい。
この機械学習の結果、各学習データセット121について、訓練データ122を第1符号器51に入力すると、メタデータ123に適合する出力値が第1メタ識別器53から出力されるように訓練された第1メタ識別器53を構築することができる。第1メタ識別器53の訓練が完了すると、制御部11は、次のステップS207に処理を進める。
(ステップS207)
ステップS207では、制御部11は、各学習データセット121について、訓練データ122を第1符号器51に与えることで第1メタ識別器53から得られる識別の結果がメタデータ123に適合しないように、第1符号器51を訓練する。ステップS207は、第4訓練ステップの一例である。このステップS207では、第1符号器51の演算パラメータの値は調整されるのに対して、第1メタ識別器53の演算パラメータの値は固定される。本実施形態では、制御部11は、訓練データ122を入力データとして利用し、メタデータ123に適合しないように(例えば、ダミーメタデータ129を教師データとして利用して)、第1符号器51を構成するニューラルネットワークの学習処理を実行する。この学習処理において、第1符号器51の演算パラメータの値を調整する方法は、第1メタ識別器53の演算パラメータの値を固定する点を除き、ステップS201等と同様であってよい。
一例として、第1のステップでは、制御部11は、各学習データセット121について、訓練データ122を第1符号器51の入力層511に入力し、第1符号器51及び第1メタ識別器53の演算処理を実行する。この演算処理により、制御部11は、第1メタ識別器53の出力層533から、訓練データ122の取得に関する属性を第1特徴量から識別した結果に対応する出力値を取得する。
第2のステップでは、制御部11は、各学習データセット121について、メタデータ123に対応するダミーメタデータ129であって、対応するメタデータ123とは異なる値で構成されたダミーメタデータ129を取得する。制御部11は、出力層533から出力された出力値と取得されたダミーメタデータ129との誤差を損失関数に基づいて算出する。
ダミーメタデータ129は、第1メタ識別器53から得られる識別の結果がメタデータ123に適合しないように第1符号器51を訓練することが可能なように適宜与えられてよい。例えば、ダミーメタデータ129は、対応する学習データセット121とは異なる他の学習データセット121のメタデータ123により構成されてよい。すなわち、制御部11は、ダミーメタデータ129を取得する対象となる学習データセット121とは別の他の学習データセット121を選択し、選択された他の学習データセット121のメタデータ123を対象の学習データセット121のダミーメタデータ129として利用してよい。
対象の学習データセット121について、ダミーメタデータ129として利用するメタデータ123を取得する他の学習データセット121を選択する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、制御部11は、複数の学習データセット121から他の学習データセット121をランダムに選択し、選択された学習データセット121のメタデータ123を対象の学習データセット121のダミーメタデータ129として利用してもよい。また、例えば、制御部11は、学習データセット121における訓練データ122とメタデータ123との対応関係を任意の方向にずらすことで、対象の学習データセット121に割り当てられた他の学習データセット121のメタデータ123をダミーメタデータ129として利用してもよい。また、例えば、制御部11は、複数の学習データセット121の中から1つの学習データセット121を選択し、選択された学習データセット121のメタデータ123を全ての学習データセット121のダミーメタデータ129として利用してもよい。この方法によれば、ダミーメタデータ129を生成する計算量を抑えることができ、本ステップS207の処理コストを低減することができる。
なお、ダミーメタデータ129を生成する方法は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。上記他の学習データセット121から選択する方法の他、例えば、制御部11は、メタデータ123の値を反転することで、ダミーメタデータ129を生成してもよい。また、例えば、制御部11は、メタデータ123の値とは相違するランダムな値(例えば、乱数)により構成されるダミーメタデータ129を生成してもよい。複数の学習データセット121のうちダミーメタデータ129とメタデータ123とが一致する学習データセット121が存在してもよい。この場合、制御部11は、当該学習データセット121を訓練にそのまま利用してもよいし、当該学習データセット121のダミーメタデータ129を適宜変更してもよい。
第3のステップでは、制御部11は、算出された誤差の小さくなる方向に当該誤差の勾配を算出し、誤差逆伝播法により、第1メタ識別器53の出力層533から第1符号器51の入力層511まで、算出された勾配を逆伝播する。この過程で、制御部11は、第1メタ識別器53に含まれる演算パラメータの誤差の算出については省略し、第1符号器51に含まれる演算パラメータの誤差を算出する。第4のステップでは、制御部11は、算出された各誤差に基づいて、第1符号器51の演算パラメータの値を更新する。
制御部11は、上記第1~第4のステップを繰り返すことで、各学習データセット121について、出力層533から出力される出力値とダミーメタデータ129との誤差が小さくなるように、第1符号器51の演算パラメータの値を調節する。制御部11は、繰り返し回数が規定回数に到達するまで、上記第1~第4のステップを繰り返してもよい。或いは、制御部11は、誤差の和が閾値以下になるまで、上記第1~第4のステップを繰り返してもよい。
この機械学習の結果、各学習データセット121について、訓練データ122を第1符号器51に入力すると、ダミーメタデータ129に適合する出力値が第1メタ識別器53から出力されるように訓練された第1符号器51を構築することができる。すなわち、このダミーメタデータ129を利用した機械学習により、第1符号器51は、第1メタ識別器53から得られる識別の結果がメタデータ123に適合しないように訓練される。このダミーメタデータ129を利用した方法によれば、制御部11は、本ステップS207の処理を上記ステップS201等の処理と同様に実行することができる。そのため、本ステップS207の処理を簡易化することができる。本ステップS207の機械学習により、第1符号器51は、各学習データセット121の訓練データ122の取得に関する属性以外の情報、例えば、訓練データ122を取得するドメインに共通に現れる情報に対応する成分を第1特徴量が含むように訓練され得る。第1符号器51の訓練が完了すると、制御部11は、次のステップS208に処理を進める。
なお、第1メタ識別器53から得られる識別の結果がメタデータ123に適合しなくなるように第1符号器51を訓練する方法は、このダミーメタデータ129を利用する方法に限られなくてもよい。例えば、上記第2のステップにおいて、制御部11は、各学習データセット121について、出力層533から出力された出力値とメタデータ123との誤差を算出してもよい。そして、第3のステップでは、制御部11は、算出された誤差の大きくなる方向に当該誤差の勾配を算出し、誤差逆伝播法により、算出された勾配を第1符号器51の入力層511まで逆伝播してもよい。この過程で、制御部11は、第1符号器51に含まれる演算パラメータの誤差を算出してよい。そして、第4のステップでは、制御部11は、算出された各誤差に基づいて、第1符号器51の演算パラメータの値を更新してもよい。この方法によっても、制御部11は、第1メタ識別器53から得られる識別の結果がメタデータ123に適合しなくなるように第1符号器51を訓練することができる。
(ステップS208)
ステップS208では、制御部11は、ステップS201~ステップS207の処理を繰り返すか否かを判定する。処理を繰り返す基準は、実施の形態に応じて適宜決定されてよい。例えば、処理を繰り返す規定回数が設定されていてもよい。規定回数は、例えば、設定値により与えられてもよいし、オペレータの指定により与えられてもよい。この場合、制御部11は、ステップS201~ステップS207の処理を実行した回数が規定回数に到達したか否かを判定する。実行回数が規定回数に到達していないと判定した場合、制御部11は、ステップS201に処理を戻し、ステップS201~ステップS207の処理を繰り返す。本実施形態では、このステップS201~ステップS207の処理が繰り返される過程で、ステップS206及びステップS207が交互に繰り返し実行される。一方、実行回数が規定回数に到達していると判定した場合には、制御部11は、本実施形態に係る機械学習の処理を終了し、次のステップS103に処理を進める。
(機械学習の結果)
以上の一連の訓練ステップのうちステップS201により、訓練データ122の取得に関する属性を第2メタ識別器54が適切に識別可能となるように、学習済みの第2符号器52により得られる第2特徴量には、当該取得に関する属性に対応する成分が含まれるようになる。また、ステップS202により、学習済みの第1符号器51及び第2符号器52により得られる第1特徴量及び第2特徴量には、訓練データ122に含まれる特徴(すなわち、推定タスクの正解)に対応する成分が含まれるようになる。更に、本実施形態では、ステップS206及びステップS207の処理を交互に実行することにより、第1符号器51及び第1メタ識別器53の敵対的学習が実施される。
ステップS206では、第1メタ識別器53の出力値がメタデータ123に適合するように第1メタ識別器53の演算パラメータの値は調整されるのに対して、第1符号器51の演算パラメータの値は固定される。一方、ステップS207では、第1メタ識別器53の出力値がメタデータ123に適合しないように第1符号器51の演算パラメータの値は調整されるのに対して、第1メタ識別器53の演算パラメータの値は固定される。すなわち、ステップS206では、その段階での第1符号器51の、メタデータ123に対応する成分が含まれないように訓練データ122を第1特徴量に変換する能力に対して、そのような第1特徴量からメタデータ123を識別する第1メタ識別器53の能力の向上が図られる。これに対して、ステップS207では、その段階での第1メタ識別器53のメタ識別の能力を基準として、メタデータ123に対応する成分が含まれないように訓練データ122を第1特徴量に変換する第1符号器51の能力の向上が図られる。
つまり、ステップS206及びステップS207の処理を交互に実行することで、第1符号器51及び第1メタ識別器53それぞれの上記能力が向上する。これにより、第1メタ識別器53の識別性能が向上するのに対応して、この第1メタ識別器53による識別が失敗するように、学習済みの第1符号器51により得られる第1特徴量には、訓練データ122の取得に関する属性に対応する成分が含まれないようになる。第1特徴量には、メタデータ123以外の成分、例えば、各学習データセット121の訓練データ122を取得するドメインに共通に現れる情報に対応する成分が含まれるようになっていく。
したがって、本実施形態では、ステップS201、ステップS202、ステップS206、及びステップS207の機械学習の結果、学習済みの第2符号器52の符号化により得られる第2特徴量には、メタデータ123に対応する成分が含まれやすくなる。これに対して、学習済みの第1符号器51により得られる第1特徴量には、訓練データ122に含まれる特徴に関する、メタデータ123以外の情報に対応する成分が含まれやすくなる。推定器55は、この両方の特徴量から訓練データ122に含まれる特徴を推定するように訓練される。よって、学習済みの第1符号器51、第2符号器52、及び推定器55を利用することにより、対象データを取得するドメインに特有の情報、及び共通の情報の両方に基づいて、対象データに含まれる特徴を推定するタスクを実行することができる。そのため、対象データを取得するドメインに特有の情報が推定タスクに有益であるケースで、対象データに含まれる特徴を推定する精度を高めることができる。
また、対象データの取得に関する属性に特有の情報が推定タスクの精度に悪影響を及ぼす場合には、学習済みの第2符号器52により得られる第2特徴量は利用せずに、学習済みの第1符号器51により得られる第1特徴量に基づいて、対象データに含まれる特徴を推定することができる。本実施形態では、学習済みの第1符号器51及び他の推定器57を利用することで、対象データの取得に関する属性に対応する成分の影響を除外して、当該対象データに含まれる特徴を推定することができる。よって、本実施形態によれば、対象データの取得に関する属性の情報が推定タスクの精度に悪影響を及ぼすケースにおいても、対象データに含まれる特徴を推定する精度を高めることができる。
また、ステップS203の機械学習により、各符号器(51、52)と共に復号器56を訓練することで、第1特徴量及び第2特徴量から入力データを復元可能であることすることができる。すなわち、第1特徴量及び第2特徴量において、入力データに関する情報の欠損がないことを保証することができる。したがって、本実施形態によれば、入力データを特徴量に変換する過程で情報の欠損を抑えることができるため、推定器55及び他の推定器57それぞれによる推定タスクの精度を高めることができる。
また、ステップS204の機械学習により、正解データ124又は他の正解データ125により示される特徴の推定に利用可能な情報に対応する成分が第1特徴量に含まれることを保証することができる。これにより、第1特徴量が推定タスクに価値のない情報になるのを防止することができ、第1特徴量に基づく推定タスクの精度を高めることができる。
また、ステップS205の機械学習により、第1特徴量及び第2特徴量の間の相互情報量が少なくなる。その結果、メタデータ123に対応する成分は第2特徴量により含まれやすくなるのに対して、メタデータ123以外の情報に対応する成分が、第1特徴量に含まれやすく、かつ第2特徴量に含まれ難くすることができる。つまり、メタデータ123に対応する成分及びそれ以外の情報に対応する成分を第2特徴量及び第1特徴量に適切に分配することができる。よって、本実施形態によれば、メタデータ123以外の有用な情報が第1特徴量に含まれやすいようにし、これにより、第1特徴量に基づく推定タスクの精度を高めることができる。
(その他)
学習モデル5の機械学習の処理手順は、上記の例に限定されなくてもよく、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
(A)交互に繰り返す手順
例えば、上記実施形態では、制御部11は、ステップS201~ステップS207の一連の処理を繰り返し実行する過程で、ステップS206及びステップS207の処理を交互に繰り返し実行している。しかしながら、ステップS206及びステップS207の処理を交互に繰り返し実行する方法は、このような例に限定されなくてもよい。例えば、制御部11は、ステップS201~ステップS205の処理を事前学習として実行してもよい。この場合、ステップS201~ステップS205の処理による演算パラメータの値の調整が完了した後に、制御部11は、ステップS206及びステップS207による演算パラメータの値の調整を交互に繰り返してもよい。
(B)更新処理の手順
また、上記実施形態では、ステップS201~ステップS205の処理は個別に実行されている。しかしながら、ステップS201~ステップS205の処理により演算パラメータの値を調整する方法は、このような例に限定されなくてもよい。例えば、制御部11は、ステップS201~ステップS205の少なくともいずれかの組み合わせを同時に実行してもよい。例えば、ステップS201及びステップS202の処理を同時に実行する場面を想定する。この場面では、第1のステップにおいて、制御部11は、訓練データ122を各符号器(51、52)に入力し、第2メタ識別器54及び推定器55それぞれから出力値を取得してよい。第2のステップにおいて、制御部11は、第2メタ識別器54の出力値とメタデータ123との誤差、及び推定器55の出力値と正解データ124との誤差を算出してもよい。第3のステップにおいて、制御部11は、各誤差の勾配を逆伝播し、第1符号器51、第2符号器52、第2メタ識別器54及び推定器55に含まれる演算パラメータの誤差を算出してもよい。そして、第4のステップにおいて、制御部11は、算出された各誤差に基づいて、各演算パラメータの値を更新してもよい。
(C)訓練データに対するノイズの追加
また、本実施形態において、上記ステップS201~ステップS207では、制御部11は、訓練データ122と共にノイズ61を各符号器(51、52)に入力してもよい。その上で、制御部11は、各ステップS201~ステップS207の処理を実行してもよい。
訓練データ122と共にノイズ61を入力する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、制御部11は、訓練データ122にノイズ61を付与してよい。そして、制御部11は、ノイズ61の付与された訓練データ122を各符号器(51、52)に入力してもよい。
また、例えば、各符号器(51、52)の入力は、訓練データ122の第1のチャンネルに加えて、ノイズ61の第2のチャンネルを備えてよい。本実施形態では、各符号器(51、52)の入力層(511、521)が、訓練データ122を入力するための第1のニューロン(ノード)、及びノイズ61を入力するための第2のニューロン(ノード)を備えてよい。第1のニューロンが第1のチャンネルの一例であり、第2のニューロンが第2のチャンネルの一例である。この場合、制御部11は、各符号器(51、52)の第1のチャンネルに訓練データ122を入力し、かつ第2のチャンネルにノイズ61を入力することで、訓練データ122と共にノイズ61を入力することができる。
ノイズ61の種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。ノイズ61は、例えば、ランダムなノイズ等であってよい。なお、訓練データ122と共にノイズ61を入力する形態は、このような例に限定されなくてもよい。ステップS201~ステップS207のうちの少なくともいずれかにおいて、ノイズ61の入力は省略されてよい。
複数の学習データセット121のうちの一部の訓練データ122と他の訓練データ122とのランダム性が極めて相違する場合、又は他の訓練データ122に比べて一部の訓練データ122に大きな欠損が存在する場合、その相違の特性に対応する成分を第1特徴量に入らないようにするのは困難である。すなわち、その相違の特性を第1符号器51に学習させないようにするのは困難である。そのため、これらの場合には、第1メタ識別器53がその相違の特性から取得の属性を識別することができてしまい、ステップS207において、第1メタ識別器53による識別が失敗するように第1符号器51を訓練することが困難となってしまう可能性がある。これに対して、訓練データ122と共にノイズ61を入力することで、その相違の特性を埋めることができ、これによって、ステップS207の処理を適切に完了することができるようになる。
(D)第2特徴量に対するノイズの追加
また、本実施形態において、ステップS201~ステップS203では、制御部11は、訓練データ122を第2符号器52に与えることで第2符号器52から出力値(第2特徴量)を取得してもよい。そして、制御部11は、取得された出力値(第2特徴量)と共にノイズ62を第2メタ識別器54、推定器55、及び復号器56に入力し、各ステップS201~ステップS203による訓練を実行してもよい。
第2特徴量と共にノイズ62を入力する方法は、特に限定されなくてもよく、上記ノイズ61と同様に、実施の形態に応じて適宜選択されてよい。例えば、制御部11は、第2符号器52の出力値(第2特徴量)にノイズ62を付与してよい。そして、制御部11は、ノイズ62の付与された第2特徴量を第2メタ識別器54、推定器55、及び復号器56それぞれに入力してもよい。
また、例えば、第2メタ識別器54、推定器55、及び復号器56の入力は、第2特徴量の第1のチャンネルに加えて、ノイズ62のチャンネルを備えてもよい。本実施形態では、第2メタ識別器54、推定器55、及び復号器56それぞれの入力層(541、551、561)が、第2特徴量を入力するための第1のニューロン(ノード)、及びノイズ62を入力するための第2のニューロン(ノード)を備えてよい。第1のニューロンが第1のチャンネルの一例であり、第2のニューロンが第2のチャンネルの一例である。この場合、制御部11は、第2メタ識別器54、推定器55、及び復号器56それぞれの第1のチャンネルに第2特徴量を入力し、かつ第2のチャンネルにノイズ62を入力することで、第2特徴量と共にノイズ62を入力することができる。推定器55及び復号器56はそれぞれ、これらのチャンネルに加えて、第1特徴量のチャンネルを備える。ステップS202及びステップS203それぞれでは、制御部11は、上記入力と共に、推定器55及び復号器56それぞれの当該チャンネルに第1特徴量を入力する。
ノイズ62の種類は、特に限定されなくてもよく、上記ノイズ61と同様に、実施の形態に応じて適宜選択されてよい。ノイズ62は、例えば、ランダムなノイズ等であってよい。なお、第2特徴量と共にノイズ62を入力する形態は、このような例に限定されなくてもよい。ステップS201~ステップS203のうちの少なくともいずれかにおいて、ノイズ62の入力が省略されてよい。
この第2特徴量と共にノイズ62を入力して、上記各訓練を実施することにより、第2メタ識別器54、推定器55、及び復号器56それぞれに、データの取得に関する属性がノイズ62により相違するドメインを学習させることができる。これにより、データの取得に関する属性の相違にロバストで、高精度に推定タスクを遂行可能な学習済みの学習モデル5(第2メタ識別器54、推定器55、及び復号器56)を構築することができる。
(E)学習データセット
上記実施形態において、ステップS201、ステップS203、ステップS205~ステップS207の機械学習で使用される学習データセット121から、正解データ124及び他の正解データ125が省略されてよい。また、ステップS202~ステップS205の機械学習で使用される学習データセット121から、メタデータ123が省略されてよい。それぞれデータの省略された学習データセットが各ステップの機械学習に使用されてよい。
(ステップS103)
図8に戻り、ステップS103では、制御部11は、保存処理部113として動作し、学習済みの学習モデル5の各器51~57の構造及び演算パラメータの値を示す情報を学習結果データ128として生成する。各器51~57の構造は、例えば、ニューラルネットワークの層の数、各層に含まれるニューロンの数、隣接する層のニューロン同士の結合関係等により特定される。システム内で各器51~57の構造が共通化される場合、この構造に関する情報は学習結果データ128から省略されてよい。制御部11は、生成された学習結果データ128を所定の記憶領域に保存する。
所定の記憶領域は、例えば、制御部11内のRAM、記憶部12、記憶媒体91、外部記憶装置又はこれらの組み合わせであってよい。外部記憶装置は、例えば、NAS(Network Attached Storage)等のデータサーバであってもよい。この場合、制御部11は、通信インタフェース13を利用して、ネットワークを介してデータサーバに学習結果データ128を格納してもよい。また、外部記憶装置は、例えば、学習装置1に接続された外付けの記憶装置であってよい。学習結果データ128を保存すると、制御部11は、本動作例に係る一連の処理を終了する。
なお、生成された学習結果データ128は、任意のタイミングで推定装置2及びデータ生成装置3に提供されてよい。例えば、制御部11は、ステップS103の処理として又はステップS103の処理とは別に、学習結果データ128を推定装置2及びデータ生成装置3に転送してもよい。推定装置2及びデータ生成装置3はそれぞれ、この転送を受け付けることで、学習結果データ128を取得してもよい。また、例えば、推定装置2及びデータ生成装置3はそれぞれ、通信インタフェース(23、33)を利用して、学習装置1又はデータサーバにネットワークを介してアクセスすることで、学習結果データ128を取得してもよい。学習結果データ128は、推定装置2及びデータ生成装置3それぞれに予め組み込まれてもよい。
また、制御部11は、上記一連の処理を繰り返してもよい。この繰り返しの際に、制御部11は、学習済みの第1符号器51、第2符号器52及び復号器56を利用して、新たな訓練データ192を生成してもよい。
具体的には、制御部11は、学習モデル5の機械学習を実施した後に、データ取得部111として動作し、複数の学習データセット121の少なくともいずれかの訓練データ122を第1符号器51に入力し、第1符号器51の演算処理を実行してもよい。これにより、制御部11は、第1符号器51から出力値(第1特徴量)を取得してもよい。また、制御部11は、当該訓練データ122を第2符号器52にも入力し、第2符号器52の演算処理を実行することで、第2符号器52から出力値(第2特徴量)を取得してもよい。
そして、制御部11は、第1符号器51から取得された第1特徴量を復号器56に入力し、かつ第2符号器52から取得された第2特徴量と共にノイズ63を復号器56に入力し、復号器56の演算処理を実行してもよい。これにより、制御部11は、復号器56から出力データ(復号化データ)を取得してもよい。第2特徴量と共にノイズ63を入力する方法及びノイズ63の種類は、特に限定されなくてもよく、上記ノイズ62と同様であってよい。
制御部11は、学習処理部112として動作し、取得された復号化データを新たな訓練データ192として使用して、学習モデル5の機械学習を再度実施してもよい。なお、学習データセット121と同様に、新たな訓練データ192には、メタデータ193、正解データ194、及び他の正解データ195が関連付けられてよい。メタデータ193、正解データ194、及び他の正解データ195はそれぞれ適宜取得されてよい。
メタデータ193を取得する方法の一例として、例えば、制御部11は、第2符号器52から取得された第2特徴量と共にノイズ63を第2メタ識別器54に入力し、第2メタ識別器54の演算処理を実行してもよい。制御部11は、この演算処理により第2メタ識別器54から得られる出力値(メタ識別の結果)をメタデータ193として取得し、取得されたメタデータ193を訓練データ192に関連付けてもよい。また、例えば、制御部11は、入力装置14を介したオペレータの入力を受け付けて、オペレータの入力に応じてメタデータ193を生成してもよい。そして、制御部11は、生成されたメタデータ193を訓練データ192に関連付けてもよい。
正解データ194を取得する方法の一例として、例えば、制御部11は、第1特徴量、第2特徴量、及びノイズ63を推定器55に入力し、推定器55の演算処理を実行してもよい。制御部11は、この演算処理により推定器55から得られる出力値(識別の結果)を正解データ194として取得し、取得された正解データ194を訓練データ192に関連付けてもよい。また、例えば、制御部11は、入力装置14を介したオペレータの入力を受け付けて、オペレータの入力に応じて正解データ194を生成してもよい。そして、制御部11は、生成された正解データ194を訓練データ192に関連付けてもよい。また、例えば、新たな訓練データ192の生成に利用した元の訓練データ122に関連付けられている正解データ124により示される特徴が訓練データ122の取得に関する属性に依存しない場合、当該正解データ124が、正解データ194としても利用されてよい。
他の正解データ195を取得する方法の一例として、例えば、制御部11は、入力装置14を介したオペレータの入力を受け付けて、オペレータの入力に応じて他の正解データ195を生成してもよい。そして、制御部11は、生成された他の正解データ195を訓練データ192に関連付けてもよい。また、例えば、新たな訓練データ192の生成に利用した元の訓練データ122に関連付けられている他の正解データ125により示される特徴が訓練データ122の取得に関する属性に依存しない場合、当該他の正解データ125が、他の正解データ195としても利用されてよい。
訓練データ192に対してメタデータ193が得られている場合、制御部11は、上記ステップS201、ステップS206、及びステップS207の機械学習の処理に、当該訓練データ192を使用することができる。訓練データ192に対して正解データ194が得られている場合、制御部11は、上記ステップS202及びステップS204の機械学習の処理に、当該訓練データ192を使用することができる。訓練データ192に対して他の正解データ195が得られている場合、制御部11は、上記ステップS204の機械学習の処理に、当該訓練データ192を使用することができる。また、メタデータ193、正解データ194、及び他の正解データ195のいずれも得られていない場合であっても、制御部11は、上記ステップS203及びステップS205の機械学習の処理に、当該訓練データ192を使用することができる。
訓練データ192を使用した機械学習により、データの取得に関する属性がノイズ63により相違するドメインを学習モデル5に学習させることができる。これにより、データの取得に関する属性の相違にロバストで、高精度に推定タスクを遂行可能な学習済みの学習モデル5を構築することができる。なお、訓練データ192の使用方法は、このような例に限定されなくてもよい。例えば、制御部11は、訓練データ192を入力データとし、訓練データ192を生成する際に復号器56に入力した第2特徴量及びノイズ63を教師データとして利用し、第2符号器52を構成するニューラルネットワークの学習処理を実行してもよい。このように、生成された訓練データ192は、学習モデル5の構成要素の部分的な機械学習に使用されてもよい。
[推定装置]
次に、図10を用いて、推定装置2の動作例について説明する。図10は、本実施形態に係る推定装置2の処理手順の一例を示すフローチャートである。以下で説明する処理手順は、推定方法の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
(ステップS501)
ステップS501では、制御部21は、データ取得部211として動作し、推定タスクを遂行する対象となる対象データ221を取得する。本実施形態では、推定装置2は、外部インタフェース27を介して、センサSに接続されている。そのため、制御部21は、外部インタフェース27を介して、センサSにより生成されるセンシングデータを対象データ221として取得する。
ただし、対象データ221を取得する経路は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、推定装置2とは異なる他のコンピュータにセンサSが接続されていてもよい。この場合、制御部21は、他のコンピュータから対象データ221の送信を受け付けることで、対象データ221を取得してもよい。対象データ221を取得すると、制御部21は、次のステップS502に処理を進める。
(ステップS502)
ステップS502では、制御部21は、評価部212として動作し、学習装置1により訓練された第2符号器52及び第2メタ識別器54を利用して、対象データ221の取得に関する属性を識別する。
本実施形態では、制御部21は、学習結果データ128を参照して、学習済みの第2符号器52及び第2メタ識別器54の設定を行う。続いて、制御部21は、取得された対象データ221を第2符号器52に入力し、第2符号器52及び第2メタ識別器54の演算処理を実行する。すなわち、制御部21は、第2符号器52の入力層521に対象データ221を入力し、入力側から順に各層(521~523、541~543)に含まれる各ニューロンの発火判定を行う。この演算処理により、制御部21は、対象データ221の取得に関する属性を識別した結果に対応する出力値を第2メタ識別器54の出力層543から取得する。つまり、制御部21は、第2メタ識別器54の出力値を取得することで、対象データ221の取得に関する属性を識別することができる。対象データ221の取得に関する属性を識別すると、制御部21は、次のステップS503に処理を進める。
(ステップS503及びステップS504)
ステップS503では、制御部21は、評価部212として動作し、対象データ221の取得に関する属性を識別した結果に基づいて、推定器55又は他の推定器57による対象データ221に含まれる特徴の推定結果を採用するか否かを判定する。ステップS504では、制御部21は、ステップS503の判定結果に基づいて、処理の分岐先を決定する。
ステップS502による識別の結果が対象データ221の取得に関する属性の正解値に適合している場合、制御部21は、推定器55又は他の推定器57による推定結果を採用すると判定し、次のステップS505に処理を進める。一方、ステップS502による識別の結果が対象データ221の取得に関する属性の正解値に適合していない場合、制御部21は、推定器55又は他の推定器57による推定結果を採用しないと判定し、ステップS505及びステップS506の処理を省略し、本動作例に係る一連の処理を終了する。この場合、制御部21は、得られた対象データ221に対して推定タスクを適切に遂行不能である可能性が高いことを通知するメッセージを出力装置25に出力してもよい。
なお、対象データ221の取得に関する属性の正解値は適宜取得されてよい。制御部21は、例えば、制御部21は、入力装置24を介したオペレータの入力を受け付けて、当該オペレータの入力に基づいて、対象データ221の取得に関する属性の正解値を取得してもよい。また、例えば、制御部21は、センサSの利用形態、仕様、観測環境等を示す参照情報を参照することで、対象データ221の取得に関する属性の正解値を取得してもよい。この参照情報は、例えば、制御部21内のRAM、記憶部22、記憶媒体92、センサSの記憶領域、外部記憶装置等の所定の記憶領域に保持されていてよい。
(ステップS505)
ステップS505では、制御部21は、推定部213として動作し、学習装置1により訓練された第1符号器51、第2符号器52、及び推定器55を利用して、取得された対象データ221に含まれる特徴を推定する。或いは、制御部21は、学習装置1により訓練された第1符号器51及び他の推定器57を利用して、取得された対象データ221に含まれる特徴を推定する。
第1符号器51、第2符号器52、及び推定器55を推定タスクに利用する場合、制御部21は、学習結果データ128を参照し、学習済みの第1符号器51及び推定器55の設定を更に行う。この設定処理は、上記ステップS502と同時に実行されてよい。制御部21は、対象データ221を各符号器(51、52)の入力層(511、521)に入力し、第1符号器51、第2符号器52、及び推定器55の演算処理を実行する。これにより、制御部21は、対象データ221に含まれる特徴を推定した結果に対応する出力値を推定器55の出力層553から取得する。
一方、第1符号器51及び他の推定器57を推定タスクに利用する場合、制御部21は、学習結果データ128を参照し、学習済みの第1符号器51及び他の推定器57の設定を行う。この設定処理は、上記ステップS502と同時に実行されてよい。制御部21は、対象データ221を第1符号器51の入力層511に入力し、第1符号器51及び他の推定器57の演算処理を実行する。これにより、制御部21は、対象データ221に含まれる特徴を推定した結果に対応する出力値を他の推定器57の出力層573から取得する。
対象データ221の取得に関する属性に特有の情報が推定タスクに有用なケースでは、前者の方法により対象データ221に含まれる特徴を推定するのが好ましい。一方、対象データ221の取得に関する属性に特有の情報が推定タスクに悪影響を及ぼすケースでは、後者の方法により対象データ221に含まれる特徴を推定するのが好ましい。一例として、道路を走行する車両を観察するセンサにより得られたセンシングデータから当該道路の交通状況を推定する場面を想定する。この場面では、例えば、渋滞発生の確率、所定の場所までの所要時間等のセンサの観察場所に特有の交通状況を推定する場合には、前者の方法により推定タスクを遂行するのが好ましい。一方、観察時点における渋滞発生の有無、走行する車両台数の検出等のセンサの観察場所に比較的に依存性の低い交通状況を推定する場合には、後者の方法により推定タスクを遂行するのが好ましい。対象データ221に含まれる特徴の推定が完了すると、制御部21は、次のステップS506に処理を進める。
なお、本ステップS505で利用される他の推定器57は、学習装置1の上記一連の機械学習ではない別の機械学習で訓練された別の推定器に置き換えられてよい。すなわち、後者の方法において、制御部21は、他の推定器57ではなく、別の推定器を利用してもよい。第1符号器51の出力値を入力データとして使用し、他の正解データ125を教師データとして使用した機械学習により、当該別の推定器を構築することができる。この別の推定器の機械学習は、学習装置1により実施されてもよいし、推定装置2により実施されてもよいし、学習装置1及び推定装置2とは異なる別のコンピュータにより実施されてもよい。この場合、推定装置2は、別の推定器に関する学習結果データを任意のタイミングで取得してよい。
(ステップS506)
ステップS506では、制御部21は、出力部214として動作し、特徴を推定した結果に関する情報を出力する。
出力先及び出力する情報の内容はそれぞれ、実施の形態に応じて適宜決定されてよい。例えば、制御部21は、対象データ221に含まれる特徴を推定した結果をそのまま出力装置25に出力してもよい。また、例えば、制御部21は、推定の結果に基づいて、何らかの情報処理を実行してもよい。そして、制御部21は、その情報処理を実行した結果を推定の結果に関する情報として出力してもよい。この情報処理を実行した結果の出力には、推定の結果に応じて警告等の特定のメッセージを出力すること、推定の結果に応じて制御対象装置の動作を制御すること等が含まれてよい。出力先は、例えば、出力装置25、制御対象装置等であってよい。推定の結果に関する情報の出力が完了すると、制御部21は、本動作例に係る一連の処理を終了する。
(その他)
(A)処理順序について
なお、上記処理手順の一例では、制御部21は、ステップS505による推定処理を実行する前に、推定処理の結果を採用するか否かを判定し、推定処理の結果を採用しないと判定した場合には、ステップS505及びステップS506の処理の実行を省略している。しかしながら、推定処理の結果を採用しない方法は、このような例に限定されなくてもよい。例えば、制御部21は、ステップS505の処理を実行した後に、ステップS502及びステップS503の処理を実行してもよい。そして、推定処理の結果を採用しないと判定した場合には、制御部21は、ステップS505の処理の結果を破棄し、ステップS506の処理の実行を省略してもよい。一方、推定処理の結果を採用すると判定した場合に、制御部21は、ステップS506の処理を実行してもよい。
(B)複数の学習モデル5が存在するケース
また、複数の学習済みの学習モデル5が取得されている場合、制御部21は、上記評価の結果に基づいて、複数の学習済みの学習モデル5から、対象データ221に対して適切に推定タスクを遂行可能な学習済みの学習モデル5を選択してもよい。第2メタ識別器54によるメタ識別の結果が対象データ221の取得に関する属性の正解値に適合する学習済みの学習モデル5が、対象データ221に対して適切に推定タスクを遂行可能なものである。制御部21は、選択された学習済みの学習モデル5をステップS505の処理に利用してもよい。
(C)他の評価方法の一例
また、上記処理手順の一例では、学習済みの第2符号器52及び第2メタ識別器54を利用して、対象データ221に対して推定タスクを適切に遂行可能か否か、を評価している。しかしながら、この評価方法は、このような例に限定されなくてもよい。例えば、制御部21は、学習済みの第1符号器51、第2符号器52、及び復号器56を利用してもよい。
すなわち、上記ステップS502では、制御部21は、取得された対象データ221を各符号器(51、52)の入力層(511、521)に入力し、第1符号器51、第2符号器52、及び復号器56の演算処理を実行する。これにより、制御部21は、第1特徴量及び第2特徴量から対象データ221を復号化した結果に対応する出力データ(復号化データ)を復号器56の出力層563から取得する。
取得された復号化データが対象データ221から乖離するほど、対象データ221に対して推定タスクを適切に遂行不能である可能性が高いことを示す。そこで、制御部21は、取得された復号化データと対象データ221とを比較し、比較の結果に基づいて、復号化データが対象データ321に適合するか否かに応じて、推定器55又は他の推定器57による対象データ221に含まれる特徴の推定結果を採用するか否かを判定してもよい。復号化データと対象データ221との比較は、任意の方法で行われてよい。例えば、制御部21は、当該比較処理として、復号化データと対象データ221との一致度を算出してもよい。この場合、制御部21は、復号化データと対象データ221との一致度が閾値以上であることに応じて、推定器55又は他の推定器57による推定結果を採用すると判定してもよい。一方、制御部21は、復号化データと対象データ221との一致度が閾値未満であることに応じて、推定器55又は他の推定器57による推定結果を採用しないと判定してもよい。閾値は適宜決定されてよい。
[データ生成装置]
次に、図11を用いて、データ生成装置3の動作例について説明する。図11は、本実施形態に係るデータ生成装置3の処理手順の一例を示すフローチャートである。以下で説明する処理手順は、データ生成方法の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
(ステップS701)
ステップS701では、制御部31は、データ取得部311として動作し、新たなデータを生成する元となる対象データ321を取得する。本実施形態では、データ生成装置3は、外部インタフェース37を介して、センサSに接続されている。そのため、制御部31は、外部インタフェース37を介して、センサSにより生成されるセンシングデータを対象データ321として取得する。
ただし、対象データ321を取得する経路は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、データ生成装置3とは異なる他のコンピュータにセンサSが接続されていてもよい。この場合、制御部31は、他のコンピュータから対象データ321の送信を受け付けることで、対象データ321を取得してもよい。対象データ321を取得すると、制御部31は、次のステップS702に処理を進める。
(ステップS702及びステップS703)
ステップS702では、制御部31は、生成部312として動作し、学習装置1により訓練された第1符号器51に対象データ321を与えることで第1符号器51から出力値(第1特徴量)を取得する。次のステップS703では、制御部31は、訓練された復号器56を利用して、第2符号器52から取得される出力値(第2特徴量)を与えずに、第1符号器51より取得された出力値(第1特徴量)から対象データ321を復号化することで、復号化データを生成する。
本実施形態では、制御部31は、学習結果データ128を参照して、学習済みの第1符号器51及び復号器56の設定を行う。制御部31は、対象データ321を第1符号器51の入力層511に入力し、第1符号器51の演算処理を実行する。これにより、制御部31は、第1符号器51の出力層513から出力値(第1特徴量)を取得する。
続いて、制御部31は、第1符号器51から取得された第1特徴量を復号器56の入力層561の対応するニューロンに入力する。一方、制御部31は、復号器56の入力層561における第2特徴量の入力を受け付けるニューロン(ノード)には、対象データ321から得られる第2特徴量とは無関係なデータを入力する。
例えば、制御部31は、第2特徴量とは無関係なデータとして、ゼロ値で構成された数値データを入力層561の対応するニューロンに入力してもよい。また、例えば、制御部31は、第2特徴量とは無関係なデータとして、ランダムな値で構成された数値データを入力層561の対応するニューロンに入力してもよい。
また、例えば、制御部31は、学習結果データ128を参照して、学習済みの第2符号器52の設定を更に行ってよい。そして、制御部31は、対象データ321とは無関係なデータを第2符号器52に入力し、第2符号器52の演算処理を実行してもよい。対象データ321とは無関係なデータは、例えば、ゼロ値で構成された数値データ、ランダムな値で構成された数値データ、対象データ321を少なくとも部分的に変換したデータ、対象データ321とは相違する条件で取得されたデータ等であってよい。対象データ321の変換は、公知の数値変換方法により行われてよい。制御部31は、この演算処理により第2符号器52の出力層523から得られる出力値を、対象データ321から得られる第2特徴量とは無関係なデータとして入力層561の対応するニューロンに入力してもよい。
第1符号器51から取得された第1特徴量及び対象データ321から得られる第2特徴量とは無関係なデータを入力層561の対応するニューロンに入力した後、制御部31は、復号器56の演算処理を実行する。これにより、制御部31は、第2特徴量を与えずに、第1特徴量から対象データ321を復号化した結果に対応する出力データ(復号化データ)を復号器56の出力層563から取得する。この演算処理により復号化データを生成すると、制御部31は、次のステップS704に処理を進める。
(ステップS704)
ステップS704では、制御部31は、保存処理部313として動作し、生成された復号化データを新たなデータとして所定の記憶領域に保存する。所定の記憶領域は、例えば、例えば、制御部31内のRAM、記憶部32、記憶媒体93、外部記憶装置又はこれらの組み合わせであってよい。外部記憶装置は、例えば、NAS等のデータサーバであってもよい。この場合、制御部31は、通信インタフェース33を利用して、ネットワークを介してデータサーバに復号化データを格納してもよい。また、外部記憶装置は、例えば、データ生成装置3に接続された外付けの記憶装置であってよい。
生成される復号化データは、第2特徴量に関する情報(すなわち、対象データ321の取得に関する属性に対応する情報)を対象データ321から除外することで得られるデータに相当する。つまり、対象データ321からドメインに特有の情報を除外したデータを生成する場面に本実施形態を利用することができる。例えば、機械学習に使用した各学習データセット121において、訓練データ122が人物に対して得られており、メタデータ123が人物の個人情報を含んでいる場合、対象者の個人情報を除外した復号化データを生成することができる。生成された復号化データは、例えば、ドメインに共通に現れる特徴の分析、又は対象データからその特徴を推定するように構成される推定器の機械学習に利用されてよい。
制御部31は、これらの用途いずれかに利用可能に、生成された復号化データを所定の記憶領域に保存してよい。例えば、制御部31は、生成された復号化データを、これらの用途のいずれかで復号化データを利用するコンピュータにアクセス可能な記憶領域に保存してもよい。復号化データの保存が完了すると、制御部31は、本動作例に係る一連の処理を終了する。
なお、データ生成装置3により生成される新たなデータは復号化データに限定されなくてもよい。制御部31は、第1符号器51及び第2符号器52の少なくとも一方を利用して、第1特徴量及び第2特徴量の少なくとも一方を生成してもよい。この場合、制御部31は、生成された第1特徴量及び第2特徴量の少なくとも一方を新たなデータとして所定の記憶領域に保存してもよい。
第1特徴量は、対象データ321の取得に関する属性以外の情報(例えば、各ドメインに共通に現れる情報)に対応する成分を含みやすい。他方、第2特徴量は、対象データ321の取得に関する属性(すなわち、ドメインに特有の情報)に対応する成分を含みやすい。そのため、第1特徴量は、例えば、ドメインに共通に現れる特徴の分析、又は対象データからその特徴を推定するように構成される推定器の機械学習に利用されてよい。第2特徴量は、例えば、ドメインに特有の情報の分析、又は対象データからその特徴を推定するように構成される推定器の機械学習に利用されてよい。
また、制御部31は、上記訓練データ192と同様の方法で、新たなデータを生成してもよい。すなわち、制御部31は、対象データ321を各符号器(51、52)の入力層(511、521)に入力し、各符号器(51、52)の演算処理を実行してもよい。これにより、制御部31は、各符号器(51、52)の出力層(513、523)から各特徴量を取得してもよい。そして、制御部31は、第1特徴量、第2特徴量、及びノイズを復号器56の入力層561に入力し、復号器56の演算処理を実行してもよい。これにより、制御部31は、復号器56の出力層563から復号化データを取得してもよい。制御部31は、取得された復号化データを所定の記憶領域に保存してもよい。この生成方法によれば、対象データ321に対して、取得に関する属性をノイズの分だけ変更した新たなデータ(復号化データ)を生成することができる。データ生成装置3は、上記学習装置1の訓練データ122を対象データ321として取得し、この方法により生成された復号化データを訓練データ192として学習装置1に返信してもよい。これにより、学習装置1の保持する訓練データの量を増加させることができ、その訓練データが機械学習に使用されることで、比較的に高精度に推定タスクを実行可能な学習済みの学習モデル5を構築することができる。
また、制御部31は、上記推定装置2と同様の評価方法により、対象データ321に対して各符号器(51、52)が適切に特徴量を算出可能か否か、を評価してもよい。第2メタ識別器54によるメタ識別の結果が対象データ321の取得に関する属性の正解値に適合する、又は復号器56により得られる復号化データが対象データ321に適合する場合に、制御部31は、上記一連の処理により生成されたデータを採用してもよい。一方、第2メタ識別器54によるメタ識別の結果が対象データ321の取得に関する属性の正解値に適合しない、又は復号器56により得られる復号化データが対象データ321に適合しない場合、制御部31は、データの生成に関する上記一連の処理を省略してもよい。或いは、制御部31は、上記一連の処理により生成されたデータを破棄してもよい。
[特徴]
以上のとおり、本実施形態では、ステップS201~ステップS208の機械学習により、学習済みの第1符号器51、第2符号器52、及び推定器55は、対象データを取得するドメインに特有の情報、及び共通の情報の両方に基づいて、対象データに含まれる特徴を推定するタスクを実行する能力を習得することができる。また、学習済みの第1符号器51及び他の推定器57は、ドメインに特有の情報の影響を除外して、ドメインに共通の情報に基づいて、対象データに含まれる特徴を推定するタスクを実行する能力を習得することができる。そのため、推定装置2のステップS505において、対象データ221の取得に関する属性に特有の情報が推定タスクに有用なケース及び悪影響を及ぼすケースの両方で、比較的に高精度に推定タスクを実行可能な学習済みの学習モデル5を構築することができる。
また、本実施形態では、異なるドメインから得られた対象データ(211、311)に第1符号器51及び第2符号器52を共通に利用することができる。そのため、本実施形態では、対象データ(211、311)を取得するドメイン毎に学習済みの抽出器を用意する手間を省略することができる。
更には、学習済みの第2符号器52及び第2メタ識別器54を利用することで、ステップS502~ステップS504の処理により、学習済みの学習モデル5が対象データ221に対して適切に推定タスクを遂行可能か否か、を評価することができる。この評価の結果に基づいて、適切に推定タスクを遂行不能な対象データ221に対して学習済みの学習モデル5が利用されるのを防止したり、対象データ221に適切な学習済みの学習モデル5を選択したりすることができる。
したがって、本実施形態によれば、導入コストが比較的に低廉で、かつ対象データの取得に関する属性の相違にロバストな学習済みの学習モデル5を構築することができる。
§4 変形例
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良及び変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
<4.1>
上記実施形態に係る学習装置1、推定装置2、及びデータ生成装置3は、センサSにより得られるセンシングデータに含まれる特徴を推定する場面に適用されている。しかしながら、上記実施形態の適用範囲は、このような例に限定される訳ではない。上記実施形態は、センサ以外から得られたデータに含まれる特徴を推定する場面に適用されてよい。上記実施形態は、所定のデータに対して所定の推定タスクを遂行するあらゆる場面に適用可能である。以下、適用場面を限定した変形例を例示する。
(A)交通状況を予測する場面
図12は、第1変形例に係るシステムの適用場面の一例を模式的に例示する。本変形例は、道路を走行する車両の交通状況を予測する場面に上記実施形態を適用した例である。図12に示されるとおり、本実施形態に係るシステムは、学習装置1、予測装置2A、及びデータ生成装置3を備えている。上記実施形態と同様に、学習装置1、予測装置2A、及びデータ生成装置3は、ネットワークを介して互いに接続されてよい。本変形例に係るシステムは、取り扱うデータが異なる点を除き、上記実施形態と同様に構成されてよい。
本変形例に係る学習装置1は、取り扱うデータが異なる点を除き、上記実施形態と同様の処理手順により、機械学習の情報処理を実行する。すなわち、ステップS101では、学習装置1は、交通状況の予測を学習するための複数の学習データセット121Aを取得する。各学習データセット121A、上記学習データセット121と同様に、訓練データ122A、メタデータ123A、正解データ124A、及び他の正解データ125Aの組み合わせにより構成される。訓練データ122A、メタデータ123A、正解データ124A、及び他の正解データ125Aはそれぞれ、上記実施形態に係る訓練データ122、メタデータ123、正解データ124、及び他の正解データ125それぞれに対応する。
訓練データ122Aは、例えば、道路を走行する車両を観察するセンサSA又はこれと同種のセンサ(以下、同種のセンサを含んでセンサSAと称する)により得られたセンシングデータである。センサSAは、道路を走行する車両を観察可能であれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。センサSAは、例えば、カメラ、超音波センサ、赤外線センサ等であってよい。訓練データ122Aは、例えば、画像データ、単位時間当たりの車両の通過台数の計測結果を示すデータ、通過する車両の平均速度の計測結果を示すデータ等により構成されてよい。
メタデータ123Aは、訓練データ122Aの取得に関する属性として、例えば、道路の属性、センサSAの観察角度、センサSAの設置間隔、センサSAの種類、又はこれらの組み合わせを示す。道路の属性は、例えば、直線道路であるか否か、曲がり道であるか否か、有料道路の料金所があるか否か、合流点であるか否か、分岐点であるか否か等により示されてよい。
正解データ124A及び他の正解データ125Aはそれぞれ、訓練データ122Aに含まれる特徴として、例えば、道路の交通状況に関する情報を示す。本変形例では、正解データ124A及び他の正解データ125Aはそれぞれ、訓練データ122Aの取得された時点から未来の時点における道路の交通状況に関する情報を示してよい。道路の交通状況に関する情報は、例えば、渋滞発生の有無、渋滞発生の確率、発生した渋滞の継続時間、センサSAの設置場所から所定の場所までの所要時間等の情報を含んでよい。渋滞発生の有無は、所定時間後に渋滞が発生するか否かにより表現されてもよい。
なお、複数の道路区間それぞれにセンサSAが設置されており、各道路区間における渋滞発生の確率を予測するために、各センサSAにより得られたセンシングデータを訓練データ122Aとして収集した場面を想定する。この場面において、第1の道路区間と第2の道路区間との間で、得られた訓練データ122Aにおいて、渋滞発生時のデータと渋滞未発生時のデータとの割合が大きく相違すると、学習モデル5の機械学習が適切に実施できない可能性がある。この場合には、データの割合を調整するために、一部のデータを削除したり、新たなデータを追加したりする等の前処理が実施されてよい。
ステップS102では、学習装置1は、このような訓練データ122A、メタデータ123A、正解データ124A、及び他の正解データ125Aの組み合わせによりそれぞれ構成された複数の学習データセット121Aを使用して、上記実施形態と同様に、学習モデル5Aの機械学習を実施する。学習モデル5Aは、上記実施形態に係る学習モデル5と同様に構成されてよい。すなわち、学習モデル5Aは、第1符号器51A、第2符号器52A、第1メタ識別器53A、第2メタ識別器54A、推定器55A、復号器56A、及び他の推定器57Aを含んでいる。各器51A~57Aは、上記実施形態に係る各器51~57に対応する。各器51A~57Aの構成は、上記実施形態に係る各器51~57と同様であってよい。
当該機械学習により、第2符号器52Aは、メタデータ123Aにより示される訓練データ122Aの取得に関する属性に対応する成分を含む第2特徴量に当該訓練データ122Aを変換するように訓練される。第1符号器51Aは、訓練データ122Aの取得に関する属性以外の情報、例えば、訓練データ122Aを取得するドメインに共通に現れる情報に対応する成分を含む第1特徴量に当該訓練データ122Aを変換するように訓練される。学習モデル5Aにおける推定器55A又は他の推定器57Aを含む部分は、センサSAにより得られたセンシングデータから交通状況を予測する能力を獲得する。また、学習モデル5Aにおける復号器56Aを含む部分は、センサSAにより得られたセンシングデータと同種の復号化データを生成する能力を獲得する。
ステップS103では、学習装置1は、学習済みの学習モデル5Aに関する情報を学習結果データ128Aとして生成し、生成された学習結果データ128Aを所定の記憶領域に保存する。生成された学習結果データ128Aは、任意のタイミングで予測装置2A及びデータ生成装置3に提供されてよい。
データ生成装置3は、取り扱うデータが異なる点を除き、上記実施形態と同様の処理手順により、データ生成に関する情報処理を実行する。すなわち、データ生成装置3は、上記ステップS701~ステップS704の処理を実行する。これにより、データ生成装置3は、学習済みの第1符号器51A及び復号器56Aを利用して、対象センシングデータから復号化データを生成することができる。復号化データは、対象センシングデータの取得に関する属性に対応する情報を当該対象センシングデータから除外することで得られるデータに相当する。また、データ生成装置3は、学習済みの第1符号器51A、第2符号器52A、及び復号器56Aを利用して、取得に関する属性をノイズの分だけ変更した新たなデータ(復号化データ)を生成してもよい。更に、データ生成装置3は、学習済みの第1符号器51A及び第2符号器52Aの少なくとも一方を利用して、第1特徴量及び第2特徴量の少なくとも一方のデータを生成してもよい。
予測装置2Aは、上記推定装置2に対応する。予測装置2Aは、取り扱うデータが異なる点を除き、上記推定装置2と同様に構成されてよい。本変形例では、予測装置2Aは、ネットワークを介してセンサSAに接続される。予測装置2Aは、センサSAから対象センシングデータを取得する。そして、予測装置2Aは、学習装置1により構築された学習済みの学習モデル5Aを利用して、取得された対象センシングデータに基づいて、対象の道路の交通状況を予測する。
<予測装置のハードウェア構成>
図13Aは、本変形例に係る予測装置2Aのハードウェア構成の一例を模式的に例示する。図13Aに示されるとおり、本変形例に係る予測装置2Aは、上記推定装置2と同様に、制御部21、記憶部22、通信インタフェース23、入力装置24、出力装置25、ドライブ26及び外部インタフェース27が電気的に接続されたコンピュータである。予測装置2Aは、通信インタフェース23を介してセンサSAに接続される。センサSAは、交通状況を監視する所定の道路に適宜配置されてよい。ただし、予測装置2Aのハードウェア構成は、このような例に限定されなくてもよい。予測装置2Aの具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。予測装置2Aは、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC等であってよい。
本変形例に係る予測装置2Aの記憶部22は、予測プログラム82A、学習結果データ128A等の各種情報を記憶する。予測プログラム82A及び学習結果データ128Aは、上記実施形態に係る推定プログラム82及び学習結果データ128に対応する。予測プログラム82A及び学習結果データ128Aのうちの少なくともいずれかは、記憶媒体92に記憶されていてもよい。また、予測装置2Aは、記憶媒体92から、予測プログラム82A及び学習結果データ128Aのうちの少なくともいずれかを取得してもよい。
<予測装置のソフトウェア構成及び動作例>
図13Bは、本変形例に係る予測装置2Aのソフトウェア構成の一例を模式的に例示する。上記実施形態と同様に、予測装置2Aのソフトウェア構成は、制御部21による予測プログラム82Aの実行により実現される。図13Bに示されるとおり、道路を走行する車両を観察するセンサSAにより得られるセンシングデータを取り扱う点を除き、予測装置2Aのソフトウェア構成は、上記推定装置2のソフトウェア構成と同様である。これにより、予測装置2Aは、上記推定装置2の推定処理と同様に、予測処理に関する一連の処理を実行する。
すなわち、ステップS501では、制御部21は、データ取得部211として動作し、対象の道路における交通状況の反映された対象センシングデータ221AをセンサSAから取得する。ステップS502では、制御部21は、評価部212として動作し、学習装置1により訓練された第2符号器52A及び第2メタ識別器54Aを利用して、対象センシングデータ221Aの取得に関する属性を識別する。具体的には、制御部21は、学習結果データ128Aを参照し、学習済みの第2符号器52A及び第2メタ識別器54Aの設定を行う。続いて、制御部21は、取得された対象センシングデータ221Aを第2符号器52Aに入力し、第2符号器52A及び第2メタ識別器54Aの演算処理を実行する。この演算処理により、制御部21は、対象センシングデータ221Aの取得に関する属性を識別した結果に対応する出力値を第2メタ識別器54Aから取得する。
ステップS503では、制御部21は、評価部212として動作し、対象センシングデータ221Aの取得に関する属性を識別した結果に基づいて、推定器55A又は他の推定器57Aによる予測の結果を採用するか否かを判定する。ステップS504では、制御部21は、ステップS503の判定結果に基づいて、処理の分岐先を決定する。
ステップS502による識別の結果が対象センシングデータ221Aの取得に関する属性の正解値に適合している場合、制御部21は、推定器55A又は他の推定器57Aによる予測の結果を採用すると判定し、次のステップS505に処理を進める。一方、ステップS502による識別の結果が対象センシングデータ221Aの取得に関する属性の正解値に適合していない場合、制御部21は、推定器55A又は他の推定器57Aによる予測の結果を採用しないと判定し、ステップS505及びステップS506の処理を省略し、本変形例に係る一連の処理を終了する。
ステップS505では、制御部21は、予測部213Aとして動作し、学習装置1により訓練された第1符号器51A、第2符号器52A、及び推定器55Aを利用して、対象センシングデータ221Aから対象の道路における交通状況を予測する。或いは、制御部21は、学習装置1により訓練された第1符号器51A及び他の推定器57Aを利用して、対象センシングデータ221Aから対象の道路における交通状況を予測する。
具体的には、制御部21は、学習結果データ128Aを参照し、学習済みの第1符号器51A及び推定器55Aの設定を更に行う。制御部21は、対象センシングデータ221Aを各符号器(51A、52A)に入力し、第1符号器51A、第2符号器52A、及び推定器55Aの演算処理を実行する。これにより、制御部21は、対象センシングデータ221Aから対象の道路における交通状況を予測した結果に対応する出力値を推定器55Aから取得する。
或いは、制御部21は、学習結果データ128Aを参照し、学習済みの第1符号器51A及び他の推定器57Aの設定を行う。制御部21は、対象センシングデータ221Aを第1符号器51Aに入力し、第1符号器51A及び他の推定器57Aの演算処理を実行する。これにより、制御部21は、対象センシングデータ221Aから対象の道路における交通状況を予測した結果に対応する出力値を他の推定器57Aから取得する。
ステップS506では、制御部21は、出力部214として動作し、対象の道路における交通状況を予測した結果に関する情報を出力する。出力先及び出力情報はそれぞれ、上記実施形態と同様に、実施の形態に応じて適宜決定されてよい。例えば、制御部21は、交通状況を予測した結果をそのまま出力装置25に出力してもよい。また、例えば、制御部21は、交通状況を予測した結果を対象の道路の周辺に存在する車両の車載装置又はユーザ端末に配信してもよい。配信する範囲は適宜決定されてよい。この場合、制御部21は、車両の車載装置又はユーザ端末から位置情報を取得し、取得された位置情報に基づいて、配信する対象の車載装置又はユーザ端末を特定してよい。
また、例えば、ステップS505の処理により、対象の道路における交通渋滞の発生確率を予測した場面を想定する。この場面において、対象の道路において渋滞の発生確率が閾値以上である場合に、制御部21は、渋滞発生の確率が高いことを通知するためのメッセージを出力してもよい。閾値は適宜決定されてよい。また、制御部21は、対象の道路の周辺に存在する車両の車載装置又はユーザ端末に当該メッセージを配信してもよい。当該メッセージには、対象の道路を含むルートよりも渋滞の発生確率の低い迂回ルートを示す情報が含まれてもよい。更に、自動運転の動作を制御する制御装置を車両が備えている場面を想定する。この場面では、制御部21は、対象の道路において渋滞の発生確率が閾値以上である場合に、対象の道路を避けたルートを走行するように指示するための指令を、対象の道路の周辺に存在する車両の制御装置に配信してもよい。これに応じて、車両の制御装置は、対象の道路を避けたルートを走行するように車両の自動運転を制御してもよい。
本変形例によれば、センシングデータから交通状況を予測する場面において、導入コストが比較的に低廉で、かつセンシングデータの取得に関する属性の相違にロバストな学習済みの学習モデル5Aを構築することができる。
一例として、渋滞発生の確率又は渋滞の有無の予測は、道路の属性に依存する傾向がある。例えば、一車線の道路よりも二車線の道路の方が交通渋滞の発生する確率は低い。また、例えば、直線道路に比べて合流点の多い道路では交通渋滞の発生する確率が高い。そのため、渋滞発生の確率又は渋滞の有無を予測する場面では、データを取得するドメインに特有の情報が推定タスクに有用であると考えられる。これに対して、交通流の数及びその増減の変化傾向は、道路の属性に依存し難いため、発生した渋滞の継続時間を推定する場面では、データを取得するドメインに特有の情報が推定タスクの精度に悪影響を及ぼすと考えられる。
そこで、センサSAは、例えば、カメラであってよい。カメラは、道路に設置されていてもよいし、その道路を移動する人物が保持していてもよい。これに応じて、訓練データ122Aは、例えば、画像データであってよい。メタデータ123Aは、例えば、道路の属性及びセンサSAの設置間隔を示すように設定されてよい。正解データ124Aは、例えば、渋滞発生の確率又は渋滞の有無を示すように設定されてよい。他の正解データ125Bは、例えば、発生した渋滞の継続時間を示すように設定されてよい。
この設定により上記機械学習を実行することで、第1特徴量は、ドメインに共通の情報として、スポット的に発生する交通流の数及びその増減の変化傾向に対応する成分を含むようになる。一方、第2特徴量は、ドメインに特有の情報として、定常的に表れる地形起因の交通流の傾向、及び複数の地点で共起する交通流の傾向に対応する成分を含むようになる。定常的に表れる地形起因の交通流の傾向とは、例えば、サグ部で速度低下及び渋滞が生じやすい等の傾向である。また、複数の地点で共起するとは、例えば、高速道路の合流地点で渋滞が発生した場合に、その合流地点よりも手前の直線道路の地点でも渋滞が生じる可能性が高い等のように、ある地点の交通流が他の地点の交通流に影響を及ぼすことである。
その結果、予測装置2Aにおいて、学習済みの第1符号器51A、第2符号器52A、及び推定器55Aを利用することで、上記ドメインに特有の情報及び共通する情報の両方に基づいて、渋滞発生の確率又は渋滞の有無を予測する推定タスクを遂行することができる。そのため、対象の道路で渋滞発生の確率又は渋滞の有無を比較的に高い精度で予測することができる。また、予測装置2Aにおいて、学習済みの第1符号器51A及び他の推定器57を利用することで、上記ドメインに特有の情報を除外し、上記ドメインに共通の情報に基づいて、発生した渋滞の継続時間を予測する推定タスクを遂行することができる。そのため、対象の道路における渋滞の継続時間を比較的に高い精度で予測することができる。
(B)対象者の状態を推定する場面
図14は、第2変形例に係るシステムの適用場面の一例を模式的に例示する。本変形例は、対象者の状態を推定する場面に上記実施形態を適用した例である。図14では、対象者の状態を推定する場面の一例として、車両の運転者RBの状態を監視する場面が例示されている。運転者RBは、対象者の一例である。図14に示されるとおり、本実施形態に係るシステムは、学習装置1、監視装置2B、及びデータ生成装置3を備えている。上記実施形態と同様に、学習装置1、監視装置2B、及びデータ生成装置3は、ネットワークを介して互いに接続されてよい。本変形例に係るシステムは、取り扱うデータが異なる点を除き、上記実施形態と同様に構成されてよい。
本変形例に係る学習装置1は、取り扱うデータが異なる点を除き、上記実施形態と同様の処理手順により、機械学習の情報処理を実行する。すなわち、ステップS101では、学習装置1は、対象者の状態を推定するタスクを学習するための複数の学習データセット121Bを取得する。各学習データセット121B、上記学習データセット121と同様に、訓練データ122B、メタデータ123B、正解データ124B、及び他の正解データ125Bの組み合わせにより構成される。訓練データ122B、メタデータ123B、正解データ124B、及び他の正解データ125Bはそれぞれ、上記実施形態に係る訓練データ122、メタデータ123、正解データ124、及び他の正解データ125それぞれに対応する。
訓練データ122Bは、例えば、被験者の状態を観察するセンサSB又はこれと同種のセンサ(以下、同種のセンサを含んでセンサSBと称する)により得られたセンシングデータである。被験者は、例えば、車両を運転する運転者である。センサSBは、対象者の状態を観察可能であれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。センサSBは、例えば、カメラ、バイタルセンサ、又はこれらの組み合わせであってよい。カメラは、例えば、一般的なRGBカメラ、深度カメラ、赤外線カメラ等であってよい。また、バイタルセンサは、例えば、体温計、血圧計、脈拍計等であってよい。訓練データ122Bは、例えば、画像データ、バイタルデータ等により構成されてよい。
メタデータ123Bは、訓練データ122Bの取得に関する属性として、例えば、被験者の識別情報、センシングデータを取得した時間に関する属性、センサSBの設置状況に関する属性、センサSBの設置場所、又はこれらの組み合わせを示す。被験者の識別情報は、例えば、被験者を識別するための情報(識別子)、性別、年齢、体格、人種等を含んでよい。時間に関する属性は、例えば、時間帯の種別、曜日の種別、平日及び休日の別、月の種別、季節の種別等を含んでよい。センサSBの設置状況に関する属性は、例えば、センサSBの設置角度、センサSBの周囲の温度、センサSBと被験者との間の距離、センサSBの設置間隔等を含んでよい。
正解データ124B及び他の正解データ125Bはそれぞれ、訓練データ122Bに含まれる特徴として、例えば、被験者の状態を示す。被験者の状態は、例えば、被験者の健康状態を含んでよい。健康状態は、例えば、所定の疾患を発症する確率、体調変化が生じる確率等により表現されてよい。本変形例では、被験者の状態は、例えば、被験者の眠気の度合いを示す眠気度、被験者の疲労の度合いを示す疲労度、被験者の運転に対する余裕の度合いを示す余裕度、又はこれらの組み合わせを含んでよい。
ステップS102では、学習装置1は、このような訓練データ122B、メタデータ123B、正解データ124B、及び他の正解データ125Bの組み合わせによりそれぞれ構成された複数の学習データセット121Bを使用して、上記実施形態と同様に、学習モデル5Bの機械学習を実施する。学習モデル5Bは、上記実施形態に係る学習モデル5と同様に構成されてよい。すなわち、学習モデル5Bは、第1符号器51B、第2符号器52B、第1メタ識別器53B、第2メタ識別器54B、推定器55B、復号器56B、及び他の推定器57Bを含んでいる。各器51B~57Bは、上記実施形態に係る各器51~57に対応する。各器51B~57Bの構成は、上記実施形態に係る各器51~57と同様であってよい。
当該機械学習により、第2符号器52Bは、メタデータ123Bにより示される訓練データ122Bの取得に関する属性に対応する成分を含む第2特徴量に当該訓練データ122Bを変換するように訓練される。第1符号器51Bは、訓練データ122Bの取得に関する属性以外の情報、例えば、訓練データ122Bを取得するドメインに共通に現れる情報に対応する成分を含む第1特徴量に当該訓練データ122Bを変換するように訓練される。学習モデル5Bにおける推定器55B又は他の推定器57Bを含む部分は、センサSBにより得られたセンシングデータから運転者の状態を推定する能力を獲得する。また、学習モデル5Bにおける復号器56Bを含む部分は、センサSBにより得られたセンシングデータと同種の復号化データを生成する能力を獲得する。
ステップS103では、学習装置1は、学習済みの学習モデル5Bに関する情報を学習結果データ128Bとして生成し、生成された学習結果データ128Bを所定の記憶領域に保存する。生成された学習結果データ128Bは、任意のタイミングで監視装置2B及びデータ生成装置3に提供されてよい。
データ生成装置3は、取り扱うデータが異なる点を除き、上記実施形態と同様の処理手順により、データ生成に関する情報処理を実行する。すなわち、データ生成装置3は、上記ステップS701~ステップS704の処理を実行する。これにより、データ生成装置3は、学習済みの第1符号器51B及び復号器56Bを利用して、対象センシングデータから復号化データを生成することができる。復号化データは、対象センシングデータの取得に関する属性に対応する情報を当該対象センシングデータから除外することで得られるデータに相当する。また、データ生成装置3は、学習済みの第1符号器51B、第2符号器52B、及び復号器56Bを利用して、取得に関する属性をノイズの分だけ変更した新たなデータ(復号化データ)を生成してもよい。更に、データ生成装置3は、学習済みの第1符号器51B及び第2符号器52Bの少なくとも一方を利用して、第1特徴量及び第2特徴量の少なくとも一方のデータを生成してもよい。
監視装置2Bは、上記推定装置2に対応する。監視装置2Bは、取り扱うデータが異なる点を除き、上記推定装置2と同様に構成されてよい。本変形例では、監視装置2Bは、センサSBに接続されている。監視装置2Bは、センサSBから対象センシングデータを取得する。そして、監視装置2Bは、学習装置1により構築された学習済みの学習モデル5Bを利用して、取得された対象センシングデータに基づいて、運転者RBの状態を推定する。
<監視装置のハードウェア構成>
図15Aは、本変形例に係る監視装置2Bのハードウェア構成の一例を模式的に例示する。図15Aに示されるとおり、本変形例に係る監視装置2Bは、上記推定装置2と同様に、制御部21、記憶部22、通信インタフェース23、入力装置24、出力装置25、ドライブ26及び外部インタフェース27が電気的に接続されたコンピュータである。監視装置2Bは、外部インタフェース27を介してセンサSBに接続される。センサSBは、運転者RBの状態を観察可能な場所に適宜配置されてよい。例えば、センサSBがカメラである場合、センサSBは、運転者RBを撮影可能なように運転席の近傍に配置されてよい。また、例えば、センサSBがバイタルセンサである場合、センサSBは、運転者RBのバイタルを測定可能に適宜取り付けられてよい。ただし、監視装置2Bのハードウェア構成は、このような例に限定されなくてもよい。監視装置2Bの具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。監視装置2Bは、提供されるサービス専用に設計された情報処理装置の他、汎用のコンピュータ、スマートフォンを含む携帯電話、車載装置等であってもよい。
本変形例に係る監視装置2Bの記憶部22は、監視プログラム82B、学習結果データ128B等の各種情報を記憶する。監視プログラム82B及び学習結果データ128Bは、上記実施形態に係る推定プログラム82及び学習結果データ128に対応する。監視プログラム82B及び学習結果データ128Bのうちの少なくともいずれかは、記憶媒体92に記憶されていてもよい。また、監視装置2Bは、記憶媒体92から、監視プログラム82B及び学習結果データ128Bのうちの少なくともいずれかを取得してもよい。
<監視装置のソフトウェア構成及び動作例>
図15Bは、本変形例に係る監視装置2Bのソフトウェア構成の一例を模式的に例示する。上記実施形態と同様に、監視装置2Bのソフトウェア構成は、制御部21による監視プログラム82Bの実行により実現される。図15Bに示されるとおり、運転者RBの状態を観察するセンサSBにより得られるセンシングデータを取り扱う点を除き、監視装置2Bのソフトウェア構成は、上記推定装置2のソフトウェア構成と同様である。これにより、監視装置2Bは、上記推定装置2の推定処理と同様に、監視処理に関する一連の処理を実行する。
すなわち、ステップS501では、制御部21は、データ取得部211として動作し、運転者RBの状態の反映された対象センシングデータ221BをセンサSBから取得する。ステップS502では、制御部21は、評価部212として動作し、学習装置1により訓練された第2符号器52B及び第2メタ識別器54Bを利用して、対象センシングデータ221Bの取得に関する属性を識別する。具体的には、制御部21は、学習結果データ128Bを参照し、学習済みの第2符号器52B及び第2メタ識別器54Bの設定を行う。続いて、制御部21は、取得された対象センシングデータ221Bを第2符号器52Bに入力し、第2符号器52B及び第2メタ識別器54Bの演算処理を実行する。この演算処理により、制御部21は、対象センシングデータ221Bの取得に関する属性を識別した結果に対応する出力値を第2メタ識別器54Bから取得する。
ステップS503では、制御部21は、評価部212として動作し、対象センシングデータ221Bの取得に関する属性を識別した結果に基づいて、推定器55B又は他の推定器57Bによる推定の結果を採用するか否かを判定する。ステップS504では、制御部21は、ステップS503の判定結果に基づいて、処理の分岐先を決定する。
ステップS502による識別の結果が対象センシングデータ221Bの取得に関する属性の正解値に適合している場合、制御部21は、推定器55B又は他の推定器57Bによる推定の結果を採用すると判定し、次のステップS505に処理を進める。一方、ステップS502による識別の結果が対象センシングデータ221Bの取得に関する属性の正解値に適合していない場合、制御部21は、推定器55B又は他の推定器57Bによる推定の結果を採用しないと判定し、ステップS505及びステップS506の処理を省略し、本変形例に係る一連の処理を終了する。
ステップS505では、制御部21は、監視部213Bとして動作し、学習装置1により訓練された第1符号器51B、第2符号器52B、及び推定器55Bを利用して、対象センシングデータ221Bから運転者RBの状態を推定する。或いは、制御部21は、学習装置1により訓練された第1符号器51B及び他の推定器57Bを利用して、対象センシングデータ221Bから運転者RBの状態を推定する。
具体的には、制御部21は、学習結果データ128Bを参照し、学習済みの第1符号器51B及び推定器55Bの設定を更に行う。制御部21は、対象センシングデータ221Bを各符号器(51B、52B)に入力し、第1符号器51B、第2符号器52B、及び推定器55Bの演算処理を実行する。これにより、制御部21は、対象センシングデータ221Bから運転者RBの状態を推定した結果に対応する出力値を推定器55Bから取得する。
或いは、制御部21は、学習結果データ128Bを参照し、学習済みの第1符号器51B及び他の推定器57Bの設定を行う。制御部21は、対象センシングデータ221Bを第1符号器51Bに入力し、第1符号器51B及び他の推定器57Bの演算処理を実行する。これにより、制御部21は、対象センシングデータ221Bから運転者RBの状態を推定した結果に対応する出力値を他の推定器57Bから取得する。
ステップS506では、制御部21は、出力部214として動作し、運転者RBの状態を推定した結果に関する情報を出力する。出力先及び出力情報はそれぞれ、上記実施形態と同様に、実施の形態に応じて適宜決定されてよい。例えば、制御部21は、運転者RBの状態を推定した結果をそのまま出力装置25に出力してもよい。また、例えば、制御部21は、推定の結果に基づいて、何らかの情報処理を実行してもよい。そして、制御部21は、その情報処理を実行した結果を推定の結果に関する情報として出力してもよい。
当該情報処理の一例として、制御部21は、推定される運転者RBの状態に応じて、警告等の特定のメッセージを出力装置25に出力してもよい。具体例として、運転者RBの眠気度及び疲労度の少なくとも一方を運転者RBの状態として推定した場合、制御部21は、推定された眠気度及び疲労度の少なくとも一方が閾値を超えるか否かを判定してもよい。閾値は適宜設定されてよい。そして、眠気度及び疲労度の少なくとも一方が閾値を超えている場合に、制御部21は、駐車場等に停車し、休憩を取るように運転者RBに促す警告を出力装置25に出力してもよい。
また、例えば、自動運転の動作を制御する制御装置(不図示)を車両が備えている場合、制御部21は、運転者RBの状態を推定した結果に基づいて、車両の自動運転の動作を指示するための指令を制御装置に送信してもよい。一例として、制御装置が、車両の走行を制御する自動運転モード及び運転者RBの操舵により車両の走行を制御する手動運転モードの切り替え可能に構成されていると想定する。
このケースにおいて、自動運転モードで車両が走行しており、自動運転モードから手動運転モードへの切り替えを運転者RB又はシステムから受け付けた際に、制御部21は、推定された運転者RBの余裕度が閾値を超えているか否かを判定してもよい。そして、運転者RBの余裕度が閾値を超えている場合に、制御部21は、自動運転モードから手動運転モードへの切り替えを許可する指令を制御装置に送信してもよい。一方、運転者RBの余裕度が閾値以下である場合には、制御部21は、自動運転モードから手動運転モードへの切り替えを許可しない通知を制御装置に送信し、自動運転モードでの走行を維持するようにしてもよい。
また、手動運転モードで車両が走行している際に、制御部21は、推定された眠気度及び疲労度の少なくとも一方が閾値を超えるか否かを判定してもよい。そして、眠気度及び疲労度の少なくとも一方が閾値を超えている場合に、制御部21は、手動運転モードから自動運転モードに切り替えて、駐車場等の安全な場所に停車するように指示する指令を制御装置に送信してもよい。一方で、そうではない場合には、制御部21は、手動運転モードによる車両の走行を維持するようにしてもよい。
また、手動運転モードで車両が走行している際に、制御部21は、推定された余裕度が閾値以下であるか否かを判定してもよい。そして、余裕度が閾値以下である場合に、制御部21は、減速する指令を制御装置に送信してもよい。一方で、そうではない場合には、制御部21は、運転者RBの操作による車両の走行を維持してもよい。なお、車両の制御装置と監視装置2Bとは一体のコンピュータにより構成されてよい。
本変形例によれば、センシングデータから運転者の状態を推定する場面において、導入コストが比較的に低廉で、かつセンシングデータの取得に関する属性の相違にロバストな学習済みの学習モデル5Bを構築することができる。
一例として、上記眠気度、疲労度、余裕度等を含む体調の変化は、対象者の属性との関係性は低く、血圧等のバイタルの相対的な変化から推定することができる。そのため、体調の変化を推定する場面では、データを取得するドメインに特有の情報は推定タスクの精度に悪影響を及ぼすと考えられる。一方で、所定の疾患(例えば、生活習慣病)の発症リスクは対象者の属性に依存し得る。そのため、所定の疾患を発症する確率を推定する場面では、データを取得するドメインに特有の情報は推定タスクに有用であると考えられる。
そこで、センサSBは、例えば、血圧計等のバイタルセンサであってよい。これに応じて、訓練データ122Bは、例えば、血圧等のバイタルの測定データであってよい。メタデータ123Bは、例えば、対象者(被験者)の識別情報、及びデータを取得した時間(例えば、測定時間)に関する属性を示すように設定されてよい。正解データ124Bは、例えば、所定の疾患を発症する確率を示すように設定されてよい。他の正解データ125Bは、例えば、体調変化の生じる確率を示すように設定されてよい。
この設定により上記機械学習を実行することで、第1特徴量は、ドメインに共通の情報として、血圧値等のバイタル値の平均及び増減幅に対応する成分を含むようになる。一方、第2特徴量は、ドメインに特有の情報として、対象者の属性及びデータを取得した時間に基づくバイアスに対応する成分を含むようになる。
その結果、監視装置2Bにおいて、学習済みの第1符号器51B及び他の推定器57Bを利用することで、上記ドメインに特有の情報を除外し、上記ドメインに共通の情報に基づいて、運転者RBの体調変化を推定するタスクを遂行することができる。そのため、運転者RBの体調変化を比較的に高い精度で推定することができる。また、監視装置2Bにおいて、学習済みの第1符号器51B、第2符号器52B、及び推定器55Bを利用することで、上記ドメインに特有の情報及び共通の情報に基づいて、運転者RBが所定の疾患を発症する確率を推定するタスクを遂行することができる。そのため、運転者RBが所定の疾患を発症する確率を比較的に高い精度で推定することができる。
なお、状態を推定する対象となる対象者は、図14に例示される車両の運転者RBに限られなくてもよく、あらゆる人物を含んでよい。状態を予測する対象となる対象者は、例えば、オフィス、工場等で作業を行う作業者、バイタルを計測される被計測者等を含んでもよい。
図16は、対象者の状態を推定する他の場面の一例を模式的に例示する。図16に例示されるシステムは、学習装置1、診断装置2B2、及びデータ生成装置3を備えている。診断装置2B2は、上記監視装置2Bに対応する。図16の例では、診断装置2B2は、バイタルセンサSB2に接続され、このバイタルセンサSB2により被計測者の対象センシングデータを取得する。バイタルセンサSB2は、上記センサSBの一例である。診断装置2B2は、上記監視装置2Bと同様の処理により、被計測者の状態を推定する。被計測者の状態には、当該被計測者の健康状態が含まれてよい。健康状態は、例えば、健康であるか否か、病気になる予兆があるか否か等を含んでよい。正解データ124B及び他の正解データ125Bはそれぞれ、例えば、人物の健康状態の種別、対象の病気になる確率等を示すように構成されてよい。
(C)外観検査の場面
図17は、第3変形例に係るシステムの適用場面の一例を模式的に例示する。本変形例は、製品RCの外観検査を行う場面に上記実施形態を適用した例である。図17に示されるとおり、本実施形態に係るシステムは、学習装置1、検査装置2C、及びデータ生成装置3を備えている。上記実施形態と同様に、学習装置1、検査装置2C、及びデータ生成装置3は、ネットワークを介して互いに接続されてよい。本変形例に係るシステムは、取り扱うデータが異なる点を除き、上記実施形態と同様に構成されてよい。
本変形例に係る学習装置1は、取り扱うデータが異なる点を除き、上記実施形態と同様の処理手順により、機械学習の情報処理を実行する。すなわち、ステップS101では、学習装置1は、製品RCの状態を推定するタスクを学習するための複数の学習データセット121Cを取得する。各学習データセット121C、上記学習データセット121と同様に、訓練データ122C、メタデータ123C、正解データ124C、及び他の正解データ125Cの組み合わせにより構成される。訓練データ122C、メタデータ123C、正解データ124C、及び他の正解データ125Cはそれぞれ、上記実施形態に係る訓練データ122、メタデータ123、正解データ124、及び他の正解データ125それぞれに対応する。
訓練データ122Cは、例えば、製品RCの写る画像データである。訓練データ122Cは、カメラSC又はこれと同種のカメラ(以下、同種のカメラを含んでカメラSCと称する)により製品RC又はこれと同種の製品(以下、同種の製品を含んで製品RCと称する)を撮影することで得られてよい。カメラSCは、例えば、一般的なRGBカメラ、深度カメラ、赤外線カメラ等であってよい。
製品RCは、例えば、電子機器、電子部品、自動車部品、薬品、食品等の製造ラインで搬送される製品であってよい。電子部品は、例えば、基盤、チップコンデンサ、液晶、リレーの巻線等であってよい。自動車部品は、例えば、コンロッド、シャフト、エンジンブロック、パワーウィンドウスイッチ、パネル等であってよい。薬品は、例えば、包装済みの錠剤、未包装の錠剤等であってよい。製品は、製造過程完了後に生成される最終品であってもよいし、製造過程の途中で生成される中間品であってもよいし、製造過程を経過する前に用意される初期品であってもよい。
メタデータ123Cは、訓練データ122Cの取得に関する属性として、例えば、製品RCの属性、製品RCの撮影条件、製品RCを製造する工場の属性又はこれらの組み合わせを示す。製品RCの属性は、例えば、製品RCの種別、識別子、素材、外観(例えば、三次元形状)等を含んでよい。製品RCの撮影条件は、例えば、カメラSCの撮影角度、製品RCの向き、照明の条件、カメラSCと製品RCとの間の距離、カメラSCの性能に関する属性、背景条件等を含んでよい。カメラSCの性能に関する属性は、例えば、得られる画像データの種別(RGB画像か否か等)、解像度等を含んでよい。製品RCを製造する工場の属性は、例えば、工場の識別子、製品RCの生産能力等を含んでよい。
正解データ124C及び他の正解データ125Cはそれぞれ、訓練データ122Cに含まれる特徴として、例えば、製品RCの状態を示す。製品RCの状態は、例えば、欠陥に関するものであってよい。一例として、製品RCの状態は、製品RCに欠陥が含まれるか否か、製品RCに含まれる欠陥の種類、製品RCに含まれる欠陥の範囲又はこれらの組み合わせにより表現されてよい。欠陥は、例えば、傷、汚れ、クラック、打痕、バリ、色ムラ、異物混入等であってよい。
ステップS102では、学習装置1は、このような訓練データ122C、メタデータ123C、正解データ124C、及び他の正解データ125Cの組み合わせによりそれぞれ構成された複数の学習データセット121Cを使用して、上記実施形態と同様に、学習モデル5Cの機械学習を実施する。学習モデル5Cは、上記実施形態に係る学習モデル5と同様に構成されてよい。すなわち、学習モデル5Cは、第1符号器51C、第2符号器52C、第1メタ識別器53C、第2メタ識別器54C、推定器55C、復号器56C、及び他の推定器57Cを含んでいる。各器51C~57Cは、上記実施形態に係る各器51~57に対応する。各器51C~57Cの構成は、上記実施形態に係る各器51~57と同様であってよい。
当該機械学習により、第2符号器52Cは、メタデータ123Cにより示される訓練データ122Cの取得に関する属性に対応する成分を含む第2特徴量に当該訓練データ122Cを変換するように訓練される。第1符号器51Cは、訓練データ122Cの取得に関する属性以外の情報、例えば、訓練データ122Cを取得するドメインに共通に現れる情報に対応する成分を含む第1特徴量に当該訓練データ122Cを変換するように訓練される。学習モデル5Cにおける推定器55C又は他の推定器57Cを含む部分は、カメラSCにより得られた画像データに写る製品RCの状態を推定する能力を獲得する。また、学習モデル5Cにおける復号器56Cを含む部分は、カメラSCにより得られた画像データと同種の復号化データを生成する能力を獲得する。
ステップS103では、学習装置1は、学習済みの学習モデル5Cに関する情報を学習結果データ128Cとして生成し、生成された学習結果データ128Cを所定の記憶領域に保存する。生成された学習結果データ128Cは、任意のタイミングで検査装置2C及びデータ生成装置3に提供されてよい。
データ生成装置3は、取り扱うデータが異なる点を除き、上記実施形態と同様の処理手順により、データ生成に関する情報処理を実行する。すなわち、データ生成装置3は、上記ステップS701~ステップS704の処理を実行する。これにより、データ生成装置3は、学習済みの第1符号器51C及び復号器56Cを利用して、対象画像データから復号化データを生成することができる。復号化データは、対象画像データの取得に関する属性に対応する情報を当該対象画像データから除外することで得られるデータに相当する。また、データ生成装置3は、学習済みの第1符号器51C、第2符号器52C、及び復号器56Cを利用して、取得に関する属性をノイズの分だけ変更した新たなデータ(復号化データ)を生成してもよい。更に、データ生成装置3は、学習済みの第1符号器51C及び第2符号器52Cの少なくとも一方を利用して、第1特徴量及び第2特徴量の少なくとも一方のデータを生成してもよい。
検査装置2Cは、上記推定装置2に対応する。検査装置2Cは、取り扱うデータが異なる点を除き、上記推定装置2と同様に構成されてよい。本変形例では、検査装置2Cは、カメラSCに接続されている。検査装置2Cは、カメラSCから対象画像データを取得する。そして、検査装置2Cは、学習装置1により構築された学習済みの学習モデル5Cを利用して、取得された対象画像データに基づいて、製品RCの状態を推定ことで、製品RCの外観検査を実施する。
<検査装置のハードウェア構成>
図18Aは、本変形例に係る検査装置2Cのハードウェア構成の一例を模式的に例示する。図18Aに示されるとおり、本変形例に係る検査装置2Cは、上記推定装置2と同様に、制御部21、記憶部22、通信インタフェース23、入力装置24、出力装置25、ドライブ26及び外部インタフェース27が電気的に接続されたコンピュータである。検査装置2Cは、外部インタフェース27を介してカメラSCに接続される。カメラSCは、製品RCを撮影可能な場所に適宜配置されてよい。例えば、カメラSCは、製品RCを搬送するコンベア装置の近傍に配置されてよい。ただし、検査装置2Cのハードウェア構成は、このような例に限定されなくてもよい。検査装置2Cの具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。検査装置2Cは、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC、PLC(programmable logic controller)等であってもよい。
本変形例に係る検査装置2Cの記憶部22は、検査プログラム82C、学習結果データ128C等の各種情報を記憶する。検査プログラム82C及び学習結果データ128Cは、上記実施形態に係る推定プログラム82及び学習結果データ128に対応する。検査プログラム82C及び学習結果データ128Cのうちの少なくともいずれかは、記憶媒体92に記憶されていてもよい。また、検査装置2Cは、記憶媒体92から、検査プログラム82C及び学習結果データ128Cのうちの少なくともいずれかを取得してもよい。
<検査装置のソフトウェア構成及び動作例>
図18Bは、本変形例に係る検査装置2Cのソフトウェア構成の一例を模式的に例示する。上記実施形態と同様に、検査装置2Cのソフトウェア構成は、制御部21による検査プログラム82Cの実行により実現される。図18Bに示されるとおり、カメラSCにより得られる製品RCの写る画像データを取り扱う点を除き、検査装置2Cのソフトウェア構成は、上記推定装置2のソフトウェア構成と同様である。これにより、検査装置2Cは、上記推定装置2の推定処理と同様に、検査処理に関する一連の処理を実行する。
すなわち、ステップS501では、制御部21は、データ取得部211として動作し、製品RCの写る対象画像データ221CをカメラSCから取得する。ステップS502では、制御部21は、評価部212として動作し、学習装置1により訓練された第2符号器52C及び第2メタ識別器54Cを利用して、対象画像データ221Cの取得に関する属性を識別する。具体的には、制御部21は、学習結果データ128Cを参照し、学習済みの第2符号器52C及び第2メタ識別器54Cの設定を行う。続いて、制御部21は、取得された対象画像データ221Cを第2符号器52Cに入力し、第2符号器52C及び第2メタ識別器54Cの演算処理を実行する。この演算処理により、制御部21は、対象画像データ221Cの取得に関する属性を識別した結果に対応する出力値を第2メタ識別器54Cから取得する。
ステップS503では、制御部21は、評価部212として動作し、対象画像データ221Cの取得に関する属性を識別した結果に基づいて、推定器55C又は他の推定器57Cによる推定の結果を採用するか否かを判定する。ステップS504では、制御部21は、ステップS503の判定結果に基づいて、処理の分岐先を決定する。
ステップS502による識別の結果が対象画像データ221Cの取得に関する属性の正解値に適合している場合、制御部21は、推定器55C又は他の推定器57Cによる推定の結果を採用すると判定し、次のステップS505に処理を進める。一方、ステップS502による識別の結果が対象画像データ221Cの取得に関する属性の正解値に適合していない場合、制御部21は、推定器55C又は他の推定器57Cによる推定の結果を採用しないと判定し、ステップS505及びステップS506の処理を省略し、本変形例に係る一連の処理を終了する。
ステップS505では、制御部21は、検査部213Cとして動作し、学習装置1により訓練された第1符号器51C、第2符号器52C、及び推定器55Cを利用して、対象画像データ221Cに写る製品RCの状態を推定する。或いは、制御部21は、学習装置1により訓練された第1符号器51C及び他の推定器57Cを利用して、対象画像データ221Cに写る製品RCの状態を推定する。
具体的には、制御部21は、学習結果データ128Cを参照し、学習済みの第1符号器51C及び推定器55Cの設定を更に行う。制御部21は、対象画像データ221Cを各符号器(51C、52C)に入力し、第1符号器51C、第2符号器52C、及び推定器55Cの演算処理を実行する。これにより、制御部21は、対象画像データ221Cに写る製品RCの状態を推定した結果に対応する出力値を推定器55Cから取得する。
或いは、制御部21は、学習結果データ128Cを参照し、学習済みの第1符号器51C及び他の推定器57Cの設定を行う。制御部21は、対象画像データ221Cを第1符号器51Cに入力し、第1符号器51C及び他の推定器57Cの演算処理を実行する。これにより、制御部21は、対象画像データ221Cに写る製品RCの状態を推定した結果に対応する出力値を他の推定器57Cから取得する。
ステップS506では、制御部21は、出力部214として動作し、製品RCの状態を推定した結果に関する情報を出力する。出力先及び出力情報はそれぞれ、上記実施形態と同様に、実施の形態に応じて適宜決定されてよい。例えば、制御部21は、製品RCの状態を推定した結果をそのまま出力装置25に出力してもよい。また、例えば、制御部21は、製品RCに欠陥が含まれる場合に、そのことを知らせるための警告を出力装置25に出力してもよい。また、例えば、検査装置2Cが製品RCを搬送するコンベア装置(不図示)に接続される場合、製品RCの状態を推定した結果に基づいて、欠陥のない製品RCと欠陥のある製品RCとを別のラインで搬送されるようにコンベア装置を制御してもよい。
本変形例によれば、画像データに写る製品の状態を推定する場面において、導入コストが比較的に低廉で、かつセンシングデータの取得に関する属性の相違にロバストな学習済みの学習モデル5Cを構築することができる。
製品RCに欠陥が存在するか否かを推定する場面では、欠陥の写る状態に変動を及ぼし得る、製品RCの表面材質、コンベアの背景の柄、照明条件等のドメインに特有の情報が推定精度に悪影響を及ぼす可能性がある。一方で、製品RCに生じる欠陥は、当該製品RCの種別に依存し得る。そのため、製品RCに存在する欠陥の種別を推定する場面では、製品RCの種類等のドメインに特有の情報が欠陥の種別の推定に有用である可能性がある。
そこで、メタデータ123Cは、例えば、製品RCの種別、製品RCの素材、製品RCの外観、製品RCの向き、照明条件、及び背景条件を示すように設定されてよい。正解データ124Cは、例えば、欠陥の種別を示すように設定されてよい。他の正解データ125Cは、例えば、欠陥の有無を示すように設定されてよい。
この設定により上記機械学習を実行することで、第1特徴量は、ドメインに共通の情報として、欠陥の外観に対応する成分を含むようになる。一方、第2特徴量は、ドメインに特有の情報として、背景条件(例えば、コンベアの柄)、製品RCの外観、欠陥の外観と種類との対応関係、及び製品RCの種別毎の所定の欠陥の発生確率に対応する成分を含むようになる。
その結果、検査装置2Cにおいて、学習済みの第1符号器51C及び他の推定器57Cを利用することで、上記ドメインに特有の情報を除外し、上記ドメインに共通の情報に基づいて、欠陥の有無を推定するタスクを遂行することができる。そのため、製品RCに欠陥が存在するか否かを比較的に高い精度で推定することができる。また、検査装置2Cにおいて、学習済みの第1符号器51C、第2符号器52C、及び推定器55Cを利用することで、上記ドメインに特有の情報及び共通の情報に基づいて、欠陥の種別を推定するタスクを遂行することができる。そのため、製品RCに欠陥が存在する場合に、その欠陥の種別を比較的に高い精度で推定することができる。
(D)人物検出の場面
図19は、第4変形例に係るシステムの適用場面の一例を模式的に例示する。本変形例は、画像データに写る人物の属性を推定する場面に上記実施形態を適用した例である。図19に示されるとおり、本実施形態に係るシステムは、学習装置1、監視装置2D、及びデータ生成装置3を備えている。上記実施形態と同様に、学習装置1、監視装置2D、及びデータ生成装置3は、ネットワークを介して互いに接続されてよい。本変形例に係るシステムは、取り扱うデータが異なる点を除き、上記実施形態と同様に構成されてよい。
本変形例に係る学習装置1は、取り扱うデータが異なる点を除き、上記実施形態と同様の処理手順により、機械学習の情報処理を実行する。すなわち、ステップS101では、学習装置1は、人物の属性を推定するタスクを学習するための複数の学習データセット121Dを取得する。各学習データセット121D、上記学習データセット121と同様に、訓練データ122D、メタデータ123D、正解データ124D、及び他の正解データ125Dの組み合わせにより構成される。訓練データ122D、メタデータ123D、正解データ124D、及び他の正解データ125Dはそれぞれ、上記実施形態に係る訓練データ122、メタデータ123、正解データ124、及び他の正解データ125それぞれに対応する。
訓練データ122Dは、例えば、被験者等の人物の写る画像データである。訓練データ122Dは、カメラSD又はこれと同種のカメラ(以下、同種のカメラを含んでカメラSDと称する)により被験者を撮影することで得られてよい。カメラSDは、例えば、一般的なRGBカメラ、深度カメラ、赤外線カメラ等であってよい。
メタデータ123Dは、訓練データ122Dの取得に関する属性として、例えば、カメラSDの動作設定に関する属性、カメラSDの設置状況に関する属性、訓練データ122Dを取得した時間に関する属性、カメラSDの設置場所に関する属性又はこれらの組み合わせを示す。カメラSDの動作設定に関する属性は、例えば、計測範囲の設定値、解像度、サンプリング周波数の設定値を含んでよい。カメラSDの設置状況に関する属性は、例えば、カメラSDの設置角度等を含んでよい。時間に関する属性は、例えば、時間帯の種別、曜日の種別、平日及び休日の別、月の種別、季節の種別等を含んでよい。
正解データ124D及び他の正解データ125Dはそれぞれ、訓練データ122Dに含まれる特徴として、例えば、人物の写る範囲(バウンディングボックス)、人物の識別情報、人物の状態又はこれらの組み合わせを示す。人物の識別情報は、例えば、人物の識別子、名前、性別、年齢、体格、人種等を含んでもよい。人物の状態は、例えば、人物の行動、人物の姿勢等を含んでもよい。なお、正解データ124D又は他の正解データ125Dが人物のバウンディングボックスを示す場合、人物の属性を推定することは、画像データ内の人物の写る範囲を検出することを含む。
ステップS102では、学習装置1は、このような訓練データ122D、メタデータ123D、正解データ124D、及び他の正解データ125Dの組み合わせによりそれぞれ構成された複数の学習データセット121Dを使用して、上記実施形態と同様に、学習モデル5Dの機械学習を実施する。学習モデル5Dは、上記実施形態に係る学習モデル5と同様に構成されてよい。すなわち、学習モデル5Dは、第1符号器51D、第2符号器52D、第1メタ識別器53D、第2メタ識別器54D、推定器55D、復号器56D、及び他の推定器57Dを含んでいる。各器51D~57Dは、上記実施形態に係る各器51~57に対応する。各器51D~57Dの構成は、上記実施形態に係る各器51~57と同様であってよい。
当該機械学習により、第2符号器52Dは、メタデータ123Dにより示される訓練データ122Dの取得に関する属性に対応する成分を含む第2特徴量に当該訓練データ122Dを変換するように訓練される。第1符号器51Dは、訓練データ122Dの取得に関する属性以外の情報、例えば、訓練データ122Dを取得するドメインに共通に現れる情報に対応する成分を含む第1特徴量に当該訓練データ122Dを変換するように訓練される。学習モデル5Dにおける推定器55D又は他の推定器57Dを含む部分は、カメラSDにより得られた画像データから人物の属性を推定する能力を獲得する。また、学習モデル5Dにおける復号器56Dを含む部分は、カメラSDにより得られた画像データと同種の復号化データを生成する能力を獲得する。
ステップS103では、学習装置1は、学習済みの学習モデル5Dに関する情報を学習結果データ128Dとして生成し、生成された学習結果データ128Dを所定の記憶領域に保存する。生成された学習結果データ128Dは、任意のタイミングで監視装置2D及びデータ生成装置3に提供されてよい。
データ生成装置3は、取り扱うデータが異なる点を除き、上記実施形態と同様の処理手順により、データ生成に関する情報処理を実行する。すなわち、データ生成装置3は、上記ステップS701~ステップS704の処理を実行する。これにより、データ生成装置3は、学習済みの第1符号器51D及び復号器56Dを利用して、対象画像データから復号化データを生成することができる。復号化データは、対象画像データの取得に関する属性に対応する情報を当該対象画像データから除外することで得られるデータに相当する。また、データ生成装置3は、学習済みの第1符号器51D、第2符号器52D、及び復号器56Dを利用して、取得に関する属性をノイズの分だけ変更した新たなデータ(復号化データ)を生成してもよい。更に、データ生成装置3は、学習済みの第1符号器51D及び第2符号器52Dの少なくとも一方を利用して、第1特徴量及び第2特徴量の少なくとも一方のデータを生成してもよい。
監視装置2Dは、上記推定装置2に対応する。監視装置2Dは、取り扱うデータが異なる点を除き、上記推定装置2と同様に構成されてよい。本変形例では、監視装置2Dは、ネットワークを介してカメラSDに接続される。監視装置2Dは、カメラSDから対象画像データを取得する。そして、監視装置2Dは、学習装置1により構築された学習済みの学習モデル5Dを利用して、取得された対象画像データに写る人物の属性を推定する。
<監視装置のハードウェア構成>
図20Aは、本変形例に係る監視装置2Dのハードウェア構成の一例を模式的に例示する。図20Aに示されるとおり、本変形例に係る監視装置2Dは、上記推定装置2と同様に、制御部21、記憶部22、通信インタフェース23、入力装置24、出力装置25、ドライブ26及び外部インタフェース27が電気的に接続されたコンピュータである。監視装置2Dは、通信インタフェース23を介してカメラSDに接続される。カメラSDは適宜配置されてよい。一例として、カメラSDは、駅のホーム、街頭、店舗内等に設置されてよい。ただし、監視装置2Dのハードウェア構成は、このような例に限定されなくてもよい。監視装置2Dの具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。監視装置2Dは、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC等であってよい。
本変形例に係る監視装置2Dの記憶部22は、監視プログラム82D、学習結果データ128D等の各種情報を記憶する。監視プログラム82D及び学習結果データ128Dは、上記実施形態に係る推定プログラム82及び学習結果データ128に対応する。監視プログラム82D及び学習結果データ128Dのうちの少なくともいずれかは、記憶媒体92に記憶されていてもよい。また、監視装置2Dは、記憶媒体92から、監視プログラム82D及び学習結果データ128Dのうちの少なくともいずれかを取得してもよい。
<監視装置のソフトウェア構成及び動作例>
図20Bは、本変形例に係る監視装置2Dのソフトウェア構成の一例を模式的に例示する。上記実施形態と同様に、監視装置2Dのソフトウェア構成は、制御部21による監視プログラム82Dの実行により実現される。図20Bに示されるとおり、カメラSDにより得られる人物の写る画像データを取り扱う点を除き、監視装置2Dのソフトウェア構成は、上記推定装置2のソフトウェア構成と同様である。これにより、監視装置2Dは、上記推定装置2の推定処理と同様に、監視処理に関する一連の処理を実行する。
すなわち、ステップS501では、制御部21は、データ取得部211として動作し、人物の写り得る対象画像データ221DをカメラSDから取得する。ステップS502では、制御部21は、評価部212として動作し、学習装置1により訓練された第2符号器52D及び第2メタ識別器54Dを利用して、対象画像データ221Dの取得に関する属性を識別する。具体的には、制御部21は、学習結果データ128Dを参照し、学習済みの第2符号器52D及び第2メタ識別器54Dの設定を行う。続いて、制御部21は、取得された対象画像データ221Dを第2符号器52Dに入力し、第2符号器52D及び第2メタ識別器54Dの演算処理を実行する。この演算処理により、制御部21は、対象画像データ221Dの取得に関する属性を識別した結果に対応する出力値を第2メタ識別器54Dから取得する。
ステップS503では、制御部21は、評価部212として動作し、対象画像データ221Dの取得に関する属性を識別した結果に基づいて、推定器55D又は他の推定器57Dによる推定の結果を採用するか否かを判定する。ステップS504では、制御部21は、ステップS503の判定結果に基づいて、処理の分岐先を決定する。
ステップS502による識別の結果が対象画像データ221Dの取得に関する属性の正解値に適合している場合、制御部21は、推定器55D又は他の推定器57Dによる推定の結果を採用すると判定し、次のステップS505に処理を進める。一方、ステップS502による識別の結果が対象画像データ221Dの取得に関する属性の正解値に適合していない場合、制御部21は、推定器55D又は他の推定器57Dによる推定の結果を採用しないと判定し、ステップS505及びステップS506の処理を省略し、本変形例に係る一連の処理を終了する。
ステップS505では、制御部21は、監視部213Dとして動作し、学習装置1により訓練された第1符号器51D、第2符号器52D、及び推定器55Dを利用して、対象画像データ221Dに写る人物の属性を推定する。或いは、制御部21は、学習装置1により訓練された第1符号器51D及び他の推定器57Dを利用して、対象画像データ221Dに写る人物の属性を推定する。
具体的には、制御部21は、学習結果データ128Dを参照し、学習済みの第1符号器51D及び推定器55Dの設定を更に行う。制御部21は、対象画像データ221Dを各符号器(51D、52D)に入力し、第1符号器51D、第2符号器52D、及び推定器55Dの演算処理を実行する。これにより、制御部21は、対象画像データ221Dに写る人物の属性を推定した結果に対応する出力値を推定器55Dから取得する。
或いは、制御部21は、学習結果データ128Dを参照し、学習済みの第1符号器51D及び他の推定器57Dの設定を行う。制御部21は、対象画像データ221Dを第1符号器51Dに入力し、第1符号器51D及び他の推定器57Dの演算処理を実行する。これにより、制御部21は、対象画像データ221Dに写る人物の属性を推定した結果に対応する出力値を他の推定器57Dから取得する。
ステップS506では、制御部21は、出力部214として動作し、人物の属性を推定した結果に関する情報を出力する。例えば、制御部21は、人物の属性を推定した結果をそのまま出力装置25に出力してもよい。また、例えば、人物の写る範囲を人物の属性として推定した場合、制御部21は、対象画像データ221Dを出力し、出力される対象画像データ221D上で推定される人物の写る範囲を示してもよい。また、例えば、カメラSDが駅のホーム等に設置されており、駅のホームから転落する予兆がある等のイベントを人物の状態として推定した場合に、制御部21は、推定されるイベントの種別に応じた警告等のメッセージを出力してもよい。
本変形例によれば、画像データに写る人物の属性を推定する場面において、導入コストが比較的に低廉で、かつセンシングデータの取得に関する属性の相違にロバストな学習済みの学習モデル5Dを構築することができる。
一例として、人物の写る範囲を推定する場面では、人物の写る状態に変動を及ぼし得る、カメラSDの解像度、撮影の時間帯、撮影の季節等のドメインに特有の情報が推定精度に悪影響を及ぼす可能性がある。一方で、行動、姿勢等の人物の状態は、人物の存在する場所に依存し得る。そのため、人物の状態を推定する場面では、カメラSDの設置場所等のドメインに特有の情報が人物の状態の推定に有用である可能性がある。
そこで、メタデータ123Dは、例えば、カメラSDの設置場所、カメラSDの解像度、撮影の時間帯、及び撮影の季節を示すように設定されてよい。正解データ124Dは、例えば、人物の状態を示すように設定されてよい。他の正解データ125Dは、例えば、人物の写る範囲を示すように設定されてよい。
この設定により上記機械学習を実行することで、第1特徴量は、ドメインに共通の情報として、バイアスの除去された人物の外観(例えば、平均的な人物の外観)に対応する成分を含むようになる。一方、第2特徴量は、ドメインに特有の情報として、カメラSDの設置場所、カメラSDの解像度、撮影の時間帯、及び撮影の季節による人物の写り方、並びに地点毎の人物の姿勢の発生確率に対応する成分を含むようになる。
その結果、監視装置2Dにおいて、学習済みの第1符号器51D及び他の推定器57Dを利用することで、上記ドメインに特有の情報を除外し、上記ドメインに共通の情報に基づいて、人物の写る範囲を推定するタスクを遂行することができる。そのため、対象画像データ221D内において人物の写る範囲を比較的に高い精度で推定することができる。また、監視装置2Dにおいて、学習済みの第1符号器51D、第2符号器52D、及び推定器55Dを利用することで、上記ドメインに特有の情報及び共通の情報の両方に基づいて、人物の状態を推定するタスクを遂行することができる。そのため、行動、姿勢等の人物の状態を比較的に高い精度で推定することができる。
(E)運転状況を監視する場面
図21は、第5変形例に係るシステムの適用場面の一例を模式的に例示する。本変形例は、車載センサにより得られるセンシングデータから車両外部の状況を推定する場面に上記実施形態を適用した例である。図21に示されるとおり、本実施形態に係るシステムは、学習装置1、監視装置2E、及びデータ生成装置3を備えている。上記実施形態と同様に、学習装置1、監視装置2E、及びデータ生成装置3は、ネットワークを介して互いに接続されてよい。本変形例に係るシステムは、取り扱うデータが異なる点を除き、上記実施形態と同様に構成されてよい。
本変形例に係る学習装置1は、取り扱うデータが異なる点を除き、上記実施形態と同様の処理手順により、機械学習の情報処理を実行する。すなわち、ステップS101では、学習装置1は、車両外部の状況を推定するタスクを学習するための複数の学習データセット121Eを取得する。各学習データセット121E、上記学習データセット121と同様に、訓練データ122E、メタデータ123E、正解データ124E、及び他の正解データ125Eの組み合わせにより構成される。訓練データ122E、メタデータ123E、正解データ124E、及び他の正解データ125Eはそれぞれ、上記実施形態に係る訓練データ122、メタデータ123、正解データ124、及び他の正解データ125それぞれに対応する。
訓練データ122Eは、例えば、車載センサにより得られるセンシングデータである。訓練データ122Eは、車載センサSE又はこれと同種のセンサ(以下、同種のセンサを含んで車載センサSEと称する)により車両外部周辺の状況を撮影することで得られてよい。車載センサSEは、例えば、カメラ、Lidarセンサ、ミリ波レーダ、超音波センサ等であってよい。カメラは、例えば、一般的なRGBカメラ、深度カメラ、赤外線カメラ等であってよい。訓練データ122Eは、例えば、画像データ、各種センサの測定データ等により構成されてよい。
メタデータ123Eは、訓練データ122Eの取得に関する属性として、例えば、車両の属性、車載センサSEの観測環境に関する属性、又はこれらの組み合わせを示す。車両の属性は、例えば、車両の種別、車両の識別番号、車両の仕様等を含んでよい。観測環境に関する属性は、例えば、場所、天候、気温、湿度、照度等を含んでもよい。更に、観測環境に関する属性は、例えば、市街地であるか否か、田舎道であるか否か、道路の種別等の景観に関する情報を含んでもよい。
正解データ124E及び他の正解データ125Eはそれぞれ、訓練データ122Eに含まれる特徴として、例えば、車両の外部環境に関する情報、事故のリスク、車両外部の状況に応じた車両に対する動作指令、又はこれらの組み合わせを示す。車両の外部環境に関する情報は、例えば、車両の走行する道路に関する情報、車両の走行方向に存在する物体に関する情報等を含んでよい。車両の走行する道路に関する情報は、例えば、走行車線の種別、道路の種別等を示す情報含んでよい。車両の走行方向に存在する物体は、例えば、道路、信号機、障害物(人、物)等であってよい。車両の走行方向に存在する物体に関する情報は、例えば、道路の路面状態、信号機の点灯状態、障害物の有無、障害物の種別、障害物の寸法、障害物の大きさ、障害物の速度、障害物のイベント情報等を含んでよい。障害物のイベント情報は、例えば、人又は車両の飛び出し、急発進、急停車、車線変更等を示してよい。このイベント情報は、例えば、障害物の有無、障害物の速度等のその他の情報により表現されてよい。事故のリスクは、例えば、事故の種別及びその事故の発生確率により示されてよい。車両外部の状況に応じた車両に対する動作指令は、例えば、アクセル量、ブレーキ量、ハンドル操舵角、ライトの点灯、クラクションの使用等により規定されてよい。なお、正解データ124E又は他の正解データ125Eが車両外部の状況に応じた車両に対する動作指令を示す場合、車両外部の状況を推定することは、車両外部の状況に応じて車両に対する動作指令を決定することを含む。
ステップS102では、学習装置1は、このような訓練データ122E、メタデータ123E、正解データ124E、及び他の正解データ125Eの組み合わせによりそれぞれ構成された複数の学習データセット121Eを使用して、上記実施形態と同様に、学習モデル5Eの機械学習を実施する。学習モデル5Eは、上記実施形態に係る学習モデル5と同様に構成されてよい。すなわち、学習モデル5Eは、第1符号器51E、第2符号器52E、第1メタ識別器53E、第2メタ識別器54E、推定器55E、復号器56E、及び他の推定器57Eを含んでいる。各器51E~57Eは、上記実施形態に係る各器51~57に対応する。各器51E~57Eの構成は、上記実施形態に係る各器51~57と同様であってよい。
当該機械学習により、第2符号器52Eは、メタデータ123Eにより示される訓練データ122Eの取得に関する属性に対応する成分を含む第2特徴量に当該訓練データ122Eを変換するように訓練される。第1符号器51Eは、訓練データ122Eの取得に関する属性以外の情報、例えば、訓練データ122Eを取得するドメインに共通に現れる情報に対応する成分を含む第1特徴量に当該訓練データ122Eを変換するように訓練される。学習モデル5Eにおける推定器55E又は他の推定器57Eを含む部分は、車載センサSEにより得られたセンシングデータから車両外部の状況を推定する能力を獲得する。また、学習モデル5Eにおける復号器56Eを含む部分は、車載センサSEにより得られたセンシングデータと同種の復号化データを生成する能力を獲得する。
ステップS103では、学習装置1は、学習済みの学習モデル5Eに関する情報を学習結果データ128Eとして生成し、生成された学習結果データ128Eを所定の記憶領域に保存する。生成された学習結果データ128Eは、任意のタイミングで監視装置2E及びデータ生成装置3に提供されてよい。
データ生成装置3は、取り扱うデータが異なる点を除き、上記実施形態と同様の処理手順により、データ生成に関する情報処理を実行する。すなわち、データ生成装置3は、上記ステップS701~ステップS704の処理を実行する。これにより、データ生成装置3は、学習済みの第1符号器51E及び復号器56Eを利用して、対象センシングデータから復号化データを生成することができる。復号化データは、対象センシングデータの取得に関する属性に対応する情報を当該対象センシングデータから除外することで得られるデータに相当する。また、データ生成装置3は、学習済みの第1符号器51E、第2符号器52E、及び復号器56Eを利用して、取得に関する属性をノイズの分だけ変更した新たなデータ(復号化データ)を生成してもよい。更に、データ生成装置3は、学習済みの第1符号器51E及び第2符号器52Eの少なくとも一方を利用して、第1特徴量及び第2特徴量の少なくとも一方のデータを生成してもよい。
監視装置2Eは、上記推定装置2に対応する。監視装置2Eは、取り扱うデータが異なる点を除き、上記推定装置2と同様に構成されてよい。本変形例では、監視装置2Eは、車載センサSEに接続されている。監視装置2Eは、車載センサSEから対象センシングデータを取得する。そして、監視装置2Eは、学習装置1により構築された学習済みの学習モデル5Eを利用して、取得された対象センシングデータから車両外部の状況を推定する。
<監視装置のハードウェア構成>
図22Aは、本変形例に係る監視装置2Eのハードウェア構成の一例を模式的に例示する。図22Aに示されるとおり、本変形例に係る監視装置2Eは、上記推定装置2と同様に、制御部21、記憶部22、通信インタフェース23、入力装置24、出力装置25、ドライブ26及び外部インタフェース27が電気的に接続されたコンピュータである。監視装置2Eは、外部インタフェース27を介して車載センサSEに接続される。車載センサSEは、車両外部の状況を監視可能であれば、実施の形態に応じて適宜配置されてよい。ただし、監視装置2Eのハードウェア構成は、このような例に限定されなくてもよい。監視装置2Eの具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。監視装置2Eは、提供されるサービス専用に設計された情報処理装置の他、汎用のコンピュータ、スマートフォンを含む携帯電話、車載装置等であってもよい。
本変形例に係る監視装置2Eの記憶部22は、監視プログラム82E、学習結果データ128E等の各種情報を記憶する。監視プログラム82E及び学習結果データ128Eは、上記実施形態に係る推定プログラム82及び学習結果データ128に対応する。監視プログラム82E及び学習結果データ128Eのうちの少なくともいずれかは、記憶媒体92に記憶されていてもよい。また、監視装置2Eは、記憶媒体92から、監視プログラム82E及び学習結果データ128Eのうちの少なくともいずれかを取得してもよい。
<監視装置のソフトウェア構成及び動作例>
図22Bは、本変形例に係る監視装置2Eのソフトウェア構成の一例を模式的に例示する。上記実施形態と同様に、監視装置2Eのソフトウェア構成は、制御部21による監視プログラム82Eの実行により実現される。図22Bに示されるとおり、車載センサSEにより得られるセンシングデータを取り扱う点を除き、監視装置2Eのソフトウェア構成は、上記推定装置2のソフトウェア構成と同様である。これにより、監視装置2Eは、上記推定装置2の推定処理と同様に、監視処理に関する一連の処理を実行する。
すなわち、ステップS501では、制御部21は、データ取得部211として動作し、車両外部の状況の反映された対象センシングデータ221Eを車載センサSEから取得する。ステップS502では、制御部21は、評価部212として動作し、学習装置1により訓練された第2符号器52E及び第2メタ識別器54Eを利用して、対象センシングデータ221Eの取得に関する属性を識別する。具体的には、制御部21は、学習結果データ128Eを参照し、学習済みの第2符号器52E及び第2メタ識別器54Eの設定を行う。続いて、制御部21は、取得された対象センシングデータ221Eを第2符号器52Eに入力し、第2符号器52E及び第2メタ識別器54Eの演算処理を実行する。この演算処理により、制御部21は、対象センシングデータ221Eの取得に関する属性を識別した結果に対応する出力値を第2メタ識別器54Eから取得する。
ステップS503では、制御部21は、評価部212として動作し、対象センシングデータ221Eの取得に関する属性を識別した結果に基づいて、推定器55E又は他の推定器57Eによる推定の結果を採用するか否かを判定する。ステップS504では、制御部21は、ステップS503の判定結果に基づいて、処理の分岐先を決定する。
ステップS502による識別の結果が対象センシングデータ221Eの取得に関する属性の正解値に適合している場合、制御部21は、推定器55E又は他の推定器57Eによる推定の結果を採用すると判定し、次のステップS505に処理を進める。一方、ステップS502による識別の結果が対象センシングデータ221Eの取得に関する属性の正解値に適合していない場合、制御部21は、推定器55E又は他の推定器57Eによる推定の結果を採用しないと判定し、ステップS505及びステップS506の処理を省略し、本変形例に係る一連の処理を終了する。
ステップS505では、制御部21は、監視部213Eとして動作し、学習装置1により訓練された第1符号器51E、第2符号器52E、及び推定器55Eを利用して、対象センシングデータ221Eから車両外部の状況を推定する。或いは、制御部21は、学習装置1により訓練された第1符号器51E及び他の推定器57Eを利用して、対象センシングデータ221Eから車両外部の状況を推定する。
具体的には、制御部21は、学習結果データ128Eを参照し、学習済みの第1符号器51E及び推定器55Eの設定を更に行う。制御部21は、対象センシングデータ221Eを各符号器(51E、52E)に入力し、第1符号器51E、第2符号器52E、及び推定器55Eの演算処理を実行する。これにより、制御部21は、対象センシングデータ221Eから車両外部の状況を推定した結果に対応する出力値を推定器55Eから取得する。
或いは、制御部21は、学習結果データ128Eを参照し、学習済みの第1符号器51E及び他の推定器57Eの設定を行う。制御部21は、対象センシングデータ221Eを第1符号器51Eに入力し、第1符号器51E及び他の推定器57Eの演算処理を実行する。これにより、制御部21は、対象センシングデータ221Eから車両外部の状況を推定した結果に対応する出力値を他の推定器57Eから取得する。
ステップS506では、制御部21は、出力部214として動作し、車両外部の状況を推定した結果に関する情報を出力する。例えば、制御部21は、車両外部の状況を推定した結果をそのまま出力装置25に出力してもよい。また、例えば、制御部21は、推定される車両の外部環境及び事故のリスクの少なくとも一方に基づいて、車両の走行に危険の生じる可能性があるか否かを判定してもよい。車両の走行に危険の生じる可能性があると判定するケースは、実施の形態に応じて適宜設定されてよい。例えば、人又は車両の飛び出し、急発進、急停車、車線変更等のイベントが生じると推定されているケース、事故の発生確率が閾値以上であるケース等において、制御部21は、車両の走行に危険の生じる可能性があると判定してもよい。閾値は適宜設定されてよい。車両の走行に危険の生じる可能性があると判定した場合に、制御部21は、その危険を知らせるための警告を出力装置25に出力してもよい。
また、車両外部の状況に応じた車両に対する動作指令を示す正解データ124E又は他の正解データ125Eが与えられている場合、制御部21は、車両外部の状況を推定した結果として、車両外部の状況に応じた車両に対する動作指令を取得する。制御部21は、取得された動作指令に基づいて車両の動作を直接的に制御してもよい。或いは、車両が、当該車両の動作を制御する制御装置を備える場合、制御部21は、取得された動作指令を制御装置に与えることで、車両の動作を間接的に制御してもよい。
なお、推定結果に基づいて、車両の動作を制御する方法は、このような例に限定されなくてもよい。制御部21は、例えば、上記車両の外部環境又は事故リスクの推定結果に基づいて、車両の動作方針を決定してもよい。推定結果と車両の動作方針との対応関係は、例えば、データテーブル等のデータにより与えられてよい。このデータは、例えば、制御部21内のRAM、記憶部22、記憶媒体92、外部記憶装置、又はこれらの組み合わせに保持されていてよい。制御部21は、このデータを参照することで、車両の外部環境又は事故リスクを推定した結果に応じて、車両の動作方針を決定してよい。車両の動作方針は、例えば、アクセル量、ブレーキ量、ハンドル操舵角、ライトの点灯、クラクションの使用等により規定されてよい。そして、制御部21は、決定された動作方針に従って、車両の動作を直接的に又は間接的に制御してもよい。
本変形例によれば、センシングデータから車両外部の状況を推定する場面において、導入コストが比較的に低廉で、かつセンシングデータの取得に関する属性の相違にロバストな学習済みの学習モデル5Eを構築することができる。
一例として、車両の外部環境が同じであっても、車両に対する動作指令及び事故のリスクは、車両の走行する道路の種別、天候等に応じて相違し得る。そのため、車両外部の状況に応じた動作指令又は事故のリスクを推定する場面では、観測環境に関する属性等のドメインに特有の情報が動作指令の決定に有用である可能性がある。これに対して、車両の外部環境を推定する場面では、背景の相違が外乱となって、推定タスクの精度に悪影響を及ぼす可能性がある。
そこで、車載センサSEは、例えば、カメラ、Lidarセンサ、ミリ波レーダ等であってよい。訓練データ122Eは、例えば、画像データ、測定データ等であってよい。メタデータ123Eは、例えば、車両の種別、天候、道路の種別、市街地であるか否か、及び田舎道であるか否かを示すように設定されてよい。正解データ124Eは、車両外部の状況に応じた車両に対する動作指令又は事故のリスクを示すように設定されてよい。他の正解データ125Eは、車両の外部環境に関する情報を示すように設定されてよい。
この設定により上記機械学習を実行することで、第1特徴量は、ドメインに共通の情報として、訓練データ122Eに表れる道路の形状、歩行者、及び他の車両に関する情報に対応する成分を含むようになる。一方、第2特徴量は、ドメインに特有の情報として、訓練データ122Eに表れる道路の種別、天候、及び風景に関する情報に対応する成分を含むようになる。
その結果、監視装置2Eにおいて、学習済みの第1符号器51E及び他の推定器57Eを利用することで、上記ドメインに特有の情報を除外し、上記ドメインに共通の情報に基づいて、車両の外部環境を推定するタスクを遂行することができる。そのため、車両の外部環境を比較的に高い精度で推定することができる。また、監視装置2Eにおいて、学習済みの第1符号器51E、第2符号器52E、及び推定器55Eを利用することで、上記ドメインに特有の情報及び共通の情報の両方に基づいて、車両外部の状況に応じた車両に対する動作指令又は事故のリスクを推定するタスクを遂行することができる。そのため、車両外部の状況に応じた車両に対する動作指令又は事故のリスクを比較的に高い精度で推定することができる。
(F)物品又はサービスを推奨する場面
図23は、第6変形例に係るシステムの適用場面の一例を模式的に例示する。本変形例は、顧客の購買、ウェブの閲覧等の行動の履歴データに基づいて推奨される物品又はサービスを推定する場面に上記実施形態を適用した例である。図23に示されるとおり、本実施形態に係るシステムは、学習装置1、推奨装置2F、及びデータ生成装置3を備えている。上記実施形態と同様に、学習装置1、推奨装置2F、及びデータ生成装置3は、ネットワークを介して互いに接続されてよい。本変形例に係るシステムは、取り扱うデータが異なる点を除き、上記実施形態と同様に構成されてよい。
本変形例に係る学習装置1は、取り扱うデータが異なる点を除き、上記実施形態と同様の処理手順により、機械学習の情報処理を実行する。すなわち、ステップS101では、学習装置1は、顧客に推奨される商品又はサービスを推奨するタスクを学習するための複数の学習データセット121Fを取得する。各学習データセット121F、上記学習データセット121と同様に、訓練データ122F、メタデータ123F、正解データ124F、及び他の正解データ125Fの組み合わせにより構成される。訓練データ122F、メタデータ123F、正解データ124F、及び他の正解データ125Fはそれぞれ、上記実施形態に係る訓練データ122、メタデータ123、正解データ124、及び他の正解データ125それぞれに対応する。
訓練データ122Fは、例えば、顧客の履歴データである。履歴データは、例えば、顧客の購買、ウェブにおける広告の閲覧、検索、リンクの軌跡、過去に推奨された商品又はサービス等を示す情報を含んでよい。履歴データは、例えば、PC、携帯電話等のユーザ端末を顧客が操作することにより蓄積されてよい。履歴データの蓄積場所は、例えば、顧客のユーザ端末、閲覧に供されたウェブサーバ等であってよい。訓練データ122Fは、対象の商品又はサービスを示すデータはラベルとして更に含んでもよい。つまり、本変形例では、学習モデル5Fは、条件付きの学習モデルであってよい。以下、訓練データ122Fは、対象の商品又はサービスを示すデータはラベルとして更に含むものとして説明する。ただし、学習モデル5Fの構成は、このような例に限定されなくてもよい。例えば、学習モデル5Fは、商品又はサービスのカテゴリ毎に用意され、カテゴリ毎の的中率を出力するように構成されてよい。この場合、訓練データ122Fは、ラベルを含んでいなくてもよい。
メタデータ123Fは、訓練データ122Fの取得に関する属性として、例えば、顧客の識別情報、推奨情報を掲載する媒体の種別又はこれらの組み合わせを示す。顧客の識別情報は、例えば、顧客の識別子、性別、年齢、体格、人種等を含んでもよい。推奨情報を掲載する媒体は、例えば、ウェブページ、メールマガジン、デジタルサイネージ等であってよい。
正解データ124F及び他の正解データ125Fはそれぞれ、訓練データ122Fに含まれる特徴として、例えば、対象の商品又はサービスを所定の媒体で推奨した際の的中率を示す。的中率は、例えば、対象の商品又はサービスを推奨された全顧客数に対する対象の商品又はサービスを購入した顧客数により算出されてよい。的中率は、商品又はサービスのカテゴリ毎に与えられてもよい。
ステップS102では、学習装置1は、このような訓練データ122F、メタデータ123F、正解データ124F、及び他の正解データ125Fの組み合わせによりそれぞれ構成された複数の学習データセット121Fを使用して、上記実施形態と同様に、学習モデル5Fの機械学習を実施する。学習モデル5Fは、上記実施形態に係る学習モデル5と同様に構成されてよい。すなわち、学習モデル5Fは、第1符号器51F、第2符号器52F、第1メタ識別器53F、第2メタ識別器54F、推定器55F、復号器56F、及び他の推定器57Fを含んでいる。各器51F~57Fは、上記実施形態に係る各器51~57に対応する。各器51F~57Fの構成は、上記実施形態に係る各器51~57と同様であってよい。
当該機械学習により、第2符号器52Fは、メタデータ123Fにより示される訓練データ122Fの取得に関する属性に対応する成分を含む第2特徴量に当該訓練データ122Fを変換するように訓練される。第1符号器51Fは、訓練データ122Fの取得に関する属性以外の情報、例えば、訓練データ122Fを取得するドメインに共通に現れる情報に対応する成分を含む第1特徴量に当該訓練データ122Fを変換するように訓練される。学習モデル5Fにおける推定器55F又は他の推定器57Fを含む部分は、商品又はサービスを推奨した際の的中率を推定する能力を獲得する。また、学習モデル5Fにおける復号器56Fを含む部分は、顧客の履歴データと同種の復号化データを生成する能力を獲得する。
ステップS103では、学習装置1は、学習済みの学習モデル5Fに関する情報を学習結果データ128Fとして生成し、生成された学習結果データ128Fを所定の記憶領域に保存する。生成された学習結果データ128Fは、任意のタイミングで推奨装置2F及びデータ生成装置3に提供されてよい。
データ生成装置3は、取り扱うデータが異なる点を除き、上記実施形態と同様の処理手順により、データ生成に関する情報処理を実行する。すなわち、データ生成装置3は、上記ステップS701~ステップS704の処理を実行する。これにより、データ生成装置3は、学習済みの第1符号器51F及び復号器56Fを利用して、対象履歴データから復号化データを生成することができる。復号化データは、対象履歴データの取得に関する属性に対応する情報を当該対象履歴データから除外することで得られるデータに相当する。また、データ生成装置3は、学習済みの第1符号器51F、第2符号器52F、及び復号器56Fを利用して、取得に関する属性をノイズの分だけ変更した新たなデータ(復号化データ)を生成してもよい。更に、データ生成装置3は、学習済みの第1符号器51F及び第2符号器52Fの少なくとも一方を利用して、第1特徴量及び第2特徴量の少なくとも一方のデータを生成してもよい。
推奨装置2Fは、上記推定装置2に対応する。推奨装置2Fは、取り扱うデータが異なる点を除き、上記推定装置2と同様に構成されてよい。推奨装置2Fは、顧客の対象履歴データを適宜取得する。そして、推奨装置2Fは、学習装置1により構築された学習済みの学習モデル5Fを利用して、取得された対象履歴データから対象の商品又はサービスを推奨した際の的中率を推定する。
<推奨装置のハードウェア構成>
図24Aは、本変形例に係る推奨装置2Fのハードウェア構成の一例を模式的に例示する。図24Aに示されるとおり、本変形例に係る推奨装置2Fは、上記推定装置2と同様に、制御部21、記憶部22、通信インタフェース23、入力装置24、出力装置25、ドライブ26及び外部インタフェース27が電気的に接続されたコンピュータである。ただし、推奨装置2Fのハードウェア構成は、このような例に限定されなくてもよい。推奨装置2Fの具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。推奨装置2Fは、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ、汎用のPC等であってもよい。
本変形例に係る推奨装置2Fの記憶部22は、推奨プログラム82F、学習結果データ128F等の各種情報を記憶する。推奨プログラム82F及び学習結果データ128Fは、上記実施形態に係る推定プログラム82及び学習結果データ128に対応する。推奨プログラム82F及び学習結果データ128Fのうちの少なくともいずれかは、記憶媒体92に記憶されていてもよい。また、推奨装置2Fは、記憶媒体92から、推奨プログラム82F及び学習結果データ128Fのうちの少なくともいずれかを取得してもよい。
<推奨装置のソフトウェア構成及び動作例>
図24Bは、本変形例に係る推奨装置2Fのソフトウェア構成の一例を模式的に例示する。上記実施形態と同様に、推奨装置2Fのソフトウェア構成は、制御部21による推奨プログラム82Fの実行により実現される。図24Bに示されるとおり、顧客の履歴データを取り扱う点を除き、推奨装置2Fのソフトウェア構成は、上記推定装置2のソフトウェア構成と同様である。これにより、推奨装置2Fは、上記推定装置2の推定処理と同様に、推奨処理に関する一連の処理を実行する。
すなわち、ステップS501では、制御部21は、データ取得部211として動作し、顧客の対象履歴データ221Fを取得する。対象履歴データ221Fを取得する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、制御部21は、顧客のユーザ端末から対象履歴データ221Fを取得してもよい。また、例えば、制御部21は、商品又はサービスの販売を顧客に提供するサーバから対象履歴データ221Fを取得してもよい。また、推奨装置2Fが、商品又はサービスの販売を顧客に提供するサーバである場合、ユーザ端末を介した顧客のアクセスの際に対象履歴データ221Fを蓄積してもよい。
ステップS502では、制御部21は、評価部212として動作し、学習装置1により訓練された第2符号器52F及び第2メタ識別器54Fを利用して、対象履歴データ221Fの取得に関する属性を識別する。具体的には、制御部21は、学習結果データ128Fを参照し、学習済みの第2符号器52F及び第2メタ識別器54Fの設定を行う。続いて、制御部21は、取得された対象履歴データ221Fを第2符号器52Fに入力し、第2符号器52F及び第2メタ識別器54Fの演算処理を実行する。この演算処理により、制御部21は、対象履歴データ221Fの取得に関する属性を識別した結果に対応する出力値を第2メタ識別器54Fから取得する。
ステップS503では、制御部21は、評価部212として動作し、対象履歴データ221Fの取得に関する属性を識別した結果に基づいて、推定器55F又は他の推定器57Fによる推定の結果を採用するか否かを判定する。ステップS504では、制御部21は、ステップS503の判定結果に基づいて、処理の分岐先を決定する。
ステップS502による識別の結果が対象履歴データ221Fの取得に関する属性の正解値に適合している場合、制御部21は、推定器55F又は他の推定器57Fによる推定の結果を採用すると判定し、次のステップS505に処理を進める。一方、ステップS502による識別の結果が対象履歴データ221Fの取得に関する属性の正解値に適合していない場合、制御部21は、推定器55F又は他の推定器57Fによる推定の結果を採用しないと判定し、ステップS505及びステップS506の処理を省略し、本変形例に係る一連の処理を終了する。
ステップS505では、制御部21は、推定部213Fとして動作し、学習装置1により訓練された第1符号器51F、第2符号器52F、及び推定器55Fを利用して、対象履歴データ221Fから対象の商品又はサービスを推奨した際の的中率を推定する。或いは、制御部21は、学習装置1により訓練された第1符号器51F及び他の推定器57Fを利用して、対象履歴データ221Fから対象の商品又はサービスを推奨した際の的中率を推定する。
具体的には、制御部21は、学習結果データ128Fを参照し、学習済みの第1符号器51F及び推定器55Fの設定を更に行う。制御部21は、対象履歴データ221F及び対象の商品又はサービスを示すラベルを各符号器(51F、52F)に入力し、第1符号器51F、第2符号器52F、及び推定器55Fの演算処理を実行する。これにより、制御部21は、対象履歴データ221Fから対象の商品又はサービスを推奨した際の的中率を推定した結果に対応する出力値を推定器55Fから取得する。
或いは、制御部21は、学習結果データ128Fを参照し、学習済みの第1符号器51F及び他の推定器57Fの設定を行う。制御部21は、対象履歴データ221F及び対象の商品又はサービスを示すラベルを第1符号器51Fに入力し、第1符号器51F及び他の推定器57Fの演算処理を実行する。これにより、制御部21は、対象履歴データ221Fから対象の商品又はサービスを推奨した際の的中率を推定した結果に対応する出力値を他の推定器57Fから取得する。
ステップS506では、制御部21は、出力部214として動作し、対象の商品又はサービスを推奨した際の的中率を推定した結果に関する情報を出力する。例えば、制御部21は、対象の商品又はサービスを推奨した際の的中率を推定した結果をそのまま出力装置25に出力してもよい。また、例えば、制御部21は、推定される的中率が閾値以上であるか否かを判定してもよい。判定の結果に基づいて、制御部21は、的中率が閾値以上である商品又はサービスを特定し、ウェブページ等を介して、特定された商品又はサービスを顧客に推奨する。商品又はサービスの推奨に利用する媒体は実施の形態に応じて適宜選択されてよい。
本変形例によれば、履歴データから商品又はサービスを推奨した際の的中率を推定する場面において、導入コストが比較的に低廉で、かつセンシングデータの取得に関する属性の相違にロバストな学習済みの学習モデル5Fを構築することができる。
一例として、日用品、安価な嗜好品等の消耗品は、継続的に購買されることから、そのような商品に対する購買意欲は、顧客の識別情報にそれほど依存しない場合がある。そのため、消耗品に対する推奨の的中率を推定する場面では、顧客の識別情報等のドメインに特有の情報が推定タスクの精度に悪影響を及ぼす可能性がある。一方、高価な商品又はサービス等の単発的に購入される商品に対する購買意欲は、顧客の識別情報に高い依存性を有する場合がある。そのため、単発的に購入される商品に対する推奨の的中率を推定する場面では、ドメインに特有の情報が推定タスクに有用である可能性がある。すなわち、商品又はサービスの種別によって、ドメインに特有の情報が有用に働くケース及び悪影響を及ぼすケースが生じ得る。
そこで、メタデータ123Fは、顧客の識別情報を示すように設定されてよい。正解データ124F及び他の正解データ125Fはそれぞれ、対象の商品又はサービスに対する推奨の的中率を示すように設定されてよい。
この設定により上記機械学習を実行することで、第1特徴量は、ドメインに共通の情報として、顧客の購買履歴に応じた推奨の的中傾向に対応する成分を含むようになる。一方で、第2特徴量は、ドメインに特有の情報として、顧客の識別情報に応じた推奨の的中傾向に対応する成分を含むようになる。
その結果、推奨装置2Fにおいて、学習済みの第1符号器51F及び他の推定器57Fを利用することで、上記ドメインに特有の情報を除外し、上記ドメインに共通の情報に基づいて、対象の商品又はサービスを推奨した際の的中率を推定するタスクを遂行することができる。そのため、消耗品等の顧客の識別情報に購買活動がそれほど依存しない商品又はサービスを推奨する場面において、学習済みの第1符号器51F及び他の推定器57Fを利用することで、当該推奨の的中率を比較的に高精度に推定することができる。また、推奨装置2Fにおいて、学習済みの第1符号器51F、第2符号器52F、及び推定器55Fを利用することで、上記ドメインに特有の情報及び共通の情報の両方に基づいて、対象の商品又はサービスを推奨した際の的中率を推定するタスクを遂行することができる。そのため、単発的に購入される商品又はサービス等の顧客の識別情報に購買活動が依存しやすい商品又はサービスを推奨する場面において、学習済みの第1符号器51F、第2符号器52F、及び推定器55Fを利用することで、当該推奨の的中率を比較的に高精度に推定することができる。なお、推奨装置2Fでは、オペレータの指定、設定値等に基づいて、上記2つの推定方法のうちのいずれを採用するかが設定されていてよい。
<4.2>
上記実施形態では、学習モデル5の各器51~57は、ニューラルネットワークにより構成されている。しかしながら、各器51~57は、演算に利用される演算パラメータであって、機械学習により調整される演算パラメータを備えていれば、すなわち、機械学習可能なモデル(学習器)であれば、特に限定されなくてもよい。各器51~57の種類は、実施の形態に応じて適宜選択されてよい。各器51~57には、ニューラルネットワークの他に、例えば、サポートベクタマシン、回帰モデル、決定木モデル等が用いられてよい。各器51~57の機械学習の方法は、それぞれの学習器の種類に応じて適宜選択されてよい。
また、上記実施形態の図5Aの例では、各器51~57は、3層構造の全結合型ニューラルネットワークにより構成されている。しかしながら、各器51~57を構成するニューラルネットワークの種類は、このような例に限定されなくてもよい。例えば、各器51~57は、畳み込み層、プーリング層、及び全結合層を備える畳み込みニューラルネットワークにより構成されてよい。また、例えば、各器51~57は、再帰型ニューラルネットワークにより構成されてよい。
なお、これらの変更は、上記第1~第6変形例に係るシステムについても同様に適用されてよい。例えば、上記第2変形例において、バイタルセンサにより対象者のバイタルの測定データを取得し、取得される測定データから対象者の状態を推定する場面を想定する。この場面では、取得される測定データの経時的変化は、対象者の状態を推定するのに有用である。このような経時的変化を推定タスクの遂行に反映させる場合には、学習モデルの構成要素のうちの少なくともいずれかが再帰型ニューラルネットワークにより構成されるのが好ましい。再帰型ニューラルネットワークを用いることで、対象データの経時的な変化を推定タスクの遂行に反映させることができる。
<4.3>
上記実施形態では、学習モデル5は、第1符号器51、第2符号器52、第1メタ識別器53、第2メタ識別器54、及び推定器55Bに加えて、復号器56及び他の推定器57を備えている。しかしながら、学習モデル5の構成は、このような例に限定されなくてもよい。復号器56及び他の推定器57の少なくとも一方は学習モデル5から省略されてよい。復号器56を省略する場合、上記機械学習の処理手順において、上記ステップS203の処理は省略されてよい。また、他の推定器57を省略する場合、上記機械学習の処理手順において、ステップS204の処理は省略されてよい。
また、上記実施形態では、機械学習の処理手順において、ステップS205の処理により、第1特徴量及び第2特徴量の相互情報量が少なくなるように第1符号器51及び第2符号器52を訓練する。しかしながら、機械学習の処理手順は、このような例に限定されなくてもよい。このステップS205の処理は省略されてよい。
また、上記実施形態では、推定装置2は、ステップS502~ステップS504の処理により、学習済みの第2符号器52及び第2メタ識別器54を利用して、推定器55又は他の推定器57による推定処理の結果を採用するか否かを評価している。しかしながら、推定装置2の処理手順は、このような例に限定されなくてもよい。ステップS502~ステップS504の処理は省略されてよい。この場合、推定装置2のソフトウェア構成から評価部212が省略されてよい。なお、これらの変更は、上記第1~第6変形例に係るシステムについても同様に適用されてよい。
また、上記実施形態において、訓練データ(122、192)及び対象データ(221、321)はそれぞれ、例えば、画像データ、音データ、数値データ、テキストデータ、その他センサにより得られる測定データ等の個別の種類のデータに置き換えられてよい。
例えば、訓練データ(122、192)及び対象データ(221、321)はそれぞれが画像データであることで、学習装置1、推定装置2、及びデータ生成装置3により画像システムを構成することができる。この場合、学習装置1は、複数の学習データセットを使用した機械学習により、画像データから所定の特徴を推定する能力を獲得した学習済みの学習モデル5を構築することができる。推定装置2は、推定器55又は他の推定器57を含む学習済みの学習モデル5を利用することで、対象画像データに含まれる特徴を推定することができる。データ生成装置3は、学習済みの復号器56を含む学習モデル5を利用することで、対象画像データから新たなデータを生成することができる。上記第3変形例、及び第4変形例は、当該画像システムの一例である。
また、例えば、訓練データ(122、192)及び対象データ(221、321)はそれぞれがセンシングデータであることで、学習装置1、推定装置2、及びデータ生成装置3によりセンサシステムを構成することができる。この場合、学習装置1は、複数の学習データセットを使用した機械学習により、センシングデータから所定の特徴を推定する能力を獲得した学習済みの学習モデル5を構築することができる。推定装置2は、推定器55又は他の推定器57を含む学習済みの学習モデル5を利用することで、対象センシングデータに含まれる特徴を推定することができる。データ生成装置3は、学習済みの復号器56を含む学習モデル5を利用することで、対象センシングデータから新たなデータを生成することができる。上記第1変形例、第2変形例、及び第5変形例は、当該センサシステムの一例である。