(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024112329
(43)【公開日】2024-08-21
(54)【発明の名称】プロセス状態予測システム
(51)【国際特許分類】
G06N 20/00 20190101AFI20240814BHJP
【FI】
G06N20/00
【審査請求】未請求
【請求項の数】18
【出願形態】OL
(21)【出願番号】P 2021100983
(22)【出願日】2021-06-17
(71)【出願人】
【識別番号】000219967
【氏名又は名称】東京エレクトロン株式会社
(71)【出願人】
【識別番号】504173471
【氏名又は名称】国立大学法人北海道大学
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】斉藤 友貴哉
(72)【発明者】
【氏名】筒井 拓郎
(72)【発明者】
【氏名】凌 元傑
(72)【発明者】
【氏名】大和田 伸
(72)【発明者】
【氏名】浅井 哲也
(72)【発明者】
【氏名】赤井 恵
(57)【要約】
【課題】 時系列のセンサデータに基づきプロセス状態を予測する際の予測精度を向上させる。
【解決手段】 POM分子とカーボンナノチューブとを有するリザーバであって、所定のプロセスにおいて測定される時系列のセンサデータに基づく電圧信号を入力として、電流信号を出力するリザーバと、前記電流信号を読み出し、リザーバ特徴量を出力する読み出し部と、前記リザーバ特徴量と、前記所定のプロセスの状態とが相関するように学習された重みパラメータと、学習後に、前記所定のプロセスにおいて測定される時系列のセンサデータに基づく電圧信号が前記リザーバに入力され、前記読み出し部により電流信号が読み出されることで出力されるリザーバ特徴量とに基づき、前記所定のプロセスの状態を予測し、予測結果を出力する予測部とを有する。
【選択図】
図1A
【特許請求の範囲】
【請求項1】
POM分子とカーボンナノチューブとを有するリザーバであって、所定のプロセスにおいて測定される時系列のセンサデータに基づく電圧信号を入力として、電流信号を出力するリザーバと、
前記電流信号を読み出し、リザーバ特徴量を出力する読み出し部と、
前記リザーバ特徴量と、前記所定のプロセスの状態とが相関するように学習された重みパラメータと、学習後に、前記所定のプロセスにおいて測定される時系列のセンサデータに基づく電圧信号が前記リザーバに入力され、前記読み出し部により電流信号が読み出されることで出力されるリザーバ特徴量とに基づき、前記所定のプロセスの状態を予測し、予測結果を出力する予測部と
を有するプロセス状態予測システム。
【請求項2】
前記所定のプロセスにおいて測定される時系列のセンサデータを、1MHz以上のサンプリング周波数で取得し、変調することで電圧データに変換する変調部と、
前記電圧データをD/A変換し、前記電圧信号を生成する変換部と、を更に有し、
前記変換部により生成された前記電圧信号を、入力側の電極を介して、前記リザーバに入力する、請求項1に記載のプロセス状態予測システム。
【請求項3】
前記読み出し部は、前記電流信号を、出力側の電極、低ノイズアンプ、A/D変換器を介して、前記POM分子の全体から読み出す、請求項2に記載のプロセス状態予測システム。
【請求項4】
前記リザーバに電圧信号が入力されてから、前記読み出し部により前記電流信号が読み出されることで前記リザーバ特徴量が出力されるまでの周期は、1μ秒以下である、請求項3に記載のプロセス状態予測システム。
【請求項5】
入力側の電極数、前記POM分子の電荷蓄積数、リザーバノードの数、前記リザーバのネットワークの形状、対地容量、リザーバノードへの入力重み、リザーバノード間の結合重み、出力側の電極数、電極の形状、読み出し電流の積分時間、の少なくともいずれか1つが調整される、請求項3に記載のプロセス状態予測システム。
【請求項6】
前記POM分子の液滴の濃度が不均一になるように前記リザーバのネットワークの形状が調整された場合、前記電圧信号は、前記POM分子の濃度分布に応じて配置された入力側の電極を介して入力され、出力側の電極を介して出力される、請求項5に記載のプロセス状態予測システム。
【請求項7】
前記POM分子の液滴の濃度が均一になるように前記リザーバのネットワークの形状が調整される、請求項5に記載のプロセス状態予測システム。
【請求項8】
前記POM分子と前記カーボンナノチューブとの連結数と、前記読み出し部により読み出される電流信号の時間的ゆらぎの大きさとの関係に基づき、所定の時間的ゆらぎの大きさを下回る連結数が導出された場合、前記リザーバのネットワークの形状は、該導出された連結数を上回るように調整される、請求項6に記載のプロセス状態予測システム。
【請求項9】
前記入力側の電極と出力側の電極との間の電界が前記POM分子のネットワークに集中するように、前記電極の形状は尖端形状に構成される、請求項6に記載のプロセス状態予測システム。
【請求項10】
前記対地容量は、前記POM分子と基板との間に存在する誘電体の厚みを調整することで調整される、請求項5に記載のプロセス状態予測システム。
【請求項11】
前記予測部は、逐次最小二乗法によるFORCE学習処理を行うことで前記重みパラメータを学習する、請求項1に記載のプロセス状態予測システム。
【請求項12】
前記予測部は、複数のFPGAを有し、各FPGAは、前記逐次最小二乗法によるFORCE学習処理において実行される複数行かつ複数列の行列演算の一部を実行し、各FPGAによる実行結果を集計することで、前記重みパラメータを学習する、請求項11に記載のプロセス状態予測システム。
【請求項13】
前記予測部において、前記各FPGAは、前記逐次最小二乗法によるFORCE学習処理の一部の演算に用いられる行列の対称性を利用して、既に算出しているベクトルを転置することで、前記一部の演算を代替する、請求項12に記載のプロセス状態予測システム。
【請求項14】
前記予測部は、学習後の予測期間中に、再学習が必要であると判定された場合に、前記逐次最小二乗法によるFORCE学習処理を行うことで前記重みパラメータを再学習する、請求項11に記載のプロセス状態予測システム。
【請求項15】
前記予測部は、前記逐次最小二乗法によるFORCE学習処理により前記重みパラメータを再学習する際、学習パラメータの数に応じた回数の前記FORCE学習処理を実行することで、前記学習パラメータの数に応じた数の重みパラメータを算出し、算出した重みパラメータのうち、所定の許容範囲に含まれ、かつ、予測精度が最も高い予測結果に対応する重みパラメータを、再学習後の予測に用いる重みパラメータとして設定する、請求項14に記載のプロセス状態予測システム。
【請求項16】
前記所定の許容範囲には、固定値が設定される、または、前記リザーバ特徴量を所定のデータ量まで蓄積し、バッチ学習を行うことにより算出された予測結果に基づく値が設定される、請求項15に記載のプロセス状態予測システム。
【請求項17】
いずれの予測結果も予測精度が所定の許容範囲に含まれないと判定され、新たな学習パラメータが生成された場合、前記予測部は、前記新たな学習パラメータに基づいて前記FORCE学習処理を実行することで算出した重みパラメータを、再学習後の予測に用いる重みパラメータとして設定する、請求項15に記載のプロセス状態予測システム。
【請求項18】
前記予測部により出力された予測結果の精度が所定の閾値以下になった場合、前記電圧信号として入力される前記時系列のセンサデータの種類が変更された場合、または、前記電圧信号として入力される前記時系列のセンサデータの値が所定の閾値以上変動した場合、再学習が必要であると判定される、請求項14に記載のプロセス状態予測システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ナノ分子リザーバによるリザーバコンピューティングを用いたプロセス状態予測システムに関する。
【背景技術】
【0002】
従来より、製造プロセスの分野では、各種センサにより測定された時系列のセンサデータを用いて、プロセスの状態(製造プロセス実行中の装置の状態(例えば、装置の異常の有無等))を予測し、予測結果を報知することでプロセス状態を監視している。また、最近では、プロセス状態を予測する際の予測精度を向上させるために、機械学習モデルの利用も提案されている。
【先行技術文献】
【特許文献】
【0003】
【非特許文献】
【0004】
【非特許文献1】Tanaka H., Akai-Kasaya M., Termeh A.Y., Hong L., Fu L., Tamukoh H., Tanaka D., Asai T., and Ogawa T., A molecular neuromorphic network device consisting of single-walled carbon nanotubes complexed with polyoxometalate Nature Communications, vol. 9, p. 2693 (2018)
【非特許文献2】Shaohua Kan, Kohei Nakajima, Yuki Takeshima, Tetsuya Asai, Yuji Kuwahara, and Megumi Akai-Kasaya Simple reservoir computing capitalizing on the nonlinear response of materials: Theory and physical implementations Phys. Rev. Applied, Accepted, 13 January (2021)
【非特許文献3】Minamikawa K., Suzuki S., Akai-Kasaya M., and Asai T., "26-bits 400-neurons 0.3-ksps FORCE learning FPGA core for reservoir computing," The 2020 RISP International Workshop on Nonlinear Circuits, Communications and Signal Processing, Hilton Waikiki Beach Hotel, Honolulu, USA (Feb. 28-Mar. 2, 2020)
【非特許文献4】Jaeger, Herbert., The" echo state" approach to analyzing and training recurrent neural networks-with an erratum note'. Bonn, Germany: German National Research Center for Information Technology GMD Technical Report. 148 (2001)
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、機械学習モデルが搭載される装置は、一般に、時系列のセンサデータの測定周期と比較して処理周期が長く、時系列のセンサデータにおいて出現する短周期の挙動を捉えて機械学習を実行させることができない。このため、従来の機械学習モデルでは、十分な予測精度が得られにくく、また、製造プロセスが経時変化した場合にあっては、予測精度が更に低下するといった事態も想定される。
【0006】
本開示は、時系列のセンサデータに基づきプロセス状態を予測する際の予測精度を向上させる。
【課題を解決するための手段】
【0007】
本開示の一態様によるプロセス状態予測システムは、例えば、以下のような構成を有する。即ち、
POM分子とカーボンナノチューブとを有するリザーバであって、所定のプロセスにおいて測定される時系列のセンサデータに基づく電圧信号を入力として、電流信号を出力するリザーバと、
前記電流信号を読み出し、リザーバ特徴量を出力する読み出し部と、
前記リザーバ特徴量と、前記所定のプロセスの状態とが相関するように学習された重みパラメータと、学習後に、前記所定のプロセスにおいて測定される時系列のセンサデータに基づく電圧信号が前記リザーバに入力され、前記読み出し部により電流信号が読み出されることで出力されるリザーバ特徴量とに基づき、前記所定のプロセスの状態を予測し、予測結果を出力する予測部とを有する。
【発明の効果】
【0008】
時系列のセンサデータに基づきプロセス状態を予測する際の予測精度を向上させることができる。
【図面の簡単な説明】
【0009】
【
図1A】プロセス状態予測システムの適用例を示す図である。
【
図2】プロセス状態予測システムのシステム構成の一例を示す図である。
【
図3】電圧変調部による電圧変調処理の流れを示すフローチャートの一例である。
【
図4】多電極I/Oチップの機能構成の一例を示す図である。
【
図5】多電極I/Oチップによる入出力処理の流れを示すフローチャートの一例である。
【
図6】多電極I/Oチップのハードウェア構成の一例を示す第1の図である。
【
図7】多電極I/Oチップのハードウェア構成の一例を示す第2の図である。
【
図8】多電極I/Oチップのハードウェア構成の一例を示す第3の図である。
【
図9】多電極I/Oチップのハードウェア構成の一例を示す第4の図である。
【
図10】多電極I/Oチップのハードウェア構成の一例を示す第5の図である。
【
図11】プロセス状態予測部が遷移する各期間の遷移図の一例である。
【
図12】プロセス状態予測部の学習期間における機能構成の一例を示す図である。
【
図13】プロセス状態予測部の予測期間における機能構成の一例を示す図である。
【
図14】プロセス状態予測部の再学習期間における機能構成の一例を示す第1の図である。
【
図15】プロセス状態予測部の再学習期間における機能構成の一例を示す第2の図である。
【
図16】逐次最小二乗法によるFORCE学習部のハードウェア構成の一例を示す図である。
【
図17】逐次最小二乗法によるFORCE学習部において実現される並列処理及びシリアル処理を示す第1の図である。
【
図18】逐次最小二乗法によるFORCE学習部において実現される並列処理及びシリアル処理を示す第2の図である。
【
図19】逐次最小二乗法によるFORCE学習部において実現される転送処理を示す第1の図である。
【
図20】逐次最小二乗法によるFORCE学習部において実現される代替処理を示す図である。
【
図21】逐次最小二乗法によるFORCE学習部において実現される転送処理を示す第2の図である。
【
図22】逐次最小二乗法によるFORCE学習部において実現される配布処理を示す図である。
【
図23】逐次最小二乗法によるFORCE学習部において実現される重みパラメータ更新処理を示す図である。
【
図24】逐次最小二乗法によるFORCE学習部によるFORCE学習処理のタイミングチャートの一例である。
【
図25】管理装置のハードウェア構成の一例を示す図である。
【
図27】管理部及びプロセス状態予測システムによるプロセス状態予測処理全体の流れを示すフローチャートの一例である。
【
図28】学習処理の流れを示すフローチャートの一例である。
【
図29】予測処理の流れ示すフローチャートの一例である。
【
図30】再学習判定処理の流れを示すフローチャートの一例である。
【
図32】再学習処理の流れを示すフローチャートの一例である。
【発明を実施するための形態】
【0010】
以下、各実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省略する。
【0011】
[第1の実施形態]
<プロセス状態予測システムの適用例>
はじめに、第1の実施形態に係るプロセス状態予測システムの適用例について説明する。
図1Aは、プロセス状態予測システムの適用例を示す図である。
【0012】
なお、
図1Aの例では、プロセス状態予測システムを基板処理装置に適用する場合について説明するが、プロセス状態予測システムの適用先は基板処理装置に限定されず、他の製造プロセスを実行する装置であってもよい。
【0013】
また、
図1Aでは、プロセス状態予測システムを適用した基板処理装置((b))に加えて、比較例として、プロセス状態予測システムを適用していない基板処理装置((a))を示し、適宜、両者の違いを対比しながら説明を行う。
【0014】
図1A(a)、(b)に示すように、基板処理装置110、120は、基板を処理するチャンバ111、121と、センサa112a、122aと、センサb112b、122bとを有する。また、基板処理装置110、120は、管理装置113、123と、制御装置115、125と、アクチュエータ117、127とを有する。
【0015】
比較例である
図1A(a)に示すように、基板処理装置110では、チャンバ111にて基板が処理されている最中の物理量を、センサa112a、センサb112bが測定し、時系列のセンサデータa、センサデータbとして出力する。センサa112a及びセンサb112bから出力される時系列のセンサデータa及びセンサデータbは、管理装置113の状態予測及び管理部114において処理されることでプロセス状態が予測され、予測結果データとして制御装置115に出力される。
【0016】
また、センサa112aから出力される時系列のセンサデータaは、制御装置115の制御部116において処理されることで制御量が算出される。このとき、制御部116では、予測結果データに基づいて、制御量に補正を加えてもよい。制御部116により算出された制御量はアクチュエータ117に出力され、アクチュエータ117は、制御量に基づいてチャンバ111に制御命令を通知する。
【0017】
図1A(a)において、グラフ130は、センサa112aから出力される時系列のセンサデータaの一例であり、横軸は時間を、縦軸は信号強度をそれぞれ表している。また、
図1A(a)において、グラフ140は、管理装置113の状態予測及び管理部114において処理される際の、時系列のセンサデータa'であり、横軸は時間を、縦軸は信号強度をそれぞれ表している。
【0018】
一般に、管理装置113がプロセス状態を予測する際の処理周期T(b)は、センサa112aが時系列のセンサデータaを測定する際の測定周期T(a)と比較して長い。このため、状態予測及び管理部114では、グラフ130に示すような時系列のセンサデータaに出現する短い挙動を捉えることができず(グラフ140参照)、プロセス状態を予測した場合に、結果的に十分な予測精度が得られにくい。
【0019】
一方、
図1A(b)に示すように、基板処理装置120では、チャンバ121にて基板が処理されている最中の物理量を、センサa122a、センサb122bが測定し、時系列のセンサデータa、センサデータbとして出力する。その際、センサa122aから出力される時系列のセンサデータaは、プロセス状態予測システム128において処理され、プロセス状態が予測される。そして、プロセス状態予測システム128において予測された予測結果データは、管理部124及び制御部126に出力される。
【0020】
また、センサ122aから出力される時系列のセンサデータaは、制御装置125の制御部126において処理されることで制御量が算出される。このとき、制御部126では、予測結果データに基づいて、制御量に補正を加えてもよい。制御部126により算出された制御量はアクチュエータ127に出力され、アクチュエータ127は、制御量に基づいてチャンバ121に制御命令を通知する。
【0021】
ここで、
図1A(b)において、グラフ131は、センサa122aから出力される時系列のセンサデータaの一例であり、横軸は時間を、縦軸は信号強度をそれぞれ表している。また、
図1A(b)において、グラフ141は、プロセス状態予測システム128において処理される際の、時系列のセンサデータa'であり、横軸は時間を、縦軸は信号強度をそれぞれ表している。
【0022】
第1の実施形態に係るプロセス状態予測システム128の場合、リザーバコンピューティングにより時系列のセンサデータa'を処理し、プロセス状態を予測する。このため、プロセス状態を予測する際の処理周期T(c)は、
図1A(a)の管理装置113がプロセス状態を予測する際の処理周期T(b)と比較して大幅に短い。この結果、第1の実施形態に係るプロセス状態予測システム128によれば、グラフ131に示す時系列のセンサデータaに出現する短い挙動を捉えることが可能となり、予測精度を向上させることができる。
【0023】
また、短い挙動を捉えたグラフ141の時系列のセンサデータa'を処理してプロセス状態を予測することによる予測精度の向上は、予測結果データと正解データとの二乗誤差が許容閾値を超えるまでの「有効予測時間」として示される。有効予測時間とは、プロセス状態予測システム128(あるいは、状態予測及び管理部114)が、どれくらい先の時間までプロセスの状態を予測できるかを表す時間である。
【0024】
図1Bは、有効予測時間の一例を示す図である。
図1Bに示すように、
・グラフ140のような比較例の時系列のセンサデータa'を用いてプロセスの状態を予測した場合の有効予測時間(t
a-t
s)よりも、
・グラフ141の時系列のセンサデータa'を用いてプロセスの状態を予測した場合の有効予測時間(t
b-t
s)、
のほうが長くなる。これは、プロセス状態予測システム128のほうが、比較例よりも経時変化による予測低下が発生しにくいことを示している。このとき、基板処理装置120では、運用のログ(例えば、運用中の温度、湿度、電圧信号などの履歴)を蓄積し、蓄積したログを使用して有効予測時間(t
b-t
s)を更に延伸するための解析が行われてもよい。
【0025】
また、第1の実施形態に係るプロセス状態予測システム128の場合、チャンバ121等の経時変化に伴って予測精度が低下した場合であっても、再学習処理を行うことで予測精度を改善することができる。具体的には、プロセス状態予測システム128が出力する予測結果データと、リザーバ特徴量と、センサデータbとを用いることにより、管理部124が、プロセス状態予測システム128による再学習処理を管理することができる。
【0026】
なお、プロセス状態予測システム128に対して学習処理や再学習処理を行う際に用いるプロセス状態データ(正解データ)には、基板処理プロセス実行中の基板処理装置120の異常の有無等が含まれていてもよい。あるいは、プロセス状態データ(正解データ)には、センサb122bから出力されるセンサデータbが含まれていてもよい(本実施形態では、プロセス状態データ(正解データ)が、センサb122bから出力されるセンサデータbであるとして説明する)。なお、正解データは、一般的には、「従属変数」、あるいは、「教師データ」とも呼ばれる。
【0027】
管理部124は、プロセス状態予測システム128が再学習処理を行うにあたり、プロセス状態予測システム128の期間を管理するために、プロセス状態予測システム128との間で各種情報(切替情報、終了情報等)の送受信を行う。
【0028】
この結果、第1の実施形態に係るプロセス状態予測システム128によれば、製造プロセスの経時変化に伴う予測精度の低下を抑えることができる。
【0029】
このように、第1の実施形態によれば、時系列のセンサデータに基づきプロセス状態を予測する際の予測精度を向上させることができる。
【0030】
<プロセス状態予測システムのシステム構成>
次に、プロセス状態予測システム128のシステム構成について説明する。
図2は、プロセス状態予測システムのシステム構成の一例を示す図である。プロセス状態予測システム128は、例えば、FPGA(Field-Programmable Gate Array)ボード等により実現される。
【0031】
図2に示すように、プロセス状態予測システム128は、I/O制御部201と、電圧変調部202と、多電極I/Oチップ203と、プロセス状態予測部204とを有する。
【0032】
I/O制御部201は、デジタル信号の入出力を制御する。具体的には、I/O制御部201は、センサa122aから出力された時系列のセンサデータaを入力し、電圧変調部202に通知する。
【0033】
なお、I/O制御部201に入力される時系列のセンサデータaは、1種類の時系列のセンサデータであってもよいし、複数種類の時系列のセンサデータからなるセンサデータセットであってもよい。ここでは、説明の簡略化のため、1種類の時系列のセンサデータが入力されるものとして説明する。
【0034】
また、I/O制御部201は、プロセス状態予測部204により出力される予測結果データ(プロセス状態が予測された結果のデータ)と多電極I/Oチップ203より出力されるリザーバ特徴量を取得し、管理装置123に送信する。また、I/O制御部201は、プロセス状態予測システム128において学習処理(または再学習処理)を行う際に用いるプロセス状態データ(正解データ)を、管理装置123より入力し、プロセス状態予測部204に通知する。
【0035】
更に、I/O制御部201は、プロセス状態予測部204の期間を切り替えるための切替情報と、切り替え後の期間でのプロセス状態予測部204による処理の終了を示す終了情報とを、管理装置123との間で送受信する。
【0036】
電圧変調部202は変調部の一例であり、I/O制御部201より通知された時系列のセンサデータa'を、多電極I/Oチップ203に入力するための電圧データに変換する。具体的には、電圧変調部202は、1MHz以上のサンプリング周波数でセンサデータa'を取得して変調することで、電圧データに変換する。
【0037】
なお、電圧変調部202は、I/O制御部201より通知された時系列のセンサデータa'を、例えば、プロセス状態予測部204により出力された予測結果データに応じた電圧データに変換してもよい。
【0038】
多電極I/Oチップ203は、リザーバ特徴量を出力するチップである。多電極I/Oチップ203は、ナノ分子リザーバ(後述)に、電圧データに基づく電圧信号を入力し、ナノ分子リザーバより出力される電流信号に基づく電流データを読み出すことで、リザーバ特徴量を出力する。なお、リザーバ特徴量とは、時系列のセンサデータa'の各値をナノ分子リザーバに入力したときに、その過去から現在までの各値をもとにナノ分子リザーバが出力する、時系列のセンサデータa'の特性を定量的に表した数値である。
【0039】
プロセス状態予測部204は、切替情報に従って切り替えられる複数の期間(本実施形態では、学習期間、予測期間、再学習期間)のもとで動作する。学習期間とは、重みパラメータを学習する期間を指す。また、再学習期間とは、学習された重みパラメータを再学習する期間を指す。
【0040】
学習期間または再学習期間に移行した場合、プロセス状態予測部204は、予測結果データと、I/O制御部201により入力されたプロセス状態データ(正解データ)とが相関するように、重みパラメータを算出する。また、プロセス状態予測部204は、重みパラメータの算出が終了すると終了情報を出力する。
【0041】
一方、予測期間とは、学習期間または再学習期間において学習された重みパラメータのもとで、リザーバ特徴量に基づき予測結果データを出力する期間を指す。
【0042】
プロセス状態予測部204は、終了情報を出力したことに応じて切替情報が入力されると、予測期間に移行し、多電極I/Oチップ203より出力されるリザーバ特徴量に基づきプロセス状態を予測する。また、プロセス状態予測部204は、予測結果データをI/O制御部201及び電圧変調部202に出力する。
【0043】
なお、プロセス状態予測部204がI/O制御部201に予測結果データを出力する際の出力周期は、例えば、管理装置123の処理周期以下(つまり、フィールドバスの転送周期以下)であってもよい。
【0044】
<プロセス状態予測システムの詳細>
次に、
図2のプロセス状態予測システム128の各部の詳細について説明する。
【0045】
(1)電圧変調部202による電圧変調処理の詳細
はじめに、電圧変調部202による電圧変調処理の詳細について説明する。
図3は、電圧変調部による電圧変調処理の流れを示すフローチャートの一例である。
【0046】
ステップS301において、電圧変調部202は、予測結果データのフィードバックがあるか否かを判定する。プロセス状態予測部204より予測結果データが出力された場合、電圧変調部202は、予測結果データのフィードバックがあると判定し(ステップS301においてYESの場合)、ステップS302に進む。
【0047】
ステップS302において、電圧変調部202は、プロセス状態予測部204より、予測結果データを取得し、ステップS303に進む。
【0048】
一方、ステップS301において、予測結果データのフィードバックがないと判定した場合(ステップS301においてNOの場合)、直接、ステップS303に進む。
【0049】
ステップS303において、電圧変調部202は、I/O制御部201より時系列のセンサデータを取得する。
【0050】
ステップS304において、電圧変調部202は、取得した時系列のセンサデータを電圧データに変換する。このとき、電圧変調部202では、ステップS302において予測結果データを取得していた場合には、当該予測結果データに応じた電圧データに変換する。
【0051】
具体的には、電圧変調部202は、時系列のセンサデータに予測結果データを重畳した電圧データに変換する。この場合、変換後の電圧データに対応する電圧信号が、多電極I/Oチップ203の各入力側電極(後述)に入力される。あるいは、電圧変調部202は、時系列のセンサデータと予測結果データとを、それぞれの電圧データに変換してもよい。この場合、変換後のそれぞれの電圧データに対応する電圧信号が、多電極I/Oチップ203の対応する入力側電極にそれぞれ入力される。
【0052】
ステップS305において、電圧変調部202は、電圧データを、多電極I/Oチップ203に入力する。
【0053】
(2)多電極I/Oチップ203の機能構成の詳細及び入出力処理の詳細
次に、多電極I/Oチップ203の機能構成の詳細及び多電極I/Oチップ203による入出力処理の詳細について説明する。
【0054】
(2-1)多電極I/Oチップ203の機能構成の詳細
はじめに、多電極I/Oチップ203の機能構成の詳細について説明する。
図4は、多電極I/Oチップの機能構成の一例を示す図である。
【0055】
図4に示すように、多電極I/Oチップ203は、D/A変換部401と、ナノ分子リザーバ402と、読み出し機能部403とを有する。
【0056】
D/A変換部401は変換部の一例であり、電圧変調部202により入力された電圧データをD/A変換することでアナログの電圧信号を生成し、ナノ分子リザーバ402に入力する。
【0057】
ナノ分子リザーバ402は、POM分子とカーボンナノチューブによって構成される"物理リザーバ"の一種である。
【0058】
なお、"物理リザーバ"とは、コンピュータ上に存在するリザーバではなく、現実世界に物理的に存在する(または存在し得る)"リザーバ"を指す。
【0059】
また、"リザーバ"とは、複数の"リザーバノード"を相互結合させた複雑系のネットワークを指し、過去から現在までの電圧信号の入力に対するリザーバ特徴量を保持する。一般に、リザーバの入力側電極数は、リザーバノードの数よりも少なく、低次元の入力が多次元のリザーバにマップされる。
【0060】
また、"リザーバノード"とは、リザーバにおける基本構成要素を指す。リザーバノードは、1つまたは複数の電圧信号の入力を受け、その値(またはそれらの値)を線形変換または非線形変換して、電流信号を出力する。リザーバノードは、静的素子ではなく動的素子(現在の自ノードの状態及び結合されている他ノードの状態から、次の時刻の自ノードの状態が決定されるもの)である。なお、リザーバノードによる電流信号の出力は、過去の電圧信号の入力を忘却しながら現在の電圧信号の入力に追従する。
【0061】
読み出し機能部403は読み出し部の一例であり、ナノ分子リザーバ402から電流信号を読み出し、電圧データに変換したうえで、リザーバ特徴量としてプロセス状態予測部204に出力する。
【0062】
このように、ナノ分子リザーバを用いる構成とすることで、多電極I/Oチップ203によれば、センサデータにおいて出現する短い挙動を捉えてリザーバ特徴量を出力することできる。なお、本願出願人によれば、ナノ分子リザーバ402に電圧信号を入力してから、読み出し機能部403が電流信号を読み出し、リザーバ特徴量として出力するまでの周期として、1μ秒以下を実現している。
【0063】
(2-2)多電極I/Oチップ203による入出力処理の詳細
次に、多電極I/Oチップ203による入出力処理の詳細について説明する。
図5は、多電極I/Oチップによる入出力処理の流れを示すフローチャートの一例である。
【0064】
ステップS501において、多電極I/Oチップ203は電圧データをD/A変換し、電圧信号を生成する。
【0065】
ステップS502において、多電極I/Oチップ203は、電圧信号をナノ分子リザーバ402に入力する。
【0066】
ステップS503において、多電極I/Oチップ203は、ナノ分子リザーバ402より、電流信号を読み出す。
【0067】
ステップS504において、多電極I/Oチップ203は、読み出した電流信号をA/D変換し、電流データを生成する。
【0068】
ステップS505において、多電極I/Oチップ203は、電流データを、リザーバ特徴量としてプロセス状態予測部204に出力する。
【0069】
(3)多電極I/Oチップ203のハードウェア構成
次に、多電極I/Oチップ203のハードウェア構成について説明する。
【0070】
(3-1)多電極I/Oチップ203のハードウェア構成の詳細1
図6は、多電極I/Oチップのハードウェア構成の一例を示す第1の図であり、(a)~(c)は、それぞれ、多電極I/Oチップ203の上面図、A-A'断面図、下面図を表している。また、(d)は、多電極I/Oチップ203の構成を特定する調整項目を表している。一般に、多電極I/Oチップ203の構成を特定する調整項目には、複数の調整項目が含まれる(調整項目600参照)。このうち、
図6では、(a)~(d)を参照しながら、
・入力側電極数、
・リザーバノード数、
・リザーバノードへの入力重みパラメータ、
・リザーバノード間の結合重みパラメータ、
・出力側電極数、
について説明する。
【0071】
図6に示す多電極I/Oチップ203において、D/A変換部401は白長方形で示されている(
図6(b)参照)。D/A変換部401は、入力側電極610に電圧信号を入力する。
図6(a)の上面図の例の場合、「入力側電極数」(多電極I/Oチップ203の入力側電極610の数)は、16個である。
【0072】
また、
図6に示す多電極I/Oチップ203において、黒丸印は、リザーバノードを表している(
図6(b)参照)。この黒丸印の数がネットワークを構成する「リザーバノード数」となる。
【0073】
また、
図6に示す多電極I/Oチップ203において、複数のリザーバノードは相互結合されている(
図6(b)参照)。そして、入力側電極610に接している複数のリザーバノードに対しては、D/A変換部401から、電圧信号が、「リザーバノードへの入力重みパラメータ」のもとで入力される。具体的には、
図6(b)に示すA-A'断面図の入力側電極610の直下にあるリザーバノードに、電圧信号が、リザーバノードへの入力重みパラメータのもとで入力される。
【0074】
更に、相互結合されている複数のリザーバノードには、他のリザーバノードの出力信号が、「リザーバノード間の結合重みパラメータ」のもとで入力される(
図6(b)に示すA-A'断面図のうち、黒丸印から他の黒丸印に向かう実線参照)。
【0075】
なお、「リザーバノードへの入力重みパラメータ」は、具体的には、電圧信号を入力する入力側電極と電圧源との間の抵抗値の逆数に基づいて決まる。また、「リザーバノード間の結合重みパラメータ」は、具体的には、POM分子間の距離の逆数によって決まる。
【0076】
また、
図6に示す多電極I/Oチップ203において、読み出し機能部403内に示す白長方形は、リザーバ特徴量を読み出す出力側電極620の外部出力端を示している。そして、複数のリザーバノードのうち、読み出しノードの出力信号(電流信号)は、読み出し機能部403の外部出力端より読み出される。
図6(c)の下面図の例の場合、「出力側電極数」は16個である。
【0077】
(3-2)多電極I/Oチップ203のハードウェア構成の詳細2
多電極I/Oチップ203内のハードウェア構成の詳細について更に説明する。
図7は、多電極I/Oチップのハードウェア構成の一例を示す第2の図であり、多電極I/Oチップ203の構成を特定する調整項目600(
図6)を説明するための図である。
図7では、このうち、
・POM分子の電荷蓄積数、
・対地容量、
について説明する。
【0078】
図7(a)はナノ分子リザーバ402の上面図である。
図7(a)に示すように、ナノ分子リザーバ402は、POM分子(黒丸印)を含み、カーボンナノチューブ(POM分子間に示した直線)により結合されている。POM分子とは、ポリ酸分子であり、電荷を蓄積し、蓄積量が閾値を超えると、蓄積した電荷を放出する特性を有する。「POM分子の電荷蓄積数」とは、このときの蓄積量の閾値(POM分子が電荷を蓄積し、放出するときの電荷量の閾値)を指す。この閾値は、ナノ分子リザーバ402が置かれる環境(電荷蓄積数に影響を及ぼす可能性のある環境値(湿度など))により調整される。なお、適切な閾値に調整するために、ナノ分子リザーバ402の作成時及び/または運用時には、環境値(湿度など)が一定に制御されるように構成してもよい。
【0079】
図7(b)は、ナノ分子リザーバ402を側面から見た場合のPOM分子と基板の電極(不図示)との間に存在する誘電体の厚みと、対地容量との関係を示すグラフである。
図7(b)に示すように、POM分子と基板の電極(不図示)との間の誘電体が薄い場合、「対地容量」は大きくなり、POM分子1個の電圧変動が基板を介して他のPOM分子に影響する。一方、POM分子と基板の電極(不図示)との間の誘電体が厚い場合、「対地容量」は小さくなり、POM分子1個の電圧変動が基板を介して他のPOM分子に影響することはない。
【0080】
より具体的に説明すると、POM分子1個の電圧が変動した場合、対地容量を持つ寄生キャパシタ(POM分子と基板とにより誘電体が挟まれた構造において生じるキャパシタ)を介して、基板の電圧が変動する。基板は他のPOM分子とも共通しているので、基板の電圧が変動すると、その変動は他のPOM分子の電圧変動にも影響する。そして、このときの影響の度合いは、対地容量(つまり、誘電体の厚み)によって決まる。
【0081】
このため、多電極I/Oチップ203では、POM分子の電流信号として、プロセス状態の予測に最適なリザーバ特徴量が出力されるよう、誘電体の厚みが適切に調整されている。
【0082】
なお、ナノ分子リザーバ402の「対地容量」は、リザーバノードにおける過去データの寄与率(漏れ率)を決定する調整項目である。
【0083】
(3-3)多電極I/Oチップ203のハードウェア構成の詳細3
多電極I/Oチップ203内のハードウェア構成の詳細について更に説明する。
図8及び
図9は、多電極I/Oチップのハードウェア構成の一例を示す第3及び第4の図であり、多電極I/Oチップ203の構成を特定する調整項目600(
図6)を説明するための図である。
図8及び
図9では、このうち、
・ネットワーク形状(カーボンナノチューブの連結数、POM分子の濃度分布)
について説明する。
【0084】
図8(a)は、ナノ分子リザーバ402におけるPOM分子(黒丸印)とカーボンナノチューブ(POM分子間に示した直線、図中はCNTと表記)との関係を模式的に示したものである。ただし、説明の簡略化のため、
図8(a)では、一次元に配列した場合を示している。ナノ分子リザーバ402におけるPOM分子及びカーボンナノチューブの連結数が増えると、リザーバノード数が増える。
【0085】
ここで、POM分子とカーボンナノチューブは、それぞれ抵抗を有する。また、カーボンナノチューブの抵抗値は均一ではなくばらつきを有する(R1、R2、R3、R4、・・・)。このため、入力側電極を介して電圧信号が入力された場合に、出力側電極を介して出力される電流信号は、
・入力側電極610と出力側電極620との間におけるPOM分子とカーボンナノチューブの連結数が少ない場合、時間的にランダムに変動し、
・入力側電極610と出力側電極620との間におけるPOM分子とカーボンナノチューブの連結数が多い場合、時間的にランダムに変動せず、一定値となる、
という特性を有することになる。
【0086】
ここで、ナノ分子リザーバ402を用いてリザーバ特徴量を出力する場合、電流信号は、時間的にランダムに変動しないことが必要である。このため、入力側電極610と出力側電極620との間におけるPOM分子とカーボンナノチューブの連結数は、電流信号が時間的にランダムに変動しないレベルに調整されることになる。
【0087】
図8(b)は、入力側電極610と出力側電極620との間におけるPOM分子とカーボンナノチューブの連結数と、電流信号の時間的ゆらぎの大きさとの関係をグラフ化したものである。本実施形態では、
図8(b)に示すグラフに基づいて、時間的ゆらぎが所定の閾値を下回る連結数を予め導出しておき、導出した連結数を上回るように、「ネットワーク形状(CNTの連結数)」が調整されている。
【0088】
続いて、ネットワーク形状(POM分子の濃度分布)について説明する。
図9(a)は、「ネットワーク形状(POM分子の濃度分布)」が不均一の場合のネットワーク形状を示している。このように、POM分子の液滴の濃度が不均一になるようにナノ分子リザーバ402を作成することで、ナノ分子リザーバ402には、POM分子が粗の領域と、密の領域とが含まれることになる。また、このようなPOM分子の濃度分布に応じて電極を配置する構成とすることで、1つのリザーバノードに含まれるPOM分子の数を増やすことができる(符号901、902参照)。これにより、ナノ分子リザーバ402に好ましくない確率的なリザーバノードの非線形特性を、非確率的にすることができる。
【0089】
一方、
図9(b)は、「ネットワーク形状(POM分子の濃度分布)」が均一の場合のネットワーク構成を有するナノ分子リザーバ402を示している。このように、POM分子の液滴の濃度が均一になるようにナノ分子リザーバ402を作成することで、ナノ分子リザーバ402において、複数階層のネットワーク構成を実現することができる。
【0090】
(3-4)多電極I/Oチップ203のハードウェア構成の詳細4
多電極I/Oチップ203内のハードウェア構成の詳細について更に説明する。
図10は、多電極I/Oチップのハードウェア構成の一例を示す第5の図であり、多電極I/Oチップ203の構成を特定する調整項目600(
図6)を説明するための図である。
図10では、このうち、
・電極の形状、
・読み出し電流の積分時間、
について説明する。
【0091】
図10は、多電極I/Oチップ203において、
図6に示すナノ分子リザーバ402に対して電圧信号を入力し、電流信号を出力する入出力回路の回路構成を側面から見た様子を示している。
【0092】
図10に示すように、電圧源1001、1002は、スイッチ1003、抵抗1004、入力側電極610を介して、ナノ分子リザーバ402に電圧を印加する。このとき、スイッチ1003のON/OFFにより、リザーバノードへの電圧信号の入力が調整される。また、抵抗1004の値を調整することで、「入力重みパラメータ」が調整される。
【0093】
また、
図10に示すように、電流信号は、出力側電極620を介して出力される。出力側電極620周辺の詳細構成を、
図10(b)の符号1010に示す。
【0094】
図10(b)の符号1010に示すように、電流信号は、出力側電極620、低ノイズアンプ1011、電圧制御型発振器を用いたA/D変換器1012を介して、POM分子全体から読み出される。
【0095】
なお、入力側電極610と出力側電極620との間の電界が、POM分子のネットワークに集中するように、入力側電極610及び出力側電極620の「電極の形状」は、尖端形状に構成される。
【0096】
また、
図10(b)に示すように、出力側電極620は、nMOSFET1020に接続される。nMOSFET1020において、ゲート1023(φ
RST)に電圧が印加されると、ドレイン1022とソース1021との間が電気的に接続される(ON状態になる)。また、nMOSFET1020において、ゲート1023(φ
RST)がGNDに接続されると、ドレイン1022とソース1021との間が電気的に切断される(OFF状態になる)。
【0097】
そして、nMOSFET1020がOFF状態になると、ソース1021は電気的に浮遊状態となる(低ノイズアンプ1011の入力端子(-)、及び、出力側電極620も電気的に浮遊状態となる)。
【0098】
ここで、ソース1021は拡散層であるため、かかる構成を有するソースはFD(Floating Diffusion)と呼ばれる。そして、浮遊拡散領域であるソース1021において電流信号が積分されることで、電流信号のノイズ除去及び平滑化が行われ。なお、このときの積分時間である「読み出し電流の積分時間」は任意に調整することが可能である。
【0099】
図10(c)は、nMOSFET1020の動作例を示している。
図10(c)に示すように、nMOSFET1020は以下の順序で動作する。
(I)nMOSFET1020をON状態にし、ソース1021の電圧をV
RSTに設定する(ソース1021を完全充電する)。
(II)nMOSFET1020をOFF状態にし、ソース1021をドレイン1022から電気的に切断する(これにより、ソース1021は電気的に浮遊状態となる)。
(III)ソース1021に蓄積された電荷が、出力側電極620を介して変動すると、ソース1021の電圧が変化する。ソース1021の容量は極めて少ないため、ソース1021の電圧変動量は大きくなる。
(IV)上記(III)のソース1021の電流信号は、低ノイズアンプ1011に入力され、A/D変換器1012においてA/D変換される。
【0100】
(4)プロセス状態予測部204の機能構成の詳細
次に、プロセス状態予測部204の機能構成の詳細について説明する。上述したように、プロセス状態予測部204は、複数の期間のもとで動作する。そこで、以下では、まず、各期間の遷移図を用いて各期間の関係について説明し、続いて期間ごとのプロセス状態予測部204の機能構成について説明する。
【0101】
(4-1)各期間の関係
図11は、プロセス状態予測部が遷移する各期間の遷移図の一例である。
図11に示すように、プロセス状態予測システム128による処理が開始されると、プロセス状態予測部204では、いずれかの期間(学習期間、予測期間、再学習期間のいずれかの期間)に移行して動作を開始する。ただし、ここでは、説明の簡略化のため、学習期間に移行して動作を開始する場合について説明する。
【0102】
管理装置123から切替情報が入力され、学習期間に移行すると(矢印1101)、プロセス状態予測部204では、リザーバ特徴量とプロセス状態データ(正解データ)とを用いて、所定の学習時間分の学習処理を行い、重みパラメータを算出する。
【0103】
プロセス状態予測部204は、学習処理が終了すると終了情報を出力し、管理装置123から切替情報が入力されることで、予測期間に移行する(矢印1102)。予測期間において、プロセス状態予測部204は、算出した重みパラメータのもとで予測処理を行うことで、リザーバ特徴量に基づき予測結果データを出力する。
【0104】
予測期間においてプロセス状態予測部204が予測処理を行っている間、管理装置123では、再学習が必要であるか否かを判定し、再学習が必要であると判定した場合には、プロセス状態予測部204に切替情報を入力する。これにより、プロセス状態予測部204は、再学習期間に移行する(矢印1103)。
【0105】
再学習期間において、プロセス状態予測部204は、学習パラメータセット(詳細は後述)を変更しながら、再学習処理を行うことで、学習パラメータセットごとに重みパラメータを算出する。続いて、プロセス状態予測部204は、算出したそれぞれの重みパラメータが設定された状態で予測処理を行い、予測結果データを出力する。また、管理装置123は、許容範囲内で、かつ、予測精度の最も高い予測結果データに対応する重みパラメータを特定し、プロセス状態予測部204に切替情報を入力する。これにより、プロセス状態予測部204は、予測期間に移行する(矢印1104)。
【0106】
(4-2)学習期間におけるプロセス状態予測部204の機能構成
次に、各期間におけるプロセス状態予測部204の機能構成について説明する。はじめに、学習期間におけるプロセス状態予測部204の機能構成について説明する。
図12は、プロセス状態予測部の学習期間における機能構成の一例を示す図である。
【0107】
図12に示すように、プロセス状態予測部204は、学習期間において、逐次最小二乗法によるFORCE学習部1200として機能する。なお、本実施形態において、逐次最小二乗法によるFORCE学習部1200には、"学習パラメータセット0"が設定されており、FORCE学習部1200では、以下の処理手順(符号1201参照)により、逐次最小二乗法によるFORCE学習処理を行う。なお、以下の各図の図中における"τ"は、プロセス状態予測部204の時間軸を表し、これは、実時間(t)から1クロック遅れた時刻となる(τ=t-1)。したがって、例えば、図中のS(τ+1)を実時間で表すと、S(t)となる。
【0108】
1)出力データの算出
FORCE学習部1200は、リザーバ特徴量(Rベクトル)を取得すると、逐次重みパラメータ(Wベクトル)を転置した転置ベクトルをかけ合わせることで、出力データ(Z)を算出する。なお、本実施形態において、逐次重みパラメータ(Wベクトル)とは、逐次最小二乗法によるFORCE学習処理の過程で逐次更新される重みパラメータを指す。
【0109】
2)誤差の算出
FORCE学習部1200は、出力データ(Z)とプロセス状態データ(S)との間の誤差(e)を算出する。
【0110】
3)係数行列の算出
FORCE学習部1200は、逐次重みパラメータ(Wベクトル)を算出するのに用いる係数行列(P行列)を算出する。
【0111】
4)逐次重みパラメータの算出
FORCE学習部1200は、算出した誤差(e)と、取得したリザーバ特徴量(Rベクトル)と、算出した係数行列(P行列)とに基づいて、逐次重みパラメータ(Wベクトル)を更新する。
【0112】
FORCE学習部1200では、上記1)~4)の処理を、所定の学習時間分繰り返すことで、重みパラメータを算出する。
【0113】
(4-3)予測期間におけるプロセス状態予測部204の機能構成
次に、予測期間におけるプロセス状態予測部204の機能構成について説明する。
図13は、プロセス状態予測部の予測期間における機能構成の一例を示す図である。
【0114】
図13に示すように、プロセス状態予測部204は、予測期間において、逐次最小二乗法によるFORCE学習部1300として機能する。本実施形態において、FORCE学習部1300は、FORCE学習部1200においてFORCE学習処理が行われることで算出された重みパラメータが設定され、予測結果データ(Z)を出力可能な状態を指す。FORCE学習部1300では、以下の処理手順(符号1301参照)により予測処理を行う。
【0115】
1)FORCE学習部1300は、FORCE学習処理が行われることで算出された重みパラメータ(Wベクトル)を設定する。
【0116】
2)FORCE学習部1300は、リザーバ特徴量(Rベクトル)を取得すると、重みパラメータ(Wベクトル)を転置した転置ベクトルをかけ合わせることで、予測結果データ(Z)を出力する。
【0117】
(4-4)再学習期間におけるプロセス状態予測部204の機能構成
次に、再学習期間におけるプロセス状態予測部204の機能構成について説明する。
図14及び
図15は、プロセス状態予測部の再学習期間における機能構成の一例を示す第1及び第2の図である。
【0118】
図14、
図15に示すように、プロセス状態予測部204は、再学習期間において、逐次最小二乗法によるFORCE学習部1200_1~1200_M、及び、逐次最小二乗法によるFORCE学習部1300_1~1300_Mとして機能する。
【0119】
本実施形態において、
図14のFORCE学習部1200_1には、"学習パラメータセット1"が設定されており、
図12で説明した処理手順(符号1201参照)により、逐次最小二乗法によるFORCE学習処理が行われる。
【0120】
また、本実施形態において、
図15のFORCE学習部1300_1は、FORCE学習部1200_1においてFORCE学習処理が行われることで算出された重みパラメータが設定され、予測結果データ(Z)を出力可能な状態を指す。FORCE学習部1300_1は、リザーバ特徴量を取得すると、重みパラメータを転置した転置ベクトルをかけ合わせることで、予測結果データを出力する。
【0121】
同様に、
図14のFORCE学習部1200_2には、"学習パラメータセット2"が設定されており、
図12で説明した処理手順(符号1201参照)により、逐次最小二乗法によるFORCE学習処理が行われる。
【0122】
また、本実施形態において、
図15のFORCE学習部1300_2は、FORCE学習部1200_2においてFORCE学習処理が行われることで算出された重みパラメータが設定され、予測結果データ(Z)を出力可能な状態を指す。FORCE学習部1300_2は、リザーバ特徴量を取得すると、重みパラメータを転置した転置ベクトルをかけ合わせることで、予測結果データを出力する。
【0123】
同様に、
図14のFORCE学習部1200_Mには、"学習パラメータセットM"が設定されており、
図12で説明した処理手順(符号1201参照)により、逐次最小二乗法によるFORCE学習処理が行われる。
【0124】
また、本実施形態において、
図15のFORCE学習部1300_Mは、FORCE学習部1200_MにおいてFORCE学習処理が行われることで算出された重みパラメータが設定され、予測結果データ(Z)を出力可能な状態を指す。FORCE学習部1300_Mは、リザーバ特徴量を取得すると、重みパラメータを転置した転置ベクトルをかけ合わせることで、予測結果データを出力する。
【0125】
なお、上述したように、再学習期間において
図14、
図15に示す機能構成のもとで処理が終了すると、再び、予測期間に移行し、
図13に示す機能構成のもとで処理が行われる。ただし、再学習後の予測期間の場合、プロセス状態予測部204は、逐次最小二乗法によるFORCE学習部1300_Xとして機能する。ここでいうFORCE学習部1300_Xとは、FORCE学習部1300_1~1300_Mのうち、
・"学習パラメータセットX"が設定されたFORCE学習部であって、
・出力した予測結果データが所定の許容範囲にあり、かつ、予測精度が最も高い重みパラメータが設定されたFORCE学習部、
を指す。なお、学習パラメータセットXは、出力した予測結果データが所定の許容範囲にあり、かつ、予測精度が最も高い重みパラメータが算出された際の学習パラメータセットである。
【0126】
(4)逐次最小二乗法によるFORCE学習部のハードウェア構成の詳細
次に、逐次最小二乗法によるFORCE学習部1200、1200_1~1200_M、1300、1300_1~1300_Mとして機能するFORCE学習部のハードウェア構成について説明する。なお、本実施形態において、FORCE学習部1200、1200_1~1200_M、1300、1300_1~1300_Mは、共通のハードウェアを用いるため、以下では、FORCE学習部1200のハードウェア構成として説明する。
【0127】
(4-1)全体構成
図16は、逐次最小二乗法によるFORCE学習部のハードウェア構成の一例を示す図である。
【0128】
図16に示すように、逐次最小二乗法によるFORCE学習部1200は、
・PE(Processing Element)として機能する複数のFPGA(Field Programmable Gate Array)と(
図16の例では、25個)、
・FPE(Functional PE)として機能する複数のFPGAと(
図16の例では、5個)、
を有する。なお、
図16において、FPGAの部分は、専用のチップにより実現されてもよい。
【0129】
このうち、PEとして機能する複数のFPGAは、それぞれ、
図12を用いて説明した逐次最小二乗法によるFORCE学習の処理手順1)~4)のうち、3)係数行列の算出を実行する。具体的には、PEとして機能する複数のFPGAは、それぞれ、以下の手順により係数行列(P行列)を算出する。
(i)信号線1601を介して、リザーバ特徴量(Rベクトル)の一部が入力されると、係数行列(P行列)の一部との積を算出し、算出結果を、信号線1602を介して、隣接するFPGAに転送する。
(ii)FPEとして機能するFPGAより、信号線1603を介して、リザーバ特徴量(Rベクトル)の一部を転置した転置ベクトルと係数行列(P行列)の一部との積を算出するための行列を取得する。また、取得した行列を用いて、リザーバ特徴量(Rベクトル)の一部を転置した転置ベクトルと係数行列(P行列)の一部との積を算出する。
(iii)FPEとして機能するFPGAより、信号線1604を介して、リザーバ特徴量(Rベクトル)の一部を転置した転置ベクトルと、係数行列(P行列)の一部と、リザーバ特徴量(Rベクトル)の一部との積の算出結果を取得する。
(iv)上記(i)~(iii)を実行することで算出した算出結果、または、取得した取得結果を用いて、係数行列(P行列)の全体を更新する。
【0130】
なお、PEとして機能する複数のFPGAは、それぞれ、上記(i)~(iv)を繰り返し実行する。
【0131】
一方、FPEとして機能する複数のFPGAは、それぞれ、
図12を用いて説明した逐次最小二乗法によるFORCE学習処理の処理手順1)~4)のうち、4)逐次重みパラメータの算出と、1)出力データの算出とを実行する。具体的には、FPEとして機能する複数のFPGAは、それぞれ、以下の手順により、逐次重みパラメータ及び出力データを算出する。
(i)PEとして機能するFPGAより、信号線1602を介して、係数行列(P行列)の一部とリザーバ特徴量(Rベクトル)の一部との積の算出結果を取得する。
(ii)リザーバ特徴量(Rベクトル)の一部を転置した転置ベクトルと係数行列(P行列)の一部との積を算出するための行列を生成し、信号線1603を介して、PEとして機能する複数のFPGAに送信する。
(iii)リザーバ特徴量(Rベクトル)の一部を転置した転置ベクトルと係数行列(P行列)の一部との積の算出結果を取得する。また、取得した算出結果に、リザーバ特徴量(Rベクトル)の一部をかけ合わせた算出結果を、信号線1604を介して、PEとして機能する複数のFPGAに送信する。
(iv)逐次重みパラメータ(Wベクトル)の一部を転置した転置ベクトルと、信号線1601を介して取得したリザーバ特徴量(Rベクトル)の一部との積を算出することで、出力データ(Z)の一部を算出する。
(v)誤差(e)を取得し、上記(i)の算出結果を用いて、逐次重みパラメータ(Wベクトル)の全体を更新する。
【0132】
なお、FPEとして機能する複数のFPGAは、それぞれ、上記(i)~(v)を繰り返し実行する。
【0133】
一方、FPEとして機能する複数のFPGAのうち、最終段に位置するFPGAは、4)逐次重みパラメータの算出、1)出力データの算出に加えて、2)誤差の算出を実行する。具体的には、FPEとして機能する複数のFPGAのうち、最終段に位置するFPGAは、以下の手順により、誤差を算出する。
(i)上段に位置するFPGAよりそれぞれ取得した出力データ(Z)の一部を全て集計し、プロセス状態データ(S)との差分を算出することで、誤差(e)を算出する。また、算出した誤差(e)を、上段に位置するFPGAにそれぞれ送信する。
【0134】
このように、逐次最小二乗法によるFORCE学習部1200では、PEとして機能する複数のFPGAと、FPEとして機能する複数のFPGAとを用いて、処理手順1)~4)を実行することで、逐次最小二乗法によるFORCE学習処理を実現する。
【0135】
(4-2)各FPGAの処理の詳細
次に、逐次最小二乗法によるFORCE学習部1200に含まれる各FPGAの処理の詳細について説明する。
【0136】
(4-2-1)PEとして機能するFPGAの処理の詳細その1
はじめに、PEとして機能するFPGAの処理の詳細について説明する。上述したように、PEとして機能するFPGAは、リザーバ特徴量(Rベクトル)が入力されると、係数行列(P行列)との積を算出する。
【0137】
このとき、逐次最小二乗法によるFORCE学習部1200では、縦方向に複数配置された、PEとして機能するFPGAそれぞれが、係数行列(P行列)の一部と、リザーバ特徴量(Rベクトル)の一部との積を算出する。これにより、逐次最小二乗法によるFORCE学習部1200では、互いに異なる係数行列(P行列)の一部に、同じリザーバ特徴量(Rベクトル)の一部をかけ合わせる処理を、並列に行うことができる。
【0138】
また、逐次最小二乗法によるFORCE学習部1200では、横方向に複数配置された、PEそれぞれが、時系列データであるリザーバ特徴量(Rベクトル)が分割されてなるリザーバ特徴量(Rベクトル)の一部の処理を、シリアルに行う。
【0139】
このように、逐次最小二乗法によるFORCE学習処理を実現する際、並列処理とシリアル処理とを組み合わせることで、1つのFPGAが演算する演算回数を削減することができる。この結果、逐次最小二乗法によるFORCE学習部1200によれば、FORCE学習処理を高速化することができる。
【0140】
図17及び
図18は、逐次最小二乗法によるFORCE学習部において実現される並列処理及びシリアル処理を示す第1及び第2の図である。なお、
図17及び
図18では、説明の簡略化のため、出力側電極数を"4"(リザーバ特徴量(Rベクトル)の要素が4つ)としている。また、PEとして機能するFPGAを、縦方向に2つ、横方向に2つ(計4個)のみ配置した場合を示している(FPGA1721、1722、1723、1724参照)。
【0141】
ここで、仮に、係数行列(P行列)とリザーバ特徴量(Rベクトル)との積を、1つのFPGAを用いて実行したとする。この場合、符号1710に示すように、16回の乗算が必要になる。一方、PEとして機能するFPGAを縦方向に2つ配置することで、乗算の回数を半分にすることができる。更に、PEとして機能するFPGAを横方向に2つ配置し、リザーバ特徴量(Rベクトル)を2分割してそれぞれのFPGAに入力することで、乗算の回数を更に半分にすることができる。
【0142】
図17において符号1730は、2分割したRベクトルのうち、リザーバ特徴量(Rベクトル)の一部である(r
1,r
2)を、FPGA1721、1722にそれぞれ入力し、FPGA1721、1722がそれぞれ、4回の乗算を実行した様子を示している。
【0143】
また、
図18において符号1830は、2分割したリザーバ特徴量(Rベクトル)のうち、リザーバ特徴量(Rベクトル)の一部である(r
3,r
4)を、FPGA1723、1724にそれぞれ入力した様子を示している。また、符号1830は、FPGA1723、1724がそれぞれ、4回の乗算を実行した様子を示している。
【0144】
このように、逐次最小二乗法によるFORCE学習部1200は、PEとして機能するFPGAを縦方向及び横方向に複数配置し、各FPGAが、FORCE学習処理において実行される複数行かつ複数列の行列演算の一部を実行するように構成する。
【0145】
これにより、逐次最小二乗法によるFORCE学習部1200は、逐次最小二乗法によるFORCE学習処理を高速化することができる。
【0146】
(4-2-2)PEとして機能するFPGAの処理の詳細その2
次に、PEとして機能するFPGAの処理として、転送処理の詳細について説明する。上述したように、PEとして機能するFPGAは、係数行列(P行列)とリザーバ特徴量(Rベクトル)との積の算出結果を、隣接するFPGAに転送する。
図19は、逐次最小二乗法によるFORCE学習部において実現される転送処理を示す第1の図である。
【0147】
このうち、
図19(a)は、2分割したリザーバ特徴量(Rベクトル)のうち、リザーバ特徴量(Rベクトル)の一部である(r
1,r
2)と係数行列(P行列)の一部との積を、FPGA1721、1722がそれぞれ実行した様子を示したものである。また、
図19(a)は、FPGA1721、1722それぞれが、実行結果を、FPGA1723、1724に転送した様子を示したものである。
【0148】
図19(a)に示すように、FPGA1721からは、算出結果であるp
11r
1+p
12r
2と、p
21r
1+p
22r
2とが、1クロックかけてFPGA1723に転送される。また、FPGA1722からは、p
31r
1+p
32r
2と、p
41r
1+p
42r
2とが、1クロックかけてFPGA1724に転送される。なお、p
31r
1+p
32r
2と、p
41r
1+p
42r
2とは、FPGA1721からFPGA1722に1クロックかけて転送されたリザーバ特徴量(Rベクトル)の一部である(r
1,r
2)と、係数行列(P行列)の一部との積の算出結果である。
【0149】
一方、
図19(b)は、2分割したリザーバ特徴量(Rベクトル)のうち、リザーバ特徴量(Rベクトル)の一部である(r
3,r
4)と係数行列(P行列)の一部との積を、FPGA1723、1724がそれぞれ実行した様子を示したものである。また、
図19(b)は、FPGA1723、1724それぞれが、実行結果を、右側に隣接するFPGA(不図示)に転送した様子を示したものである。
【0150】
図19(b)に示すように、FPGA1723からは、算出結果であるp
13r
3+p
14r
4が、転送結果であるp
11r
1+p
12r
2に加算された加算結果が、不図示のFPGAに転送される。また、FPGA1723からは、算出結果であるp
23r
3+p
24r
4が、転送結果であるp
21r
1+p
22r
2に加算された加算結果が、不図示のFPGAに転送される。
【0151】
同様に、FPGA1724からは、算出結果であるp33r3+p34r4が、転送結果であるp31r1+p32r2に加算された加算結果が、不図示のFPGAに転送される。また、FPGA1724からは、算出結果であるp43r3+p44r4が、転送結果であるp41r1+p42r2に加算された加算結果が、不図示のFPGAに転送される。
【0152】
(4-2-3)FPEとして機能するFPGAの処理の詳細その1
次に、FPEとして機能するFPGAの処理の詳細について説明する。上述したように、FPEとして機能するFPGAは、係数行列(P行列)の算出において用いられる、"リザーバ特徴量(Rベクトル)の一部を転置した転置ベクトルと係数行列(P行列)の一部との積"を算出するための行列を生成する「代替処理」を実行する。
【0153】
図20は、逐次最小二乗法によるFORCE学習部において実現される代替処理を示す図である。このうち、
図20(a)は、係数行列(P行列)の算出と代替処理との関係を示している。
図20(a)に示すように、係数行列(P行列)を算出する際に算出すべき"リザーバ特徴量(Rベクトル)を転置した転置行列と係数行列(P行列)との積"(符号2001)のうち、係数行列(P行列)は対称行列である(対称性を有する)。このため、係数行列(P行列)は、係数行列(P行列)を転置した転置行列と等しい。
【0154】
したがって、
・"リザーバ特徴量(Rベクトル)を転置した転置行列と係数行列(P行列)との積"(符号2001)と、
・"リザーバ特徴量(Rベクトル)を転置した転置行列と係数行列(P行列)を転置した転置行列との積"(符号2002)と、
は等しい。つまり、"リザーバ特徴量(Rベクトル)と係数行列(P行列)との積を転置した転置行列"(符号2003)と等しい。
【0155】
ここで、"リザーバ特徴量(Rベクトル)と係数行列(P行列)との積"は、当該積を算出する時点で既に算出されている(符号2004)。このため、対称性を利用して当該算出結果を転置することで、"リザーバ特徴量(Rベクトル)を転置した転置行列と係数行列(P行列)との積"(符号2001)の代替とすることができる。
【0156】
図20(b)は、係数行列(P行列)の算出において、
・"リザーバ特徴量(Rベクトル)を転置した転置行列と係数行列(P行列)との積"(符号2001)を、
・"リザーバ特徴量(Rベクトル)と係数行列(P行列)との積を転置した転置行列"(符号2003)で、
代替した場合の代替後の数式を示している。
【0157】
また、
図20(c)の右辺はその算出結果を表し、pr
1、pr
2、pr
3、pr
4のうち、右辺の行列の各要素がどのprを必要とするかを示したものである。この行列の左上要素は、pr
1、pr
2を必要とし、左下要素と右上要素は、pr
1、pr
2、pr
3、pr
4を必要とし、右下要素はpr
3、pr
4を必要とする。
【0158】
また、
図20(d)は、FPEとして機能するFPGA(不図示)が、
・"係数行列(P行列)の一部とリザーバ特徴量(Rベクトル)の一部との積"と、
・"係数行列(P行列)の一部とリザーバ特徴量(Rベクトル)の一部との積を転置した転置ベクトル"と、
を算出するためのベクトルを、信号線1603を介して、FPGA1721~1724に送信した様子を示している。更に、
図20(d)は、FPGA1721~1724が、
・"係数行列(P行列)の一部とリザーバ特徴量(Rベクトル)の一部との積"と、
・"係数行列(P行列)の一部とリザーバ特徴量(Rベクトル)の一部との積を転置した転置ベクトル"と、
の積を算出する様子を示している。
【0159】
具体的には、FPGA1721が
図20(c)の右辺の行列の左上要素の積を、FPGA1722が左下要素の積を、FPGA1723が右上要素の積を、FPGA1724が右下要素の積をそれぞれ算出する。
【0160】
このように、逐次最小二乗法によるFORCE学習部1200では、逐次最小二乗法によるFORCE学習処理において実行される転置ベクトルを含む演算を行う際、転置ベクトルを含まない演算の演算結果を取得し、取得した演算結果を転置することで代替する。
【0161】
これにより、逐次最小二乗法によるFORCE学習部1200によれば、逐次最小二乗法によるFORCE学習処理を実現する際の、演算回数を削減することができる。この結果、逐次最小二乗法によるFORCE学習部1200によれば、FORCE学習処理を高速化することができる。
【0162】
(4-2-4)FPEとして機能するFPGAの処理の詳細その1
次に、FPEとして機能するFPGAの転送処理の詳細について説明する。上述したように、FPEとして機能するFPGAは、リザーバ特徴量(Rベクトル)の一部が入力されると、逐次重みパラメータ(Wベクトル)の一部との積を算出し、算出結果である出力データ(Z)の一部を、隣接するFPGAに転送する。
図21は、逐次最小二乗法によるFORCE学習部において実現される転送処理を示す第2の図である。
【0163】
図21に示すように、FPGA2111は、2分割したリザーバ特徴量(Rベクトル)のうち、
・リザーバ特徴量(Rベクトル)の一部である(r
1,r
2)と、
・逐次重みパラメータ(Wベクトル)の一部である(w
1,w
2)と、
の積を算出し、算出結果(符号2101)をFPGA2112に転送する。このとき、FPGA2111では、算出結果(符号2101)であるw
1r
1+w
2r
2を1クロックかけてFPGA2112に転送する。
【0164】
また、FPGA2112は、2分割したリザーバ特徴量(Rベクトル)のうち、リザーバ特徴量(Rベクトル)の一部である(r3,r4)と逐次重みパラメータ(Wベクトル)の一部である(w3,w4)との積を算出する。また、FPGA2112は、算出結果(符号2102)を、FPGA2111から転送された算出結果(符号2101)に加算し、加算結果(符号2103)を得る。
【0165】
(4-2-5)FPEとして機能するFPGAの処理の詳細その2
次に、FPEとして機能するFPGAの処理の詳細について説明する。上述したように、FPEとして機能するFPGAは、リザーバ特徴量(Rベクトル)の一部と係数行列(P行列)の一部との積の算出結果を取得する。また、FPEとして機能するFPGAは、リザーバ特徴量(Rベクトル)の一部と、係数行列(P行列)の一部と、信号線1601を介して取得したリザーバ特徴量(Rベクトル)の一部を転置した転置ベクトルとの積を算出する。更に、FPEとして機能するFPGAは、算出結果を、PEとして機能するFPGAに配布する配布処理を実行する。
【0166】
図22は、逐次最小二乗法によるFORCE学習部において実現される配布処理を示す図である。
図22に示すように、FPEとして機能するFPGA2111は、PEとして機能する対応するFPGAから、係数行列(P行列)の一部とRベクトルの一部との積の算出結果(符号2201)を取得する。また、FPEとして機能するFPGA2111は、取得した算出結果(符号2201)と、リザーバ特徴量(Rベクトル)の一部(r
1,r
2)を転置した転置ベクトルとの積を算出し、算出結果(符号2202)を、FPGA2112に転送する。
【0167】
同様に、FPEとして機能するFPGA2112は、PEとして機能する対応するFPGAから、係数行列(P行列)の一部とRベクトルの一部との積の算出結果(符号2203)を取得する。また、FPEとして機能するFPGA2112は、取得した算出結果(符号2202)と、リザーバ特徴量(Rベクトル)の一部(r3,r4)を転置した転置ベクトルとの積を算出する。また、FPEとして機能するFPGA2112は、算出結果をFPGA2111から転送された算出結果(符号2202)に加算する。更に、FPEとして機能するFPGA2112は、加算結果(符号2204)を、信号線1604を介して、PEとして機能するFPGA1721~1724に転送する。
【0168】
これにより、FPGA1721~1724では、それぞれ、係数行列(P行列)の一部を算出することができる。例えば、FPGA1721の場合、
・"リザーバ特徴量(Rベクトル)の一部と係数行列(P行列)の一部との積"(符号2004)は、事前に算出している。
・"リザーバ特徴量(Rベクトル)の一部を転置した転置ベクトルと係数行列(P行列)の一部との積"(符号2001)は、
図20で説明したように、信号線1603を介して取得した行列に基づく代替処理により算出している。
・"リザーバ特徴量(Rベクトル)の一部を転置した転置ベクトルと、係数行列(P行列)の一部と、リザーバ特徴量(Rベクトル)の一部との積"(符号2204)は、信号線1604を介して取得している。
【0169】
これにより、FPGA1721~FPGA1724では、係数行列(P行列)を算出することができる。
【0170】
(4-2-6)FPEとして機能するFPGAの処理の詳細その3
次に、FPEとして機能するFPGAの処理の詳細について説明する。上述したように、FPEとして機能するFPGAのうち、最終段に位置するFPGAは、逐次重みパラメータの算出、出力データの算出に加えて、誤差の算出を実行する。
【0171】
図23は、逐次最小二乗法によるFORCE学習部において実現される重みパラメータ更新処理を示す図である。
図23に示すように、最終段に位置するFPGA2112は、出力データ(Z)の一部(=w
3r
3+w
4r
4)を算出する。また、最終段に位置するFPGA2112は、FPEとして機能するFPGA2111より取得した出力データ(Z)の一部(=w
1r
1+w
2r
2)に加算することで、出力データ(Z)を集計する。
【0172】
また、最終段に位置するFPGA2112は、集計した出力データ(Z)と、プロセス状態データ(S)との差分を算出することで、誤差(e)を算出する。(符号2301)。更に、最終段に位置するFPGA2112は、算出した誤差(e)を、上段に位置するFPGA2111に送信する。FPGA2111及びFPGA2112では、算出した誤差(e)を用いて、逐次重みパラメータを更新する。
【0173】
例えば、FPGA2111では、リザーバ特徴量(Rベクトル)の一部と係数行列(P行列)の一部との積の算出結果(符号2201)を取得し、FPGA2112より取得した誤差(e)をかけ合わせたうえで、現在の逐次重みパラメータ(Wベクトル)に加算する。これにより、FPGA2111では、逐次重みパラメータ(Wベクトル)を更新することができる(符号2302)。
【0174】
(4-3)逐次最小二乗法によるFORCE学習部1200によるFORCE学習処理のタイミングチャート
次に、逐次最小二乗法によるFORCE学習部1200によるFORCE学習処理のタイミングチャートについて説明する。
図24は、逐次最小二乗法によるFORCE学習部によるFORCE学習処理のタイミングチャートの一例である。
【0175】
図24に示すように、FPEとして機能するFPGAは、
・逐次重みパラメータ(W(τ-1)ベクトル)と、
・リザーバ特徴量(R(τ)ベクトル)と、
の積を算出することで、出力データ(Z(τ))を算出する(符号2401)。
【0176】
また、FPEとして機能するFPGAは、出力データ(Z(τ))と、プロセス状態データ(S(τ))とに基づいて、誤差(e(τ))を算出する(符号2402)。
【0177】
また、PEとして機能するFPGAは、
・リザーバ特徴量(Rベクトル(τ))を転置した転置ベクトルと、係数行列(P(τ-1)行列)と、リザーバ特徴量(Rベクトル(τ))との積と、
・係数行列(P(τ-1)行列)と、リザーバ特徴量(Rベクトル(τ))との積と、
・係数行列(P(τ-1)行列)と、
に基づいて、係数行列(P(τ)行列)を算出する(符号2403)。
【0178】
また、PEとして機能するFPGAは、係数行列(P(τ)行列)と、リザーバ特徴量(R(τ)ベクトル)との積を算出する(符号2404)。また、PEとして機能するFPGAは、係数行列(P(τ+1)行列)と、リザーバ特徴量(R(τ)ベクトル)との積を算出する(符号2405)。
【0179】
また、PEとして機能するFPGAは、
・リザーバ特徴量(R(τ+1)ベクトル)を転置した転置ベクトルと、
・係数行列(P(τ)行列)と、リザーバ特徴量(R(τ+1)ベクトル)との積の算出結果と、
の積を算出する(符号2406)。
【0180】
続いて、FPEとして機能するFPGAは、
・係数行列(P(τ)行列)と、リザーバ特徴量(R(τ)ベクトル)との積の算出結果と、
・誤差(e(τ))と、
の積を算出する(符号2407)。
【0181】
また、FPEとして機能するFPGAは、
・係数行列(P(τ)行列)と、リザーバ特徴量(R(τ)ベクトル)と、誤差(e(τ))との積を算出した算出結果と、
・逐次重みパラメータ(W(τ-1)ベクトル)と、
に基づいて、逐次重みパラメータ(W(τ)ベクトル)を更新し、逐次重みパラメータ(W(τ)ベクトル)を算出する(符号2408)。
【0182】
これにより、FPEとして機能するFPGAは、出力データ(Z(τ+1))を算出することができる。以下、システム時間の経過とともに、同様の処理が繰り返される。
【0183】
なお、
図24に示すように、逐次最小二乗法によるFORCE学習部1200では、
・逐次重みパラメータ(W(τ-1)ベクトル)の算出と、
・逐次重みパラメータ(W(τ)ベクトル)の算出と、
の間にそれぞれ実行される、リザーバ特徴量(Rベクトル)と係数行列(P行列)との積の実行タイミングが、互いに重なるように構成される。具体的には、逐次最小二乗法によるFORCE学習部1200が、PEとして機能するFPGA及びFPEとして機能するFPGAにおいて、算出結果をバッファリングすることで、実行タイミングを調整する。
【0184】
これにより、逐次最小二乗法によるFORCE学習部1200では、逐次重みパラメータの更新に要する時間を短縮することができる。
【0185】
以上のとおり、逐次最小二乗法によるFORCE学習処理を行うハードウェアによりプロセス状態予測部204を構成し、逐次重みパラメータを高速に更新するための処理を実行する。これにより、プロセス状態予測部204によれば、センサデータにおいて出現する短い挙動を捉えて重みパラメータを学習することができる。
【0186】
なお、本願出願人によれば、逐次最小二乗法によるFORCE学習部1200が逐次重みパラメータの更新に要する時間として、各FPGAを200MHzで動作させた場合、960[ns]を実現している。
【0187】
<管理装置の詳細>
次に、プロセス状態予測システム128と接続される管理装置123の詳細について説明する。
【0188】
(1)管理装置123のハードウェア構成
はじめに、管理装置123のハードウェア構成について説明する。
図25は、管理装置のハードウェア構成の一例を示す図である。
【0189】
図25に示すように、管理装置123は、プロセッサ2501、メモリ2502、補助記憶装置2503、I/F(Interface)装置2504、UI装置2505、通信装置2506を有する。なお、管理装置123の各ハードウェアは、バス2507を介して相互に接続されている。
【0190】
プロセッサ2501は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)等の各種演算デバイスを有する。プロセッサ2501は、各種プログラム(例えば、管理プログラム等)をメモリ2502上に読み出して実行する。
【0191】
メモリ2502は、ROM(Read Only Memory)、RAM(Random Access Memory)等の主記憶デバイスを有する。プロセッサ2501とメモリ2502とは、いわゆるコンピュータを形成し、プロセッサ2501が、メモリ2502上に読み出した各種プログラムを実行することで、当該コンピュータは各種機能を実現する。
【0192】
補助記憶装置2503は、各種プログラムや、各種プログラムがプロセッサ2501によって実行される際に用いられる各種データを格納する。後述するデータ格納部2607は、補助記憶装置2503において実現される。
【0193】
I/F装置2504は、プロセス状態予測システム128と接続する接続デバイスである。
【0194】
UI装置2505は、管理装置123の管理者が各種指示を管理装置123に入力するためのユーザインタフェース装置である。通信装置2506は、外部装置(不図示)とネットワークを介して通信するための通信デバイスである。
【0195】
(2)管理部124の機能構成
次に、管理装置123の管理部124の機能構成について説明する。
図26は、管理部の機能構成の一例を示す図である。上述したように、管理装置123には管理プログラムがインストールされており、当該プログラムが実行されることで、管理装置123の管理部124は、
・プロセス状態データ送信部2601、
・プロセス状態データ取得部2602、
・期間制御部2603、
・終了情報取得部2604、
・再学習判定部2605、
・評価部2606、
・リザーバ特徴量取得部2608、
・バッチ学習部2609、
として機能する。
【0196】
プロセス状態データ送信部2601は、期間制御部2603からの送信開始/停止指示に基づいて、例えば、センサb122bから送信されたセンサデータbをプロセス状態データ取得部2602を介して、プロセス状態データ(正解データ)として取得する。また、プロセス状態データ送信部2601は、取得したプロセス状態データ(正解データ)を、プロセス状態予測システム128に送信する。プロセス状態データ送信部2601により送信されるプロセス状態データには、学習期間中に送信されるプロセス状態データと、再学習期間中に送信されるプロセス状態データとが含まれる。
【0197】
プロセス状態データ取得部2602は、センサb122bから送信されたセンサデータbを取得する。また、プロセス状態データ取得部2602は、取得したセンサデータbをプロセス状態データとして、プロセス状態データ送信部2601及びバッチ学習部2609に通知する。
【0198】
期間制御部2603は、プロセス状態予測システム128に各種切替情報を送信する。
図26に示すように、期間制御部2603により送信される各種切替情報には、
・学習期間への移行指示、
・予測期間への移行指示、
・再学習期間への移行指示、
・学習パラメータセットの切替指示、
・重みパラメータの設定指示、
が含まれる。
【0199】
期間制御部2603は、プロセス状態予測システム128の処理が開始されると、プロセス状態予測システム128に、学習期間への移行指示を送信するとともに、プロセス状態データ送信部2601に、プロセス状態データの送信開始を指示する。
【0200】
また、期間制御部2603は、終了情報取得部2604から、FORCE学習処理の終了情報を受信すると、プロセス状態予測システム128に、予測期間への移行指示を送信する。その際、期間制御部2603は、プロセス状態データ送信部2601にプロセス状態データの送信停止を指示する。
【0201】
また、期間制御部2603は、再学習判定部2605から、再学習が必要であるとの判定結果を受信すると、プロセス状態予測システム128に、再学習期間への移行指示を送信する。その際、期間制御部2603は、プロセス状態データ送信部2601に、プロセス状態データの送信開始を指示する。
【0202】
また、期間制御部2603は、終了情報取得部2604より、再学習用データ取得の終了情報と、評価用データ取得の終了情報を取得すると、データ格納部2607より、学習パラメータセットを読み出し、プロセス状態予測システム128に送信する。その際、期間制御部2603は、プロセス状態データ送信部2601にプロセス状態データの送信停止を指示する。
【0203】
ここで、
図26に示すように、データ格納部2607には、学習パラメータセット1~学習パラメータセットMが格納されている。期間制御部2603では、読み出した学習パラメータセット1~学習パラメータセットMを、プロセス状態予測システム128に送信する。
【0204】
なお、符号2611に示すように、学習パラメータセットには、情報の項目として、"前回の重みパラメータを使用or初期化"、"過去データ寄与率"、"学習モデル数"等が含まれる。
【0205】
また、期間制御部2603は、終了情報取得部2604より、FORCE再学習処理の終了情報を取得するごとに、プロセス状態予測システム128に、学習パラメータセットの切替指示を送信する。
【0206】
図26に示すように、再学習期間において、リザーバ特徴量取得部2608は、プロセス状態予測システム128から学習用データ及び評価用データとしてリザーバ特徴量を取得し、バッチ学習部2609に通知する。また、上述したように、再学習期間において、プロセス状態データ取得部2602は、学習用データとして、センサデータbを取得し、取得したセンサデータbをプロセス状態データとして、バッチ学習部2609に通知する。
【0207】
バッチ学習部2609は、データ格納部2607より読み出したバッチ学習パラメータのもと、リザーバ特徴量とプロセス状態データとを所定の学習時間分蓄積した学習用データを用いて、バッチ学習を実行する。ここでいうバッチ学習とは、所定の学習時間分のリザーバ特徴量とプロセス状態データとから重みパラメータを学習することである。
【0208】
なお、バッチ学習に用いるバッチ学習パラメータには、情報の項目として、"学習用正規化パラメータ"、"蓄積するデータ量(バッチサイズ)"、"学習時間"等が含まれる。
【0209】
また、バッチ学習部2609は、バッチ学習が完了すると、評価用データとして取得したリザーバ特徴量に基づいてプロセス状態データを予測し、バッチ学習部2609による予測結果(バッチ学習予測結果)を、評価部2606に通知する。
【0210】
また、期間制御部2603は、評価部2606より、評価結果を受信し、受信した評価結果に基づいて、プロセス状態予測システム128に重みパラメータの設定指示を送信する。
【0211】
なお、評価結果には、各学習パラメータセットのもと、FORCE再学習処理が行われることでそれぞれ算出された重みパラメータを用いて、評価用データに対して予測処理が行われ、それぞれの予測結果データについて算出された予測精度が含まれるものとする。
【0212】
また、期間制御部2603は、予測結果データが所定の許容範囲に含まれ、かつ、予測精度が最も高い重みパラメータを設定するよう、プロセス状態予測システム128に設定指示を行う。このときの所定の許容範囲は、固定値が設定されてもよいし、バッチ学習部2609が算出したバッチ学習予測結果に基づいて算出された値が設定されてもよい。
【0213】
また、期間制御部2603は、重みパラメータの設定指示を送信した後、予測期間への移行指示を、プロセス状態予測システム128に送信する。
【0214】
終了情報取得部2604は、プロセス状態予測システム128より、各種終了情報(FORCE学習処理の終了情報、再学習用データ取得の終了情報、評価用データ取得の終了情報、FORCE再学習処理の終了情報)を取得する。また、終了情報取得部2604は、取得した各種終了情報を、期間制御部2603に送信する。
【0215】
再学習判定部2605は、予測期間中にプロセス状態予測システム128より受信した予測結果データの予測精度に基づいて、再学習の要否を判定する。また、再学習判定部2605は、再学習が必要であると判定した場合、期間制御部2603に、再学習が必要であるとの判定結果を送信する。なお、再学習判定部2605では、その他、再学習が必要となるような事象が発生した場合にも、期間制御部2603に、再学習が必要であるとの判定結果を送信する。
【0216】
評価部2606は、再学習期間中に、学習パラメータセットが切り替えられるごとにプロセス状態予測システム128より受信した予測結果データの予測精度を評価し、評価結果として、期間制御部2603に送信する。上述したように、評価部2606では、予測結果データを評価する際、バッチ学習部2609により算出されたバッチ学習予測結果に基づいて算出した許容範囲を用いて、予測結果データを評価してもよい。
【0217】
<管理部及びプロセス状態予測システムによるプロセス状態予測処理>
次に、管理部124及びプロセス状態予測システム128によるプロセス状態予測処理の流れについて説明する。
【0218】
(1)プロセス状態予測処理全体の流れ
はじめに、プロセス状態予測処理全体の流れについて説明する。
図27は、管理部及びプロセス状態予測システムによるプロセス状態予測処理全体の流れを示すフローチャートの一例である。プロセス状態予測システム128が起動することで、
図27に示す処理が開始される。
【0219】
ステップS2701において、管理部124は、学習期間への移行指示をプロセス状態予測システム128に送信する。これにより、プロセス状態予測システム128のプロセス状態予測部204は、学習期間に移行し、FORCE学習部1200の重みパラメータを初期化する。
【0220】
ステップS2702において、プロセス状態予測システム128の電圧変調部202は、センサ122により出力され、I/O制御部201により取得された時系列のセンサデータaに対して、電圧変調処理を行う。なお、電圧変調処理(ステップS2702)の詳細は、
図3を用いて説明済みであるため、ここでは説明を省略する。
【0221】
ステップS2703において、プロセス状態予測システム128の多電極I/Oチップ203は、電圧変調部202より出力された電圧データを入力し、リザーバ特徴量を出力する入出力処理を行う。なお、入出力処理(ステップS2703)の詳細は、
図5を用いて説明済みであるため、ここでは説明を省略する。
【0222】
ステップS2704において、プロセス状態予測システム128のプロセス状態予測部204は、現在の期間を判定する。管理装置123の管理部124より学習期間への移行指示または予測期間への移行指示を受信している場合、プロセス状態予測部204は、ステップS2704において、現在の期間が、学習期間または予測期間であると判定する。この場合、プロセス状態予測部204は、ステップS2711に進む。
【0223】
ステップS2711において、プロセス状態予測システム128のプロセス状態予測部204は、FORCE学習処理が終了しているか否かを判定する。ステップS2711において、FORCE学習処理が終了していないと判定した場合には(ステップS2711においてNOの場合には)、ステップS2712に進む。
【0224】
ステップS2712において、プロセス状態予測システム128のプロセス状態予測部204は、FORCE学習処理を行う。なお、FORCE学習処理(ステップS2712)の詳細は、後述する。
【0225】
一方、ステップS2711において、FORCE学習処理が終了していると判定した場合には(ステップS2711においてYESの場合には)、ステップS2713に進む。
【0226】
ステップS2713において、プロセス状態予測システム128のプロセス状態予測部204は、予測処理を行う。なお、予測処理(ステップS2713)の詳細は、後述する。
【0227】
ステップS2714において、管理装置123の管理部124は、再学習が必要であるか否かを判定する。ステップS2714において、再学習が必要でないと判定された場合(ステップS2714においてNOの場合)には、ステップS2731に進む。
【0228】
一方、ステップS2714において、再学習が必要であると判定した場合(ステップS2714においてYESの場合)には、ステップS2715に進む。なお、ステップS2714における再学習判定処理の詳細は、後述する。
【0229】
ステップS2715において、管理装置123の管理部124は、プロセス状態予測システム128に、再学習期間への移行指示を送信するとともに、学習パラメータセット1~Mを送信する。これにより、プロセス状態予測システム128のプロセス状態予測部204は、再学習期間に移行するとともに、学習パラメータセット1~Mを取得する。
【0230】
また、ステップS2704において、現在の期間が、再学習期間であると判定した場合には、ステップS2721に進む。なお、プロセス状態予測部204では、管理装置123の管理部124より再学習期間への移行指示を受信している場合、現在の期間が、再学習期間であると判定する。
【0231】
ステップS2721において、プロセス状態予測システム128のプロセス状態予測部204は、FORCE再学習処理を行う。なお、FORCE再学習処理(ステップS2721)の詳細は、後述する。
【0232】
ステップS2731において、管理装置123の管理部124は、プロセス状態予測処理を終了するか否かを判定する。ステップS2731において、プロセス状態予測処理を終了しないと判定した場合には(ステップS2731においてNOの場合には)、ステップS2702に戻る。
【0233】
一方、ステップS2731において、プロセス状態予測処理を終了すると判定した場合、管理装置123の管理部124及びプロセス状態予測システム128は、プロセス状態予測処理を終了する。
【0234】
(2)学習処理(ステップS2712)の詳細
次に、プロセス状態予測処理に含まれる学習処理(ステップS2712)の詳細について説明する。
図28は、学習処理の流れを示すフローチャートの一例である。
【0235】
ステップS2801において、プロセス状態予測システム128のプロセス状態予測部204は、多電極I/Oチップ203より出力されるリザーバ特徴量と、管理装置123の管理部124より送信されるプロセス状態データ(正解データ)とを取得する。
【0236】
ステップS2802において、プロセス状態予測システム128のプロセス状態予測部204は、学習パラメータセットにおいて、符号2611の"前回の重みパラメータを使用or初期化"の項目が、「使用」であるか否かを判定する。
【0237】
ステップS2802において、"前回の重みパラメータを使用or初期化"の項目が、「使用」であると判定した場合には(ステップS2802においてYESの場合には)、ステップS2804に進む。この場合、プロセス状態予測システム128のプロセス状態予測部204は、前回のFORCE学習処理において算出した重みパラメータを、今回のFORCE学習処理におけるFORCE学習部1200の逐次重みパラメータの初期値とする。
【0238】
一方、ステップS2802において、"前回の重みパラメータを使用or初期化"の項目が「初期化」であると判定した場合には(ステップS2802においてNOの場合には)、ステップS2803に進む。
【0239】
ステップS2803において、プロセス状態予測システム128のプロセス状態予測部204は、今回のFORCE学習処理の前に、前回のFORCE学習処理において算出したFORCE学習部1200の逐次重みパラメータを初期化する。
【0240】
ステップS2804において、FORCE学習部1200は、リザーバ特徴量に、現在の逐次重みパラメータをかけ合わせることで、出力データを算出する。
【0241】
ステップS2805において、FORCE学習部1200は、算出した出力データと、対応するプロセス状態データ(正解データ)との誤差を算出する。また、FORCE学習部1200は、算出した誤差が閾値以内でないと判定した場合には(ステップS2805においてNO)の場合には、ステップS2806に進む。
【0242】
ステップS2806において、FORCE学習部1200は、算出した誤差に基づいて逐次重みパラメータを更新し、ステップS2807に進む。
【0243】
一方、ステップS2805において、誤差が閾値以内であると判定した場合には(ステップS2807においてYESの場合には)、直接、ステップS2807に進む。
【0244】
ステップS2807において、FORCE学習部1200は、誤差が閾値以内である状態が、学習パラメータセットで指定された所定の学習時間分、継続したか否かを判定する。ステップS2807において、継続していないと判定した場合には(ステップS2807においてNOの場合には)、
図27のステップS2731に戻る。
【0245】
一方、ステップS2807において、継続したと判定した場合には(ステップS2807においてYESの場合には)、ステップS2808に進む。
【0246】
ステップS2808において、プロセス状態予測システム128のプロセス状態予測部204は、FORCE学習処理の終了情報を、管理装置123に送信する。これにより、管理装置123の管理部124は、FORCE学習処理が終了したと判定し、予測期間への移行指示を、プロセス状態予測システム128に送信する。
【0247】
ステップS2809において、プロセス状態予測システム128のプロセス状態予測部204は、FORCE学習部1300に、FORCE学習処理が終了した時点での重みパラメータを設定する。
【0248】
(3)予測処理(ステップS2713)の詳細
次に、プロセス状態予測処理に含まれる予測処理(ステップS2713)の詳細について説明する。
図29は、予測処理の流れを示すフローチャートの一例である。
【0249】
ステップS2901において、FORCE学習部1300は、多電極I/Oチップ203から出力されたリザーバ特徴量を取得する。
【0250】
ステップS2902において、FORCE学習部1300は、取得したリザーバ特徴量に重みパラメータをかけ合わせることで、プロセス状態を予測する。
【0251】
ステップS2903において、FORCE学習部1300は、予測結果データを出力する。
【0252】
(4)再学習判定処理(ステップS2714)の詳細
次に、管理装置123の管理部124による再学習判定処理(ステップS2714)の詳細について説明する。
図30は、再学習判定処理の流れを示すフローチャートの一例である。
【0253】
ステップS3001において、管理装置123の管理部124は、予測期間において、プロセス状態予測システム128が取得する時系列のセンサデータaの種類が変更されたか否かを判定する。ステップS3001において、変更されたと判定した場合には(ステップS3001においてYESの場合には)、ステップS3004に進む。
【0254】
一方、ステップS3001において、変更されていないと判定した場合には(ステップS3001においてNOの場合には)、ステップS3002に進む。
【0255】
ステップS3002において、管理装置123の管理部124は、予測期間において、プロセス状態予測システム128が取得する時系列のセンサデータaの値が所定の閾値以上変動したか否かを判定する。ステップS3002において、時系列のセンサデータaの値が所定の閾値以上変動したと判定した場合には(ステップS3002においてYESの場合には)、ステップS3004に進む。
【0256】
一方、ステップS3002において、時系列のセンサデータaの値が所定の閾値以上変動していないと判定した場合には(ステップS3002においてNOの場合には)、ステップS3003に進む。
【0257】
ステップS3003において、管理装置123の管理部124は、予測期間において、プロセス状態予測システム128から送信される予測結果データの予測精度が所定の閾値以下に低下したか否かを判定する。
【0258】
ステップS3003において、予測精度が所定の閾値以下に低下したと判定した場合には(ステップS3003においてYESの場合には)、ステップS3004に進む。
【0259】
ステップS3004において、管理装置123の管理部124は、再学習が必要であると判定する。
【0260】
一方、ステップS3003において、予測精度が所定の閾値以下に低下していないと判定した場合には(ステップS3003においてNOの場合には)、
図27のステップS2731に戻る。
【0261】
予測精度が所定の閾値以下に低下するとは、予測結果データと正解データとの誤差が許容閾値を超えたことを指す(上述したように、それまでの時間は「有効予測時間」である)。したがって、管理装置123の管理部124は、この有効予測時間を監視することで、再学習が必要であるか否かを判定する。
図31を参照しながら、説明する。
【0262】
図31は、有効予測時間の他の一例を示す図である。
図31において横軸は、学習により算出された重みパラメータが設定されてからの経過時間を示している。また、
図31において縦軸は、予測結果データと正解データとの二乗誤差を示している。
【0263】
プロセス状態予測システム128では、予測結果データと正解データとの二乗誤差が、許容閾値を超えるまでの有効予測時間が、例えば、
図31のt
bで示す時間であったとする(初期状態、ベストの状態)。ここから運用を開始し、その後、予測結果データと正解データとの二乗誤差が、許容閾値を超えるまでの有効予測時間がt
a(<t
b)になったとする。つまり、本来予測できる時間が短くなったときに(t
b-t
aが所定の閾値以上となったときに)、再学習する。
【0264】
(5)再学習処理(ステップS2721)の詳細
次に、プロセス状態予測処理に含まれる再学習処理(ステップS2721)の詳細について説明する。
図32は、再学習処理の流れを示すフローチャートの一例である。
【0265】
再学習処理を開始すると、プロセス状態予測システム128のプロセス状態予測部204及び管理装置123の管理部124は、ステップS3201~ステップS3208の処理と、ステップS3210~ステップS3215の処理とを、並行して実行する。
【0266】
はじめに、ステップS3201~ステップS3208の処理について説明する。ステップS3201において、プロセス状態予測システム128のプロセス状態予測部204は、多電極I/Oチップ203より出力されるリザーバ特徴量と、管理装置123の管理部124より送信されるプロセス状態データ(正解データ)とを取得する。
【0267】
なお、プロセス状態予測システム128のプロセス状態予測部204は、リザーバ特徴量とプロセス状態データ(正解データ)との組み合わせの一部を再学習用データとして取得し、残りの組み合わせを評価用データとして取得する。
【0268】
ステップS3202において、プロセス状態予測部204は、管理装置123の管理部124から送信された学習パラメータセット1~Mのうちのいずれか(ここでは、学習パラメータセット1)を、FORCE学習部1200_1に設定する。
【0269】
ステップS3203において、プロセス状態予測部204は、FORCE学習部1200_1に設定した学習パラメータセット1の"前回の重みパラメータを使用or初期化"の項目が、「使用」であるか否かを判定する。
【0270】
ステップS3203において、"前回の重みパラメータを使用or初期化"の項目が、「使用」であると判定した場合には(ステップS3203においてYESの場合には)、ステップS3205に進む。この場合、FORCE学習部1200_1では、前回のFORCE学習処理において算出された重みパラメータを、逐次重みパラメータの初期値として、今回のFORCE再学習処理を行う。
【0271】
一方、ステップS3203において、"前回の重みパラメータを使用or初期化"の項目が「初期化」であると判定した場合には(ステップS3203においてNOの場合には)、ステップS3204に進む。
【0272】
ステップS3204において、プロセス状態予測システム128のプロセス状態予測部204は、FORCE学習部1200_1の逐次重みパラメータを初期化する。
【0273】
ステップS3205において、FORCE学習部1200_1は、再学習用データを用いて、FORCE学習処理を行い、重みパラメータを算出する。また、FORCE学習部1200_1は、算出した重みパラメータを、FORCE学習部1300_1に設定する。
【0274】
ステップS3206において、FORCE学習部1300_1は、評価用データを用いて、プロセス状態を予測する。
【0275】
ステップS3207において、FORCE学習部1300_1は、予測結果データを管理装置123の管理部124に出力する。
【0276】
ステップS3208において、プロセス状態予測システム128のプロセス状態予測部204は、管理装置123の管理部124から送信された全ての学習パラメータセットを、FORCE学習部に設定したか否かを判定する。
【0277】
ステップS3208において、未だ設定していない学習パラメータセットがある場合には、次の学習パラメータセットを設定すると判定し(ステップS3208においてYESと判定し)、ステップS3202に戻る。
【0278】
一方、ステップS3208において、全ての学習パラメータセットを、FORCE学習部に設定したと判定した場合には、次の学習パラメータを設定しないと判定し(ステップS3208においてNOと判定し)、ステップS3221に進む。
【0279】
続いて、ステップS3210~S3215の処理について説明する。ステップS3210において、プロセス状態予測システム128のプロセス状態予測部204は、取得したリザーバ特徴量を、管理装置123の管理部124に出力する。また、管理装置123の管理部124は、プロセス状態予測部204より出力されたリザーバ特徴量と、プロセス状態データ(正解データ)との組み合わせの一部を再学習用データとして蓄積し、残りの組み合わせを評価用データとして蓄積する。
【0280】
ステップS3211において、プロセス状態予測システム128のプロセス状態予測部204は、蓄積した再学習用データ及び評価用データが、いずれも所定サイズに到達したか否かを判定する。
【0281】
ステップS3212において、所定サイズに到達していないと判定した場合には(ステップS3211においてNOの場合には)、ステップS3210に戻る。
【0282】
一方、ステップS3211において、所定サイズに到達したと判定した場合には(ステップS3211においてYESの場合には)、ステップS3212に進む。
【0283】
ステップS3212において、管理装置123の管理部124は、バッチ学習パラメータを設定する。
【0284】
ステップS3213において、管理装置123の管理部124は、蓄積した再学習用データを用いて、バッチ学習処理を行い、重みパラメータを算出する。
【0285】
ステップS3214において、管理装置123の管理部124は、算出した重みパラメータのもと、蓄積した評価用データを用いて、プロセス状態を予測する。
【0286】
ステップS3215において、管理装置123の管理部124は、バッチ学習予測結果データを算出する。
【0287】
ステップS3221において、管理装置123の管理部124は、学習パラメータセットごとにプロセス状態予測システム128から送信された各予測結果データの中に、予測精度が所定の許容範囲に含まれる予測結果データがあるか否かを判定する。このとき、管理装置123の管理部124では、算出したバッチ学習予測結果データに基づいて、所定の許容範囲を算出する。
【0288】
ステップS3221において、所定の許容範囲に含まれる予測結果データがないと判定した場合には(ステップS3221においてNOの場合には)、ステップS3222に進む。
【0289】
ステップS3222において、管理装置123の管理部124は、新たな学習パラメータセットを生成し、プロセス状態予測システム128に送信したうえで、ステップS3202に戻る。
【0290】
一方、ステップS3221において、所定の許容範囲に含まれる予測結果データがあると判定した場合には(ステップS3221においてYESの場合には)、ステップS3223に進む。
【0291】
ステップS3223において、管理装置123の管理部124は、再学習期間を終了し、予測期間への移行指示を、プロセス状態予測システム128に送信する。また、管理装置123の管理部124は、予測結果データが所定の許容範囲に含まれ、かつ、予測結果が最も高い重みパラメータを設定するよう、プロセス状態予測システム128に設定指示を行う。
【0292】
ステップS3224において、プロセス状態予測システム128のプロセス状態予測部204は、予測期間に移行する。また、プロセス状態予測システム128のプロセス状態予測部204は、予測結果データが所定の許容範囲に含まれ、かつ、予測精度が最も高い重みパラメータを、FORCE学習部1300_Xに設定する。これにより、再学習後の予測期間においては、適切な学習パラメータセットのもとで再学習することで得られた重みパラメータを用いて予測結果データを算出することができる。
【0293】
<まとめ>
以上の説明から明らかなように、第1の実施形態に係るプロセス状態予測システム128は、
・POM分子とカーボンナノチューブとを有するナノ分子リザーバであって、所定の製造プロセスにおいてセンサにより測定される時系列のセンサデータに基づく電圧信号を入力として、電流信号を出力するナノ分子リザーバを有する。
・電流信号を読み出し、リザーバ特徴量を出力する読み出し機能部を有する。
・リザーバ特徴量と、所定の製造プロセスの状態を示すプロセス状態データとが相関するように学習された重みパラメータと、学習後に出力されるリザーバ特徴量とに基づき、所定の製造プロセスの状態を予測し、予測結果を出力するプロセス状態予測部を有する。
【0294】
このように、ナノ分子リザーバを用いてプロセス状態を予測する構成とすることで、第1の実施形態に係るプロセス状態予測システム128によれば、センサデータにおいて出現する短い挙動を捉えてリザーバ特徴量を出力することできる。
【0295】
また、第1の実施形態に係るプロセス状態予測システム128において、プロセス状態予測部は、逐次最小二乗法によるFORCE学習処理を行うハードウェアを用いて重みパラメータを学習する。
【0296】
これにより、第1の実施形態に係るプロセス状態予測システム128によれば、センサデータにおいて出現する短い挙動を捉えて重みパラメータを学習することができる。
【0297】
この結果、第1の実施形態によれば、時系列のセンサデータに基づきプロセス状態を予測する際の予測精度を向上させることができる。
【0298】
また、第1の実施形態に係るプロセス状態予測システム128は、
・学習後の予測期間中に、再学習が必要であると判定された場合に、重みパラメータを再学習する。
・重みパラメータを再学習する際、学習パラメータを最適化する。
【0299】
これにより、第1の実施形態に係るプロセス状態予測システム128によれば、製造プロセスの経時変化に伴う予測精度の低下を抑えることができる。
【0300】
この結果、第1の実施形態によれば、時系列のセンサデータに基づきプロセス状態を予測する際の予測精度を向上させることができる。
【0301】
[その他の実施形態]
上記第1の実施形態では、プロセス状態を予測した予測結果データとして、異常の有無やセンサデータを出力する場合について説明した。しかしながら、プロセス状態予測部204により出力される予測結果データは、異常の有無やセンサデータに限定されず、例えば、プロセスの状態を示すレベルや、製造プロセスを実行する装置の故障の有無等であってもよい。
【0302】
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせ等、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【符号の説明】
【0303】
120 :基板処理装置
121 :チャンバ
122 :センサ
123 :管理装置
124 :管理部
125 :制御装置
126 :制御部
127 :アクチュエータ
128 :プロセス状態予測システム
201 :I/O制御部
202 :電圧変調部
203 :多電極I/Oチップ
204 :プロセス状態予測部
401 :D/A変換部
402 :ナノ分子リザーバ
403 :読み出し機能部
610 :入力側電極
620 :出力側電極
1200 :FORCE学習部
1300 :FORCE学習部
1200_1~1200_M :FORCE学習部
1300_1~1300_M :FORCE学習部
1601~1604 :信号線
1721~1724 :FPGA
2111、2112 :FPGA
2601 :プロセス状態データ送信部
2602 :プロセス状態データ取得部
2603 :期間制御部
2604 :終了情報取得部
2605 :再学習判定部
2606 :評価部
2608 :リザーバ特徴量取得部
2609 :バッチ学習部