(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023119369
(43)【公開日】2023-08-28
(54)【発明の名称】分析装置、分析方法及び分析プログラム
(51)【国際特許分類】
G06N 3/08 20230101AFI20230821BHJP
【FI】
G06N3/08
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022022241
(22)【出願日】2022-02-16
(71)【出願人】
【識別番号】399035766
【氏名又は名称】エヌ・ティ・ティ・コミュニケーションズ株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】小山 和輝
(72)【発明者】
【氏名】藤原 大悟
(72)【発明者】
【氏名】切通 恵介
(72)【発明者】
【氏名】大川内 智海
(72)【発明者】
【氏名】泉谷 知範
(57)【要約】
【課題】特徴量間の因果関係の分析結果に、既知の因果関係を適切に反映させること。
【解決手段】分析装置は、ニューラルネットワークの入力層のノードであって、複数の特徴量のそれぞれが入力される複数のノードのうち、結果のデータとの因果関係があらかじめ指定された特徴量が入力されるノードの重みに、因果関係に応じた固定値を設定する。また、分析装置は、ニューラルネットワークの出力が、結果のデータに近付くように、ニューラルネットワークに含まれるノードの重みのうち、固定値が設定されていない重みを更新する。分析装置は、入力層のノードの重みを基に、複数の特徴量と結果のデータとの間の因果関係を示す情報を生成する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ニューラルネットワークの入力層のノードであって、複数の特徴量のそれぞれが入力される複数のノードのうち、結果のデータとの因果関係があらかじめ指定された特徴量が入力されるノードの重みに、前記因果関係に応じた固定値を設定する設定部と、
前記ニューラルネットワークの出力が、前記結果のデータに近付くように、前記ニューラルネットワークに含まれるノードの重みのうち、前記設定部によって固定値が設定されていない重みを更新する更新部と、
前記入力層のノードの重みを基に、前記複数の特徴量と前記結果のデータとの間の因果関係を示す情報を生成する生成部と、
を有することを特徴とする分析装置。
【請求項2】
前記設定部は、前記複数の特徴量のうち、前記結果のデータとの間に因果があることが指定された特徴量が入力されるノードの重みに固定値を設定し、前記複数の特徴量のうち、前記結果のデータとの間に因果がないことが指定された特徴量が入力されるノードの重みに0を設定し、
前記更新部は、前記ニューラルネットワークのノードの重みのうち、前記設定部によって固定値が設定されていない重みを、前記固定値と0の間の範囲に含まれる値に更新することを特徴とする請求項1に記載の分析装置。
【請求項3】
前記設定部は、前記複数の特徴量のそれぞれが前記結果のデータとして対応付けられた複数のニューラルネットワークのそれぞれについて、入力層のノードであって、複数の特徴量のそれぞれが入力される複数のノードのうち、対応付けられた前記結果のデータとの因果関係があらかじめ指定された特徴量が入力されるノードの重みに、前記因果関係に応じた固定値を設定し、
前記更新部は、前記複数のニューラルネットワークの出力のそれぞれが、対応付けられた前記結果のデータに近付くように、前記ニューラルネットワークに含まれるノードの重みのうち、前記設定部によって固定値が設定されていない重みを更新することを特徴とする請求項1に記載の分析装置。
【請求項4】
分析装置によって実行される分析方法であって、
ニューラルネットワークの入力層のノードであって、複数の特徴量のそれぞれが入力される複数のノードのうち、結果のデータとの因果関係があらかじめ指定された特徴量が入力されるノードの重みに、前記因果関係に応じた固定値を設定する設定工程と、
前記ニューラルネットワークの出力が、前記結果のデータに近付くように、前記ニューラルネットワークに含まれるノードの重みのうち、前記設定工程によって固定値が設定されていない重みを更新する更新工程と、
前記入力層のノードの重みを基に、前記複数の特徴量と前記結果のデータとの間の因果関係を示す情報を生成する生成工程と、
含むことを特徴とする分析方法。
【請求項5】
コンピュータを、請求項1から3のいずれか1項に記載の分析装置として機能させるための分析プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、分析装置、分析方法及び分析プログラムに関する。
【背景技術】
【0002】
従来、人間の行動を機械学習モデルに学習させ、当該モデルを用いて人間又はロボット等に動作を教示する模倣学習という技術が知られている。
【0003】
例えば、化学プラントにおける模倣学習では、複数のセンサ値が特徴量として入力され、機器の操作に関する情報を出力する機械学習モデルが用いられる場合がある。
【0004】
さらに、特徴量間の因果関係を分析するための手法が提案されている。
【0005】
例えば、因果関係の表現として期待されるDAG(Directed Acyclic Graph:有向非巡回グラフ)を、数値計算により求めることができる手法が提案されている(例えば、非特許文献1を参照)。
【0006】
また、例えば、非特許文献1に記載の手法に、ニューラルネットワークの一種であるMLP(Multilayer perceptron:多層パーセプトロン)を組み合わせて、DAGによって非線形な因果関係を捉えられるようにする手法が提案されている(例えば、非特許文献2を参照)。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】Zheng, Xun, et al. "DAGs with NO TEARS: Continuous Optimization for Structure Learning." Advances in Neural Information ProcessingSystems 31, 2018.
【非特許文献2】Zheng, Xun, et al. "Learning sparse nonparametric dags." International Conference on Artificial Intelligence and Statistics. PMLR, 2020.
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、従来の因果関係の分析手法では、データ間の因果関係の分析結果に、既知の因果関係を適切に反映させることが困難な場合があるという問題がある。
【0009】
ここで、一部のデータ間の因果の有無が、事前知識としてユーザに知られている場合がある。なお、データは、例えば機械学習モデルに入力される特徴量である。
【0010】
一方で、従来の分析手法では、データ及びアルゴリズムによりデータ間の因果関係が一意に推定されるため、事前知識を分析結果に反映させることは難しい。
【課題を解決するための手段】
【0011】
上述した課題を解決し、目的を達成するために、分析装置は、ニューラルネットワークの入力層のノードであって、複数の特徴量のそれぞれが入力される複数のノードのうち、結果のデータとの因果関係があらかじめ指定された特徴量が入力されるノードの重みに、前記因果関係に応じた固定値を設定する設定部と、前記ニューラルネットワークの出力が、前記結果のデータに近付くように、前記ニューラルネットワークに含まれるノードの重みのうち、前記設定部によって固定値が設定されていない重みを更新する更新部と、前記入力層のノードの重みを基に、前記複数の特徴量と前記結果のデータとの間の因果関係を示す情報を生成する生成部と、を有することを特徴とする。
【発明の効果】
【0012】
本発明によれば、特徴量間の因果関係の分析結果に、既知の因果関係を適切に反映させることができる。
【図面の簡単な説明】
【0013】
【
図1】
図1は、プラント運用システムについて説明する図である。
【
図2】
図2は、第1の実施形態に係るサーバの構成例を示す図である。
【
図5】
図5は、データ間に因果がある場合の設定方法を説明する図である。
【
図6】
図6は、データ間に因果がない場合の設定方法を説明する図である。
【
図7】
図7は、データ間の因果が不明である場合の設定方法を説明する図である。
【
図9】
図9は、第1の実施形態に係る分析処理の流れを示すフローチャートである。
【
図10】
図10は、第1の実施形態に係る設定処理の流れを示すフローチャートである。
【
図11】
図11は、分析プログラムを実行するコンピュータの構成例を示す図である。
【発明を実施するための形態】
【0014】
以下に、本願に係る分析装置、分析方法及び分析プログラムの実施形態を図面に基づいて詳細に説明する。なお、本発明は、以下に説明する実施形態により限定されるものではない。
【0015】
[第1の実施形態]
[第1の実施形態の構成]
まず、
図1を用いて、プラント運用システムについて説明する。プラント運用システム1は、プラントにおける製品の生産工程の管理及び制御を行うためのシステムである。プラントには、化学製品を生産するための化学プラントが含まれる。
【0016】
図1に示すように、サーバ10、端末装置20及びプラントシステム30を有する。
【0017】
また、サーバ10、端末装置20及びプラントシステム30は、ネットワークNを介して互いにデータ通信ができるように接続されている。例えば、ネットワークNはインターネット又はイントラネットである。
【0018】
サーバ10は、模倣学習に関する処理を行う。サーバ10は、模倣学習のためのモデル(以下、模倣学習モデル)の学習処理及び当該模倣学習モデルを用いた推論処理を実行する。
【0019】
例えば、サーバ10は、プラントシステム30から各時刻のセンサ値及び対応する操作内容の履歴を取得する。センサ値及び操作内容は、それぞれ模倣学習モデルの説明変数及び目的変数に相当する。
【0020】
この場合、サーバ10は、プラントシステム30から取得したセンサ値及び操作内容を教師データとして用いて模倣学習モデルの学習処理を行う。
【0021】
また、サーバ10は、プラントシステム30から取得したセンサ値を学習済みの模倣学習モデルに入力し、推論処理を実行することで操作内容を得る。
【0022】
サーバ10は、推論処理によって得られた操作内容をユーザに提供する。ユーザは、提供された操作内容に従ってプラントシステム30の機器を操作することができる。
【0023】
例えば、ユーザは、操作により、機器内の温度、機器内の圧力、生産工程における生産量の目標値、機器に投入する原料の量等を設定する。
【0024】
端末装置20は、パーソナルコンピュータ、タブレット型端末及びスマートフォン等の情報処理装置である。
【0025】
プラントシステム30は、生産工程で使用される機器及び分散制御システム(DCS:Distributed Control System)を含むものであってもよい。例えば、機器は、反応器、冷却器、気液分離器等である。
【0026】
さらに、サーバ10は、模倣学習モデルの変数間の因果関係を分析する因果分析処理を行う。サーバ10は、分析装置の一例である。
図1を用いて、因果関係の分析に関する処理の流れを説明する。
【0027】
なお、模倣学習モデルの変数には、説明変数及び目的変数の両方が含まれる。また、以降の説明では、模倣学習モデルの変数を、特徴量又は単にデータと呼ぶ場合がある。
【0028】
まず、
図1に示すように、サーバ10は、プラントシステム30から取得したデータを蓄積する(ステップS1)。例えば、サーバ10は、時刻ごとの温度、濃度、圧力、流量といったセンサ値を取得し蓄積する。
【0029】
次に、サーバ10は、ユーザから特徴量間の因果関係に関する事前知識を取得する(ステップS2)。
【0030】
例えば、事前知識は、例えばユーザが因果があると考えている特徴量の組及び因果の方向のリスト、又はユーザが因果がないと考えている特徴量の組のリストとしてサーバ10に与えらる。
【0031】
端末装置20は、分析者の操作に応じて、サーバ10に因果分析処理の実行を指示する(ステップS3)。また、端末装置20は、サーバ10から因果分析結果を取得する。
【0032】
サーバ10は、事前知識に基づき特徴量間の因果関係の追加及び削除を行った上で、アルゴリズムに従って因果関係を計算する。例えば、サーバ10は、計算した因果関係を基に生成したDAG(Directed Acyclic Graph)を、因果分析結果として出力する。
【0033】
図2を用いて、サーバ10について詳細に説明する。
図2は、第1の実施形態に係るサーバの構成例を示す図である。
【0034】
ここでは、サーバ10が因果分析処理を行う場合の構成を説明する。サーバ10が学習処理及び推論処理を行う場合の構成については説明を省略する。
【0035】
図2に示すように、サーバ10は、通信部11、記憶部12及び制御部13を有する。
【0036】
通信部11は、ネットワークを介して、他の装置との間でデータ通信を行う。例えば、通信部11はNIC(Network Interface Card)である。
【0037】
記憶部12は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、光ディスク等の記憶装置である。なお、記憶部12は、RAM(Random Access Memory)、フラッシュメモリ、NVSRAM(Non Volatile Static Random Access Memory)等のデータを書き換え可能な半導体メモリであってもよい。
【0038】
記憶部12は、サーバ10で実行されるOS(Operating System)や各種プログラムを記憶する。記憶部12は、履歴DB121及びモデル情報122を記憶する。
【0039】
履歴DB121は、プラントシステム30から提供された履歴を含む情報である。
図3は、履歴DBの例を示す図である。
【0040】
図3に示すように、履歴DB121は、時刻、温度、濃度、圧力、流量及び設定値を含む。
【0041】
温度、濃度、圧力及び流量は、模倣学習モデルの説明変数に相当する。また、設定値は、模倣学習モデルの目的変数に相当する。なお、因果関係の分析対象である特徴量には、説明変数及び目的変数のいずれが含まれていてもよい。
【0042】
また、例えば、温度、濃度、圧力及び流量は、プラントシステム30の各所に設置されたセンサのセンサ値である。なお、時刻は、温度、濃度、圧力及び流量が取得された時刻を示すタイムスタンプである。
【0043】
設定値は、端末装置20からの操作によって設定される値である。設定値は、実際に設定された値を正規化した値であってもよい。設定値は機器の操作内容を特定するための値である。
【0044】
例えば、
図3には、時刻「2021/11/5 13:30:01」における温度が「40℃」であり、濃度が3.5%であり、圧力が「501hPa」であり、流量が「12m
3/s」であり、設定値が「0.2」であることが示されている。
【0045】
モデル情報122は、因果分析のためのモデルを構築するためのパラメータ等の情報である。例えば、モデルがニューラルネットワークである場合、モデル情報122は、各層の重み及びバイアスである。
【0046】
制御部13は、サーバ10全体を制御する。制御部13は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)等の電子回路や、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の集積回路である。
【0047】
また、制御部13は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、内部メモリを用いて各処理を実行する。また、制御部13は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部13は、設定部131、計算部132、更新部133及び生成部134を有する。
【0048】
ここで、実施形態における因果分析処理の概要、及び因果分析処理において用いられるモデルについて説明する。
【0049】
まず、非特許文献1には、DAGによりデータ間の因果関係を表現することが記載されている。
【0050】
また、非特許文献2には、DAGにより因果関係を表現する際の問題設定((1)式)を、ニューラルネットワークの一種である多層パーセプトロンを使った問題設定((2)式)に緩和することが記載されている。
【0051】
【0052】
【0053】
ただし、分析対象のデータをxj(1,…,d)とする。また、Xはデータx1,…,xdの集合である。xj(1,…,d)を要素数がn個のベクトルとすると、Xはn×dの行列として表される。
【0054】
また、関数lはベクトル間のかい離度(例えば、最小二乗法における二乗和、又は負の対数尤度)を出力する。また、関数Lは誤差関数である。また、関数GはDAGを表す関数である。
【0055】
(2)式では、データxj(1,…,d)のそれぞれに対応したd個の多層パーセプトロンMLPが用いられる。θj(1,…,d)は、各MLPのパラメータである。
【0056】
Aj
(1)は、xjに対応する多層パーセプトロンの入力層(第1層)の重みである。λはハイパーパラメータとしてあらかじめ設定される定数である。すなわち、(2)式の第2項は、MLPの第1層の重みに関するL1制約を意味する。
【0057】
また、h(W(θ))=0は、DAGを誘導する等式制約であり、行列W(θ)がDAGの表現となるように、必要な成分(例えば、対角成分)を全て0に縮退させる制約を意味する。なお、W(θ)は、所定のノード間の重みを表す隣接行列である。
【0058】
ここで、隣接行列W(θ)の(i,j)成分は、データxiからデータxjへ(xi→xj)の因果を表現している。例えば、w41は、データx4からデータx1への因果を表現している。
【0059】
特に、隣接行列W(θ)の(i,j)成分が0の場合、データxiからデータxjへの因果が存在しないことを意味する。逆に、隣接行列W(θ)の(i,j)成分が非0の場合、データxiからデータxjへの因果が存在することを意味する。
【0060】
制約h(W(θ))は、MLPの学習が進んだ結果、隣接行列W(θ)に対応した因果グラフ(ネットワーク)が有向非巡回になるような制約ということができる。具体的には、制約h(W(θ))は、隣接行列W(θ)が下三角行列又は上三角行列であって、かつ対角成分が0である行列になるような制約である。
【0061】
このとき、DAGの仮定より、各変数自身への因果(データxiからデータxiへの因果)は必ず存在しないので、隣接行列W(θ)の対角成分(i=jの場合のwij)の初期値には0が設定される。
【0062】
また、対角成分以外の成分(i≠jの場合のwij)の初期値には任意の値が設定され、学習が進むに従って当該成分の一部は制約により0に縮退していく。
【0063】
実施形態において、サーバ10は、事前知識としてユーザ等によりあらかじめ指定された因果関係を、(2)式の問題設定に反映させる。
【0064】
モデル情報122には、(2)式の問題設定に従って因果分析処理を行うためのモデルの情報が含まれる。なお、ここではd=4の場合、すなわちデータがx1、x2、x3、x4の場合の例を説明する。
【0065】
データx1、x2、x3、x4は、履歴DBに記憶される各変数であってもよい。また、データx1、x2、x3、x4は、特徴量ということができる。
【0066】
サーバ10は、モデル情報122を基に、
図4に示すようなモデルを構築する。
図4は、モデルの構成例を示す図である。
【0067】
図4に示すように、モデルには、MLP51、MLP52、MLP53、MLP54が含まれる。
【0068】
各MLPは、入力層の各変数を原因とし、出力層で指定される変数を結果とする因果分析に対応する。MLP51、MLP52、MLP53、MLP54は、それぞれデータx1、x2、x3、x4を結果とする因果分析に対応付けられている。
【0069】
例えば、MLP51には、データx2、x3、x4が入力される。そして、MLP51は、出力層から出力される値が結果であるデータx1に近付くように最適化される。
【0070】
なお、
図4ではMLPの入力層にデータx
1に対応するノードが配置されているが、当該ノードは説明のためのものであり、実際には存在しないか、又は重み0として扱われる。
【0071】
MLP51と同様に、MLP52、MLP53、MLP54についても、対応付けられたデータに応じて同様の構成を有する。
【0072】
例えば、MLP52には、データx1、x3、x4が入力される。そして、MLP52は、出力層から出力される値がx2に近付くように最適化される。
【0073】
例えば、MLP53には、データx1、x2、x4が入力される。そして、MLP53は、出力層から出力される値がx3に近付くように最適化される。
【0074】
例えば、MLP54には、データx1、x2、x3が入力される。そして、MLP54は、出力層から出力される値がx4に近付くように最適化される。
【0075】
制御部13の各部は、
図4に示したモデルを用いて、データx
1、x
2、x
3、x
4の間の因果関係を分析する処理を行う。
【0076】
設定部131は、ニューラルネットワークの入力層のノードであって、複数の特徴量のそれぞれが入力される複数のノードのうち、結果のデータとの因果関係があらかじめ指定された特徴量が入力されるノードの重みに、因果関係に応じた固定値を設定する。
【0077】
すなわち、設定部131は、MLP51、MLP52、MLP53、MLP54の入力層のノードから隠れ層の各ノードへの重みに、ユーザの事前知識に基づき固定値を設定する。
【0078】
各MLPは、ニューラルネットワークの一例である。また、データx1、x2、x3、x4は、特徴量でもあり、結果のデータでもある。例えば、MLP52においては、データx1、x3、x4が特徴量であり、データx2が結果のデータである。
【0079】
図5は、データ間に因果がある場合の設定方法を説明する図である。ここでは、データx
3からデータx
2への因果があることが指定されているものとする。
【0080】
この場合、設定部131は、MLP52の入力層の、データx3が入力される入力層のノードから隠れ層の各ノードへの重みを1/√m1に設定する。ただし、m1は入力層と接続される隠れ層のノード数である。
【0081】
図5の例では、入力層と接続される隠れ層のノード数は5である。この場合、設定部131は、[A
2
(1)]
.,3=1/√5のように設定を行う。
【0082】
ここで、[Aj
(1)]k,iは、データxjを結果とする因果分析に対応付けらたMLPの1番目の層(入力層)の第iノードから2番目の層(隠れ層の第1層)の第kノードへの重みである。
【0083】
言い換えると、[Aj
(1)]k,iは、データxjを結果とする因果分析に対応付けらたMLPの、入力層の第iノードから隠れ層の第1層の第kノードへの重みであるai,k,j
(1)を要素として持つ3次元配列である。
【0084】
また、「.」は任意の値を意味する。このため、[Aj
(1)].,iは、データxjを結果とする因果分析に対応付けらたMLPの1番目の層(入力層)の第iノードから2番目の層(隠れ層の第1層)の任意のノードへの重みである。
【0085】
このように、設定部131は、複数の特徴量のうち、結果のデータとの間に因果があることが指定された特徴量が入力されるノードの重みに固定値を設定する。1/√m1は固定値の一例である。
【0086】
図6は、データ間に因果がない場合の設定方法を説明する図である。ここでは、データx
3からデータx
2に対して因果がないことが指定されているものとする。
【0087】
この場合、設定部131は、MLP52の入力層の、データx3が入力される入力層のノードから隠れ層の各ノードへの重みを0に設定する。
【0088】
図6の例では、設定部131は、[A
2
(1)]
.,3=0のように設定を行う。なお、重みを0に設定することは、ノード間の接続を削除することを意味する。
【0089】
このように、設定部131は、複数の特徴量のうち、結果のデータとの間に因果がないことが指定された特徴量が入力されるノードの重みに0を設定する。
【0090】
図7は、データ間の因果が不明である場合の設定方法を説明する図である。ここでは、データx
3からデータx
2への因果関係が指定されていないものとする。
【0091】
この場合、設定部131は、MLP52の入力層の、データx3が入力される入力層のノードから隠れ層の各ノードへの重みに固定値を設定しない。
【0092】
その際、後述する更新部133による処理において、当該ノードの重みは[A2
(1)].,3∈[0,1/√5]の範囲で更新される。
【0093】
設定部131は、MLP51、MLP53、MLP54についても、
図5、6、7で説明した方法により固定値の設定を行う。
【0094】
すなわち、設定部131は、複数の特徴量のそれぞれが結果のデータとして対応付けられた複数のニューラルネットワークのそれぞれについて、入力層のノードであって、複数の特徴量のそれぞれが入力される複数のノードのうち、対応付けられた結果のデータとの因果関係があらかじめ指定された特徴量が入力されるノードの重みに、因果関係に応じた固定値を設定する。
【0095】
計算部132は、MLPの計算を行う。すなわち、計算部132は、MLP(X,θ1)、MLP(X,θ2)、MLP(X,θ3)、MLP(X,θ4)を計算する。
【0096】
更新部133は各MLPの学習処理を行う。すなわち、更新部133は、計算部132による計算結果を基に、各MLPのパラメータを更新する。例えば、更新部133は、誤差逆伝播法によりパラメータを更新する。
【0097】
更新部133は、(2)式に示す誤差関数を最小化する。特にデータx1、x2、x3、x4を対象とする場合、(2)式の誤差関数の第1項は、(3)式のL´のように表される。
【0098】
【0099】
更新部133は、固定値が設定された重みは更新しない。つまり、更新部133は、ニューラルネットワークの出力が、結果のデータに近付くように、ニューラルネットワークに含まれるノードの重みのうち、設定部131によって固定値が設定されていない重みを更新する。
【0100】
固定値が設定されている場合、更新部133は、ニューラルネットワークのノードの重みのうち、設定部131によって固定値が設定されていない重みを、固定値と0の間の範囲に含まれる値に更新する。
【0101】
更新部133は、(3)式に示すように、MLP51、MLP52、MLP53、MLP54を、1つの誤差関数で同時に最適化することができる。
【0102】
すなわち、更新部133は、複数のニューラルネットワークの出力のそれぞれが、対応付けられた結果のデータに近付くように、ニューラルネットワークに含まれるノードの重みのうち、設定部131によって固定値が設定されていない重みを更新する。
【0103】
生成部134は、入力層のノードの重みを基に、複数の特徴量と結果のデータとの間の因果関係を示す情報を生成する。
【0104】
さらに、生成部134は、データ間の因果関係を表す隣接行列、又は隣接行列に基づくDAGを生成する。
【0105】
生成部134は、例えば(4)式のように各ノード間の重みの隣接行列W(θ)を生成する。
【0106】
【0107】
隣接行列W(θ)のwijは、データxjを結果とする因果分析に対応付けらたMLPの、入力層の第iノードから隠れ層の第1層の各ノードへの重みのL2ノルムである。i=jの場合、wij=0である。
【0108】
例えば、w41は、(5)式のように表される。また、例えば、w24は、(6)式のように表される。
【0109】
【0110】
【0111】
前述の通り、ai,k,j
(1)は、データxjを結果とする因果分析に対応付けらたMLPの、入力層の第iノードから隠れ層の第1層の第kノードへの重みである。
【0112】
なお、
図5で説明したように、隠れ層の第1層のノードの数がm
1であり、各ノードの重みが1/√m
1と設定された場合、w
ij=1となる。
【0113】
また、
図6で説明したように、隠れ層の第1層のノードの数がm
1であり、各ノードの重みが0と設定された場合、w
ij=0となる。
【0114】
また、
図7で説明したように、隠れ層の第1層のノードの数がm
1であり、各ノードの重みの範囲が[0,1/√m
1]と設定された場合、w
ijの範囲は[0,1]となる。
【0115】
さらに、生成部134は、隣接行列W(θ)を基にDAGを生成し、描画してもよい。生成部134によって生成されるDAGを因果グラフと呼ぶ。
図8は、因果グラフの一例を示す図である。
【0116】
また、描画された因果グラフにおいて、データ間の因果の強さ(隣接行列の要素の値の大きさ)は、ノード間のエッジの太さにより表現される。また、データ間に因果が存在しない場合(隣接行列の要素の値が0の場合)、ノード間のエッジは描画されない。
【0117】
[第1の実施形態の処理の流れ]
図9を用いて、サーバ10による分析処理の流れを説明する。
図9は、第1の実施形態に係る分析処理の流れを示すフローチャートである。
【0118】
図9に示すように、サーバ10は、データx
jごとに多層パーセプトロンMLP(X;θ
j)(j=1,…,d)を定義する(ステップS101)。
入力層のノード数:m
0(m
0=d)
隠れ層の第1層のノード数:m
1
出力層のノード数:1
入力:X=(x1,…,x
d)(ただし、入力層の第iノードにはデータx
iを入力)
【0119】
例えば、
図4には、隠れ層が2層であり、隠れ層の第1層及び第2層のノードがそれぞれ5個であるMLPが示されている。一方で、MLPの構成は
図4に示すものに限られない。MLPの隠れ層の層の数、及び、隠れ層の各層のノードの数は1以上の任意の数であればよい。
【0120】
次に、サーバ10は、指定された因果関係に応じて、各MLPの入力層から隠れ層への重みを設定する(ステップS102)。
【0121】
続いて、サーバ10は、DAGを誘導する制約の元、MLP(X;θj)の出力がxjに近付くように同時最適化を行う(ステップS103)。
【0122】
そして、サーバ10は、各MLPの入力層から隠れ層の第1層への重みを基に隣接行列を生成する(ステップS104)。
【0123】
サーバ10は、生成した隣接行列、又は隣接行列に基づくDAGを出力する(ステップS105)。
【0124】
図10は、第1の実施形態に係る設定処理の流れを示すフローチャートである。
図10の処理は、
図9のステップS102の処理に相当する。
【0125】
図10に示すように、まず、サーバ10は、jに1を代入し(ステップS201)、MLP(X;θ
j)の設定を開始する(ステップS202)。
【0126】
ここで、サーバ10は、iに1を代入する(ステップS203)。
【0127】
サーバ10は、データxiからデータxjへの指定された因果関係を確認する(ステップS204)。
【0128】
データxiからデータxjへの因果関係に「因果あり」が指定されている場合(ステップS204、因果あり)、サーバ10は、入力層の第iノードから隠れ層の第1層への重みを1/√m1(固定値)に設定する(ステップS205)。
【0129】
また、データxiからデータxjへの因果関係に「因果なし」が指定されている場合(ステップS204、因果なし)、サーバ10は、入力層の第iノードから隠れ層の第1層への重みを0(固定値)に設定する(ステップS206)。
【0130】
なお、サーバ10は、i=jの場合、因果関係が「因果なし」である場合と同様の処理を行う。
【0131】
また、データxiからデータxjへの因果関係が指定されていない場合(ステップS204、因果不明)、サーバ10は、入力層の第iノードから隠れ層の第1層への重みを[0,1/√m1]の変動値に設定する(ステップS207)。
【0132】
続いて、サーバ10は、iを1だけ増加させる(ステップS208)。
【0133】
ここで、i=dでない場合(ステップS209、No)、サーバ10はステップS204へ戻り処理を繰り返す。
【0134】
一方、i=dである場合(ステップS209、Yes)、サーバ10はMLP(X;θj)の設定を終了する(ステップS210)。
【0135】
そして、サーバ10は、jを1だけ増加させる(ステップS211)。
【0136】
ここで、j=dでない場合(ステップS212、No)、サーバ10はステップS202へ戻り処理を繰り返す。
【0137】
一方、j=dである場合(ステップS212、Yes)、サーバ10は設定処理を終了する。
【0138】
[第1の実施形態の効果]
これまで説明してきたように、設定部131は、ニューラルネットワークの入力層のノードであって、複数の特徴量のそれぞれが入力される複数のノードのうち、結果のデータとの因果関係があらかじめ指定された特徴量が入力されるノードの重みに、因果関係に応じた固定値を設定する。更新部133は、ニューラルネットワークの出力が、結果のデータに近付くように、ニューラルネットワークに含まれるノードの重みのうち、設定部131によって固定値が設定されていない重みを更新する。生成部134は、入力層のノードの重みを基に、複数の特徴量と結果のデータとの間の因果関係を示す情報を生成する。
【0139】
このように、サーバ10は、因果関係が指定されたデータに対応するニューラルネットワークの重みに固定値を設定した上で、固定値が設定されていない重みの更新し、更新した重みを基にデータ間の因果関係を得ることができる。
【0140】
なお、指定される因果関係は、ユーザの現場における知見、長年蓄積されたノウハウに基づくものであってもよいし、理論保証がされたものであってもよい。
【0141】
その結果、実施形態によれば、特徴量間の因果関係の分析結果に、既知の因果関係を適切に反映させることができる。
【0142】
一般的に、因果分析の推定結果の真偽又は妥当性を検証する方法は十分に確立されておらず、統計的信頼性を担保することが難しい場合がある。一方、実施形態では、事前知識(指定された因果関係)を真とみなして因果分析を行うことにより、少なくとも事前知識の分だけ因果分析における統計的信頼性を高めることが可能になる。
【0143】
また、入力層の重みに固定値が設定された場合であっても、中間層以降の層で因果の強さ及びモデルの妥当性が調整されると考えられる。これにより、固定値が設定されなかった重みは、アルゴリズムに従って矛盾がないように更新されることになる。
【0144】
実施形態によれば、MLPを非特許文献2に記載の非線形なSEM(Structural equation model)の近似と捉えることができ、介入効果推定等の分析に応用できる(参考文献:「時系列データに対する予測モデルの介入効果の推定」(https://www.jstage.jst.go.jp/article/pjsai/JSAI2020/0/JSAI2020_1J4GS204/_pdf/-char/ja))。
【0145】
また、指定された事前知識が正しい場合、モデルを真の局所解に高速かつ高精度に誘導することができる。
【0146】
さらに、因果関係の分析結果を基に、模倣学習モデルの変数の再検討が可能になる。このため、実施形態は、模倣学習モデルの性能の向上という効果を生じさせる。
【0147】
[システム構成等]
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散及び統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散又は統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、CPU(Central Processing Unit)及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。なお、プログラムは、CPUだけでなく、GPU等の他のプロセッサによって実行されてもよい。
【0148】
また、実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0149】
[プログラム]
一実施形態として、サーバ10は、パッケージソフトウェアやオンラインソフトウェアとして上記の分析処理を実行する分析プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の分析プログラムを情報処理装置に実行させることにより、情報処理装置をサーバ10として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置には、タブレット型端末、スマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等のスレート端末等がその範疇に含まれる。
【0150】
また、サーバ10は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の分析処理に関するサービスを提供するサーバとして実装することもできる。例えば、サーバは、要求点の指定を入力とし、分析結果(例えば、隣接行列)を出力とする分析サービスを提供するサーバ装置として実装される。この場合、サーバは、Webサーバとして実装することとしてもよいし、アウトソーシングによって上記の分析処理に関するサービスを提供するクラウドとして実装することとしてもかまわない。
【0151】
図11は、分析プログラムを実行するコンピュータの構成例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
【0152】
メモリ1010は、ROM(Read Only Memory)1011及びRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
【0153】
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、サーバ10の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、サーバ10における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
【0154】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020は、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した実施形態の処理を実行する。
【0155】
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【符号の説明】
【0156】
1 プラント運用システム
10 サーバ
11 通信部
12 記憶部
13 制御部
20 端末装置
30 プラントシステム
51、52、53、54 MLP
121 履歴DB
122 モデル情報
131 設定部
132 計算部
133 更新部
134 生成部