(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-02
(45)【発行日】2023-10-11
(54)【発明の名称】情報処理装置および機械学習方法
(51)【国際特許分類】
G06N 3/084 20230101AFI20231003BHJP
G06N 20/00 20190101ALI20231003BHJP
G06N 3/04 20230101ALI20231003BHJP
【FI】
G06N3/084
G06N20/00 130
G06N20/00 160
G06N3/04
(21)【出願番号】P 2020038785
(22)【出願日】2020-03-06
【審査請求日】2022-10-13
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(73)【特許権者】
【識別番号】504132272
【氏名又は名称】国立大学法人京都大学
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】橋本 敦史
(72)【発明者】
【氏名】牛久 祥孝
(72)【発明者】
【氏名】森 信介
(72)【発明者】
【氏名】西村 太一
【審査官】藤原 敬利
(56)【参考文献】
【文献】WANG, Chen, et al.,"SAG-VAE: End-to-end Joint Inference of Data Representations and Feature Relations",arXiv:1911.11984v2,version v2,[online], arXiv (Cornell University),2020年02月20日,Pages 1-15,[retrieved on 2021.04.08], Retrieved from the Internet: <https://arxiv.org/abs/1911.11984v2>
【文献】CHEN, Mengyuan, et al.,"Inference for Network Structure and Dynamics from Time Series Data via Graph Neural Network",arXiv:2001.06576v1,version v1,[online], arXiv (Cornell University),2020年01月18日,Pages 1-10,[retrieved on 2021.04.08], Retrieved from the Internet: <https://arxiv.org/abs/2001.06576v1>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
入力データに含まれる要素間の相関関係を表すグラフ構造を前記入力データから抽出し、前記グラフ構造から出力データを生成する情報処理装置であって、
前記入力データから前記グラフ構造に含まれる複数の頂点の各々の特徴量を抽出し、当該頂点に前記相関関係を表す辺が接続されている尤度を算出するエンコード部と、
前記尤度に対するGumbel-Softmax関数の変換結果に基づいて、前記グラフ構造を決定するサンプリング部と、
前記グラフ構造、および前記特徴量を受けて前記出力データを生成するデコード部と、
前記出力データと正解データとの誤差を含む損失関数を最小化対象とするバックプロパゲーションによって、前記デコード部および前記エンコード部を最適化する学習部とを備える、情報処理装置。
【請求項2】
前記出力データから前記グラフ構造を再構成する再構成部をさらに備え、
前記損失関数は、前記再構成部からの出力と正解グラフ構造との誤差を含む、請求項1に記載の情報処理装置。
【請求項3】
前記サンプリング部から前記グラフ構造を受けて、前記入力データに対する推論結果を出力する推論部をさらに備え、
前記学習部は、前記デコード部および前記エンコード部に対しては教師なし学習を行い、前記推論部に対しては教師あり学習を行う、請求項1または2に記載の情報処理装置。
【請求項4】
前記入力データは、第1データおよび第2データを含み、
前記第1データのモダリティは、前記第2データのモダリティとは異なり、
前記エンコード部は、
前記第1データの特徴量を抽出する第1エンコーダと、
前記第2データの特徴量を抽出する第2エンコーダとを含む、請求項1~3のいずれか1項に記載の情報処理装置。
【請求項5】
前記出力データのモダリティは、前記入力データのモダリティとは異なる、請求項1~4のいずれか1項に記載の情報処理装置。
【請求項6】
入力データに含まれる要素間の相関関係を表すグラフ構造を前記入力データから抽出し、前記グラフ構造から出力データを生成するモデルに対して、記憶部に保存された機械学習プログラムを実行するプロセッサによって行われる機械学習方法であって、
前記入力データから前記グラフ構造に含まれる複数の頂点の各々の特徴量を抽出し、当該頂点に前記相関関係を表す辺が接続されている尤度を算出するステップと、
前記尤度に対するGumbel-Softmax関数の変換結果に基づいて、前記グラフ構造を決定するステップと、
前記グラフ構造、および前記特徴量を受けて前記出力データを生成するステップと、
前記出力データと正解データとの誤差を含む損失関数を最小化対象とするバックプロパゲーションによって、前記モデルを最適化するステップとを含む、機械学習方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、および機械学習方法に関する。
【背景技術】
【0002】
従来、入力データに含まれる要素間の関係をグラフ構造として抽出し、当該グラフ構造を中間表現として後処理を行う構成が知られている。たとえば、非特許文献1には、REINFORCE(REward Increment Nonnegative Factor Offset Reinforcement Characteristic Eligibility)アルゴリズムによって構文木を生成し、当該構文木により構造化されたデータを中間表現としてVAE(Variational Autoencoder)による再構成を行う構成が開示されている。
【先行技術文献】
【非特許文献】
【0003】
【文献】Pengcheng Yin, Chunting Zhou, Junxian He, Graham Neubig, "StructVAE: Tree-structured Latent Variable Models for Semi-supervised Semantic Parsing" (https://www.aclweb.org/anthology/P18-1070/), in Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pp. 754-765.
【文献】Eric Jang, Shixiang Gu, Ben Poole, "Categorical Reparameterization with Gumbel-Softmax", https://openreview.net/forum?id=rkE3y85ee, ICLR (International Conference on Learning Representations) 2017.
【文献】Jianlong Chang, Xinbang Zhang, Yiwen Guo, Gaofeng Meng, Shiming Xiang, Chunhong Pan, "Differentiable Architecture Search with Ensemble Gumbel-Softmax", https://arxiv.org/abs/1905.01786.
【文献】Kai Sheng Tai, Richard Socher, Christopher D. Manning, "Improved Semantic Representations From Tree-Structured Long Short-Term Memory Networks", https://www.aclweb.org/anthology/P15-1150/, in Proceedings of the 53rd Annual Meeting of the Association for Computational Linguistics and the 7th International Joint Conference on Natural Language Processing (Volume 1: Long Papers), pp. 1556-1566.
【発明の概要】
【発明が解決しようとする課題】
【0004】
非特許文献1において用いられるREINFORCEアルゴリズムを含む強化学習においては、最適化対象のモデル(エージェント)が試行錯誤を繰り返しながらパラメータの最適化を進めるため、モデルの出力に対する正解の特定が困難な場合がある。そのため、強化学習には、モデルからの出力と正解との誤差を規定する損失関数を微分して、連鎖律に基づいてモデルの出力層から入力層に向かって当該誤差を伝播させるバックプロパゲーションを用いる機械学習よりもモデルの精度を向上させることが難しい場合があることが知られている。非特許文献1に開示されている構成には機械学習によって形成される学習済みモデルの精度に改善の余地がある。
【0005】
本開示は上記のような課題を解決するためになされたものであり、その目的は、入力データからグラフ構造を中間表現として抽出するモデルの精度を向上させることである。
【課題を解決するための手段】
【0006】
本開示の一例に係る情報処理装置は、入力データに含まれる要素間の相関関係を表すグラフ構造を入力データから抽出し、グラフ構造から出力データを生成する。情報処理装置は、エンコード部と、サンプリング部と、デコード部と、学習部とを備える。エンコード部は、入力データからグラフ構造に含まれる複数の頂点の各々の特徴量を抽出し、当該頂点に相関関係を表す辺が接続されている尤度を算出する。サンプリング部は、尤度に対するGumbel-Softmax関数の変換結果に基づいて、グラフ構造を決定する。デコード部は、グラフ構造、および複数の頂点の各々の特徴量を受けて出力データを生成する。学習部は、出力データと正解データとの誤差を含む損失関数を最小化対象とするバックプロパゲーションによって、デコード部およびエンコード部を最適化する。
【0007】
この開示によれば、サンプリング部によるグラフ構造の決定処理によっても損失関数は微分可能となるため、出力データと正解データとの誤差をデコード部の出力層からエンコード部の入力層までバックプロパゲーションによって逆伝播させることが可能になる。その結果、デコード部およびエンコード部の最適化を、デコード部の出力層からエンコード部の入力までエンドツーエンドに行うことができるため、中間表現としてのグラフ構造の精度および出力データの精度を向上させることができる。
【0008】
上述の開示において、情報処理装置は、出力データからグラフ構造を再構成する再構成部をさらに備えてもよい。損失関数は、再構成部からの出力と正解グラフ構造との誤差を含んでもよい。
【0009】
この開示によれば、再構成部によって再構成されたグラフ構造と正解グラフ構造との間に同一性が維持されるように機械学習が行われることにより、エンコード部によるロスレス圧縮(可逆圧縮)が促進される。その結果、中間表現としてのグラフ構造の精度および出力データの精度を構成1よりもさらに向上させることができる。
【0010】
上述の開示において、サンプリング部からグラフ構造を受けて、入力データに対する推論結果を出力する推論部をさらに備えてもよい。学習部は、デコード部およびエンコード部に対しては教師なし学習を行い、推論部に対しては教師あり学習を行ってもよい。
【0011】
この開示によれば、エンコード部によるロスレス圧縮が促進されるとともに、推論部に対する教師あり学習によって推論部の推論精度を向上させることができる。
【0012】
上述の開示において、入力データは、第1データおよび第2データを含んでもよい。第1データのモダリティは、第2データのモダリティとは異なってもよい。エンコード部は、第1エンコーダと、第2エンコーダとを含んでもよい。第1エンコーダは、第1データの特徴量を抽出してもよい。第2エンコーダは、第2データの特徴量を抽出してもよい。
【0013】
この開示によれば、多様な入力データからグラフ構造を抽出することができる。
上述の開示において、出力データのモダリティは、入力データのモダリティとは異なってもよい。
【0014】
この開示によれば、グラフ構造から多様なデータを生成することができる。
本開示の他の例に係る機械学習方法は、入力データに含まれる要素間の相関関係を表すグラフ構造を入力データから抽出し、グラフ構造から出力データを生成するモデルに対して、記憶部に保存された機械学習プログラムを実行するプロセッサによって行われる。機械学習方法は、入力データからグラフ構造に含まれる複数の頂点の各々の特徴量を抽出し、当該頂点に相関関係を表す辺が接続されている尤度を算出するステップと、尤度に対するGumbel-Softmax関数の変換結果に基づいて、グラフ構造を決定するステップと、グラフ構造、および複数の頂点の各々の特徴量を受けて出力データを生成するステップと、出力データと正解データとの誤差を含む損失関数を最小化対象とするバックプロパゲーションによって、モデルを最適化するステップとを含む。
【0015】
この開示によれば、グラフ構造を決定するステップによっても損失関数は微分可能となるため、出力データと正解データとの誤差をモデルの出力層からモデルの入力層までバックプロパゲーションによって逆伝播させることが可能になる。その結果、モデルの最適化を、モデルの出力層からモデルの入力層までエンドツーエンドに行うことができるため、中間表現としてのグラフ構造の精度および出力データの精度を向上させることができる。
【発明の効果】
【0016】
本開示に係る情報処理装置および機械学習方法によれば、入力データからグラフ構造を中間表現として抽出するモデルの精度を向上させることができる。
【図面の簡単な説明】
【0017】
【
図1】実施の形態1に係る情報処理装置の構成を示すブロック図である。
【
図2】
図1の入力データおよびエンコード部の具体的な構成を説明するためのブロック図である。
【
図3】
図2の第1エンコーダから出力される隣接行列の模式図である。
【
図4】
図2の第2エンコーダから出力される隣接行列の模式図である。
【
図6】
図5のツリー構造を表現する隣接行列を示す図である。
【
図7】
図1のデコード部および出力データの具体的な構成を示すブロック図である。
【
図8】情報処理装置において行われる機械学習方法の流れを示すフローチャートである。
【
図9】実施の形態1の変形例に係る情報処理装置の構成を示すブロック図である。
【
図10】
図9の再構成部の具体的な構成を示すブロック図である。
【
図11】実施の形態2に係る情報処理装置の構成を示すブロック図である。
【
図12】入力データから抽出される、複数のユーザと複数の企業との間の2部グラフ構造の一例を示す図である。
【
図13】
図12に示される2部グラフ構造を表現する行列を示す図である。
【
図14】実施の形態3に係る管理システムの構成例を示す模式図である。
【
図15】
図14の管理システムを構成するPLCのハードウェア構成の一例を示す模式図である。
【
図16】
図14の収集解析サーバ装置の機能構成を示すブロック図である。
【
図17】
図14の収集解析サーバ装置のハードウェア構成を示すブロック図である。
【
図18】品質データおよび基準品質データの誤差とともに可視化されたグラフ構造の一例を示す図である。
【
図19】実施の形態に係る情報処理装置に対応するロボットによるルートプランニングを説明するための図である。
【
図20】
図19のロボットによって抽出される有向グラフ構造を示す図である。
【
図21】
図20の有向グラフ構造に対応する行列表現を示す図である。
【発明を実施するための形態】
【0018】
以下、実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は原則として繰り返さない。
【0019】
<適用例>
[実施の形態1]
図1は、実施の形態1に係る情報処理装置1の構成を示すブロック図である。
図1に示されるように、情報処理装置1は、エンコード部100と、サンプリング部130と、デコード部140と、学習部150とを備える。情報処理装置1は、入力データ10に含まれる要素間の相関関係を表すグラフ構造を入力データ10から抽出し、当該グラフ構造から出力データ20を生成する。実施の形態1では、調理の手順の画像列データおよび食材列データを含む入力データから、料理の手順列データを含む出力データを生成する場合について説明する。
【0020】
図2は、
図1の入力データ10およびエンコード部100の具体的な構成を説明するためのブロック図である。
図2に示されるように、入力データ10は、画像列データ11(第1データ)と、食材列データ12(第2データ)とを含む。画像列データ11のモダリティは、画像である。食材列データ12のモダリティは、文字列である。画像列データ11のモダリティは、食材列データ12のモダリティとは異なる。なお、モダリティとは、データの形式、種類、あるいは型を含む。
【0021】
画像列データ11は、画像Im
1~Im
Mを含む。画像Im
1~Im
Mの各々は、調理の各手順の画像を表し、画像Im
1~Im
Mの順に調理が行われる。すなわち、画像Im
1~Im
Mは、この順に順序付けられている。食材列データ12は、文字列Tx
1~Tx
Nを含む。文字列Tx
1~Tx
Nの各々は、食材名を表す。調理の過程において、文字列Tx
1~Tx
Nの順に使用される。すなわち、文字列Tx
1~Tx
Nは、この順に順序付けられている。
図2においては、手順数Mが4であり、食材数Nが4である場合が示されている。文字列Tx
1~Tx
4は、「トマト」,「かぼちゃ」,「マヨネーズ」,「ケチャップ」をそれぞれ表す。なお、手順数Mは4に限定されず、3以下であってもよいし、5以上であってもよい。食材数Nも同様である。また、手順数Mと食材数Nとは異なっていてもよい。
【0022】
エンコード部100は、エンコーダ110(第1エンコーダ)と、エンコーダ120(第2エンコーダ)とを含む。エンコーダ110は、学習済みの画像エンコーダ111と、biLSTM(bidirectional Long Short-Term Memory)112,113と、行列推定器114とを含む。エンコーダ120は、分散表現器121と、LSTM122と、biLSTM123と、行列推定器124とを含む。分散表現器121は、たとえばword2vecを含む。
【0023】
画像エンコーダ111は、画像列データ11に含まれる画像Imkの特徴ベクトルvkを抽出し、ベクトル表現V=(v1,v2,…,vk,…,vM)(特徴量)を出力する。biLSTM112は、ベクトル表現Vを受けて、ベクトル表現Θ=(θ1,θ2,…,θk,…θM)(特徴量)を出力する。特徴ベクトルθ1~θMは、特徴ベクトルv1~vMにそれぞれ対応する。biLSTM113は、ベクトル表現Vを受けて、ベクトル表現Φ=(φ1,φ2,…,φk,…,φM)(特徴量)を出力する。特徴ベクトルφ1~φMは、特徴ベクトルv1~vMにそれぞれ対応する。なお、インデックスkは自然数である。
【0024】
行列推定器114は、ベクトル表現Θ,Φを受けて、画像Im1~ImMの隣接関係を推定し、隣接行列Yとして出力する。画像Im1~ImMの隣接関係の推定とは、画像Im1~ImMの各々をグラフ構造の頂点として、2つの頂点間に辺が存在する尤度を算出することを意味する。隣接行列Yの成分Yi,jは以下の式(1)で表される。
【0025】
【0026】
エンコーダ120においては、ベクトル表現Θ,Φからベクトル表現Ω=(ω1,ω2,…,ωk,…,ωM)(特徴量)が算出され、ベクトル表現Ωが行列推定器124に入力される。特徴ベクトルωkの各次元の成分は、特徴ベクトルθk,φkの当該次元の成分のうち、大きい方の成分である。
【0027】
分散表現器121は、食材列データ12に含まれる文字列Txkの分散表現を出力する。LSTM122は、文字列Txkの分散表現を特徴ベクトルgkに変換し、ベクトル表現G=(g1,g2,…,gk,…,gN)を出力する。biLSTM123は、ベクトル表現Gを受けて、ベクトル表現Γ=(γ1,γ2,…,γk,…,γN)(特徴量)を出力する。特徴ベクトルγ1~γNは、特徴ベクトルg1~gNにそれぞれ対応する。
【0028】
行列推定器124は、ベクトル表現Ω,Γを受けて、画像Im1~ImMおよび文字列Tx1~TxNの隣接関係を推定し、当該隣接関係を隣接行列Xとして出力する。画像Im1~ImMおよび文字列Tx1~TxNの隣接関係の推定とは、文字列Tx1~TxNの各々をグラフ構造の頂点として、文字列Tx1~TxNの各々に対応する頂点と画像Im1~Im4の各々に対応する頂点との間に辺が存在する尤度を算出することを意味する。隣接行列Xの成分Xi,jは以下の式(2)で表される。
【0029】
【0030】
図3は、
図2の隣接行列Yの模式図である。
図3において各成分に付されているハッチングが濃いほど、当該成分の尤度が大きい。
図3においては、行に含まれる頂点から列に含まれる頂点に向かう辺が存在するかの尤度が当該行および列によって特定される隣接行列の成分である。すなわち、隣接行列Yは、有向グラフ構造を表現している。列に含まれる頂点から行に含まれる頂点に向かう辺が存在するかの尤度が当該行および列によって特定される隣接行列の成分であってもよい。
【0031】
有向グラフ構造を表す隣接行列Yは、必要に応じて無向グラフ構造を表す隣接行列Tに変換されてもよい。隣接行列Yの変換にあたっては、隣接行列Tの転置行列が隣接行列Tに等しくなるように、たとえば隣接行列Yの各成分と当該成分の行と列とを逆にした成分との平均値を当該2つの成分に対応する隣接行列Tの成分にすることができる。
【0032】
図4は、
図2の隣接行列Xの模式図である。ハッチングの濃さと尤度との関係は
図3と同様である。
図4においては、行に含まれる頂点と列に含まれる頂点との間に辺が存在するかの尤度が当該行および列によって特定される隣接行列の成分である。隣接行列Xは、無向グラフ構造を表現している。
【0033】
再び
図2を参照して、サンプリング部130は、隣接行列X,Yを受けて、文字列Tx
1~Tx
Nの各々に対応する頂点をリーフノードとし、画像列データ11における最後の画像に対応する頂点をルートノードとし、他の画像に対応する頂点をノードとするツリー構造Tr(グラフ構造)を出力する。サンプリング部130は、Gumbel-Softmax関数(非特許文献2参照)を用いて、隣接行列X,Yの各成分の尤度を当該成分に対応する2つの頂点間に辺が存在する確率に変換する(再パラメータ化トリック)。サンプリング部130は、再パラメータ化トリックにより、隣接行列X,Yを隣接行列A,Bにそれぞれ変換する。成分A
i,j,B
i,jは、以下の式(3),(4)のようにそれぞれ表される。
【0034】
【0035】
式(3),(4)において、δi,k,εi,kは、Gumbel(0,1)分布からサンプリングされたノイズである。τはGumbel-Softmax関数の温度パラメータである。サンプリング部130は、隣接行列A,Bを用いてノード間の枝(辺)の有無を決定し、ツリー構造Trを決定する。
【0036】
図5は、
図1のツリー構造Trを示す図である。
図5において、ノードNd
1~Nd
4は、画像Im
1~Im
4にそれぞれ対応する。ノードNd
4は、ルートノードである。リーフノードLf
1~Lf
4は、文字列Tx
1~Tx
4にそれぞれ対応する。
【0037】
図5に示されるように、リーフノードLf
1とノードNd
1とは枝Br
1によって接続されている。リーフノードLf
2とノードNd
2とは、枝Br
2によって接続されている。リーフノードLf
3とルートノードNd
4とは、枝Br
3によって接続されている。リーフノードLf
4とルートノードNd
4とは、枝Br
4によって接続されている。ノードNd
1とNd
3とは、ノードNd
1からNd
3に向かう枝Br
5によって接続されている。ノードNd
2とNd
3とは、ノードNd
2からNd
3に向かう枝Br
6によって接続されている。ノードNd
3とルートノードNd
4とは、ノードNd
3からルートノードNd
4に向かう枝Br
7によって接続されている。
【0038】
ツリー構造Trは、画像Im1に示される手順の結果および画像Im2に示される手順の結果が、画像Im3に示される手順において使用され、画像Im3に示される手順の結果が画像Im4に示される手順において使用されることを示す。また、ツリー構造Trは、文字列Tx1の食材が画像Im1に示される手順において使用され、文字列Tx2の食材が画像Im2に示される手順において使用され、文字列Tx3,Tx4の各々の食材が画像Im4に示される手順において使用されることを示す。
【0039】
図6は、
図5のツリー構造Trを表現する隣接行列X1,Y1を示す図である。隣接行列X1,Y1は、それぞれ隣接行列A,Bを介して、サンプリング部130によって決定される。たとえば、サンプリング部130は、隣接行列A,Bの各行における最大値に対応する成分を1とし、それ以外の成分を0とし、各行をワンホット表現として隣接行列X1,Y1を決定する。入力データから抽出されるグラフ構造に含まれる頂点からの出辺の最大数または当該頂点への入辺の最大数が決定している場合には、Ensemble Gumbel-Softmax(非特許文献3参照)により、各行または各列が2個以上のワンホット表現の重ね合わせとして表現されてもよい。なお、グラフ構造の決定にあたっては、隣接行列X,Yの各成分の尤度に対するGumbel-Softmax関数を用いた再パラメータ化トリックの変換結果以外にも、抽出されるグラフ構造の特性も考慮され得る。たとえば、料理の手順を示すツリー構造Trにおいて或るノードから当該ノードへの辺(セルフループ)は許容されないため、隣接行列Y1の対角成分は0となる。また、ルートノードより階層が上のノードはツリー構造Trには存在しないため、隣接行列Y1においてルートノードに対応する第4行の各成分は0となる。
【0040】
有向グラフ構造を表す隣接行列Y1は、必要に応じて無向グラフ構造を表す隣接行列T1に変換されてもよい。隣接行列Y1の変換にあたっては、隣接行列T1の転置行列が隣接行列T1に等しくなるように、たとえば隣接行列Y1の各成分と当該成分の行と列とを逆にした成分とのうちの最大値、最小値、またはいずれかがランダムに選択された値を当該2つの成分に対応する隣接行列T1の成分にすることができる。
【0041】
図7は、
図1のデコード部140および出力データ20の具体的な構成を示すブロック図である。
図7に示されるように、デコード部140は、LSTM141と、エンコーダデコーダモデル142と、サンプリング部143とを含む。LSTM141は、Tree-LSTM(非特許文献4参照)を含み、たとえばChild-sum LSTMを含む。LSTM141は、ツリー構造Trにおける画像列データ11のk番目の手順に対応する特徴量をChild-sum LSTMのk番目の隠れ層から特徴ベクトルh
kとして得て、ベクトル表現H=(h
1,h
2,…,h
k,…,h
M)を出力する。エンコーダデコーダモデル142は、LSTM141からベクトル表現Hを受けるとともに、
図2の画像エンコーダ111からベクトル表現Vを受ける。エンコーダデコーダモデル142は、ペア(h
k,v
k)を文字列St
kに変換し、手順列データである文字列St
1~St
Mを含む出力データ20を出力する。出力データ20のモダリティは、文字列であり、入力データ10に含まれる画像列データ11のモダリティとは異なる。文字列St
1は、「トマトを一口大の大きさに切る。」を表す。文字列St
2は、「かぼちゃをフライパンで炒める。」を表す。文字列St
3は、「かぼちゃをトマトの上に乗せる。」を表す。文字列St
4は、「ケチャップとマヨネーズをかける。」を表す。出力データ20は、文字列St
1~St
Mの順に調理が行われることを表す。すなわち、文字列St
1~St
Mは、この順に順序付けられている。なお、エンコーダデコーダモデル142においては、Gumbel-Softmax関数を用いて単語が出力される。
【0042】
次に、
図1の情報処理装置1において行われる機械学習処理について説明する。学習部150は、以下の式(5)のように表される損失関数L1を最小化対象とするバックプロパゲーションによって、デコード部140およびエンコード部100の最適化を行う。
【0043】
【0044】
損失関数L1は、上記において説明されたエンコード部100からデコード部140までの処理を行う過程で生じる全体の誤差を、損失関数LTとLPとの和として規定する。損失関数LTは、エンコード部100から出力される隣接行列X,Yと予め用意された正解行列(正解グラフ構造)との交差エントロピー誤差を規定する。損失関数LPは、デコード部140から出力される出力データと予め用意された正解データとの交差エントロピー誤差を規定する。再パラメータ化トリックにより、サンプリング部130によるグラフ構造の決定処理によっても損失関数L1は微分可能となるため、出力データ20と正解データとの誤差をデコード部140の出力層からエンコード部100の入力層までバックプロパゲーションによって逆伝播させることが可能になる。その結果、デコード部140およびエンコード部100の最適化を、デコード部140の出力層からエンコード部100の入力層までエンドツーエンドに行うことができるため、中間表現としてのグラフ構造の精度および出力データの精度を向上させることができる。
【0045】
図8は、情報処理装置1において行われる機械学習方法の流れを示すフローチャートである。
図8に示されるように、S11においてエンコード部100は、入力データ10に含まれる要素(頂点)の特徴量を抽出し、処理をS12に進める。S12においてエンコード部100は、2つの頂点のコサイン類似度を用いて、当該2つの頂点間に辺が存在する尤度を算出する。当該尤度の算出にあたっては、コサイン類似度以外の類似度または距離が用いられてもよい。S13においてサンプリング部130は、Gumbel-Softmax関数を用いる再パラメータ化トリックを行って、グラフ構造を決定する。S14においてデコード部140は、サンプリング部130からのグラフ構造およびエンコード部100からの各頂点の特徴量から出力データを生成する。S15において学習部150は、損失関数L
1を最小化対象とするバックプロパゲーションにより、デコード部140およびエンコード部100の各々に含まれるパラメータを最適化し、機械学習方法を終了する。当該パラメータには、デコード部140およびエンコード部100に含まれるニューラルネットワークの重みおよびバイアスが含まれる。
【0046】
以上、実施の形態1に係る情報処理装置および機械学習方法によれば、入力データからグラフ構造を中間表現として抽出するモデルの精度を向上させることができる。
【0047】
[実施の形態1の変形例]
実施の形態1の変形例においては、出力データから隣接行列を再構成する場合について説明する。再構成された隣接行列とエンコード部から出力される隣接行列との間に同一性が維持されるように機械学習が行われることにより、エンコード部によるロスレス圧縮が促進される。その結果、中間表現としてのグラフ構造の精度および出力データの精度を実施の形態1よりもさらに向上させることができる。
【0048】
図9は、実施の形態1の変形例に係る情報処理装置1Aの構成を示すブロック図である。情報処理装置1Aの構成は、
図1の情報処理装置1の構成に再構成部160が追加されているとともに、学習部150が150Aに置き換えられた構成である。これら以外は同様であるため説明を繰り返さない。
図9に示されるように、再構成部160は、出力データ20を受けるとともに、エンコード部100からベクトル表現Γ,Ωを受ける。
【0049】
図10は、
図9の再構成部160の具体的な構成を示すブロック図である。
図10に示されるように、biLSTM161,162と、行列推定器163とを含む。biLSTM161は、出力データ20を受けて、文字列St
1~St
Mの各々に対して、最初の隠れ層と最後の隠れ層とを結合することによって得られる特徴ベクトを出力する。biLSTM162は、biLSTM161から文字列St
1~St
Mの各々の特徴ベクトルを受けて、文字列St
1~St
Mの順序が反映されたベクトル表現Λ=(λ
1,λ
2,…,λ
k,…,λ
M)(特徴量)を出力する。特徴ベクトルλ
1~λ
Mは、文字列St
1~St
Mにそれぞれ対応する。
【0050】
行列推定器163は、ベクトル表現Γ,Ω,Λを受けて、文字列Tx1~TxMおよび文字列St1~StMの隣接関係を隣接行列Cとして推定するとともに、画像Im1~ImMおよび文字列St1~StMの隣接関係を隣接行列Dとして推定する。隣接行列C,Dは、それぞれ以下の式(6),(7)のように表される。
【0051】
【0052】
入力データに含まれるツリー構造が出力データ20に正確に反映されている場合、画像列データ11における画像Im1~ImMは、出力データ20における文字列St1~StMに対応する。そのため、隣接行列C,Dは、エンコード部100によって算出される隣接行列X,Yとそれぞれ同一性が認められる必要がある。そこで、実施の形態1の変形例においては、エンコード部100から出力される隣接行列X,Yの誤差の算出に用いられた正解行列と、隣接行列C,Dとの誤差を規定する損失関数LRを損失関数L1に加える。実施の形態1の変形例における全体の誤差を規定する損失関数L2は、以下の式(8)のように表される。損失関数L2の係数αはハイパーパラメータである。なお、損失関数LRは、隣接行列C,Dと隣接行列X,Y(正解データ)との誤差を規定する損失関数であってもよい。
【0053】
【0054】
学習部150Aは、損失関数L2を最小化対象とするバックプロパゲーションにより、再構成部160、デコード部140、およびエンコード部100の各々に含まれるパラメータを最適化する。
【0055】
出力データ20の精度に関して、比較例、実施の形態1、および実施の形態1の変形例の比較を以下の表1に示す。表1においては、GLACNet(GLocal Attention Cascading Networks)を比較例としている。また、表1において、自動評価尺度であるBLEU(BiLingual Evaluation Understudy)1,BLEU4,ROUGE-L(Recall-Oriented Understudy for Gisiting Evaluation Longest common subsequence),CIDEr(Consensus-based Image Description Evaluation)-D,METEOR(Metric for Evaluation of Translation with Explicit ORdering)の各々のスコアが示されている。
【0056】
【0057】
表1に示されているように、各自動評価尺度において、実施の形態1の性能は、比較例の性能を上回っている。また、実施の形態1の変形例の性能は、実施の形態1の性能を上回っている。
【0058】
以上、実施の形態1の変形例に係る情報処理装置および機械学習方法によれば、入力データからグラフ構造を中間表現として抽出するモデルの精度を実施の形態1よりもさらに向上させることができる。
【0059】
[実施の形態2]
実施の形態1においては、入力データからグラフ構造としてツリー構造が抽出される構成について説明した。入力データから抽出されるグラフ構造はツリー構造に限定されず、たとえばN部グラフ構造(Nは2以上の自然数)であってもよい。実施の形態2においては、N部グラフ構造の一例として、入力データから2部グラフ構造が抽出される構成について説明する。
【0060】
図11は、実施の形態2に係る情報処理装置2の構成を示すブロック図である。
図11に示されように、情報処理装置2は、エンコード部200と、サンプリング部230と、デコード部240と、学習部250と、推論部270とを備える。エンコード部200、サンプリング部230、デコード部240、および学習部250は、VAE(Variational Autoencoder)を形成している。
【0061】
エンコード部200は、入力データ10Bに含まれるグラフ構造の複数の頂点の各々の特徴量を抽出する。エンコード部200は、当該複数の頂点を、共通の頂点を有さない2つの部分集合Sb1,Sb2に分割する。エンコード部200は、部分集合Sb1に含まれる頂点と部分集合Sb2に含まれる頂点との間に辺が存在する尤度を算出し、当該尤度を成分とする隣接行列をサンプリング部230に出力する。すなわち、エンコード部200は、部分集合Sb1とSb2との間において2部グラフマッチングを行う。
【0062】
サンプリング部230は、エンコード部200からの隣接行列に対してGumbel-Softmax関数を用いた再パラメータ化トリックを行い、2部グラフ構造Bpを決定して、2部グラフ構造Bpおよび2部グラフ構造Bpに含まれる複数の頂点の各々の特徴量をデコード部240および推論部270に出力する。デコード部240は、2部グラフ構造Bpおよび当該特徴量から出力データ20Bを再生する。推論部270は、2部グラフ構造Bpおよび当該特徴量に基づいて推論を行い、推論結果を出力する。推論部270は、たとえばGNN(Graph Neural Network)を含む。
【0063】
学習部250は、バックプロパゲーションによって、推論部270、デコード部240、エンコード部200を最適化する。バックプロパゲーションにおける最小化対象の損失関数は、出力データ20Bと入力データ10B(正解データ)との誤差、および推論部270の推論結果と学習データセットに含まれる正解データとの誤差を含む。すなわち、学習部250は、推論部270、デコード部240、エンコード部200に対して半教師あり学習を行う。具体的には、学習部250は、デコード部240およびエンコード部200に対しては教師なし学習を行い、推論部270に対しては教師あり学習を行う。
【0064】
情報処理装置2の主目的は、推論部270による推論結果の出力である。エンコード部200、サンプリング部230、デコード部240、および学習部250によって形成されるVAEの最適化は、入力データ10Bから2部グラフ構造へのロスレス圧縮を実現するためのサブタスクとして位置付けられる。
【0065】
以下では、検索システムに対するユーザの検索操作の履歴を入力データ10Bとする場合について説明する。
図12は、入力データ10Bから抽出される、複数のユーザと複数の企業との間の2部グラフ構造Bpの一例を示す図である。
図12においては、ユーザUs
1,Us
2,Us
3,Us
4と企業Cm
1,Cm
2,Cm
3,Cm
4,Cm
5との間の相関関係が示されている。
図12に示されるように、ユーザUs
1と企業Cm
2とが辺Rs
1によって接続されている。ユーザUs
2と企業Cm
4とが辺Rs
2によって接続されている。ユーザUs
3と企業Cm
3とが辺Rs
3によって接続されている。ユーザUs
4と企業Cm
5とが辺Rs
4によって接続されている。
図13は、
図12に示される2部グラフ構造Bpを表現する行列を示す図である。
図11の推論部270は、2部グラフ構造Bpを受けて、各ユーザのニーズにマッチする企業を推論し、当該企業を当該ユーザに推奨する。
【0066】
以上、実施の形態2に係る情報処理装置および機械学習方法によれば、入力データからグラフ構造を中間表現として抽出するモデルの精度を向上させることができる。
【0067】
[実施の形態3]
実施の形態3においては、製造設備に含まれる複数の工程における複数のセンサの検出値の時系列データに基づいて複数のセンサをグラフ構造として構造化し、製品に発生した不具合がどの工程において発生したかを特定する構成について説明する。
【0068】
図14は、実施の形態3に係る管理システム3000の構成例を示す模式図である。
図14を参照して、管理システム3000は、複数の工程を含む製造設備30に関連付けられており、製造設備30によって製造される製品の品質を管理するための機能を提供する。
図14においては、ワークを運搬するためのコンベア307に沿って、5つの連続する工程Pr
1,Pr
2,Pr
3,Pr
4,Pr
5が示されている。ワークは、工程Pr
1~Pr
5の順に通過する。工程Pr
1~Pr
5の各々には、当該工程の状態を検出するためのセンサが設置されている。工程Pr
1~Pr
5においては、制御装置の一例であるPLC(Programmable Logic Controller)301,302,303,304,305によって、工程Pr
1~Pr
5がそれぞれ制御されるとともに監視される。
【0069】
PLC301~305は、ローカルネットワーク306を介してデータ通信可能に接続されている。PLC301~305は、ローカルネットワーク306上の中継サーバ装置308に対して、制御対象の工程に関する状態情報を所定期間毎またはイベント毎に送信する。当該状態情報には、当該工程に設けられたセンサによって複数のサンプリングタイムにおいてそれぞれ検出された複数の検出値の時系列データ(センサ時系列データ)が含まれる。
【0070】
中継サーバ装置308は、PLC301~305の各々から状態情報をインターネットを介して収集解析サーバ装置3(情報処理装置)へ転送する。中継サーバ装置308は、状態情報に対して必要な前処理を実施してもよい。
【0071】
収集解析サーバ装置3は、中継サーバ装置308から受信した状態情報を収集し、収集した情報を解析する。収集解析サーバ装置3は、予め定められた条件が満たされたとき、または、端末装置309から要求を受信したときに、分析結果をインターネットを介して端末装置309へ出力する。
【0072】
図14には、典型例として、単一の製造設備30に設置された複数の工程の各々にPLCが設けられ、それぞれのPLCが同一のローカルネットワーク306を介して中継サーバ装置308に接続されている構成について例示したがこれに限らない。たとえば、中継サーバ装置308を配置することなく、複数のPLCが収集解析サーバ装置3と直接的に接続されている構成を採用してもよい。この場合には、それぞれのPLCが収集解析サーバ装置3に必要な情報をそれぞれ送信することになる。
【0073】
あるいは、複数の中継サーバ装置308を設けてもよい。この場合には、一部のPLCからの状態情報をある中継サーバ装置308が収集解析サーバ装置3へ転送し、残りのPLCからの状態情報を別の中継サーバ装置308が収集解析サーバ装置3へ転送するようにしてもよい。
【0074】
次に、PLCのハードウェア構成例について説明する。
図15は、
図14の管理システム3000を構成するPLC301~305のハードウェア構成の一例を示す模式図である。
図15を参照して、PLC301~305の各々は、演算ユニット310と、1または複数の機能ユニット320とを含む。演算ユニット310は、予め格納されたユーザプログラムなどを実行する演算装置であり、機能ユニット320からフィールド信号(制御対象の設備の状態を示す情報など)を取得し、機能ユニット320を通じて、必要な制御信号を出力する。
【0075】
演算ユニット310は、ユーザプログラムなどを実行するプロセッサ312と、ユーザプログラム、オペレーティングシステム(OS:Operating System)、および各種データなどを格納するメモリ316と、内部バス326を介したデータの遣り取りを制御するバスコントローラ314と、通信インターフェイス318とを含む。メモリ316は、DRAM(Dynamic Random Access Memory)などの揮発性記憶装置と、フラッシュメモリなどの不揮発性記憶装置とを組み合わせて構成してもよい。プロセッサ312は、PLC301~305の各々に対応する工程に設置されたセンサ315から検出値を取得する。当該検出値は、たとえば、電流値、電圧値、電力値、温度、湿度、または振動値を含む。複数のセンサ315が、1つの工程に設けられてもよい。
【0076】
通信インターフェイス318は、データを遣り取りする対象の装置に応じて、1つまたは複数の通信ポートが設けられてもよい。たとえば、ローカルネットワーク306(
図14参照)に接続するためのイーサネット(登録商標)に従う通信ポート、パーソナルコンピュータなどと接続するためのUSB(Universal Serial Bus)に従う通信ポート、またはシリアル回線・パラレル回線をサポートする通信ポートなどが実装されてもよい。
【0077】
機能ユニット320は、制御対象の設備との間で各種情報を遣り取りするためのIO(Input Output)機能を提供してもよい。具体的には、デジタル信号を受け取るDI(Digital Input)、デジタル信号を出力するDO(Digital Output)、アナログ信号を受け取るAI(Analog Input)、およびアナログ信号を出力するAO(Analog Output)などの機能が実装されてもよい。さらに、PID(Proportional Integral Derivative)制御、またはモーション制御などの特殊機能が実装されてもよい。
【0078】
たとえば、IO機能を提供する機能ユニット320の各々は、IOモジュール322と、内部バス326とを介して演算ユニット310との間のデータの遣り取りを制御するためのバスコントローラ324とを含む。IOモジュール322の各々は、制御対象の工程からの状態情報を取得し、当該状態情報を演算ユニット310を通じて中継サーバ装置308および収集解析サーバ装置3へ送出する。
【0079】
管理システム3000においては、何らかの通信手段を用いて、内部情報を外部装置へ出力するためのインターフェイスを有するPLCであれば、どのようなものを採用してもよい。PLCのハードウェア構成は、
図15に示される構成に限定されず、任意の構成を採用することができる。現実的には、
図14に示される製造設備30に配置される複数のPLCの間では、メーカおよび機種が統一されていないことが想定される。管理システム3000において、中継サーバ装置308は、このようなPLCのメーカおよび機種の相違を吸収する。
【0080】
図16は、
図14の収集解析サーバ装置3の機能構成を示すブロック図である。
図16に示されるように、収集解析サーバ装置3は、エンコード部300と、サンプリング部330と、デコード部340と、品質検査部370(推論部)とを備える。入力データ10Cは、PLC301~305からのセンサ時系列データを含む。エンコード部300、サンプリング部330、デコード部340、および学習部350は、VAE(Variational Autoencoder)を形成している。
【0081】
エンコード部300は、エンコーダモデルMcを含む。エンコーダモデルMcは、入力データ10Cに含まれるセンサ間の相関関係を表すグラフ構造を入力データ10Cから抽出する。エンコード部300は、センサ時系列データから当該グラフ構造の頂点である複数のセンサの各々の特徴量を抽出する。エンコード部300は、複数の頂点に含まれる2つの頂点の間に辺が存在する尤度を算出し、当該尤度を成分とする隣接行列をサンプリング部330に出力する。
【0082】
サンプリング部330は、エンコード部300からの隣接行列に対してGumbel-Softmax関数を用いた再パラメータ化トリックを行い、グラフ構造Gsを決定して、グラフ構造Gsおよびグラフ構造Gsの複数の頂点の各々の特徴量をデコード部340および品質検査部370に出力する。
【0083】
デコード部340は、デコーダモデルMdを含む。デコーダモデルMdは、グラフ構造Gsおよび当該特徴量から出力データ20Cを再生する。
【0084】
品質検査部370は、品質検査モデルMmを含む。品質検査モデルMmは、グラフ構造Gsおよび当該特徴量に基づいて製品の品質を表す品質データを算出する。品質検査部370は、たとえばGNNを含む。品質検査部370は、当該品質データと基準品質データとの誤差をグラフ構造Gsにおいて可視化する。基準品質データとは、正常な製品に対応する標準的な品質データである。品質データと基準品質データとの誤差が大きいほど、当該品質データに含まれる不具合の程度が大きい。当該誤差のグラフ構造Gsにおける可視化の方法としては、たとえばGradCAM(Gradient-weighted Class Activation Mapping)を用いた当該誤差のヒートマップ化を挙げることができる。
【0085】
学習部350は、バックプロパゲーションによって、品質検査モデルMm、デコーダモデルMd、およびエンコーダモデルMcの各々に含まれるニューラルネットワークのパラメータを最適化する。当該パラメータには、当該ニューラルネットワークの重みおよびバイアスが含まれる。バックプロパゲーションにおける最小化対象の損失関数は、出力データ20Cと入力データ10C(正解データ)との誤差、および品質検査部370の検査結果と学習データセットに含まれる正解品質データとの誤差を含む。すなわち、学習部350は、品質検査部370、デコード部340、エンコード部300に対して半教師あり学習を行う。具体的には、学習部350は、デコード部340およびエンコード部300に対しては教師なし学習を行い、品質検査部370に対しては教師あり学習を行う。
【0086】
収集解析サーバ装置3の主目的は、品質検査部370による検査結果の出力である。エンコード部300、サンプリング部330、デコード部340、および学習部350によって形成されるVAEの最適化は、入力データ10Cからグラフ構造へのロスレス圧縮を実現するためのサブタスクとして位置付けられる。
【0087】
図17は、
図14の収集解析サーバ装置3のハードウェア構成を示すブロック図である。
図17に示されるように、収集解析サーバ装置3は、演算処理部であるプロセッサ31と、記憶部としてのメインメモリ32およびハードディスク33と、入力インターフェイス34と、表示コントローラ35と、通信インターフェイス36と、データリーダ/ライタ38とを含む。これらの各部は、バス39を介して、互いにデータ通信可能に接続される。
【0088】
プロセッサ31は、CPU(Central Processing Unit)を含む。プロセッサ31は、GPU(Graphics Processing Unit)をさらに含んでもよい。プロセッサ31は、ハードディスク33に格納されたプログラム(コード)をメインメモリ32に展開して、これらを所定順序で実行することで、各種の演算を実施する。
【0089】
メインメモリ32は、典型的には、DRAM(Dynamic Random Access Memory)などの揮発性の記憶装置である。メインメモリ32は、ハードディスク33から読み出されたプログラムを保持する。
【0090】
入力インターフェイス34は、プロセッサ31と入力部361との間のデータ伝送を仲介する。入力部361は、たとえば、マウス、キーボード、またはタッチパネルを含む。すなわち、入力インターフェイス34は、ユーザが入力部361を操作することで与えられる操作指令を受付ける。
【0091】
表示コントローラ35は、表示装置の典型例であるディスプレイ362と接続され、プロセッサ31における画像処理の結果などをユーザに通知する。すなわち、表示コントローラ35は、ディスプレイ362に接続され、ディスプレイ362での表示を制御する。ディスプレイ362は、たとえば液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ、またはその他の表示装置である。
【0092】
通信インターフェイス36は、プロセッサ31と他の外部装置との間のインターネットを介するデータ伝送を仲介する。通信インターフェイス36は、典型的には、イーサネット(登録商標)、またはUSB(Universal Serial Bus)を含む。
【0093】
データリーダ/ライタ38は、プロセッサ31と記録媒体であるメモリカード363との間のデータ伝送を仲介する。メモリカード363には、たとえば、収集解析サーバ装置3において実行されるプログラムが格納されている。データリーダ/ライタ38は、メモリカード363からプログラムを読み出す。なお、メモリカード363は、CF(Compact Flash)、SD(Secure Digital)などの汎用的な半導体記憶デバイスや、フレキシブルディスク(Flexible Disk)などの磁気記憶媒体や、CD-ROM(Compact Disk Read Only Memory)などの光学記憶媒体等からなる。なお、収集解析サーバ装置3には、必要に応じて、プリンタなどの他の出力装置が接続されてもよい。
【0094】
ハードディスク33は、不揮発性の磁気記憶装置である。ハードディスク33には、学習データセットDs、品質検査モデルMm、エンコーダモデルMc、デコーダモデルMd、機械学習プログラムPg1、および品質検査プログラムPg2が保存されている。ハードディスク33には、各種設定値などが格納されてもよい。なお、ハードディスク33に加えて、あるいは、ハードディスク33に代えて、フラッシュメモリなどの半導体記憶装置を採用してもよい。
【0095】
学習データセットDsは、複数の学習データを含む。複数の学習データの各々は、製品が通過した複数の工程の各々のセンサによる検出値の時系列データ、および当該製品の品質に対応する正解品質データの組み合わせである。
【0096】
機械学習プログラムPg1において、学習データセットDs、エンコーダモデルMc、デコーダモデルMd、および品質検査モデルMmが参照される。機械学習プログラムPg1を実行するプロセッサ31によって、
図16のエンコード部300、サンプリング部330、デコード部340、学習部350、および品質検査部370が実現される。プロセッサ31は、機械学習プログラムPg1を実行することによって、エンコーダモデルMc、デコーダモデルMd、および品質検査モデルMmの各々を学習済みに適合する。
【0097】
品質検査プログラムPg2において、エンコーダモデルMcおよび品質検査モデルMmが参照される。プロセッサ31は、品質検査プログラムPg2を実行することによって、製品に対応するセンサ時系列データから当該製品の品質データを算出し、当該品質データと基準品質データとの誤差をグラフ構造Gsにおいて可視化する。当該誤差のグラフ構造Gsにおいて可視化された当該誤差は、ディスプレイ362および端末装置309に出力される。
【0098】
図18は、品質データおよび基準品質データの誤差とともに可視化されたグラフ構造Gsの一例を示す図である。
図18において、頂点Sn
1~Sn
5は、
図14の工程Pr
1~Pr
5のそれぞれに設けられたセンサに対応する。ハッチングが濃い頂点ほど、当該頂点に対応するセンサの検出値が正常値から乖離していることを示す。
【0099】
図18に示されるように、頂点Sn
3は、Sn
1,Sn
2,Sn
4に接続されている。頂点Sn
5は、頂点Sn
2に接続されている。頂点Sn
2が最も濃く、頂点Sn
1,Sn
4が最も薄い。頂点Sn
2とSn
3とを接続する辺および頂点Sn
2とSn
5とを接続する辺は、他の辺よりも太く強調されている。誤差が可視化されたグラフ構造Gsは、複数のセンサの検出値の相関関係を表しているとともに、製品に含まれる不具合(品質データと基準品質データとの誤差)に寄与しているセンサの検出値を示している。
図18において、製品に含まれる不具合に最も寄与しているセンサの検出値は、頂点Sn
2に対応する工程Pr
2に設けられたセンサの検出値である。そのため、工程Pr
2に不具合が発生している可能性が高い。また、グラフ構造Gsにおいて頂点Sn
2に接続されている頂点Sn
3,Sn
5にそれぞれ対応する工程Pr
3,Pr
5においても、工程Pr
2に次いで不具合が発生している可能性がある。頂点Sn
1,Sn
4にそれぞれ対応する工程Pr
1,Pr
4においては、不具合が発生している可能性が最も低い。誤差が可視化されたグラフ構造Gsによれば、複数の工程を経て完成された製品に含まれる不具合の発生原因となる工程を容易に特定することができる。
【0100】
以上、実施の形態3に係る情報処理装置および機械学習方法によれば、入力データからグラフ構造を中間表現として抽出するモデルの精度を向上させることができる。
【0101】
[実施の形態に係る情報処理装置および機械学習方法の他の適用例]
実施の形態に係る情報処理装置および機械学習方法は、人流予測に基づくルートプランニングに適用可能である。
図19は、実施の形態に係る情報処理装置に対応するロボットRbによるルートプランニングを説明するための図である。
図19に示されるように、ロボットRbの視野には、通行人Ps1,Ps2,Ps3が含まれている。通行人Ps1は、通行人Ps2を見ている。通行人Ps2は、通行人Ps3を見ている。通行人Ps3は、通行人Ps2を見ている。ロボットRbは、時系列データである視野動画に含まれる通行人Ps1~Ps3の各々の姿勢、視線方向、および通行人Ps1~Ps3の相対位置関係等に基づいて通行人Ps1~Ps3の各々を頂点とする有向グラフ構造を抽出する。
【0102】
図20は、
図19のロボットRbによって抽出される有向グラフ構造Pfを示す図である。
図19において頂点Vx
1,Vx
2,Vx
3は、
図19の通行人Ps
1,Ps
2,Ps
3にそれぞれ対応する。
図20に示されるように、頂点Vx
1と頂点Vx
2とは、頂点Vx
1からVx
2に向かう辺Eg
1によって接続されている。頂点Vx
2と頂点Vx
3とは、頂点Vx
2からVx
3に向かう辺Eg
2および頂点Vx
3からVx
2に向かう辺Eg
3によって接続されている。
【0103】
図21は、
図20の有向グラフ構造Pfに対応する行列表現を示す図である。ロボットRbは、
図21に示される有向グラフ構造Pfを推論部に入力して、通行人Ps
1~Ps
3に対する人流予測を行い、通行人Ps
1~Ps
3を回避可能な
図19のルートRtを計画する。当該推論部は、たとえばSocial GAN(Generative Adversarial Network)を含む。
【0104】
実施の形態に係る情報処理装置および機械学習方法は、交通渋滞の予測にも適用可能である。交通渋滞の予測に当たっては、道路によって接続されている複数の地点における時刻毎の交通量を時系列の入力データとして、当該入力データから各時刻における複数の地点の各々を頂点とし、異なる時刻に亘る2地点間の交通量の関係性を辺とするグラフ構造が抽出される。すなわち、時刻毎の複数の地点を頂点集合の部分集合とするN部グラフマッチングの結果として入力データからグラフ構造が抽出される。情報処理装置は、当該グラフ構造に基づいて、特定時刻における各地点の交通渋滞を予測する。
【0105】
実施の形態に係る情報処理装置および機械学習方法は、マテリアルズ・インフォマティクス(MI:Materials Informatics)にも適用可能である。マテリアルズ・インフォマティクスへの適用例においては、入力データから抽出されたグラフ構造の頂点および辺を分子構造の原子および結合に対応させて、当該分子構造の物性が推定される。
【0106】
<付記>
上述したような実施の形態は、以下のような技術思想を含む。
【0107】
(構成1)
入力データ(10,10B,10C)に含まれる要素間の相関関係を表すグラフ構造(Tr,Bp,Gs,Pf)を前記入力データ(10,10B,10C)から抽出し、前記グラフ構造(Tr,Bp,Gs,Pf)から出力データ(20,20B,20C)を生成する情報処理装置(1,1A,2,3)であって、
前記入力データ(10,10B,10C)から前記グラフ構造(Tr,Bp,Gs,Pf)に含まれる複数の頂点(Lf1~Lf4,Nd1~Nd4,Us1~Us4,Cm1~Cm5,Sn1~Sn5,Vx1~Vx3)の各々の特徴量(Θ,Φ,Ω,Γ)を抽出し、当該頂点に前記相関関係を表す辺(Br1~Br7,Rs1~Rs4,Eg1~Eg3)が接続されている尤度を算出するエンコード部(100,200,300)と、
前記尤度に対するGumbel-Softmax関数の変換結果に基づいて、前記グラフ構造(Tr,Bp,Gs,Pf)を決定するサンプリング部(130,230,330)と、
前記グラフ構造(Tr,Bp,Gs,Pf)、および前記特徴量(Θ,Φ,Ω,Γ)を受けて前記出力データ(20,20B,20C)を生成するデコード部(140,240,340)と、
前記出力データ(20,20B,20C)と正解データとの誤差(LP)を含む損失関数を最小化対象とするバックプロパゲーションによって、前記デコード部(140,240,340)および前記エンコード部(100,200,300)を最適化する学習部(150,250,350)とを備える、情報処理装置(1,1A,2,3)。
【0108】
(構成2)
前記出力データ(10)から前記グラフ構造(Tr)を再構成する再構成部(160)をさらに備え、
前記損失関数は、前記再構成部(160)からの出力と正解グラフ構造との誤差(LR)を含む、構成1に記載の情報処理装置(1A)。
【0109】
(構成3)
前記サンプリング部(230,330)から前記グラフ構造(Bp,Gs)を受けて、前記入力データ(10B,10C)に対する推論結果を出力する推論部(270,370)をさらに備え、
前記学習部(250,350)は、前記デコード部(240,340)および前記エンコード部(100,200)に対しては教師なし学習を行い、前記推論部(270,370)に対しては教師あり学習を行う、構成1または2に記載の情報処理装置(2,3)。
【0110】
(構成4)
前記入力データ(10)は、第1データ(11)および第2データ(12)を含み、
前記第1データ(11)のモダリティは、前記第2データ(12)のモダリティとは異なり、
前記エンコード部(100)は、
前記第1データ(11)の特徴量(Θ,Φ)を抽出する第1エンコーダ(110)と、
前記第2データ(12)の特徴量(Γ)を抽出する第2エンコーダ(120)とを含む、構成1~3のいずれかに記載の情報処理装置(1,1A)。
【0111】
(構成5)
前記出力データ(20)のモダリティは、前記入力データ(10)のモダリティとは異なる、構成1~4のいずれかに記載の情報処理装置(1,1A)。
【0112】
(構成6)
入力データ(10,10B,10C)に含まれる要素間の相関関係を表すグラフ構造(Tr,Bp,Gs,Pf)を前記入力データ(10,10B,10C)から抽出し、前記グラフ構造(Tr,Bp,Gs,Pf)から出力データ(20,20B,20C)を生成するモデル(Mc,Md)に対して、記憶部(33)に保存された機械学習プログラム(Pg1)を実行するプロセッサ(31)によって行われる機械学習方法であって、
前記入力データ(10,10B,10C)から前記グラフ構造(Tr,Bp,Gs,Pf)に含まれる複数の頂点(Lf1~Lf4,Nd1~Nd4,Us1~Us4,Cm1~Cm5,Sn1~Sn5,Vx1~Vx3)の各々の特徴量(Θ,Φ,Ω,Γ)を抽出し、当該頂点に前記相関関係を表す辺(Br1~Br7,Rs1~Rs4,Eg1~Eg3)が接続されている尤度を算出するステップ(S11,S12)と、
前記尤度に対するGumbel-Softmax関数の変換結果に基づいて、前記グラフ構造(Tr,Bp,Gs,Pf)を決定するステップ(S13)と、
前記グラフ構造(Tr,Bp,Gs,Pf)、および前記特徴量(Θ,Φ,Ω,Γ)を受けて前記出力データ(20,20B,20C)を生成するステップ(S14)と、
前記出力データ(20,20B,20C)と正解データとの誤差(LP)を含む損失関数を最小化対象とするバックプロパゲーションによって、前記モデル(Mc,Md)を最適化するステップ(S15)とを含む、機械学習方法。
【0113】
今回開示された各実施の形態は、矛盾しない範囲で適宜組み合わされて実施されることも予定されている。今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0114】
1,1A,2 情報処理装置、3 収集解析サーバ装置、10,10B,10C 入力データ、11 画像列データ、12 食材列データ、20,20B,20C 出力データ、30 製造設備、31,312 プロセッサ、32 メインメモリ、33 ハードディスク、34 入力インターフェイス、35 表示コントローラ、36,318 通信インターフェイス、38 データリーダ/ライタ、39 バス、100,200,300 エンコード部、110,120 エンコーダ、111 画像エンコーダ、114,124,163 行列推定器、121 分散表現器、130,143,230,330 サンプリング部、140,240,340 デコード部、142 エンコーダデコーダモデル、150,150A,250,350 学習部、160 再構成部、270 推論部、306 ローカルネットワーク、307 コンベア、308 中継サーバ装置、309 端末装置、310 演算ユニット、314,324 バスコントローラ、315 センサ、316 メモリ、320 機能ユニット、322 モジュール、326 内部バス、361 入力部、362 ディスプレイ、363 メモリカード、370 品質検査部、3000 管理システム、Bp 2部グラフ構造、Br1~Br7 枝、Cm1~Cm5 企業、Ds 学習データセット、Eg1~Eg3,Rs1~Rs4 辺、Gs グラフ構造、Im1~Im4 画像、LP,LR,LT 損失関数、Lf1~Lf4 リーフノード、Mc エンコーダモデル、Md デコーダモデル、Mm 品質検査モデル、Nd1~Nd4 ノード、Pf 有向グラフ構造、Pg1 機械学習プログラム、Pg2 品質検査プログラム、Pr1~Pr5 工程、Ps1~Ps3 通行人、Rb ロボット、Rt ルート、Sb1,Sb2 部分集合、Sn1~Sn5,Vx1~Vx3 頂点、St1~St4,Tx1~Tx4 文字列、Tr ツリー構造、Us1~Us4 ユーザ。