(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024165928
(43)【公開日】2024-11-28
(54)【発明の名称】予測装置、推定方法、予測方法、推定プログラム及び予測プログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20241121BHJP
G06F 18/27 20230101ALI20241121BHJP
【FI】
G06N20/00 130
G06F18/27
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023082527
(22)【出願日】2023-05-18
(71)【出願人】
【識別番号】399035766
【氏名又は名称】エヌ・ティ・ティ・コミュニケーションズ株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】片島 健博
(72)【発明者】
【氏名】大川内 智海
(72)【発明者】
【氏名】島田 健一郎
(72)【発明者】
【氏名】泉谷 知範
(57)【要約】
【課題】間接予測における予測精度を向上させること。
【解決手段】中間変数計算部152は、学習済みの予測モデルを用いて、説明変数から中間変数を計算する。更新部155は、中間変数から出力値を計算する出力関数の2階微分を用いて、出力値を補正して目的変数の予測値を得るためのパラメータを推定する。目的変数計算部153は、中間変数を出力関数に入力して得られた出力値を、出力関数の2階微分及び推定されたパラメータを用いて補正することにより、目的変数の予測値を計算する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
学習済みの予測モデルを用いて、説明変数から中間変数を計算する中間変数計算部と、
前記中間変数から出力値を計算する関数の2階微分を用いて、前記出力値を補正して目的変数の予測値を得るためのパラメータを推定する推定部と、
を有することを特徴とする予測装置。
【請求項2】
前記推定部は、複数の前記中間変数のそれぞれについての前記関数の前記2階微分と前記パラメータとの積の和が、前記関数によって計算された前記出力値の残差と等しくなるように、線形回帰により前記パラメータを推定する
ことを特徴とする請求項1に記載の予測装置。
【請求項3】
学習済みの予測モデルを用いて、説明変数から中間変数を計算する中間変数計算部と、
前記中間変数を関数に入力して得られた出力値を、前記関数の2階微分を用いて補正することにより、目的変数の予測値を計算する目的変数計算部と、
を有することを特徴とする予測装置。
【請求項4】
コンピュータによって実行される推定方法であって、
学習済みの予測モデルを用いて、説明変数から中間変数を計算する中間変数計算工程と、
前記中間変数から出力値を計算する関数の2階微分を用いて、前記出力値を補正して目的変数の予測値を得るためのパラメータを推定する推定工程と、
を含むことを特徴とする推定方法。
【請求項5】
コンピュータによって実行される予測方法であって、
学習済みの予測モデルを用いて、説明変数から中間変数を計算する中間変数計算工程と、
前記中間変数を関数に入力して得られた出力値を、前記関数の2階微分を用いて補正することにより、目的変数の予測値を計算する目的変数計算工程と、
を含むことを特徴とする予測方法。
【請求項6】
学習済みの予測モデルを用いて、説明変数から中間変数を計算する中間変数計算ステップと、
前記中間変数から出力値を計算する関数の2階微分を用いて、前記出力値を補正して目的変数の予測値を得るためのパラメータを推定する推定ステップと、
をコンピュータに実行させることを特徴とする推定プログラム。
【請求項7】
学習済みの予測モデルを用いて、説明変数から中間変数を計算する中間変数計算ステップと、
前記中間変数を関数に入力して得られた出力値を、前記関数の2階微分を用いて補正することにより、目的変数の予測値を計算する目的変数計算ステップと、
をコンピュータに実行させることを特徴とする予測プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、予測装置、推定方法、予測方法、推定プログラム及び予測プログラムに関する。
【背景技術】
【0002】
従来、機械学習モデルの出力を既知の計算式に入力することで、最終的な結果を得る手法が知られている。例えば、特許文献1には、リカレントニューラルネットワークの出力をソフトマックス関数に入力することが記載されている。
【0003】
また、機械学習モデルを使った間接予測と呼ばれる手法が知られている。間接予測は、化学プラント、農業、経済等における指標の予測に用いられる。間接予測において、機械学習モデルは、説明変数と目的変数の関係ではなく、説明変数と中間変数の関係を学習する。
【0004】
予測時には、機械学習モデルは説明変数を基に中間変数を出力する。そして、既知の計算式により、中間変数から目的変数が計算される。
【0005】
例えば、間接予測を用いて収率を予測する場合を考える。このとき、説明変数と中間変数との関係を学習した機械学習モデルは、入力された説明変数を基に、収量及び理論収量という2つの中間変数を出力する。そして、収量と理論収量という2つの中間変数を基に、「収率=収量÷理論収量」という既知の計算式により収率が計算される。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、従来の技術には、間接予測における予測精度が低下する場合があるという問題がある。
【0008】
例えば、機械学習モデルによって出力される中間変数がノイズを含む場合がある。その場合、既知の計算式にはノイズを含んだ状態の中間変数が入力される。その結果、既知の計算式から出力される目的変数にノイズに起因するバイアスが生じ、予測精度が低下する。
【課題を解決するための手段】
【0009】
上述した課題を解決し、目的を達成するために、予測装置は、学習済みの予測モデルを用いて、説明変数から中間変数を計算する中間変数計算部と、前記中間変数から出力値を計算する関数の2階微分を用いて、前記出力値を補正して目的変数の予測値を得るためのパラメータを推定する推定部と、を有することを特徴とする。
【0010】
上述した課題を解決し、目的を達成するために、予測装置は、学習済みの予測モデルを用いて、説明変数から中間変数を計算する中間変数計算部と、前記中間変数を関数に入力して得られた出力値を、前記関数の2階微分を用いて補正することにより、目的変数の予測値を計算する目的変数計算部と、を有することを特徴とする。
【発明の効果】
【0011】
本発明によれば、間接予測における予測精度を向上させることができる。
【図面の簡単な説明】
【0012】
【
図2】
図2は、従来の間接予測を説明する図である。
【
図4】
図4は、学習処理及び予測処理の流れを説明する図である。
【
図5】
図5は、学習フェーズにおける予測装置の処理の流れを示すフローチャートである。
【
図6】
図6は、推論フェーズにおける予測装置の処理の流れを示すフローチャートである。
【
図7】
図7は、予測プログラムを実行するコンピュータの構成例を示す図である。
【発明を実施するための形態】
【0013】
以下に、本願に係る予測装置、推定方法、予測方法、推定プログラム及び予測プログラムの実施形態を図面に基づいて詳細に説明する。なお、本発明は、以下に説明する実施形態により限定されるものではない。
【0014】
[第1の実施形態]
[第1の実施形態の構成]
図1を用いて、予測装置10の構成を説明する。
図1は、予測装置の構成例を示す図である。予測装置10は、間接予測により、説明変数から目的変数を予測する。
【0015】
図1に示すように、予測装置10は、通信部11、入力部12、出力部13、記憶部14及び制御部15を有する。
【0016】
通信部11は、ネットワークを介して、他の装置との間でデータ通信を行う。例えば、通信部11はNIC(Network Interface Card)である。
【0017】
入力部12は、データの入力を受け付ける。入力部12は、マウス及びキーボード等の入力装置と接続されるインタフェースであってもよい。
【0018】
出力部13は、データを出力する。出力部13は、ディスプレイ、スピーカ等の出力装置と接続されるインタフェースであってもよい。
【0019】
記憶部14は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、光ディスク等の記憶装置である。なお、記憶部14は、RAM(Random Access Memory)、フラッシュメモリ、NVSRAM(Non Volatile Static Random Access Memory)等のデータを書き換え可能な半導体メモリであってもよい。
【0020】
記憶部14は、予測装置10で実行されるOS(Operating System)や各種プログラムを記憶する。記憶部14は、訓練用データ蓄積部141、モデル情報142、補正パラメータ情報143、及び予測用データ蓄積部144を有する。
【0021】
訓練用データ蓄積部141は、機械学習モデルの訓練を行うための訓練データを蓄積する。訓練データは、説明変数と中間変数を組み合わせたデータである。
【0022】
以降、機械学習モデルを予測モデルと呼ぶ。予測モデルは、説明変数を入力とし、中間変数を出力する。
【0023】
モデル情報142は、予測モデルを構築するためのパラメータ等の情報である。例えば、予測モデルがニューラルネットワークであれば、モデル情報142は重み及びバイアス等のパラメータを含む。
【0024】
補正パラメータ情報143は、中間変数から目的変数を計算する際に、既知の計算式の計算結果を補正するためのパラメータの情報である。
【0025】
以降、既知の計算式による計算を行う関数を出力関数と呼ぶ。予測装置10は、出力関数の出力値を補正パラメータにより補正することにより、目的変数を得る。
【0026】
予測用データ蓄積部144は、新規データを蓄積する。新規データは、対応する中間変数が未知の説明変数である。
【0027】
制御部15は、予測装置10全体を制御する。制御部15は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)等の電子回路や、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の集積回路である。
【0028】
また、制御部15は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、内部メモリを用いて各処理を実行する。また、制御部15は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部15は、取得部151、中間変数計算部152、目的変数計算部153、出力制御部154及び更新部155を有する。
【0029】
取得部151は、訓練用データ及び予測用データを取得する。例えば、化学プラントに備えられたセンサーのセンサー値を説明変数又は目的変数として取得する。取得部151は、取得したデータを、訓練用データ蓄積部141又は予測用データ蓄積部144に格納する。
【0030】
中間変数計算部152は、予測モデルに説明変数を入力し、中間変数を計算する。
【0031】
目的変数計算部153、出力関数に中間変数を入力して得られた出力値を補正パラメータにより補正することで、目的変数を計算する。
【0032】
出力制御部154は、推論フェーズにおいて得られた予測結果を出力する。例えば、出力制御部154は、目的変数計算部153によって計算された目的変数(予測値)及び予測モデルの感度を、表及びグラフ等により表示装置に表示させる。
【0033】
更新部155は、学習フェーズにおいて、予測モデルのパラメータ及び補正パラメータを更新する。
【0034】
本実施形態では、目的変数計算部153が出力関数の出力値を補正することにより、予測結果の目的変数にバイアスが生じることを抑止できる。目的変数計算部153による補正処理については後述する。
【0035】
ここで、
図2を用いて、従来の間接予測について説明する。
図2は、従来の間接予測を説明する図である。
【0036】
説明変数xは、センサー値_1,センサー値_2,…,センサー値_pといった複数の値を含む。学習済みの予測モデル^g(gの直上に^)は、説明変数xを基に中間変数zを出力する。中間変数zは、センサー値_A,…,センサー値_Lといった複数の値を含む。
【0037】
既知の出力関数fは、中間変数zから予測対象である目的変数yを計算する。このような間接予測は、(1)式のように表される。
【0038】
【0039】
ここで、目的変数yは(2)式のように表される。また、中間変数zは(3)式のように表される。
【0040】
【0041】
【0042】
(3)式に示すように、中間変数zには、ノイズεが含まれることが考えられる。εを、成分ごとに独立した平均が0、分散がσk
2のノイズとすると、目的変数の期待値は(4)式のように近似される。
【0043】
【0044】
(4)式のHfは、出力関数の2階微分の導関数である。(4)式の右辺の第2項は、(2)式に示す目的変数を、εの分布を考慮してテイラー展開により近似したときの、2階微分の項(補正項)である。
【0045】
図2及び(1)式で説明した間接予測では、(4)式の右辺の第1項は考慮されているものの、第2項が考慮されていない。このことにより、目的変数の予測値にバイアスが生じる。
【0046】
例えば、目的変数が(5)式で表され、中間変数が(6)式で表される場合を考える。この場合の従来の間接予測による予測結果の例を
図3に示す。
図3は、バイアスを説明する図である。
【0047】
【0048】
【0049】
図3の横軸は説明変数xに対応し、縦軸は目的変数yに対応する。plug-inは、従来の間接予測による予測値(目的変数)である。また、conditional expectationは、説明変数と目的変数の真値(true)に基づく予測値である。ノイズの影響により、plug-inとconditional expectationとの間に差分が生じている。ノイズを考慮すると、conditional expectationに近い予測値が得られることが望ましい。
【0050】
本実施形態の予測装置10は、出力関数の出力を補正することにより、ノイズの影響を考慮した目的変数を計算する。
【0051】
図4を用いて、予測装置10による学習処理及び予測処理を説明する。
図4は、学習処理及び予測処理の流れを説明する図である。
【0052】
[学習フェーズ:予測モデルの学習]
図4の上側は、訓練データを用いた学習処理の流れを示す。まず、予測装置10は、中間変数z
j(j=1,2,…,p)について、予測モデル^g
jの学習を行う。
【0053】
具体的には、中間変数計算部152が、訓練用データ蓄積部141に蓄積された説明変数xを基に、予測モデル^gjを用いて中間変数zjを計算する。そして、更新部155が、訓練用データ蓄積部141に蓄積された中間変数と中間変数計算部152によって計算された中間変数とを比較し、予測モデル^gjのパラメータを更新する。
【0054】
更新部155は、既知の機械学習の手法(例えば、誤差逆伝搬法)によりパラメータを更新することができる。更新部155は、更新したパラメータをモデル情報142として記憶部14に記憶させる。
【0055】
[学習フェーズ:補正パラメータの推定]
続いて、予測装置10は、出力関数の出力を補正するための補正パラメータを推定する。中間変数計算部152は、パラメータが更新された予測モデル^gjを用いて、(7)式のように中間変数^zjを計算する。
【0056】
【0057】
そして、更新部155は、(8)式のように、plug-in推定量の残差rを計算する。yは、訓練データの目的変数である。訓練データの目的変数は、訓練用データ蓄積部141に蓄積されていてもよいし、訓練データの中間変数から計算されてもよい。また、^z=(^z1,^z2,…,^zp)はp次元のベクトルである。
【0058】
【0059】
また、更新部155は、(9)式のように、出力関数の2階微分hjを計算する。
【0060】
【0061】
さらに、更新部155は、線形回帰により、(10)式の補正パラメータβjを推定する。
【0062】
【0063】
これにより、p個の中間変数のそれぞれについて、補正パラメータβjが得られる。更新部155は、補正パラメータβjを補正パラメータ情報143として記憶部14に記憶させる。補正パラメータβjは、(4)式のσk
2に対応する。
【0064】
このように、更新部155は、中間変数から出力値を計算する出力関数の2階微分を用いて、出力値を補正して目的変数の予測値を得るための補正パラメータを推定する。なお、更新部155は、推定部として機能する。
【0065】
また、中間変数が複数の場合、更新部155は、複数の中間変数のそれぞれについての出力関数の2階微分とパラメータとの積の和が、出力関数によって計算された出力値の残差と等しくなるように、線形回帰によりパラメータを推定する。
【0066】
[推論フェーズ:予測値の計算]
図4の下側は、新規データを用いた予測処理の流れを示す。中間変数計算部152は、(11)式により、目的変数の予測値^yを計算する。(11)式では、学習済みの予測モデル^g及び補正パラメータβ
jが使用される。
【0067】
【0068】
このように、目的変数計算部153は、中間変数を出力関数に入力して得られた出力値を、出力関数の2階微分を用いて補正することにより、目的変数の予測値を計算する。
【0069】
[第1の実施形態の処理の流れ]
図5を用いて、学習フェーズにおける予測装置10の処理の流れを説明する。
図5は、学習フェーズにおける予測装置の処理の流れを示すフローチャートである。
【0070】
図5に示すように、まず、予測装置10は、訓練用データを取得する(ステップS101)。次に、予測装置10は、中間変数の予測モデルを学習する(ステップS102)。
【0071】
続いて、予測装置10は、Plug-in推定量の残差((8)式))及び2階微分((9)式)を計算する(ステップS103)。
【0072】
そして、予測装置10は、線形回帰((10)式)により補正用のパラメータを推定する(ステップS104)。
【0073】
図6を用いて、推論フェーズにおける予測装置10の処理の流れを説明する。
図6は、推論フェーズにおける予測装置の処理の流れを示すフローチャートである。
【0074】
図6に示すように、まず、予測装置10は、予測用データ(新規データ)を取得する(ステップS201)。次に、予測装置10は、予測用データ及び補正用のパラメータを用いて補正済みの予測値を計算する((11)式)(ステップS202)。
【0075】
また、予測装置10は、感度を計算する(ステップS203)。感度は、出力関数の1階微分である。そして、予測装置10は、計算結果を出力する(ステップS204)。
【0076】
[第1の実施形態の効果]
これまで説明してきたように、中間変数計算部152は、学習済みの予測モデルを用いて、説明変数から中間変数を計算する。更新部155は、中間変数から出力値を計算する出力関数の2階微分を用いて、出力値を補正して目的変数の予測値を得るためのパラメータを推定する。
【0077】
また、目的変数計算部153は、中間変数を出力関数に入力して得られた出力値を、出力関数の2階微分を用いて補正することにより、目的変数の予測値を計算する。
【0078】
これにより、予測装置10は、推定されたパラメータを用いて出力関数を補正し、間接予測において、予測結果の目的変数にバイアスが生じることを抑止できる。その結果、間接予測における予測精度が向上する。
【0079】
特に、出力関数が複雑であるほどノイズの影響が大きくなるため、本実施形態の効果が得られやすい。例えば、出力関数が2階微分可能な関数(2階微分で0にならない関数)である場合に本実施形態は有効である。2階微分可能な関数には、n次関数(n≧2)、指数関数、対数関数等が含まれる。
【0080】
[システム構成等]
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散及び統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散又は統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。なお、プログラムは、CPUだけでなく、GPU等の他のプロセッサによって実行されてもよい。
【0081】
また、実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0082】
[プログラム]
一実施形態として、予測装置10は、パッケージソフトウェアやオンラインソフトウェアとして上記の情報処理を実行する予測プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の予測プログラムを情報処理装置に実行させることにより、情報処理装置を予測装置10として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置には、タブレット型端末、スマートフォン、携帯電話機やPHS(Personal Handy-phone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等のスレート端末等がその範疇に含まれる。
【0083】
また、予測装置10は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の情報処理に関するサービスを提供するサーバとして実装することもできる。例えば、サーバは、説明変数を入力とし、ノイズを考慮した目的変数の予測値を出力とする情報処理サービスを提供するサーバ装置として実装される。この場合、サーバは、Webサーバとして実装することとしてもよいし、アウトソーシングによって上記の情報処理に関するサービスを提供するクラウドとして実装することとしてもかまわない。
【0084】
図7は、予測プログラムを実行するコンピュータの構成例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
【0085】
メモリ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に接続される。
【0086】
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、予測装置10の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、予測装置10における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
【0087】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020は、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した実施形態の処理を実行する。
【0088】
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【符号の説明】
【0089】
10 予測装置
11 通信部
12 入力部
13 出力部
14 記憶部
15 制御部
141 訓練用データ蓄積部
142 モデル情報
143 補正パラメータ情報
144 予測用データ蓄積部
151 取得部
152 中間変数計算部
153 目的変数計算部
154 出力制御部
155 更新部