(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2025-01-28
(54)【発明の名称】シミュレーション・ウォームアップ
(51)【国際特許分類】
G06N 3/08 20230101AFI20250121BHJP
G06N 3/044 20230101ALI20250121BHJP
【FI】
G06N3/08
G06N3/044
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024540019
(86)(22)【出願日】2022-12-27
(85)【翻訳文提出日】2024-08-23
(86)【国際出願番号】 US2022054087
(87)【国際公開番号】W WO2023129550
(87)【国際公開日】2023-07-06
(32)【優先日】2022-02-09
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】524245451
【氏名又は名称】パッシブロジック,インコーポレイテッド
(74)【代理人】
【識別番号】100118902
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100196508
【氏名又は名称】松尾 淳一
(74)【代理人】
【識別番号】100173565
【氏名又は名称】末松 亮太
(72)【発明者】
【氏名】ハービー,トロイ・アーロン
(72)【発明者】
【氏名】フィリンギム,ジェレミー・デイビッド
(72)【発明者】
【氏名】チャイルド,ポーター・ジョナス
(57)【要約】
シミュレータ(210B)を実行する機械学習オプティマイザ(205B)は、時間-状態波を入力として使用して、正式な(official)シミュレーション実行においてシミュレータ(210B)に対する初期ノード値を決定し、時間状態波を結果として生成する。学習モデル(125)は、入力および出力を訓練例として使用し、時間-状態波を反転させ、シミュレータ(210B)からの出力を入力として使用し、出力を求めて、この出力を反転させ、次いでこの逆出力をグラウンド・トゥルースとして使用し、シミュレーションの所望の出力と比較する。
【選択図】
図2A
【特許請求の範囲】
【請求項1】
コンピュータ対応学習モデル訓練システムであって、
プロセッサと、
前記プロセッサと動作可能に通信するメモリと、
前記プロセッサと関連付けられ、シミュレータ・トレーナを作成するように構成されたコンピューティング・コードと、
シミュレータに対して初期ノード値を決定するオプティマイザであって、前記シミュレータが値を有するノードを含む、オプティマイザと、
前記シミュレータが、時点t=(-n)から時点t=(0)までの入力時系列を入力として使用し、前記ノードに対して、時点t=(-n)から時点t=(0)までの出力時系列を出力し、
前記入力時系列を時点t(0)からt=(-n)に反転させて逆入力時系列を生成し、前記出力時系列を時点t(0)からt=(-n)に反転させるリバーサと、
前記逆入力時系列を訓練入力として使用し、前記出力時系列からt=(-n)において選択した値を、前記学習モデルと関連付けられたコスト関数に対するグラウンド・トゥルースとして使用する学習モデルと、
を備える、コンピュータ対応学習モデル訓練システム。
【請求項2】
請求項1記載のコンピュータ対応学習モデル訓練システムにおいて、前記シミュレータが異種ニューラル・ネットワークである、コンピュータ対応学習モデル訓練システム。
【請求項3】
請求項2記載のコンピュータ対応学習モデル訓練システムであって、更に、前記出力時系列からの選択ノード値をコスト関数への入力として使用するコスト関数デターミナを備え、前記コスト関数デターミナが、更に、前記グラウンド・トゥルースを前記コスト関数への入力として使用するコスト関数を備える、コンピュータ対応学習モデル訓練システム。
【請求項4】
請求項3記載のコンピュータ対応学習モデル訓練システムにおいて、前記コスト関数から導き出されたコストが、後続の初期ノード値を決定するために前記オプティマイザによって使用される、コンピュータ対応学習モデル訓練システム。
【請求項5】
請求項4記載のコンピュータ対応学習モデル訓練システムであって、更に、停止状態に達するまで、前記オプティマイザ、前記シミュレータ、および前記学習モデルを繰り返し実行するイテレータを備える、コンピュータ対応学習モデル訓練システム。
【請求項6】
請求項5記載のコンピュータ対応学習モデル訓練システムにおいて、前記停止状態に達したとき、前記初期ノード値を、開始状態推定シミュレーションへの入力として使用する、コンピュータ対応学習モデル訓練システム。
【請求項7】
請求項6記載のコンピュータ対応学習モデル訓練システムにおいて、前記開始状態推定シミュレーションを時点t=(-n)から時点t=(0)まで実行し、次いで状態シミュレーションを時点t(0)からt(n)まで実行し、前記状態シミュレーションが、制御シーケンスを生成するために使用することができる出力を生成し、前記制御シーケンスを使用して、前記状態シミュレーションによってモデル化されたデバイスを運転する、コンピュータ対応学習モデル訓練システム。
【請求項8】
請求項1記載のコンピュータ対応学習モデル訓練システムにおいて、前記学習モデルがニューラル・ネットワークである、コンピュータ対応学習モデル訓練システム。
【請求項9】
請求項8記載のコンピュータ対応学習モデル訓練システムにおいて、前記ニューラル・ネットワークが回帰型ニューラル・ネットワークである、コンピュータ対応学習モデル訓練システム。
【請求項10】
コンピューティング・システムにおいて実装されたオプティマイザ・モデルを使用して、学習モデルを訓練するコンピュータ対応方法であって、前記コンピューティング・システムが、1つ以上のプロセッサと、前記1つ以上のプロセッサに結合された1つ以上のメモリとを備え、前記1つ以上のメモリが、前記コンピューティング・システムに動作を実行させるコンピュータ実行可能命令を含み、前記動作が、
オプティマイザを実行して、初期シミュレータ・ノード値を決定する動作と、
入力と前記初期シミュレータ・ノード値とを使用してシミュレータを実行し、シミュレータ出力を生成する動作と、
前記シミュレータ出力からの選択ノード値を、所望のノード値と比較して、コストを求める動作と、
前記選択ノード値を反転させ、逆選択ノード値を生成する動作と、
前記シミュレータの入力を反転させて、逆シミュレータ入力を生成する動作と、
前記逆選択ノード値と、前記逆シミュレータ入力とを、学習モデルへの訓練入力として使用する動作と、
前記学習モデルを実行する動作と、
を含む、コンピュータ対応方法。
【請求項11】
請求項10記載のコンピュータ対応方法において、前記学習モデルを実行する動作が、逆時系列を学習モデル出力として生成する、コンピュータ対応方法。
【請求項12】
請求項11記載のコンピュータ対応方法において、コスト関数において、時点t(-n)における前記学習モード出力を、前記初期シミュレータ・ノード値と比較する、コンピュータ対応方法。
【請求項13】
請求項12記載のコンピュータ対応方法において、前記コストが前記コスト関数から導き出され、前記コストが、前記学習モデル内部における逆伝搬に使用される、コンピュータ対応方法。
【請求項14】
請求項13記載のコンピュータ対応方法において、前記シミュレータが、異種ニューラル・ネットワークである、コンピュータ対応方法。
【請求項15】
請求項14記載のコンピュータ対応方法において、前記入力が、経時的な天候データを含む、コンピュータ対応方法。
【請求項16】
請求項15記載のコンピュータ対応方法において、前記選択ノード値が、前記シミュレータがモデル化している空間内部のエリアの温度である、コンピュータ対応方法。
【請求項17】
請求項16記載のコンピュータ対応方法において、前記シミュレータの入力を反転させる動作が、本来t=(-n)から時点=(0)までの時系列を、時点(0)からt=(-n)に反転させて、逆時系列を生成する動作を含む、コンピュータ対応方法。
【請求項18】
命令が構成されたコンピュータ読み取り可能記憶媒体であって、前記命令が1つ以上のプロセッサによって実行されると、シミュレータを訓練する方法を実行し、前記方法が、
オプティマイザを実行して、初期シミュレータ・ノード値を決定するステップと、
入力と前記初期シミュレータ・ノード値とを使用してシミュレータを実行し、シミュレータ出力を生成するステップと、
前記シミュレータ出力からの選択ノード値を所望のノード値と比較して、コストを求めるステップと、
前記選択ノード値を反転させて、逆選択ノード値を生成するステップと、
前記シミュレータの入力を反転させて、逆シミュレータ入力を生成するステップと、
前記逆選択ノード値と前記逆シミュレータ入力とを、学習モデルへの訓練入力として使用するステップと、
前記学習モデルを実行するステップと、
を含む、コンピュータ読み取り可能記憶媒体。
【請求項19】
請求項18記載のコンピュータ読み取り可能記憶媒体において、前記学習モデルが、学習モデル出力を生成し、学習モデル・コスト関数のために、時点t=(-n)における前記学習モデル出力を、時点t=(0)におけるシミュレータ出力と比較し、前記学習モデル・コスト関数から導き出されたコストを、前記学習モデル内部における逆伝搬に使用する、コンピュータ読み取り可能記憶媒体。
【請求項20】
請求項19記載のコンピュータ読み取り可能記憶媒体において、前記学習モデルが回帰型ニューラル・ネットワークである、コンピュータ読み取り可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、機械学習技法に関し、更に特定すれば、1つの機械学習技法を使用する1つのシミュレーション・モデルを使用し、異なる機械学習技法を使用して他のモデルを訓練する機械学習技法に関する。
【発明の概要】
【課題を解決するための手段】
【0002】
この摘要は、詳細な説明の章において以下で更に詳しく説明する概念から選択したものを、簡略化して紹介するために設けられている。この摘要は、特許請求する主題の必須の特徴を特定するのでも、本質的な特徴を特定するのでもない。本発明の技術革新は、特許請求の範囲によって定められ、この摘要が特許請求の範囲と食い違う場合には、特許請求の範囲を優先するものとする。
【0003】
概して言えば、本明細書において記載する技術は、オプティマイザ(optimizer)を使用する学習モデルの訓練について説明する。
【0004】
実施形態では、コンピュータ対応(enabled)学習モデル訓練システムを開示する。このシステムは、プロセッサと、このプロセッサと動作可能に通信するメモリと、シミュレータ・トレーナを作成するように構成され、プロセッサと関連付けられたコンピューティング・コードと、シミュレータに対して初期ノード値を決定するオプティマイザであって、シミュレータが値を有するノードを含み、このシミュレータが、時刻t=(-n)から時刻t=(0)までの入力時系列(time series)を入力として使用し、時刻t=(-n)から時刻t=(0)までの出力時系列を、ノードに出力する、オプティマイザと、入力時系列を時刻t=(0)からt=(-n)に反転(reverse)させて逆入力時系列を生成し、出力時系列を時刻t=(0)からt=(-n)に反転させるリバーサ(reverser)と、逆入力時系列を訓練入力として使用し、t=(-n)において出力時系列から選択した値を、学習モデルと関連付けられたコスト関数に対するグラウンド・トゥルースとして使用する学習モデルとを備える。
【0005】
実施形態では、シミュレータは異種ニューラル・ネットワークである。
【0006】
実施形態では、このシステムは、更に、出力時系列から選択したノード値を、コスト関数への入力として使用するコスト関数デターミナ(determiner)を備え、このコスト関数デターミナは、更に、グラウンド・トゥルースをコスト関数への入力として使用するコスト関数を含む。
【0007】
実施形態では、コスト関数から導き出されたコストは、後続の初期ノード値を決定するために、オプティマイザによって使用される。
【0008】
実施形態では、更に、停止状態に達するまで、オプティマイザ、シミュレータ、および学習モデルを繰り返し実行するアイティレータ(iterator)も備える。
【0009】
実施形態では、停止状態に達したとき、初期ノード値は、開始状態推定シミュレーションへの入力として使用される。
【0010】
実施形態では、開始状態推定シミュレーションは、時刻t=(-n)から時刻t=(0)まで実行され、次いで、状態シミュレーションが時刻t(0)からt(m)まで実行される。状態シミュレーションは、制御シーケンスを生成するために使用することができる出力を生成し、制御シーケンスは、状態シミュレーションによってモデル化されるデバイスを実行するために使用される。
【0011】
実施形態では、学習モデルはニューラル・ネットワークである。
【0012】
実施形態では、このニューラル・ネットワークは回帰型ニューラル・ネットワークである。
【0013】
実施形態では、コンピューティング・システムに実装されるオプティマイザ・モデルを使用して、学習モデルを訓練するためのコンピュータ対応方法を開示する。この方法は、1つ以上のプロセッサと、これら1つ以上のプロセッサに結合された1つ以上のメモリとを備え、1つ以上のメモリは、コンピューティング・システムに動作を実行させるコンピュータ実行可能命令を含む。動作は、初期シミュレータ・ノード値を決定するためにオプティマイザを実行する動作と、入力と初期シミュレータ・ノード値とを使用してシミュレータを実行し、シミュレータ出力を生成する動作と、シミュレータ出力から選択したノード値を、所望のノード値と比較して、コストを求める動作と、選択したノード値を反転させて、逆選択ノード値を生成する動作と、シミュレータの入力を反転させて、逆シミュレータ入力を生成する動作と、逆選択ノード値と逆シミュレータ入力とを、学習モデルへの訓練入力として使用する動作と、学習モデルを実行する動作とを含む。
【0014】
実施形態では、学習モデルを実行する動作が、逆時系列を学習モデル出力として生成する。
【0015】
実施形態では、時刻t(-n)における学習モデル出力を、初期シミュレータ・ノード値と、コスト関数において比較する。
【0016】
実施形態では、コストはコスト関数から導き出され、コストは、学習モデル内部において逆伝搬(backpropagation)のために使用される。
【0017】
実施形態では、シミュレータは異種ニューラル・ネットワークである。
【0018】
実施形態では、入力は、経時的気候データを含む。
【0019】
実施形態では、選択ノード値は、シミュレータがモデル化されている空間の内側にあるエリアの温度である。
【0020】
実施形態では、シミュレータの入力を反転させる動作は、本来t=(-n)から時刻=(0)の時系列を、時刻t=(0)からt=(-n)に反転させて、逆時系列を生成する動作を含む。
【0021】
実施形態では、1つ以上のプロセッサによって実行すると、シミュレータを訓練する方法を実行する命令が構成されたコンピュータ読み取り可能記憶媒体を開示する。この方法は、初期シミュレータ・ノード値を決定するためにオプティマイザを実行するステップと、入力と初期シミュレータ・ノード値とを使用してシミュレータを実行して、シミュレータ出力を生成するステップと、シミュレータ出力から選択したノード値を所望のノード値と比較して、コストを求めるステップと、選択したノード値を反転させて、逆選択ノード値を生成するステップと、シミュレータの入力を反転させて、逆シミュレータ入力を生成するステップと、逆選択ノード値と逆シミュレータ入力とを、学習モデルへの訓練入力として使用するステップと、学習モデルを実行するステップとを含む。
【0022】
実施形態では、学習モデル・コスト関数のために、時刻t=(-n)における学習モデル出力を、時刻t=(0)におけるシミュレータ出力と比較し、学習モデル・コスト関数から導き出されたコストは、学習モデル内における逆伝搬のために使用される。
【0023】
実施形態では、学習モデルは回帰型ニューラル・ネットワークである。
【0024】
本発明のこれらおよびその他の態様については、以下の説明および添付図面と併せて検討することによって、一層の認識および理解が得られるであろう。以下の説明は、実施形態の種々の実施形態およびその多数の具体的な詳細を示すが、限定ではなく、例示として示すに過ぎない。これらの実施形態の範囲内において、多くの置換、変更、追加、または再構成を行うことができ、実施形態はこのような置換、変更、追加、または再構成の全てを含むものとする。
【0025】
本実施形態の非限定的および非網羅的な実施形態について、以下の図を参照しながら説明する。図面において、同様の参照番号は、別段指定されない限り、種々の図を通じて同様の部分を指すものとする。
【図面の簡単な説明】
【0026】
【
図1】本明細書において開示する実施形態を実装することができる訓練プロセス中における、シミュレータおよび学習モデルの入力と出力との間における関係を開示する。
【
図2】本明細書において開示する実施形態を実装することができる、学習モデルとシミュレータとの間において、学習モデルが完全に訓練されたときの相互作用を開示する。
【
図2A】本明細書において開示する実施形態を実装することができる、初期値シミュレーション、開始状態推定シミュレーション、および状態シミュレーション間における相互作用を開示する。
【
図2B】本明細書において開示する実施形態を実装することができる、オプティマイザと異種ノード・システムとの間における相互作用を開示する。
【
図3】開示する実施形態と併せて実装することができるコンピューティング・システムを開示する。
【
図4】本明細書において開示する実施形態を実装することができる分散型コンピューティング・システムを開示する。
【
図5】本明細書において開示する実施形態を実装することができる、オプティマイザ・ループを、入力および出力と併せて開示する。
【
図6】本明細書において開示する実施形態を実装することができる、オプティマイザの状態を、出力と併せて開示する。
【
図7】本明細書において開示する実施形態を実装することができる、学習モデル・ループを、入力および出力と併せて開示する。
【
図8】本明細書において開示する実施形態を実装することができる、 異種ノード・ループを、入力および出力と併せて開示する。
【
図9】本明細書において開示する実施形態を実装することができる、RNNの訓練を開示する。
【
図10】本明細書において開示する実施形態を実装することができる、訓練済みRNNを開示する。
【
図11A】本明細書において開示する実施形態を実装することができるオプティマイザを使用して、学習モデルを訓練する方法を記述するフローチャートを開示する。
【
図11B】本明細書において開示する実施形態を実装することができるオプティマイザを使用して、学習モデルを訓練する方法を記述するフローチャートを開示する。
【
図12】本明細書において開示する実施形態を実装することができる、例示的なシミュレータ・ノードを開示する。
【
図13】本明細書において開示する実施形態を実装することができる、例示的な学習モデル入力および出力を開示する。
【
図14】本明細書において開示する実施形態を実装することができる例示的なノードを開示する。
【
図15A】本明細書において開示する実施形態を実装することができる、例示的な開始状態推定シミュレーション・フローを開示する。
【
図15B】本明細書において開示する実施形態を実装することができる、例示的な開始状態推定シミュレーション・フローを開示する。
【
図16】本明細書において開示する実施形態を実装することができる、異なるシミュレーションにおける例示的なノード値を開示する。
【
図17】初期開始状態推定値が有効であることを確認する(ensure)ための健全性チェックを示す例示的なフローチャートを開示する。
【
図18】本明細書において開示する実施形態を実装することができる、例示的なシミュレーション開始状態推定システムを開示する。
【発明を実施するための形態】
【0027】
対応する参照符号は、図面の様々な図を通して、対応するコンポーネントを示す。図におけるエレメントは、分かりやすくそして明らかにするために図示されており、必ずしも同じ拡縮率で描かれている訳ではないことは、当業者には認められよう。例えば、種々の実施形態の理解を深めるのに役立てるために、図におけるエレメントの一部は、他のエレメントと比較して、その寸法が誇張される場合もある。また、商業的に実現可能な実施形態において有用または必要な共通するエレメントであっても、よく理解されているものについては、これら種々の実施形態の図が遮られない(facilitate a less obstructed view)ようにするために、図示されないことが多い。
【0028】
以下に開示するのは、シミュレーションをウォームアップするためのシステムおよび方法に特に応用することができる、方法、コンピュータ読み取り可能媒体、およびシステムの代表的な実施形態である。説明する実施形態は、説明する技術の内1つ以上を実現する。
【0029】
以下の説明では、本実施形態の完全な理解を得るために、多数の具体的な詳細を明記する。しかしながら、本実施形態を実施するためには、これらの具体的な詳細を採用しなくてもよいことは、当業者には明白であろう。その一方で、本実施形態を遮るのを回避するために、周知の素材(material)または方法については詳細に説明していない。「一実施形態」(one embodiment)、「実施形態」(an embodiment)、「一例」(one example)、または「例」(an example)は、その実施形態または例と関連付けて説明される特定の特徴、構造、または特性が、本実施形態の内少なくとも1つの実施形態に含まれることを意味する。つまり、「一実施形態において」、「実施形態において」、「一例」、または「例」という語句が、本明細書を通じて種々の章において現れる場合、必ずしも全てが同じ実施形態または例を指す訳ではない。本明細書において説明するシステム、装置、および方法には、本開示の範囲から逸脱することなく、変更、追加、または省略を行うこともできる。例えば、システムおよび装置のコンポーネントを統合または分離することもできる。更に、本明細書において開示するシステムおよび装置の動作は、もっと多いコンポーネント、もっと少ないコンポーネント、または他のコンポーネントによって実行することもでき、説明する方法は、もっと多いステップ、もっと少ないステップ、または他のステップを含むこともできる。加えて、ステップは、任意の適した順序で実行することができる。
【0030】
便宜上、本開示について説明するにあたり、相対的な用語を使用する場合もある。例えば、左、右、上面、底面、前、後ろ、上、下、上向き(up)、および下向き(down)、ならびにその他が含まれる。尚、これらの用語は、単に例示の目的で(illustrative purpose)使用されるに過ぎず、限定することを意味するのでは決してないことは、理解されてしかるべきである。
【0031】
加えて、本明細書と共に提示される図は、当業者に対する説明だけを目的とすること、そして図面は必ずしも同じ拡縮率で描かれている訳ではないことは認められよう。特許庁、および本願において発行されるあらゆる特許のあらゆる読者が、本明細書に添付される請求項を解釈するのを補助するために、本出願人は、「ための手段」(means for)または「ためのステップ」(step for)という用語が特定の請求項において明示的に使用されなければ、添付する請求項または請求項の要素は、そのいずれもが、35U.S.C112(f)を引き合いに出す意図はないことを注記したく思料する(wish to note that)。
【0032】
本実施形態による実施形態は、装置、方法、またはコンピュータ・プログラム製品として実現することができる。したがって、本実施形態は、全体的にハードウェアの実施形態、全体的にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、またはソフトウェアおよびハードウェアの態様を組み合わせた、「システム」と呼ぶこともできる、実施形態という形をなすことができる。更に、本実施形態は、任意の有形媒体内に具体化されたコンピュータ使用可能プログラム・コードを有する表現のコンピュータ・プログラム製品が媒体内に具体化された形をなすこともできる。
【0033】
1つ以上のコンピュータ使用可能媒体またはコンピュータ読み取り可能媒体を、任意の組み合わせで、利用することができる。例えば、コンピュータ読み取り可能媒体は、可搬型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)デバイス、リード・オンリ・メモリ(ROM)デバイス、消去可能プログラマブル・リード・オンリ・メモリ(EPROMまたはフラッシュ・メモリ)デバイス、可搬型コンパクト・ディスク・リード・オンリ・メモリ(CDROM)、光記憶デバイス、および磁気記憶デバイスの内1つ以上を含むことができる。本実施形態の動作を実行するためのコンピュータ・プログラム・コードは、1つ以上のプログラミング言語の任意の組み合わせで書くことができる。
【0034】
フロー図(flow diagram)におけるフローチャート(flowchart)およびブロック図は、本実施形態の種々の実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施態様のアーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図における各ブロックは、モジュール、セグメント、またはコード部(portion of code)を表すことができ、特定された論理機能(1つまたは複数)を実装するための1つ以上の実行可能命令を含む。また、ブロック図および/またはフローチャート図(illustration)の各ブロック、ならびにブロック図および/またはフローチャート図におけるブロックの組み合わせは、指定された機能またはアクトを実行する特殊目的ハードウェア-ベース・システム、または特殊目的ハードウェアおよびコンピュータ命令の組み合わせによって、実装できることも注記しておく。また、これらのコンピュータ・プログラム命令は、コンピュータ読み取り可能媒体に格納することができ、コンピュータまたは他のプログラマブル・データ処理装置に、特定の態様で機能するように指令することができるので、コンピュータ読み取り可能媒体に命令を格納することによって、フローチャートおよび/またはブロック図の1つもしくは複数のブロックにおいて指定された機能/アクトを実装する命令手段を含む製品(article of manufacture)が得られる。
【0035】
「最適化する」(optimize)とは、必ずしも完全にではないが、改良することを意味する。例えば、既に最適化されている値またはアルゴリズムに、更に改良を加えることが可能な場合もある。
【0036】
本明細書において使用する場合、「備える」(comprises)、「備えている」(comprising)、「含む」(include)、「含んでいる」(including)、「有する」(has)、「有している」(having)という用語、またはこれらの任意の他の変形は、非排他的な包含を範囲に含むことを意図する。例えば、エレメントのリストを構成する(comprise)プロセス、物品(article)、または装置は、必ずしもこれらのエレメントのみに限定されるのではなく、明示的に列挙されていない他のエレメント、あるいはこのようなプロセス、物品、または装置に内在的な他のエレメントも含むことができる。
【0037】
更に、明示的に別段の記載がない限り、「または」(or)は、「内包的なまたは」を指し、「排他的なまたは」ではない。例えば、条件AまたはBは、以下の内いずれの1つによっても満たされる。Aが真(または存在する)であり、Bが偽(または存在しない)である。Aが偽(または存在しない)であり、Bが真である(または存在する)。AおよびBが真である(または存在する)。
【0038】
「プログラム」(program)は、本明細書では、アプリケーション、カーネル、ドライバ、割り込みハンドラ、ファームウェア、状態機械、ライブラリ、ならびにプログラマ(開発者とも呼ばれる)によって書かれるおよび/または自動的に生成される他のコードも含むように、広く使用される。「最適化する」(optimize)は、必ずしも完全にではないが、改良することを意味する。例えば、最適化されたプログラムまたはアルゴリズムに更に改良を加えることが可能な場合もある。
【0039】
「決定する」(determine)は、正確な値に達するために、必ずしも必要ではないが、良い考えを得ることを意味する。例えば。既に決定されている値またはアルゴリムズを更に改良することが可能な場合もある。
【0040】
加えて、本明細書において示す例または例示(illustration)はいずれも、これらと共に利用される任意の1つまたは複数の用語に対する制約(restriction)とも、限定(limits)とも、明示的な定義とも、決して見なしてはならない。代わりに、これらの例または例示は、特定の一実施形態に関して記載されるものとして、そして例示に過ぎないものとして見なされることとする。尚、これらの例または例示と共に利用される1つまたは複数の用語はいずれも、本明細書において一緒にまたは他の段落で示されるもしくは示されないかもしれない他の実施形態も包含すること、そしてこのような実施形態は全て、1つまたは複数のその用語の範囲内に含まれることを意図することが、当業者には認められよう。このような非限定的な例および例示を指示する文言には、「例えば」(for example)、「実例をあげると」(for instance)、「例えば」(e.g.)、および「一実施形態では」(in one embodiment)が含まれるが、これらに限定されるのではない。
【0041】
「コスト関数」(cost function)とは、一般に、シミュレーション・モデルの答えが、所望の答え、即ち、グラウンド・トゥルースにどの位近いか判定する関数である。即ち、これは予測値と所望値との間の誤差を定量化する。コスト関数はコストを戻す。コスト関数は、最少二乗関数、平均誤差(ME:Mean Error)、平均二乗誤差(MSE:Mean Squared Error)、平均絶対誤差(MAE:Mean Absolute Error)、カテゴリ交差エントロピ・コスト関数(Categorical Cross Entropy Cost Function)、バイナリ交差エントロピ・コスト関数等を使用して、答えに到達することができる。ある実施態様では、コスト関数は損失関数(loss function)である。ある実施態様では、コスト関数は閾値である。閾値は、シミュレートされた真理曲線がグラウンド・トゥルースに十分近いことを示す1つの数値であると言ってもよい。他の実施態様では、コスト関数は傾斜(slope)であってもよい。また、傾斜は、シミュレートされた真理曲線およびグラウンド・トゥルースが十分に近接することを示すこともできる。コスト関数が使用されるとき、これは時変(time variant)でもよい。また、ユーザの好み、または物理モデルにおける変化というような要因に、コスト関数をリンクすることもできる。シミュレーション・エンジンに適用されるコスト関数は、エネルギ使用、主要エネルギ使用、エネルギ貨幣原価(energy monetary cost)、人間の快適さ、建物または建物内容の安全性、建物または建物内容の耐久性、微生物成長潜在力、システム機器耐久性、システム機器寿命、環境的影響、および/またはエネルギ使用CO2潜在力(energy use CO2 potential)から、任意の1つ以上のモデルを含むことができる。コスト関数は、コストの割引将来価値(discounted future value)に基づく割引関数を利用することもできる。ある実施形態では、割引関数は、経時的に最適化された運用を確保するために、将来の不確実性を考慮するように、現在のエネルギと比較して、将来のエネルギを切り下げることができる。割引関数は、予測天候データの精度または確率に基づいて、および/または公共料金価格表上におけるエネルギ源の価格(value)等に基づいて管理体制(control regimes)の将来コスト関数を切り下げることができる。コストは、コスト関数から導き出すことができる。このコストは1つの数値であってもよい。「目標関数」(goal function)は、コスト(コスト関数からの値)を読み込み、シミュレーションの繰り返しが停止するように、そのコストが判断基準を満たして目標に到達したか否か判定することができる。このような判断基準は、コストが特定の値に達する、特定の値よりも低いまたは高い、2つの値の間にある等でもよい。また、目標関数は、シミュレーション・モデル全体を実行するのに費やされる時間を監視する(look at)こと、および/または目標関数が満たされたか否か判定するために何回繰り返しが行われたか監視することができる。
【0042】
シミュレーション・モデルを実行した後に、次の入力集合を決定するために、「機械学習アルゴリズム」または「最適化方法」を使用する。これらの機械学習アルゴリズムまたは最適化方法は、勾配降下法、ニュートンの方法に基づく方法、共役勾配技法を使用するヘッセ逆行列(inversions of the Hessian)、スウォーム・インテリジェンスのような進化計算、ミツバチ・コロニー最適化、自己組織化マイグレーション・アルゴリズム(SOMA:self-organizing migrating algorithm)、粒子群、非線形最適化技法、および当業者に知られているその他の方法を含むことができる。「状態」(state)とは、本明細書において使用する場合、気温、放射温度、大気圧、音圧、占有量(Occupancy Amount)、室内空気質、CO2濃度、光強度、または測定および制御することができる他の状態でもよい。
【0043】
本明細書において使用する深層物理ネットワーク(deep physics network)は、ニューラル・ネットワークと同様の構造化ニューラル・ネットワークの一種である。しかし、ニューラル・ネットの同質活性化関数(homogeneous activation function)とは異なり、各ニューロンは一意の物理方程式(機器モデルについての)または抵抗/容量値(建物モデルについての)を含む。一旦構成されると、既知のセンサが、ネットワークにおいてそれらの対応するノードに配備される(feed)。一旦ネットワークが訓練されたなら、熱力学システムにおける任意の位置に、その地点におけるモデルについてのデータを抽出するように要求することができる。「可能な機器モデルの実装」(Possible Equipment Model Implementation)という図は、機器モデルについて問い合わせ可能な(queryable)データを保持している可能性があるデータベース構造の一部分を示す。モデルへの問い合わせは、内省(introspecting)と呼ぶこともできる。モデルを構築するために、同様のデータ構造が存在する。このプロセスによって、任意の熱力学システムについて、強力な広範囲に及ぶデータ・フュージョン、データ合成(synthesis)、および品質評価を、センサが存在しなくても、推論によって得られる。同じメカニズムは、モデルの最適化を可能にし、モデルから生成された時系列は、次いで、リアル・タイムのシーケンス生成および障害検出に使用することができる。構造を自動化するために、構造のデジタル・ツイン・バージョン(構造シミュレーション)を作成する。建物における機器の一致するデジタル・ツイン・バージョン(機器シミュレーション)も、同様に作成する(機器シミュレーション)。機器モデルは、建物の個々の材料層(material layer)、ならびにそれらの抵抗および容量を表すノードを備える。これらは、並列およびブランチレス・ニューラル・ネットワーク・ストリングに形成され、これらを介して熱(または他の状態値)を伝搬する。機器モデルは、機器、それらの接続、および天候のような、機器に対する外部影響を表すノードを備える。ノードは、機器状態変化を記述する物理方程式を有する。また、機器ノードは、状態入力(1つまたは複数)および状態出力(1つまたは複数)、値を有する状態パラメータ、許容状態パラメータ値、状態入力位置データ、および状態出力位置データも有することができる。位置データは、熱力学建物モデル位置と相互参照することができる。実施形態では、機器ノードは制御ループを形成することもできる。これらのノード入力および出力は、機器間における接続と共に、異種ニューラル・ネットワークを形成する。状態情報は、物理規則にしたがって、モデル全体に流れる。
【0044】
概念的に、構造シミュレーション・モデルを実行する動作は、ある量の何らかの測定可能状態を建物に挿入する動作を含む。これは、温度、湿度、音響、振動、磁気、光、圧力、水分等にすることができる。次いで、この状態は、異なる層全体に伝搬し、構造に作用する。この実例は、内部ノードによって表されるように、部屋を加熱するシステムおよび方法の様相(ブロック、絶縁体、乾式壁等)を記述するために温度を使用する。出力ノードは、時間熱曲線Tと関連付けられる。時点T1における曲線値が、1つ以上の外部ノードに注入される。この温度は、建物全体に伝搬する(シミュレーション・ニューラル・ネットのノードの値によって)。ブロック・ノードにおいて見られるように、建物の外側(例えば、ブロック)は、外部ノードによって、更に、熱がどのようにブロックを通って移転するかについての既知の態様によって、その温度が変化する。次いで、ブロックは、次の層、恐らくは絶縁体を加熱する。これは、内部ノードに達するまで、建物中にわたって継続する。内部ノードにおいて、ゾーン内における照明および人(暖かさ)を表す関数のような、他の関数を適用することができる。状態情報は、他の外部層に達するまで、伝搬し続け、個々のノード・パラメータ値は、時点T1において建物内で発生している発熱を表す。ある実施形態では、各外面はそれ自体の時間温度曲線を有する。ある実施形態では、建物は、もっと小さいサブシステム(またはゾーン)に分解されるので、構造全体に温度を伝搬するよりはむしろ、構造の一部のみが、所与の入力による作用を受ける。ある実施態様では、コントローラ上に、被制御建物と関連付けられたデジタル・ツイン・モデルを構築する。ある実例では、コントローラは、被制御建物内に埋め込まれ、その建物を自動化するために使用される。コントローラは、シミュレーション・エンジンを備えることができ、シミュレーション・エンジン自体は、コントローラが内蔵された被制御システムのモデル、またはコントローラが内蔵された被制御システムにおける機器のモデルを構成する。このモデルを「物理モデル」(physical model)と呼ぶこともできる。この物理モデル自体は、過去回帰(past regression)およびコスト関数を備えることができる。過去回帰とは、過去において実行されたこれらのモデルのインスタンス、および結果である。被制御システムは、少なくとも1つのセンサを有し、センサ位置におけるモデル値が、物理モデルにおいてシミュレートしたセンサ値等価値(simulated sensor value equivalent)にどれ位近いかチェックすることによって、物理モデル(1つまたは複数)を較正するために、このセンサの値を使用することができる。コスト関数は、センサ値とシミュレートしたセンサ値等価値との間の距離を判定するために使用することができる。次いで、物理モデルを精緻化(refine)するために、この情報を使用することができる。このコントローラ-被制御システムのループは、インターネットを使用せずに、実装することができる。コントローラは、それがセンサおよび他のリソースに伝達するときに利用するローカル・エリア・ネットワーク(LAN)を制御および/または実行することができる。コントローラは、センサおよび他のリソース内に配線して組み込むこともでき、または一部のリソースが配線され、他のリソースがLANに接続する複合システムであってもよい。「シミュレーション・モデル」とは、リソース・モデルまたは建物モデルであってもよい。
【0045】
シミュレーション・モデルを実行した後に、次の入力集合を決定するために、「機械学習アルゴリズム」または「最適化方法」を使用する。これらの機械学習アルゴリズムまたは最適化方法は、勾配降下法、ニュートンの方法に基づく方法、共役勾配技法を使用するヘッセ逆行列(inversions of the Hessian)、スウォーム・インテリジェンスのような進化計算、ミツバチ・コロニー最適化、自己組織化マイグレーション・アルゴリズム(SOMA:self-organizing migrating algorithm)、粒子群、非線形最適化技法、および当業者に知られているその他の方法を含むことができる。「状態」(state)とは、本明細書において使用する場合、気温、放射温度、大気圧、音圧、占有量(Occupancy Amount)、室内空気質、CO2濃度、光強度、または測定および制御することができる他の状態でもよい。
【0046】
本明細書において説明する実施形態の技術的特徴は、当業者には明白であり、更に広範囲の注意深い読者にも、様々な方法によって明白になるであろう。ある実施形態では、更に効率的にシミュレーションを実行する方法を決定するというような、コンピューティング技術に根ざす技術的活動に取り組む。これらのシミュレーションは、建物または他の構造におけるエネルギ・フローをシミュレートすることができる。エネルギ・フロー・シミュレーションによって、遙かにエネルギ効率的に建物を運営することを可能にする制御シーケンスを生成することができる。シミュレーション自体は、正当な値までウォームアップできるようにすることによって、そしてコンピュータ・プロセッサおよびメモリを使用して、そのウォームアップを非常に素早く更に効率的に実行することによって、遙かに素早く実行することができるとして差し支えない。また、本教示の技術的特徴に基づく他の利点も、提示する説明から当業者には明白となろう。
【0047】
1.全体像
t=0において開始し未来に向かう有益な建物シミュレーションを実行するために、建物自体のシミュレーションをランダム状態に置くことはできない。その理由を知るために、以下の例について検討する。建物におけるあらゆるノードにおいて、摂氏-100度でシミュレーションを開始することを想像する。このような未来の現実を予測する建物のシミュレーションとは異なり、長さが正当であれば、いずれのシミュレーションでも、シミュレーション時間全体を費やして、周囲温度まで加熱する。更に、ゾーン温度を表すノードの出力は、摂氏-100度で開始し、次いで徐々に加熱する無用な線である。実際の建物では、時点t=0以降、天候入力、建物間力学(inter-dynamics)、および人間の相互作用に基づく、正確な温度の振動で構成される。
【0048】
また、全てのノードをt=0において周囲温度に設定しても、建物の力学(dynamics)が複雑な関係で成り立っており、材料の抵抗、質量の容量、太陽光吸収等を含むので、うまく行かない(fail)。建物における種々のゾーンは、決して同じではなく、それらの関係は複雑である。モデルにおける全てのノードを同じ温度で開始するのは、簡素化し過ぎており、t=0以降有意なシミュレータ出力を得ることができない。この場合も、建物の力学が安定し現実を反映し終える時間が来る前に、シミュレーション全体が終わってしまうおそれがある
【0049】
過去の温度読み取り値が存在しても、温度センサによって表される建物のエリアは、ノードの小さな部分集合だけである。経験的な過去のデータは、ノードによって表される建物における位置の2または3パーセントについて存在するに過ぎないとして差し支えない。したがって、このようにまばらなデータから推定値を得ると、殆どのノードが、それらの対応する実際値であろうと考えられるものから非常に離れた値を有する事態に至るおそれがある。この場合も、建物の力学が推定誤差を上書きし、現実を反映し終える時間が来る前に、シミュレーション全体が終わってしまうおそれがある。シミュレーションを実行する時間が長くなる程、時間とリソースを大量に消費するのはもっともである。このようなモデルは、まさにその本質から、大量のコンピュータ・リソースおよび時間を使用する。本明細書において開示する技法を使用すると、少量の経験的データを使用して、建物(または同様の構造)における未知のノードについて、t=0における正しい温度を推論すれば済み、貴重なコンピュータ・リソースの使用を削減する。本明細書において教示する状態推定シミュレーション方法およびシステムは、長い時間期間にわたってシミュレーションを実行するよりも、遙かに素早く実行して正当な開始点に達する。
【0050】
難しい問題を解くにあたっては、学習モデルは非常に強力である。しかしながら、このようなモデルは、正当な解を提供できるようになる前に、多数組の訓練データで訓練しなければならない。十分な訓練例を取得することは、多くの場合難しく、ときには克服できないこともある。訓練集合の作成(developing)には、有意な出力データを生成することができる入力データの多くの例を取得するおよび/または生成することを伴う。これを行う1つの方法は、学習モデルが解決するように設計された問題からの合成データ例または実データ例を、訓練データとして使用することである。学習モデルは、可能であれば、実世界データに対して優先的に訓練し、こうして代表的な訓練集合を受けるのは当然である。しかしながら、建物をモデル化するときは、データをリアル・タイムで収集することしかできず、1年間のデータ集合を生成するのに1年を要する。合成データを提供すると、それ自体の問題が生ずる。合成データを使用する場合、学習モデルが実世界データに対して正確な答えを出すには、困難を来す。何故なら、実世界は、合成データ生成手順では生成されなかった例を含むからであり、データが過学習される(ノイズがパラメータと誤解釈される)か、または学習不足が生ずる(パラメータを失う)かのいずれかとなる。この問題は、非常に厳しいので、「ニューラル・ネットワーク訓練問題の1つのインスタンスを解決するためであっても、数日から数ヶ月の時間を数百台の機械上で費やす(invest)ことは極当たり前である」Goodfellow et al., “Deep Learning (Adaptive Computation and Machine Learning series)”(深層学習(適応計算および機械学習シリーズ)、MIT Press, Nov. 18, 2016, p. 274。問題を克服するにあたっての他の難題は、使用可能な解を生成するために必要な訓練集合の数が多いことである。モデルにおけるパラメータ数が多くなる程、必要とされる訓練データの量は、状態解(state solution)が得られるまで、指数的に増大する。また、訓練データは、モデルが実際に遭遇するデータを表さなければならず、そうでないと、確認するのが困難な方向に結果がずれる。また、これらのモデルは計算集約的であり、モデルは、非常に高価な機器を実行することが必要となり、非常に大量の時間を必要とする等の可能性がある。これは、実世界データ収集の本質によって、一層困難になる。例えば、先に述べたように、建物についての1年間のデータ集合を蓄積するには、1年を要する。
【0051】
オプティマイザを使用して学習モデルを訓練するためには、建物のシミュレーションのために、オプティマイザを使用して、正当なノード開始値を繰り返し判定することから開始する。最適化の過程においては、数千回のシミュレーションを、各々に1つずつ入力および出力集合を用いて、実行する場合もある。次いで、オプティマイザの入力集合および出力集合の各々を使用して、学習モデルを訓練する。ここで論じているシミュレーションは、その結果を求めるために、物理学(physics)およびモデル化された構造の完全な理解を使用するので、オプティマイザ・シミュレーションからの入力および出力を、実世界データ集合として使用することができる。訓練の後、特有の問題が与えられたときでさえも、オプティマイザ-シミュレータ最適化によって達成されるのと同様の出力を、学習モデルが生成できれば、理想的である。学習モデルを訓練済みと見なすことができても、オプティマイザ-シミュレータは、最低でも、学習モデルの結果に対して健全性チェックを行うために引き続き使用され、学習モデルが正確な答えを出し続けることを確認する。これによって、とりわけ、例えば、変則的なシナリオによって過学習および学習不足が引き起こされるのを防止する。また、これは、いずれの所与のモデルを実行するにしても必要とされる計算パワーを著しく低減する。何故なら、訓練集合は、余分な計算パワーを使用するのではなく、自動的に生成されるからであり、訓練された学習モデルを実行するにも、オプティマイザよりも遙かに少ない計算パワーおよび時間だけで済むからである等の理由があげられる。
【0052】
更に具体的には、一実施形態では、モデル化される構造内において測定できる(または少なくとも判定できる)状態を選択する。HVAC制御に合わせてモデル化される建物では、これは室温であってもよく、この室温をこの実施形態において使用する。多くの場合、部屋には内部に温度計が設置されており、そうでなくても、室内において経時的に温度を測定するのは十分に容易である。この選択された測定値(例えば、温度)を、室内においてある時間期間にわたって測定し、状態-時間曲線を得る。次いで、これらの温度状態時間曲線を、初期値シミュレーションのための「グラウンド・トゥルース」として使用する。即ち、オプティマイザは、シミュレーション全体を通じて「グラウンド・トゥルース」(建物の室内における温度時間曲線)と一致させようとして、シミュレータ内において開始値を修正する。この例を先に進める前に、シミュレーション・モデルの組み立てについて取り上げる。デジタル・ツイン・シミュレーションは、モデル化する構造をノードに分解することができる(
図12および
図16を参照して更に具体的に説明する)。これらのノードは、窓、天井、床、鋲(stud)等のような、状態値(温度、湿度等)を別々に留める(carry)建物の部分であってもよい。ノードは、建物部分の層のような、もっと小さな基本単位であっても、表すことができる。例えば、内壁は、特定の絶縁値を有する石膏ボードの層、それ自体の値を有する絶縁層、鋲、および他の石膏ボードの層等を表すノードによって記述することができる。外壁の表現は、ブロック、次いで絶縁体、次いで石膏ボード等のような、外部材料を表すノードを有することができる。デジタル・ツイン・シミュレータは、これらの接続されたノードで構成され、各々が状態値(例えば、温度)を有する。オプティマイザ・シミュレーションおよび状態推定シミュレーションの要点は、ノード内のこれらの状態値に正当な値を与えることである。
【0053】
建物がどのようにして自然に暖まっていくか判定するためには、戸外の天候を測定しつつあるときに、同時に複数の部屋の温度を測定するのが理想的である。この測定した天候を、次に、オプティマイザ・シミュレーション・モデルへの入力として使用することができる。オプティマイザは、シミュレータにおけるノード毎に、温度値(この実施形態では)を選択する。次いで、シミュレーションを実行する。シミュレーションの実行は、シミュレーションが天候状態入力を外部に適用し、次いでシミュレーション時間にわたって構造全体に天候状態(例えば、温度)を浸透させることから成る。初回では、オプティマイザはそのノード値をランダムに選択することができ、以前のモデル・ノード値を使用すること等もできる。シミュレーションの終了時に、室温を表すノードを、所望の室温と照らしてチェックし、次いで、オプティマイザは、シミュレーションにおけるノードに新たな値を選択する。シミュレーションを複数回実行し、最適な出力に達するまで、その都度オプティマイザは新たなノード値を選択する。この最適出力は、同じシミュレータを使用して実行する状態推定シミュレーションに、初期ノード値を与える。状態推定シミュレーションの終了時に、シミュレーションはその内部に正当な温度を有すると考えられ、したがって、シミュレーションを実行する準備ができたことになる。
【0054】
これが行われているのと同時に、学習モデルも訓練しつつある。学習モデルは、オプティマイザ・シミュレーションの下位バージョンを実行すると考えてもよい。所望の出力(構造に対して望まれる温度時間曲線)、および外部状態(天候)情報が定められると、初期値をデジタル・ツイン・シミュレーションのノード値に戻さなければならない。即ち、学習モデルにノード値を選択して(所望の時間だけ)シミュレーションを実行するとき、シミュレーション・モデルは、正当な状態を有する、つまり、ウォームアップされたと見なされる。どのようにこれを行うのか。学習モデルは、オプティマイザ・シミュレーションの逆出力を入力として使用し、次いで逆ノード状態値を出力として生成する。具体的には、学習モデルは、入力として、グラウンド・トゥルース(現在の例では、室温時間値曲線)と、オプティマイザがそのシミュレーション実行に使用する天候時間値曲線とを使用する。但し、学習モデルは、これらの時間曲線を逆転させる。曲線が本来時間-300から0までに渡る場合、これらは0から-300までとなり、0から-300までの出力を生成する。
【0055】
更に具体的には、天候状態時系列(逆)および所望のノード値部分集合時系列(逆)を、学習モデルに入力として供給する。学習モデルは、シミュレータが有するノードと同数の出力ノードを有するように、設定される。次いで、学習モデルの実行終了時におけるこれらのノード値を、オプティマイザ・シミュレーション実行の開始値、例えば、所望値と照らしてチェックする。次いで、コスト(2つの値間の差)を使用して、逆伝搬または同様の学習方法を使用して学習モデルを更新する。これによって、例えば、所望の最終値(end value desired)が与えられることから、逆建物シミュレータが作成され、これらの最終値に達する開始値を生成する。次いで、訓練集合毎に、学習モデルは少しずつ正確になっていく。1回の最適化サイクルで数千もの訓練集合を生成することができるので、比較的素早く学習モデルを訓練することができるとして差し支えない。更に、データ集合は、解決される実際のデータだけでなく、実際の解も使用するので、訓練データの学習不足も過学習も改善される。
【0056】
この方法は、学習モデルの現在の使用に関しては、非常に直観に反する。直観レベルにおいて、原因と結果がここでは逆転する。シミュレータは、先に進む因果関係力学(cause-and-effect dynamics)の進化を表そうとする。因果性に頼ることができないので、後戻りは不可能である(状況によって)。一例として、ビリヤードのボールが開始時の三角形に組まれており、白球がこれらに向かって動いている場合、衝突および移動がどのように繰り広げられるかについて、正当な量の精度で伝えるように、シミュレータを書くことができる。しかし、ボールが不規則な位置にある状況で開始される場合、最後のショットよりも前におけるボールの位置を伝えるシミュレータを書くことはできない。何故なら、ボールは、開始時の三角形情報(starting triangle information)を含む、任意の数の位置にあった可能性があるが、どの位置にあったのか知る方法がないからである。順方向にシミュレートするのは容易であるが、我々の生存中に逆方向にシミュレートすることはできない。その理由の1つに、熱力学の第2法則のためであることがあげられる。システムにおけるエントロピは、平衡に達するまで、常に増大する。ある状況では、一旦平衡に達したなら、それよりも前のシステム状態についての全ての情報コンテンツは消去済みとなる。これが真実であれば、最も聡明なシミュレータを持ってしてでも、このシステムが過去にどのように見えたのかについて何も知ることはできない。例えば、2本の棒が、1つの室温水タンクに浸漬されていると想像する。左側の棒は熱く、右側の棒は室温である。左側の棒は熱を水中に(そして他方の棒にも)流出させる。十分に長い待ち時間の後、2本の棒は同じ温度になる。何者かがその時点で部屋に入り、どちらの棒が初期状態において熱かったのか尋ねられても、知る術がない。以前の状態についての情報は全て消去されている。どちらの棒が熱かったのか伝える逆シミュレータを書くことはできない。他の例として、ストーブ上に室温水のポットが置かれていると想像する。10分間にわたって、バーナーを、不規則に強めつつ、ランダムな熱設定値まで作動させる。その間、バーナーの動作記録をつけておく。10分後に、水の温度はある値になる。この時点では、ログにおけるエントリを復元することはできない。できるのは、水中に注入されたエネルギの総量を判定することだけである。ログにおける「信号」の正確なシーケンスおよび強さを再現することはできない。水の熱力学の進展が、損失のあるロー・パス・フィルタとして作用するかのように、その情報は失われている。
【0057】
ここで、あらゆる困難にも拘わらず、何らかの方法で逆方向の実行を遂行する。学習モデルは、シミュレーション対象構造の挙動を繰り返し監視する。したがって、学習モデルは、純粋な後退-物理シミュレータ(pure backwards-physics simulator)よりも、遙かに効果的に得られるが、詳述した情報理論の問題によって非常に妨げられるのはどのような情報であるか学習し、利用することができる。決定論的にシミュレートする能力が欠如する場合、最適化シミュレータからの出力を訓練モデルとして使用して、過去の経験から学習することができる。
【0058】
図1は、100において、学習モデルを訓練する訓練プロセスの全体像を開示する。学習モデルは、教師付または教師なし学習モデルでもよい。学習モデルは、線形回帰、ロジスティック回帰、判断木、ナイーブ・ベイズ、KNN等を使用することができる。学習モデルは、ニューラル・ネットワークでもよい。ニューラル・ネットワークは、回帰型ニューラル・ネット、人工ニューラル・ネットワーク、畳み込みニューラル・ネットワーク等でもよい。
【0059】
シミュレータ110を使用して、学習モデル125のための訓練モデルを作成するためには、シミュレータ110は、最初に、ある時間期間、例えば、t(-300)(実際のシミュレーションが行われるときから300時間ユニットを表す)というような、シミュレーションに先立つある時点から、t(0)(シミュレーションが開始する時点)まで、デジタル・ツインを実行する。デジタル・ツインは異種ノード・システムとしてもよい。この異種ノード・システムは、異種ニューラル・ネットワークでもよい。入力105は、外部状態を表すことができる。外部状態は、天候、湿度、振動、磁気、光、圧力、水分等のような、経時的に建物に作用し、デジタル・ツインに伝えられ、オプティマイザによって使用される。次いで、この状態は異なる層を伝搬することができ、シミュレーションの時間にわたって構造に作用する。入力は、シミュレーション自体と同じ時間量だけ実行する状態曲線としてもよいので、この例では、t(-300)からt(0)までとなる。シミュレータ110自体は、ノードとして記述される建物のデジタル・ツインをモデル化することができる。これらのノードは、種々の建物の基本単位(chunk)を表すことができる。基本単位の構成(constitution)は、個々の実施態様によって異なる。ある場合には、基本単位は、部屋のような、建物における大規模な構造を表す。ある実施態様では、基本単位は、壁、窓、床、天井のような、建物部分を表す。ある表現では、基本単位は、壁における層のような、建物の個々のコンポーネントを表す。即ち、壁は、特定の形式の乾式壁、次いで特定の形式の絶縁体、次いで乾式壁の特定の層等としてモデル化することができる。ある実施態様では、大規模な構造および個々のコンポーネント等を表す基本単位双方を使用することもできる。次いで、ノード値を使用して、建物の熱力学挙動を判定することができる。個々のノードは異なる建物基本単位を表すことができるので、ノードは異種であり、したがって異なる属性(property)を有することができる。属性とは、状態値であると言ってもよい。「状態」(state)とは、本明細書において使用する場合、気温、放射温度、大気圧、音圧、占有量(Occupancy Amount)、室内空気質、CO2濃度、光強度、または測定および制御することができる他の状態でもよい。また、属性は、ある実施形態では、例えば、ノードが表す建物の基本単位と関連付けられた値としてもよい。機器と関連付けられる属性は、適宜、ノード等においても使用することができる。例えば、ノードは、比熱比、効率、比エンタルピ、抵抗等のような属性を有することもできる。これらの属性は、どのように状態が経時的に変化するか判定するための方程式に使用することができる。ノードの例について、
図14を参照しながら示す。
【0060】
入力105は、異種ノード・モデル内部において、これらが建物において作用するエリアに対応する場所に渡すことができる。したがって、例えば、天候入力であれば、外壁を表すノードに渡すことができ、太陽入力であれば、太陽に向かう窓を表すノードに渡すことができる、等である。オプティマイザは、開始値ノード状態を、初期シミュレーション開始時点のための入力105として生成する。オプティマイザの開始値を用いてシミュレーションを実行した後、出力115が生成される。この出力は、シミュレーションにおける、シミュレーション時間-状態時間曲線に対するノードの状態である。室内温度を表すノードのような、選択されたノードの値を、1組のグラウンド・トゥルース状態曲線と照らして測定することができる。グラウンド・トゥルース状態曲線は、シミュレータによって表される空間において経時的に測定された実際の温度であってもよい。例えば、建物における室温を経時的に測定することができ、温度とその場所の他の状態値とを、同時に測定することもできる。シミュレーションの終了時に、選択されたノードの値を、グラウンド・トゥルース・ベクトルと照らして測定することができる。これらの選択されたノードの値は、グラウンド・トゥルース値と共に、コスト関数において使用することができる。コスト関数は、コストを求めるために、グラウンド・トゥルースと照らして出力(例えば、室温の履歴値)を測定することができる。オプティマイザは、次いで、コストを使用して、初期値を改良することができる。その時点において、シミュレータにおいてノードに対する新しい初期値を用いて、オプティマイザを再実行する。出力からの選択ノード値は、状態日付(state date)と共に、新たな訓練例として、学習モデルに通される。この改良は、停止状態に達するまで、続けることができる。一旦停止状態に達したなら、即ち、シミュレータ110(例えば、異種ノード・システム)が最適解を有したなら、特定回数のサイクルが実行し終えており、モデルは最大時間にわたって実行し終えている等となっており、その解は、開始状態推定、即ち、シミュレーションのウォームアップ実行に対する開始値として、使用することができる。これについては、
図2Aを参照しながら更に詳しく説明する。
【0061】
シミュレータ出力115を学習モデルの入力に使用するとき、シミュレータからの選択されたノードの値は、シミュレーション時間(例えば、時点t(-300)からt(0)まで)のものとすることができ、これらが時点t(0)からt(-300)まで逆方向に進むように、反転される。この逆出力130は、次いで、訓練モデル125の入力135として使用される。同様に、シミュレーション入力の一部は、学習モデル出力140が比較されるグラウンド・トゥルースとなる。学習モデルの出力およびシミュレータの入力(the output of the learning model and the inputs of the simulator)、学習モデル(he learning model)は、シミュレーション110における各ノード(またはノードの殆ど)と並行するノードを有することができる。このシミュレーションは、異種ノード・シミュレーションでもよい。シミュレータ・モデルによって使用される入力は、同様に反転されており(120)、学習モデル125への入力としても使用することができる。学習モデルは、建物内の部屋における内部温度を表す値のような、状態を経時的に状態を出力する(140)ように、設定することができる。これらの状態時間曲線は、逆時間順序になる。次いで、シミュレーション・モデル実行からのモデル実行の開始(たとえば、この例ではt(-300))における本来の出力は、グラウンド・トゥルースとして使用される。このグラウンド・トゥルースは、コストを求めるために、コスト関数において学習モデル出力と比較される。次いで、このコストは、モデルの出力を改良するために、学習モデル内における逆伝搬に使用することができる。ウィキペディアの項目「逆伝搬」によれば、「逆伝搬アルゴリズムは、損失関数の勾配を連鎖律による各重みに関して計算し、一度に1層ずつ勾配を計算し、最後の層から逆方向に繰り返して、連鎖律における中間項の冗長な計算を回避することによって作用する」とある。逆伝搬技法は、当業者には知られている。オプティマイザ・シミュレーションからの入力および出力を用いて、学習モデルを実行すると、学習モデル・シミュレーションが徐々に良くなるに連れて、得られる成果は、それが訓練されるオプティマイザによって得られる成果に近づいていく。
【0062】
図2は、200において、学習モデルが完全に訓練されたときの学習モデルとシミュレータとの間における相互作用を開示する。時点t(0)から時点t(-n)におけるノードの部分集合の所望のオプティマイザ出力205(例えば、室温ノード)を、学習モデル210への入力として使用し、それに加えて、他の状態情報、例えば、同様にt(0)からt(-n)に反転された天候も入力として使用する。次いで、学習モデルは、時点t(-n)におけるノードの全て(または殆ど全て)に対する値215、即ち、初期値シミュレーション205Aに対する開始状態を出力する。また、これらの値は、学習モデルが正当な出力を生成していることを確認するための健全性チェック220としても使用することができる。これについては、
図17を参照して説明する。端的に言うと、学習モデル210からの出力215は、反転され、シミュレータ230への入力225として使用される。シミュレータ230から選択された出力235は、学習モデルがどのような精度で実行しているか確認するために、グラウンド・トゥルース、即ち、所望の出力と照らしてチェックされる。
【0063】
図2Aは、200Aにおいて、デジタル・ツインをウォームアップする(warm up)ための開始値を精度高く決定するために実行することができる1組のシミュレーションを開示する。これによって、精度高い開始値でシミュレーションが実行されるという確信が一層深まる。次いで、デジタル・ツインによって表されるシステムが今後どのように実行するか、種々の入力、異なる値等を用いて判定するために、ある時間にわたってシミュレートすることができる。次いで、このシミュレーションを使用して、デジタル・ツインがシミュレートしているシステム内において機器等をどのように運転するか決定することができる。最初に、
図1および
図2を参照して説明したように、初期値シミュレーションを実行する。これによって、シミュレーション・モデルにおけるノードに対して初期応対値を生成する。モデル出力115、215は、シミュレータ110のようなシミュレーション・モデルにおけるノードに対応し、次いで、ノード・シミュレーション210Aにおけるノードに対する初期値として使用される。状態推定シミュレーション210Aは、シミュレーション開始に先立つ時点、時点t(-n)からシミュレーションが開始する時点、時点t(0)まで実行する。このノード・シミュレーションは、状態シミュレーション215Aのために実行される同じノード・システムを使用して実行される。つまり、ノード・シミュレーションは、ノードが正当な開始値となるように、状態シミュレーションにおけるノードを修正する。時点t(0)のシミュレーション開始時点において、シミュレーション・モデルにおけるノードは、状態シミュレーション215A(例えば、構造の状態シミュレーション等)を実行できるように、合理的な開始値を有しなければならない。一旦シミュレーションを実行したなら、このシミュレーションからの出力は、シミュレーション対象システム220Aを変化させるために、下流において使用することができる。例えば、デジタル・ツイン・シミュレーションは、建物のあるフロア(floor)を含んでもよい。状態シミュレーションを実行することにより、この建物のフロア内におけるエネルギ使用を最適化することができる。一旦エネルギ使用が最適化されたなら、デバイス・シミュレーションは、ある時間期間に対する最適な(または最適に近い、または手作業で判定できるよりも良い)HVAC状態を判定することができる。次いで、デジタル・ツイン・シミュレーションによって判定されるこれらの最適なHVAC状態を使用して、建物のフロア内にある機器を運転して、システムの変化220Aを生じさせることができる。ある実施形態では、デジタル・ツイン状態シミュレーション215Aは、特定の機器に対する制御シーケンスを提供することができる。次いで、これらの制御シーケンスを使用して、シミュレーション期間、即ち、t(0)からt(n)まで、特定の機器を運転することができる。例えば、デジタル・ツイン・シミュレーションは、ヒータに対する制御シーケンスを提供し、いつそれを運転し停止するか指定し、具体的なシステム変化220Aをもたらすことができる。ある実施形態では、このシミュレーションは、シミュレーション期間よりも短いまたは長い期間に対する制御シーケンスを提供することもでき、その制御シーケンスと共にシミュレーション出力を使用することができる。ここでは、状態推定シミュレーション210Aに対して初期値を決定する初期値シミュレーション205Aのための方法およびシステムを開示する。
【0064】
図2Bは、200Bにおいて、オプティマイザ205Bとシミュレータ210Bとの間の関係を開示する。オプティマイザ205Bは、最適化されたときに、シミュレーションの終了時にノードの内部分集合において所望の値が生成されるように、シミュレータ210Bにおけるノードのいくつかの値に対して値を決定する。オプティマイザは、他の章で論ずるような、反復機械学習システムによって、これを行うことができる。オプティマイザ205Bは、最適なノード値を決定するために、選択された1組のノードに対する所望の値を、グラウンド・トゥルースとして使用することができる。これについては、
図5の525を参照して、更に詳しく説明する。オプティマイザは、異なる開始値を用いて複数回シミュレーションを実行し、ノード・シミュレーション210Aにおいて使用するために、1組の最適化された開始値を決定することができる。オプティマイザによって決定された初期値を用いるシミュレーション実行の各々(または殆どまたはいくつか)は、学習モデル、例えば、125に対する訓練データ215Bとして使用することができる。
【0065】
II.例示的なコンピューティング環境
図3は、説明する実施形態を実装することができる、適したコンピューティング環境300を一般化した例を示す。コンピューティング環境300は、本開示の使用範囲または機能に関して限定を示唆することは全く意図していない。何故なら、本開示は、多様な汎用または特殊目的コンピューティング環境においても実装することができるからである。
【0066】
図3を参照すると、コア処理330ボックスによってコア処理が示されている。コンピューティング環境300は、少なくとも1つの中央処理ユニット310とメモリ320とを含む。中央処理ユニット310は、コンピュータ実行可能命令を実行し、実プロセッサまたは仮想プロセッサでもよい。また、これは、同じ長さのノード・ストリングを迅速に処理することを可能にするベクトル・プロセッサ312も備えることができる。マルチ処理システムでは、処理パワーを高めるために、複数の処理ユニットがコンピュータ実行可能命令を実行し、したがって、ベクトル・プロセッサ312、GPU315、およびCPU310を同時に実行することができる。メモリ320は、揮発性メモリ(例えば、レジスタ、キャッシュ、RAM)、不揮発性メモリ(例えば、ROM、EEPROM、フラッシュ・メモリ等)、またはこれら2種類の何らかの組み合わせでもよい。メモリ320は、ソフトウェア385を格納する。ソフトウェア385は、オプティマイザおよび/または学習モデルを使用して、説明する方法およびシステムを実現する。
【0067】
コンピューティング環境は、追加の機構(features)を有することもできる。例えば、コンピューティング環境300は、ストレージ340、1つ以上の入力デバイス350、1つ以上の出力デバイス355、1つ以上のネットワーク接続(例えば、有線、ワイヤレス等)360、および他の通信接続370を含む。バス、コントローラ、またはネットワークのような相互接続メカニズム(図示せず)が、コンピューティング環境300のコンポーネントを相互接続する。通例、オペレーティング・システム・ソフトウェア(図示せず)が、コンピューティング環境300において実行する他のソフトウェアに、動作環境を提供し、コンピューティング環境300のコンポーネントの動作(activity)を調整する。また、コンピューティング・システムは、異なるCPU上でソフトウェアの複数の部分を実行する、分散型であってもよい。
【0068】
ストレージ340は、リムーバブルまたは非リムーバブルでもよく、磁気ディスク、磁気テープまたはカセット、CD-ROM、CD-RW、DVD、フラッシュ・メモリ、もしくは情報を格納するために使用することができ、コンピューティング環境300内においてアクセスすることができる任意の他の媒体を含む。ストレージ340は、状態が正当な値にあることを拠り所とするシミュレーション・モデルをウォームアップするシステムおよび方法を実装するソフトウェア385のような、ソフトウェアの命令を格納する。
【0069】
入力デバイス(1つまたは複数)350は、ユーザまたは他のデバイスがコンピューティング環境300と通信することを可能にするデバイスとして差し支えなく、キーボードのようなタッチ入力デバイス、ビデオ・カメラ、マイクロフォン、マウス、ペン、またはトラックボール、デジタル・カメラ、スキャナを有するデジタル・カメラのようなスキャニング・デバイス、タッチスクリーン、ジョイスティック・コントローラ、wiiリモート(wii remote)、もしくはコンピューティング環境300に入力を供給する他のデバイス等である。オーディオについては、入力デバイス(1つまたは複数)350は、サウンド・カード、またはアナログもしくはデジタル形態のオーディオ入力を受け入れる同様のデバイス、あるいはオーディオ・サンプルをコンピューティング環境に供給するCD-ROMリーダであってもよい。出力デバイス(1つまたは複数)355は、ディスプレイ、プリンタまたはプロッタのようなハードコピー生成出力デバイス、テキスト-音声-リーダ(text-to speech voice-reader)、スピーカ、CD-ライタ、もしくはコンピューティング環境300から出力を供給する他のデバイスであってもよい。
【0070】
通信接続(1つまたは複数)370は、通信媒体を介した他のコンピューティング・エンティティとの通信を可能にする。通信媒体は、コンピュータ実行可能命令、圧縮グラフィクス情報、または変調データ信号における他のデータというような情報を伝達する。通信接続370は、入力デバイス350、出力デバイス355、およびクライアント・デバイスがネットワーク360を通じて他のデバイスと通信することを可能にする入力/出力デバイスを含むことができる。通信デバイスは、ワイヤレス通信を実行する1つ以上のワイヤレス・トランシーバ、および/または有線通信を実行する1つ以上の通信ポートを含むことができる。これらの接続は、ネットワーク接続を含むことができ、インターネット、イントラネット、LAN、WAN、セルラ・ネットワーク、または他の形式のネットワークのような、有線またはワイヤレス・ネットワークでもよい。尚、ネットワーク360が複数の異なる種類の有線またはワイヤレス・ネットワークの組み合わせでもよいことは理解されよう。ネットワーク360は、複数のコンピュータを有する分散型ネットワークでもよく、連係して動作する建物コントローラであってもよい。通信接続370は、ワイヤレス・ハンドヘルド・デバイス、パーソナル電子デバイス等のような、可搬型通信デバイスであってもよい。
【0071】
コンピュータ読み取り可能媒体は、コンピューティング環境内においてアクセスすることができる、あらゆる利用可能な非一時的有形媒体である。一例として、そして限定ではなく、コンピューティング環境300では、コンピュータ読み取り可能媒体は、メモリ320、ストレージ340、通信媒体、以上の内任意のものの組み合わせを含む。コンピュータ読み取り可能媒体を格納するために使用することができるコンピュータ読み取り可能記憶媒体365は、命令375およびデータ380を含む。データ・ソースは、通信接続370を介して情報を受信および送信するように構成された一般のハードウェア・プラットフォーム・サーバのような、コンピューティング・デバイスとしてもよい。コンピューティング環境300は、HVACリソースのような、種々のリソースに直接接続される電気式コントローラでもよく、CPU310、GPU315、メモリ320、入力デバイス350、通信接続370、および/またはコンピューティング環境300内に示される他の機構を有する。コンピューティング環境300は、一連の分散型コンピュータであってもよい。これらの分散型コンピュータは、一連の接続された電気式コントローラで構成することもできる。
【0072】
提示の便宜上、開示する方法の中には、その動作が特定的な連続順で記載されることもあるが、その下に明記される具体的な文言によって特定の順序が要求されない限り、この説明の様式は並び替え(rearrangement)も包含することは理解されてしかるべきである。例えば、順次説明する動作は、並び替えること、または同時に実行することもできる。更に、簡単にするために、添付図面は、開示する方法、装置、およびシステムを他の方法、装置、およびシステムと共に使用することができる種々の方法を示さないこともある。加えて、説明では、「判定する」(determine)、「構築する」(build)、および「識別する」(identify)というような用語を使用して、開示する技術を説明することもある。これらの用語は、実行される実際の動作の上位抽象化である。これらの用語に対応する実際の動作は、個々の実施態様に応じて様々に変化するが、当業者によって容易に識別可能である。
【0073】
更に、開示する方法のいずれから生成されるデータも、種々の異なるデータ構造またはフォーマットを使用して、作成し、更新し、または有形コンピュータ読み取り可能媒体(例えば、1つ以上のCD、揮発性メモリ・コンポーネント(DRAMまたはSRAM等)のような有形コンピュータ読み取り可能媒体、または不揮発性メモリ・コンポーネント(ハード・ドライブ等))上に格納することができる。このようなデータは、ローカル・コンピュータにおいて、またはネットワークを通じて(例えば、サーバ・コンピュータによって)作成または更新することができ、あるいはクラウド・コンピューティング環境において格納およびアクセスすることができる。
【0074】
図4は、本明細書において開示する実施形態を実装することができる分散型コンピューティング・システム400を示す。2つ以上のコンピュータ化コントローラ405が、コンピューティング環境300、410の全てまたは一部を組み込むことができる。これらのコンピュータ化コントローラ405は、有線またはワイヤレス接続を使用して、互いに接続する(415)ことができる。コントローラは、被制御空間420内に入れることもできる。被制御空間420とは、リソース、センサ、またはこの空間の1つ以上の状態を変更または決定することができる、センサ(空間状態を判定するため)、ヒータ、空調設備(温度を変更するため)、スピーカ(ノイズを修正するため)、錠、照明等のような、他の機器を有する空間としてもよい。被制御空間は、別々の制約状態曲線を有する可能性があるゾーンに分割することができる。被制御空間は、例えば、自動化された建物、プロセス制御システム、HVACシステム、エネルギ・システム、灌漑システム、建物-灌漑システム等であってもよい。これらのコンピュータ化コントローラ405は、コンピューティング・システム400自体の外側では接続(インターネット接続のような)を使用せずに運転することができる分散型システムを構成することもできる。これによって、本システムは、低いレイテンシで実行することが可能になり、エッジ・コンピューティング・システムの他の利点も得ることができる。コンピュータ化コントローラは、外部ネットワーク接続を用いずに、内部ネットワークを使用して実行することもできる。これによって、非常に強化された遙かに安全なシステムが、ウイルス、ランサムウェアのような外部攻撃に対して、そして全般的には、多くの他の方法で侵害されるコンピュータ・セキュリティに対して、可能になる。
【0075】
III.シミュレータを訓練するための例示的なシステムの開示
図5は、オプティマイザを使用することによって、学習モデルを訓練する訓練プロセスの全体像500を開示する。オプティマイザは、問題を解決するためにそれ自体を訓練する必要がない、即ち、それ自体は訓練されない。このオプティマイザは、当業者には周知のような、機械学習アルゴリズムでもよい。機械学習アルゴリズムは、初期状態値をノード入力に選択する。この初期選択はランダムでよい。次いで、これらの値は、時点t(0)からt(n)まで実行するシミュレーション110、205Aにおいて、初期状態値として使用される。時点t(n)における状態値に所望の値は、分かっている、即ち、グラウンド・トゥルースである。コストを求めるコスト関数を使用してt(n)においてシミュレーションによって生成された値を、グラウンド・トゥルースと比較する。コストは、新たな1組の値を選択するために、機械学習アルゴリズムによって使用され、シミュレーションの終了時には、グラウンド・トゥルースに更に近い値を生成しなければならない。シミュレータ110を実行するとき、学習モデル125を訓練するために出力を使用する。
【0076】
シミュレータ110は、異種ニューラル・ネットワークでもよい。このニューラル・ネットワークは、重み値を決定するために別々の計算を実行するノードにおいて活性化関数を有することができ、重み値はノードから出て行く。これらの別々の計算は、状態がどのようにノードに流れて通過するか判定する熱力学計算としてもよい。状態は、ノードに入りノードから出る重みとして、特徴付けることができる。このような異種ニューラル・ネットワークの一例が、2020年9月1日に出願された米国特許出願第17/009,713号、“Neural Network Methods For Describing System Topologies”(システム・トポロジを記述するためのニューラル・ネットワーク方法)に記載されている。この特許出願をここで引用したことにより、その全体が本願にも含まれるものとする。典型的なニューラル・ネットワークは、入力、出力、およびエッジによって接続された隠れ層を含み、エッジは、それらと関連付けられた重みを有する。ニューラル・ネットは、入って来る全てのエッジの重みを総和し、バイアスを適用し、次いで活性化関数を使用して非線形効果を導入し、基本的に、重み/バイアス値を押し潰してまたは拡張して有用な範囲に入れる。多くの場合、ノードが本質的に発火するか否か判断する。次いで、この新たな値は、ネットワークの次の隠れ層への接続に使用される重みとなる。活性化関数は、ノードによっては、別々の計算を行わない、それらと関連付けられた物理方程式を有さない等があげられる。
【0077】
本明細書において説明する実施形態と共に使用することができる異種ニューラル・ネットワークの中には、ニューラル・ネット・ノードと1対1でコンポーネントまたは機器を1つずつモデル化するために、物理学の基礎を利用することもある。模式図において複数のコンポーネントが互いにリンクされるとき、これらのコンポーネントをノードとしてモデル化するニューラル・ネットが作成される。オブジェクト間の値は、接続されたエッジの重みとして、ノード間を流れる。これらのニューラル・ネットは、システムの実際の複雑さだけでなく、それらの突発的な挙動およびシステム・セマンティクス(system semantics)もモデル化することができる。したがって、これらは、従来のAIモデリング手法の2つの主要なステップ、即ち、ニューラル・ネットの形状を決定するステップと、ニューラル・ネットを最初から訓練するステップを迂回することができる。ノードは、実際のシステム(または方程式の集合)の順に配置され、ノード自体は、それらの関連するオブジェクトの関数を記述する方程式または一連の方程式を含むので、それらの間における特定の関係は、ニューラル・ネットにおけるそれらの位置によって決定される。したがって、訓練の大部分はもはや不要である。何故なら、ニューラル・ネット自体が位置情報、挙動情報、およびノードによって表される異なるオブジェクト間の相互作用情報を含むからである。更に、所与の時点においてニューラル・ネット内のノードによって保持される値は、そのように表されたオブジェクトの実世界挙動を表す。ニューラル・ネットは、もはやブラック・ボックスではなく、それ自体に重要な情報を収容する。また、このニューラル・ネット構造は、記述されるシステムおよびオブジェクトについて遙かに深い情報も提供する。ニューラル・ネットワークは、従来のAI構造とは異なり、物理学および位置に基づくので、特定のモデルに限定されず、ニューラル・ネットワークが表すシステムについての複数のモデルを、別個の作成や訓練を必要とせずに、実行することができる。
【0078】
ある実施形態では、異種ニューラル・ネットワークは、システムの物理的特性について何かを伝えるために、ノードの位置を整形する(shape)。また、実際の方程式を活性化関数に入れることもできる。ノード間を移動する重みは、方程式の変数としてもよい。異なるノードは、表されるモデルの本質に応じて、関係ない活性化関数を有することができる。例示的な実施形態では、ニューラル・ネットワークにおける各活性化関数は異なってもよい。例えば、ニューラル・ネットワークにおいて、ポンプを一連のネットワーク・ノードとして表すことができ、その一部は、効率、エネルギ消費、圧力等を表す。ノードは、1組の重み(変数)が、次のノード(例えば、その活性化関数として方程式を有する)に流入し(feed into)、これらの重み(変数)を次のノードが使用する。ここで、以前では必要であった2つのステップ、即ち、ニューラル・ネットを整形しモデルを訓練するステップは、少なくともある部分までは、既に実行されている場合もある。本明細書において論ずる実施形態を使用すると、既に知られている情報に対してニューラル・ネット・モデルを訓練する必要はない。ここで詳細に述べるような他の情報に対しては、訓練する必要があることに変わりはない。
【0079】
ある実施形態では、個々のノードは、構造、機器等の内部にある建物材料の基本単位の物理表現を表す。これらの個々のノードは、物理的表現を定めるのに役立つパラメータ値を保持することができる。したがって、ニューラル・ネットを実行するとき、所与の物理的表現を一層精度高く表すために、物理的表現を定めるのに役立つパラメータを微調整する(tweak)ことができる。これには、1組の定性的な保証(qualitative set of guarantees)を付けて、モデルを予め訓練するという効果がある。何故なら、モデル化するオブジェクトを記述する物理的方程式は真であり、訓練集合を発見しなければならないことを免れ、更にモデルを通じて訓練集合を実行しこれらを訓練するために大量の計算時間を使用することを免れるからである。モデルは、既に知られている世界についての情報を用いて訓練する必要はない。ニューラル・ネットに接続されたオブジェクトと同様、これらは実世界において接続され、実世界にマッピングするモデルにおいては、突発的挙動が生ずる。この明らかにされるモデル挙動は、計算的に複雑すぎて他の方法では判定することができない。更に、ノードは、単なるブラック・ボックスでなく、実際のオブジェクトも表す。ノード自体の挙動は、オブジェクトの挙動を判定するために試験することができ、更にオブジェクト挙動の理解を深めるために使用することもできる。
【0080】
概念的に、構造シミュレーション・モデルを最適化する動作は、ある量のある測定可能な状態を、異種ネットワークによってモデル化することができる構造に挿入する動作を含む。これは、温度、湿度、音響、振動、磁気、光、圧力、水分等とすることができる。次いで、この状態は、異なる層を通じて伝搬し、構造に作用する。入力データ505は、時間曲線によって表されるこのような状態としてもよい。一例として、異種ネットワークにおける外部ノードを時間熱曲線Tと関連付けてもよい。時点t(-n)における曲線値を、1つ以上の外部ノードに注入する。物理的表現を使用してシミュレーション・ニューラル・ネットのノードの値を修正することによって、この温度は、例えば、表された層(ブロック、絶縁体、乾式壁等)を通じて、建物中に伝搬する。建物の外側(例えば、ブロック)は、ブロック・ノードにおいて見られるように、その温度が、外部ノード、およびブロックを通じた熱転移の態様によって、修正されている。次いで、ブロックは、次の層、恐らくは絶縁体を加熱する。これは、内部ノードに達するまで、建物全体にわたって継続する。これは、部屋内部の空間を表すこともできる。内部ノードでは、そのノードのゾーン内における照明および人(熱)を表す関数というような、他の関数を適用することができる。他の外部層に達するまで、状態情報は伝搬し続け、個々のノード・パラメータ値は時点T0において建物の中で発生している加熱を表す。ある実施形態では、各外面は、それ自体の時間温度曲線を有する。ある実施形態では、構造をもっと小さなサブシステム(またはゾーン)に分解されるので、構造全体に温度を伝搬させるのではなく、構造の一部のみが、所与の入力による作用を受ける。
【0081】
オプティマイザ510は、状態の初期値を選択し、次いでこれらをオプティマイザ出力511としてシミュレーションに渡す。初期値を選択するために、オプティマイザは、訓練を必要としない、または既に訓練済みの機械学習アルゴリズムを使用する。オプティマイザは、繰り返し実行し、繰り返すに連れて、より良い初期ノード値を選択するのが理想的である。シミュレータは、繰り返し毎に(または数回の繰り返し毎に)、オプティマイザによって選択された開始値を用いて実行する。出力513として、シミュレータにおけるノードは、
図6において説明するように、シミュレーションの長さにわたってノード値を生成する。これらのノードの中から、選択ノード値515として、部分集合を出力する。これらは、シミュレーションの開始時から終了時まで続く状態/時間曲線(1つまたは複数)である。ある実施形態では、これらの選択ノード値は、構造内における部屋の温度である。他の状態も同様に使用することができる。機械学習アルゴリムに対するグラウンド・トゥルースは、所望のノード値520の状態/時間曲線でもよい。これらの所望のノード値は、以前のシミュレーションから取り込むこともでき、近似することもでき、過去の値にする等でもよい。機械学習アルゴリズムのコスト関数は、選択ノード値515および所望のノード値520を使用して、コスト関数527を実行し、コスト525を決定する。コスト525は、シミュレータ512からの予測された選択ノード値515と、期待値(グラウンド・トゥルース)520との間の差である。
【0082】
「コスト関数」は、一般に、シミュレーション・モデルの出力を、グラウンド・トゥルース、即ち、モデルが一致させようとしている答えを表す時間曲線と比較する。これによって、コスト-シミュレーションによる真の曲線値(truth curve value)と期待値(グラウンド・トゥルース)との間の差が得られる。コスト関数は、最少二乗関数、平均誤差(ME:Mean Error)、平均二乗誤差(MSE:Mean Squared Error)、平均絶対誤差(MAE:Mean Absolute Error)、カテゴリ交差エントロピ・コスト関数(Categorical Cross Entropy Cost Function)、バイナリ交差エントロピ・コスト関数等を使用して、答えに到達することができる。ある実施態様では、コスト関数は損失関数である。ある実施態様では、コスト関数は閾値であり、閾値は、シミュレートされた真理曲線がグラウンド・トゥルースに十分近いことを示す1つの数値であると言ってもよい。他の実施態様では、コスト関数は傾斜であってもよい。また、傾斜は、シミュレートされた真理曲線およびグラウンド・トゥルースが十分に近接することを示すのでもよい。コスト関数が使用されるとき、これは時変でもよい。また、ユーザの好み、または物理モデルにおける変化というような要因に、コスト関数をリンクすることもできる。オプティマイザに適用されるコスト関数は、エネルギ使用、主要エネルギ使用、エネルギ貨幣原価、人間の快適さ、建物または建物内容の安全性、建物または建物内容の耐久性、微生物成長潜在力、システム機器耐久性、システム機器寿命、環境的影響、および/またはエネルギ使用CO2潜在力、もしくは何らかの他のものから、任意の1つ以上のモデルを含むことができる。コスト関数は、コストの割引将来価値に基づく割引関数を利用することもできる。
【0083】
ある実施態様では、動作が停止する可能性があるようなコストになっているか否か判定するために、目標関数を使用する。また、ある実施態様は、停止状態、他の終了選択肢(quit option)のような、二次状態(secondary state)も含む。終了選択肢には、オプティマイザ510またはシミュレータ512が特定の時間量にわたって実行した場合に終了する、あるいはあるサイクル回数だけ実行した場合に終了する等があげられる。(停止状態、目標関数、またはコスト関数によって)指示された場合、機械学習アルゴリズムは継続する。ある実施態様では、オプティマイザ510によって初期状態値を更新するために、シミュレーション予測選択ノード値のようなシミュレーションの出力からの情報、およびコスト関数を使用する。この値更新は、少なくとも部分的に、逆伝搬530によって実行する(implement)こともできる。オプティマイザ510は、更新の後、次にシミュレーションの次のラウンドのために新たな状態ノード値を選択する。オプティマイザ510-シミュレーション512のサイクルは、停止状態(コスト関数、オプティマイザが実行した時間、オプティマイザおよびシミュレータが実行した時間、プログラム全体が実行した時間、プログラムが実行したサイクル回数、学習モデルによって行われた訓練実行回数等の内1つ以上の何らかの組み合わせによって定められる)に達するまで実行することができる。
【0084】
図6は、600において、オプティマイザ510によって生成された開始値を有するシミュレーション512、605のいくつかの出力を開示する。シミュレータ512、605は、シミュレータ出力として、異種ノード・システム210Bにおけるノード610の全て(または何らかの選択された量)に対する時間状態曲線615を出力する(625)。これらの時間状態曲線は、シミュレーションの長さ、またはシミュレーション内におけるある期間にわたって継続する。次いで、初期シミュレータ・ノード値、即ち、シミュレーションの開始時(t=(-n))におけるノード値を、学習モデルのための訓練例として使用するために保存する。場合によっては、シミュレーションの開始時におけるこれらのノード値は、モデルをウォームアップし正当な状態シミュレーション215Aを生成するために、ノード・シミュレーション210Aへの入力としても使用される。
【0085】
図7は、700において、シミュレータ・モデル出力を学習モデル入力として使用する場合を開示する。状態/時間曲線が前後逆転するように、シミュレータ512からの選択ノード値出力515を反転させる(705)。つまり、t(-n)からt(0)までではなく、ここではt(0)からt(-n)までとなる。これによって、逆選択ノード値(reversed selected node values)が得られる。概念的に、シミュレーションを実行するとき、時間的に逆方向に進むと考えることができる。同様に、シミュレータへの入力データ505も反転され(710)、逆シミュレータ入力が得られる。次いで、これを学習モデル715への入力として使用する。この学習モデル715は、訓練を必要とする形式のニューラル・ネットワークとしてもよく、限定ではなく、回帰型ニューラル・ネットワーク、畳み込みニューラル・ネットワーク、フィード・フォーワード・ニューラル・ネットワーク、マルチレイヤ・パーセプトロン、長期/短期メモリ(LTSM:long/short term memory)、ゲート付き回帰型ユニット(GRU:gated recurrent unit)、自動エンコーダ(AE)、変分自己符合化器(VAE:variational AE)、ノイズ除去AE(DAE:denoising AE)、深層畳み込みネットワーク(DCN:deep convolutional network)等がある。この学習モデルは、シミュレータにおいて使用されたノード・システム210Bにおけるノードの全て(または本質的に全て、または一部)と同じ出力ノードを有するように設定しなければならない。したがって、学習モデルは、これらのノード725に対して状態/時間曲線を出力する。このシミュレーションに対するグラウンド・トゥルースは、所与のオプティマイザ-シミュレータ実行に対する開始ノード値620、720である。学習モデルは、状態/時間曲線の順序を逆にして、ノードに対する状態/時間曲線を出力する。次いで、コスト735に達するために、学習モデル・コスト関数737において、ノード730に対する最後の値(例えば、時点t(-n)における)を、シミュレータ600の実行からのノードの開始値620、720と比較する。次いで、学習モデル715の内部ノード値を改良するために、コスト値を逆伝搬740において使用する。逆伝搬は、ニューラル・ネットワーク全域にコストを伝搬させ、誤差率が高いノード程、その重みが小さくなり、一方誤差率が低いノード程大きな重みを有するように、重みを修正する。
【0086】
これより
図8および
図9に移ると、
図8は、異種ニューラル・ネットワーク・モデル・オプティマイザ810の一例800を示す。オプティマイザ810は、建物シミュレータをウォームアップするために使用される開始値を生成するため、そして同じまたは同様の開始結果が得られるようにRNNを訓練するための双方に使用される。RNNとは、回帰型ニューラル・ネットワーク(Recurrent Neural Network)のことである。回帰型ニューラル・ネットワークは、1980年台に開発され、当業者には周知である。端的に言うと、RNNは、1つのノードからそれ自体まで、ノード間等にループを有し、RNNが、本質的に、情報を覚え、したがって以前の入力に基づいて判断を下すことを可能にする。
図9は、オプティマイザの入力および出力値から取り込んだ入力値を使用して、RNN学習モデル915を訓練する例を示す。
【0087】
最初に、ある時間期間にわたってモデル化しようとする建物の部屋内部の温度、および天候データ(同じ時間期間における建物の場所の天候)を判定する。オプティマイザ810は、開始温度値を、異種ノード・モデル812におけるノードに対するオプティマイザ出力811として決定する。次いで、異種ノード・モデル812を実行し、天候データ805(温度データでもよい)を、外壁を表すノードのような、天候値を入力する異種ノード・モデルにおける場所と同等の、実際の建物の場所における入力として使用する。天候データ805からの熱値は、シミュレーション実行時間、この場合、t(-300)からt(0)までの間、建物812の異種ノード・モデル812全域に伝搬する。異種ノード・モデル812は、シミュレーションによって表されるように、部屋の内部ノード値温度815(シミュレーション時間における)を戻す。次いで、シミュレーション835の終了時にコスト825を決定するために、コスト関数827を使用して、内部ノード室温値815を、シミュレーションの長さにわたる履歴内部温度状態/時間曲線820と比較する。通常、時間曲線全体(またはその大部分)を使用する。何故なら、最後の時間値に対する温度のみを使用する場合、例えば、オプティマイザの解が合理的な温度ウォームアップを表さないおそれがあるからである。例えば、モデルは最後の時間値において急激に上昇する温度を表す可能性もあり、所望のような、精度高い初回温度が得られなくなるであろう。ある実施形態では、内部ノード値815に、時間曲線の一部を使用する。コスト関数は、選択した内部ノード値815を使用し、コスト関数827を使用してグラウンド・トゥルースと照らして履歴ノード温度820を測定して、コスト825を求める。次いで、開始ノード温度値を修正するために、コスト825がオプティマイザ810によって使用され、次いで異種ノード・システム内において、修正温度値が開始ノード値として使用される。この1組のアクションは、停止状態に達するまで繰り返され(830)、異種ノード・モデル812内にあるノードの全て(または殆ど)に対して、最適化された1組の内部温度ノード値を生成する。異種ノード・モデル812を実行するとき、そのノード845(温度、湿度等のような、多くの状態値を有することができる)の温度値を、シミュレーション時間にわたって、例えば、時点t(0)から時点t(-300)まで、報告する。ある実施形態では、異種ノード・システムは、終了時ではなく、モデルの実行中を通してノード値を報告することもできる。これについては、
図12および
図13を参照して更に詳しく説明する。シミュレーション835の終了時、即ち、時点t(-300)における異種ノード・モデルのノード840の初期値は、RNNを訓練するためのグラウンド・トゥルースとして使用される。オプティマイザ810-異種ノード・モデル812のサイクルは、停止状態に達するまで、続けられる。したがって、開始状態シミュレーション推定シミュレーションに対する開始値が決定されたなら、RNNの多くの訓練例が生成される。
【0088】
図9は、オプティマイザ810-異種ノード・モデル812の結果を使用して、RNN学習モデル915を訓練する例900を示す。RNNは、出力として、オプティマイザ・モデルにおけるノードに対応するノードを有しなければならない。これについては、
図12および
図13を参照して更に詳しく論ずる。したがって、RNNは、開始状態シミュレーション推定シミュレーション、例えば、210Aに使用することができる、開始ノード値を生成することができる。異種ノード・モデル812からの内部ノード値815(部屋内部の温度)は、書き換えられ、例えば、t(0)からt(-300)まで実行するように、逆方向に反転される(905)。天候データ805も逆方向に書き換えられる(910)。これらの逆内部ノード値905および逆天候データ910は、次に、入力としてRNNに供給され、RNNは、異種ノード・モデル内にあるノードの各々(または殆ど)に対して値925を出力する。RNN915は、(この例では、時点(t-300)における)最後の値930をRNN内のノードに戻す。この最後の値930は、温度曲線が再度順方向時間に反転されるときに、例えば、t(-300)における最初の値として理解されるのは当然である。
【0089】
次いで、これらの出力値930は、異種ノード・モデル・ノード温度値840、920と共に、コスト関数945において使用される。異種ノード・モデル・ノード温度値840、920は、ウォームアップ期間の開始時(例えば、t(-300))に、コスト940を判定するためにサンプリングされる。次いで、このコスト940は、ネットワークを訓練するために、逆伝搬935に使用される。このプロセスでは、オプティマイザからの入力および出力を使用してRNNが訓練され、RNNが訓練されたと見なされるまで、続けられる。逆伝搬は、「誤差逆伝搬」の短縮形であり、ニューラル・ネットワークを逐次訓練するために広く使用されている。ウィキペディアの項目「逆伝搬」によれば、「逆伝搬アルゴリズムは、損失関数の勾配を連鎖律による各重みに関して計算し、一度に1層ずつ勾配を計算し、最後の層から逆方向に繰り返して、連鎖律における中間項の冗長な計算を回避することによって作用する」とある。
【0090】
図10は、1000において、訓練された後におけるRNN1015の実行を開示する。開始状態シミュレーション推定シミュレーションの長さ、この場合t(0)からt(-300)までにおける(「t」は「時点」を表す)状態時間曲線として表された所望の反転(reversed backward)内部ノード値1005、および逆天候データ1010を、RNN1015への入力として使用する。次いで、RNNは、当該RNNの最終値1020を出力する(例えば、t(-300)において)。この最終値は、モデルをウォームアップするために、開始状態シミュレーション推定シミュレーション210Aに入力される初期値となる。
【0091】
IV.例示的なシミュレータ訓練方法
図11Aの1100Aおよび
図11Bの1100Bは、シミュレータをどのように訓練することができるかについて記述する流れ図、および訓練された出力をどのように使用することができるかについて記述する流れ図である。以下に述べる方法1100A、1100Bの動作は、例示であることを意図している。ある実施形態では、方法1100A、1100Bは、説明しない1つ以上の追加の動作も伴って、および/または論ずる動作の内1つ以上を伴わずに遂行することもできる。加えて、方法1100A、1100Bの動作を
図11Aおよび
図11Bにおいて示し以下で説明する順序も、限定であることを意図していない。
【0092】
ある実施形態では、コンピュータ対応方法1100A、1100Bは、1つ以上の処理デバイス(例えば、デジタル・プロセッサ、アナログ・プロセッサ、情報を処理するように設計されたデジタル回路、情報を処理するように設計されたアナログ回路、状態機械、および/または電子的に情報を処理する他のメカニズム、マルチプロセス・システム等)において実装することができる。1つ以上の処理デバイスは、電子記憶媒体上に電子的に格納された命令に応答して、方法1100A、1100Bの動作の一部または全部を実行する1つ以上のデバイスを含むことができる。1つ以上の処理デバイスは、方法1100A、1100Bの動作の内1つ以上を実行するように特定的に設計されたハードウェア、ファームウェア、および/またはソフトウェアによって構成された1つ以上のデバイスを含むことができる。
【0093】
動作1105において、構造、プロセス等をシミュレートするシミュレータに対して(一部の)初期ノード値を決定するために、オプティマイザを実行する。これらのノード値は、複数のノードに対する、温度等のような、初期状態値でもよい。シミュレータにおけるこれらのノードは、例えば、
図14および周囲の本文を参照して説明するように、これらに関連付けられた物理方程式を有することができる。オプティマイザについては、
図1の110、
図2B、
図5の510、および
図8の810を参照して説明する。これらの物理方程式は、状態(入力時系列のような)が、ときの経過と共に、どのようにノード中を移動するのかモデル化することができる。動作1108において、オプティマイザの出力(例えば、811)を、シミュレータ初期ノード値の一部または全部に対する開始ノード値として使用する。動作1110において、入力時系列をシミュレータへの入力として使用する。ある実施形態では、多くの時系列を入力として使用することもできる。
図5の505および
図8の805は、入力時系列の例を示す。動作1112において、シミュレータを実行する。このシミュレーションの終了時(たとえば、入力時系列の終了時)に、オプティマイザ出力が生成される。オプティマイザ出力は、部分的に、選択されたノード出力値で構成することができる。
図5の515、
図6の610、および
図8の820は、シミュレータ出力の態様を示す。
図12は、更なる詳細を記述する。動作1115において、コスト関数を使用して、選択されたノード出力値をグラウンド・トゥルースと比較し、最適化コストを求める。動作1120において、オプティマイザ・シミュレーションの出力を反転させる。その例を
図7の705、および
図9の905を参照して示す。また、動作1120において、オプティマイザ入力を反転させる。その例を、
図7の710および
図9の910を参照して示す。動作1125において、反転したオプティマイザ・シミュレーション出力、および反転したオプティマイザ・シミュレーション入力の少なくとも一部を、学習モデルへの入力として使用する。その例を、
図7の705および710、ならびに
図9の905および910を参照して示す。
【0094】
動作1130において、学習モデルを実行して、t(0)からt(-n)までの逆時系列を、学習モデル出力として生成する。この学習モデル出力は、シミュレーションにおいて使用されるノードの一部(または全部)にマッピングする。動作1135において、時点t(-n)における学習モデルの出力値をコスト関数への入力、例えば、737、945として使用し、コスト735、940を求める。オプティマイザ・シミュレーション出力開始ノード値(620、720)を、コスト関数737に対するグラウンド・トゥルースとして使用する。これについては、
図7および周囲の本文を参照して、更に詳しく説明する。コスト735、即ち、理想的な出力(グラウンド・トゥルース)と実際の学習モデル値との間の差を判定するために、その終了時(実際の開始時)におけるそのノードの学習モデル値を、開始時における物理モデル出力と比較する。その例を、
図7の720、730、735、および737を参照して示す。動作1140において、計算したコストを、次に、学習モデルの逆伝搬を実行するために使用し、訓練モデルを更に訓練する。判断点1145において、シミュレーションが停止状態に達したか否か判定する。この停止状態とは、最適化シミュレーション出力(1115参照)のコスト関数からのコストが十分に小さく、シミュレーション・モデルに対する初期ウォームアップ値が最適化されていることを示す場合であるとしてもよい。シミュレータの繰り返し回数、モデルを実行した全時間量等のような、他の停止状態を使用してもよい。停止状態にない場合、プロセスは動作1105において繰り返す。停止状態にあると判定された場合、次に動作1147において、オプティマイザ出力(シミュレーションに対する開始状態値)を使用して、開始状態シミュレーション推定シミュレーションを実行する。
図6および
図8を参照して示すように、オプティマイザ出力は、開始状態シミュレーション推定シミュレーションに対する開始ノード状態値である。開始状態シミュレーション推定シミュレーションは、初期値シミュレーションを最初に実行した時間、例えば、シミュレーションに先立つ時点(t=-n)からシミュレーションが開始する時点(t=0)まで、実行することができる。
【0095】
動作1149において、オプティマイザ出力を保存する。動作1150において、ウォームアップを終えたシミュレーションを使用して、状態シミュレーションを実行する。具体的には、時点t=0から順方向にt(m)までというように、しかるべき時間にわたって、状態シミュレーションを実行する。ここで、mはある正の数値に等しい。状態シミュレーションは、開始状態シミュレーション推定シミュレーションの実行の延長でもよい。動作1155において、状態シミュレーションを実行した後、状態シミュレーションの結果を使用して、シミュレーションがモデル化している構造の挙動を修正することができる。構造の挙動を修正することができる1つの方法は、シミュレーション出力を使用して、最終的にデバイスの挙動を指令することである。構造は、制御することができる種々のデバイスを内蔵することができる。これらのデバイスは、科学的計器、HVAC機器等でもよい。これらのデバイスは、別個のデバイス・シミュレーション1160によってモデル化することができる。このデバイス・シミュレーションの結果は、モデル化されたデバイスのための制御シーケンスとなることができる。シミュレーションは、特定の結果に達するように、デバイスの挙動を最適化することができる。例えば、建物のシミュレーションは、エネルギ使用を最適化することを求めるのでもよい。したがって、空調機(conditioner)、可動換気装置、ヒータ、ボイラ等のようなデバイスは、建物構造内でモデル化することができる。動作1165において、状態シミュレーションは、制御シーケンスのような、シミュレータによってモデル化されている構造の挙動を修正することができる出力を生成することができる。次に、動作1170において、これらの制御シーケンスを使用して少なくとも1つのデバイスを運転することができる。例えば、状態シミュレーションによって生成された制御シーケンスを使用して、空調機器を運転することができる。
【0096】
図12は、1200において、本明細書において開示する実施形態を実装することができる例示のノードを有する、例示的なシミュレーション・モデル1235を開示する。シミュレーション・モデルを実行するとき、入力データ505、1205を特定のノードに供給する。状態シミュレーションのオプティマイザ実行のための入力データについては、
図5を参照して更に深く説明する。ある実施態様では、レベルに応じてノードを配置することもできる。例えば、第1レベル1220におけるノードに、N
1からN
aまでの符号を付ける。楕円で示すように、全てのノードが示されなくてもよい。このレベルの下には、ノードにP
1からP
aまでの符号を付けたレベルがある。他のレベル1230は、ノードQ
1~Q
Cを保持する。ある実施態様では、ノードをレベルに応じて配置しなくてもよい。入力データ1205(例えば、天候データのような、データ505)を第1レベル1220内にあるノード、および異なるレベル1210内にあるノードに供給することもできる。1つのレベルにおけるノードは、それらの次のレベル以外のノードに情報を供給することができる。例えば、ノードN
a(レベルNにおける)は、レベルPを飛ばして、情報1225をノードQ
C(レベルQにおける)に供給することができる。また、Rのような、他のノード・レベルがあってもよいが、図面を見やすくするために、入力および出力が示されていない。P
2、1215を参照して示すように、1つのレベルにおけるノードは、次に低いレベルにある他のノードに、必ずしも情報を送らなくてもよい。現在の例におけるオプティマイザに対するノードの集合全体は、N
1~N
a、P
1~P
b、Q
1~Q
C、R
1~R
dと記述することができる。
【0097】
モデル出力、例えば、選択ノード値515は、特定の層でなくてもよく、むしろモデルの奥にある(deep with the model)ノード1240の集合体でもよい。図示する例では、N3(左側の行Nから3番目のノード)、P10、P21、Q7、およびQ15を全て選択ノード値と見なしてよい。他の出力ノードは示されない場合もある。この特定の1組のノードを出力ノードと見なす理由があってもよい。例えば、これらが、対応する実世界構造において実際の測定値を有する状態を表すことでもよい。例えば、選択されたノードは部屋の内部を表すことができ、このノードによって表される部屋の温度は、ノード値が表す温度となることができる。したがって、選択されたノードは、建物内の部屋の内部を表すノードとなることができ、選択ノード値は選択されたノードの温度となる。
【0098】
図13は、1300において、本明細書において開示する実施形態を実装することができる、例示的な学習モデルおよび出力を開示する。入力1305は、シミュレーションから選択された1組のノード1240の出力としてよい。次いで、これらのノードの状態出力(温度のような)を反転させ(1305)、次いで学習モデルへの入力1310として使用する。この実例では、学習モデルは出力1315を有し、この出力1315は、シミュレーション・モデル1235におけるノードN
1~N
a、P
1~P
a、Q
1~Q
a、 R
1~R
aと関連付けられた値(または複数の値)を含む。つまり、シミュレーション・モデル1235のノードは、学習モデルの出力1315に対応するものを有する。ある実施形態では、出力モデルにおけるノードの一部が、学習モデルにおける出力に対応するものを有する。ノードは、それらと関連付けられた複数の属性を有することができる。そのような場合、ノード内部における特定の属性情報の1つまたは複数の値を、シミュレーションの長さ(t(0)~t(n))にわたって記録し、次いで出力1240として使用することができる。
【0099】
図14は、1400において、例示的なノードを開示する。属性1410は、ノードによって表されるオブジェクト、即ち、建物の基本単位の属性である。例えば、ノード1405は、シミュレーションを通じて変化する属性1410として、温度1415を有するのでもよい。例えば、表面積1420のような他の属性は静止したままであるとして差し支えない。ある実施形態では、ノードは、システムにおいて解くべき方程式1425を含むこともできる。これらの方程式は、ニューラル・ネットにおいて重み付きエッジとして表される変数と、ノード自体の属性1410である変数との双方を有する場合がある。
【0100】
図15Aを参照すると、状態シミュレーションに対して開始状態を推定するために使用することができるワーク・フロー1500Aが示されている。オプティマイザ1505Aを実行し、最適化の後、状態推定に使用されるシミュレーション1510A内部において初期ノード値として使用される値を生成する。オプティマイザ1505Aにおける値と、開始状態推定関数に使用されるシミュレーション(例えば、ウォームアップ)におけるノードにおける値との間には、1対1の対応があるとしてよい。シミュレーション内部におけるノードは、オプティマイザによって決定される1つの値、またはオプティマイザによって決定される数個の値を有する場合がある。この開始(startup)状態推定シミュレーション1510Aは、シミュレーションよりも前の時点(-t)からシミュレーションの開始時点(0)まで実行することができる。シミュレーションが時点(0)にあるとき、正当な内部ノード値を有する同じシミュレーション・モデルを、今後のある時間にわたって実行する(1515A)ことができる。
【0101】
図15Bを参照すると、訓練された学習モデルを使用して、状態シミュレーションをウォームアップする、即ち、状態シミュレーションに対する開始状態を推定するために使用することができるワーク・フロー1500Bが示されている。学習モデル1505Bを実行すると、開始状態推定に使用されるシミュレーション1510B内部において初期ノード値として使用される値を生成する。学習モデル出力における値と、開始状態推定関数に使用されるシミュレーションにおけるノードとの間には、1対1の対応があるとしてよい。シミュレーション内部におけるノードは、学習モデル出力によって修正された1つの値、または数個の値を有する場合がある。この開始状態シミュレーション推定シミュレーションは、シミュレーションよりも前の時点(-t)からシミュレーションの開始時点(0)まで実行することができる。開始状態推定シミュレーションが時点(0)にあるとき、開始状態推定シミュレーション1510Bによって供給されるウォームアップ・ノード値を用いて、同じシミュレーション・モデル1515Bを、今後のある時間にわたって実行することができる。
【0102】
図16は、1600において、初期値シミュレーション1602におけるノード値、シミュレーション・モデルの開始状態推定実行1604、1606、およびシミュレーション・モデルのシミュレーション実行1608を開示する。図示する省略モデル(簡潔にするため)では、1602は、シミュレーション・モデルと同様に、4つのノードを有する。これら4つのノード1605、1610、1615、および1620は、初期値シミュレーションの終了時に、それがオプティマイザであろうと学習モデルであろうと、状態値を生成する。これらの状態値は、構造、プロセス等をシミュレートするために使用される、シミュレーション・モデルの対応する開始状態推定実行1604、1606に対する初期値として使用される。例えば、初期値シミュレーション1605の終了時、例えば、時点t(-n)におけるノード1等価値(node 1 equivalent)は、72°の温度状態値を有する。この温度状態値は、次いで、開始状態推定実行1604のために用意されつつあるシミュレーションに転送され、ノード1は温度状態72°を受け取る。これは、この例における残りのノードにも当てはまる。例えば、ノード2 1630は、初期値シミュレーション1602のノード2 1610から温度69°を受け取り、ノード3 1635は、ノード3等価値1615からノード等価値54°を受け取り、ノード4 1640は、ノード4等価値1620から温度74°を受け取る。ある実施形態では、状態(例えば、このモデルにおける温度)は、変化なく、転送される。ある実施形態では、初期値シミュレーション1602のノード等価値からの状態は、開始状態推定実行の開始時1604に転送される前に、変形(transformation)を受ける。一旦シミュレーションの開始状態推定実行1604に、初期値シミュレーション実行1602からのノード値がシードされた(seed)なら、ある時間期間にわたって実行され、状態値を変化させる。これは、開始状態推定シミュレーションの終了時1606におけるノード値について見られるのと同様である。開始状態推定シミュレーションの終了時に、シミュレーションが十分にウォームアップされたか否か、即ち、内部ノード値が、実際のシミュレーションを開始するのに正当な状態(または複数の正当な状態)にあるか否か判定するためにチェックがあるとよい。このようなチェックがあり、モデルが十分にウォームアップされていると判定された場合、またはチェックがない場合、開始状態推定実行1604の直後に、主シミュレーション実行1608を開始する。シミュレーション・モデルの主シミュレーション実行1608の開始時に、シミュレーション・モデル1665、1670、1675、1680は、開始状態推定シミュレーション1606のノードと同じノード1645、1650、1655、1660となることができる。その場合、これらは、開始状態推定実行の終了時1606に生成された同じ状態値を自動的に有することになる。例えば、時点t(0)におけるノード1 1665は、値74°を有する。これは、開始状態推定実行の終了時におけるノード1 1645と同じ値である。ある実施形態では、開始状態推定終了値を異なるシミュレーションに転送することもできる。一般に、シミュレーション・モデルの主シミュレーション実行1608の開始時におけるノード値は、開始状態推定シミュレーションの終了時1606における、シミュレーションの開始状態推定実行の対応するノードと同じ値を有することができる。
【0103】
図17は、1700において、健全性チェックを使用する、訓練済み学習モデルの実行を開示する。動作1705において、
図9において論ずるように、所望の選択ノード値を逆方向に、そして状態値を逆方向に入力として使用して、学習モデルを実行する。動作1710において、学習モデルによって供給されたノード値を使用して、開始状態推定シミュレーション、例えば、1510Bを実行する。学習モデル・シミュレーションの終了時(例えば、
図7の730に示すように、t=-n)における値を、開始状態シミュレーション推定に対する初期ノード値として使用する。入力値を受け取ったシミュレーションの例は、
図14を参照すると見ることができる。ノード1405は、属性1410として温度1415を有してもよい。この温度属性1415は、入力値を有することができ、学習モデル・シミュレーションの終了時における値からのしかるべき初期ノード値である。動作1715において、シミュレーションからの選択ノード値およびグラウンド・トゥルース(例えば、履歴ノード値等)をコスト関数において使用して、2組の値の間における距離を測定するコストを決定する。判断点1720において、コストが十分に小さく、生成された値と所望の値が十分に近いことを示すか否か判定する。そうである場合、判断点1725において、学習モデルの結果を、開始状態シミュレーション推定1510Bにおけるノードに対する開始値として使用する。2組の値が離れ過ぎていると判定された場合、判断点1730において、学習モデル・ノード値の結果を、
図5および周囲のテキストを参照して説明したように、オプティマイザ・シミュレーションに対する開始値として使用する。これらの開始値は、ランダムな値よりも最終的な最適値に近いと考えられる。動作1735において、停止状態に達するまで、最適化-シミュレーション・モデルを繰り返し実行する。動作1740において、最適化-シミュレーション・モデルの繰り返し実行において、その結果を使用して、学習モデルを訓練する。
図11Aおよび
図11Bは、動作1735および1740をどのように実行するかについて、更に詳細な様子を示す。動作1745において、一旦最適化-シミュレーション・モデルが最適化に達した場合、最後の繰り返しの開始時に生成されたノード値を、開始状態推定シミュレーションに対する開始ノード値として使用し、この開始状態推定シミュレーションを実行する。動作1750において、シミュレーション・モデルを実行し、シミュレーション・モデルの結果を使用して、モデル化対象構造の何らかの様相を修正する。これは、デバイス・シミュレーション・モデルのような、他のモデルを実行するために使用されるシミュレーション・モデルの結果を伴う場合がある。次いで、このデバイス・シミュレーション・モデルは、当該デバイス・シミュレーション・モデルにおいてモデル化される1つ以上のデバイスに対して、制御シーケンスを生成することができる。次いで、生成した制御シーケンスを使用して、デバイスを運転することができる。生成した制御シーケンスは、エネルギ使用のような、デバイスのある態様を最小化して、デバイスを運転することができる。例えば、エネルギ使用を最小化して30%も抑えることもできる。
【0104】
図18は、1800において、シミュレーションをウォームアップするために使用することができる学習モデル訓練システムを開示する。このシステムは、コア処理システム330の全部または一部であってもよい、プロセッサを備えることができる。また、このプロセッサは、コンピューティング環境300、410における1つ以上のプロセッサであってもよく、これら自体は、共有コンピューティング・システム内で一緒にネットワーク接続されている複数のコンピュータ化コントローラ405の一部である。この共有コンピューティング・システムは、コンピューティング環境間で処理パワーを共有することができる。また、このシステムは、プロセッサと動作可能に通信するメモリと、シミュレータ・トレーナを作成するように構成されたプロセッサと関連付けられたコンピューティング・コードも含む。メモリおよび/またはコンピューティング・コードは、共有コンピューティング環境におけるコンピューティング環境間で、共有することもできる。
【0105】
ブロック1805は、シミュレータに対して初期ノード値を決定するオプティマイザを開示する。シミュレータは、値を有するノードを備える。
図1を参照すると、シミュレータが110に示されている。更に詳しくは、例えば、
図12およびその周囲の本文を参照すると、少なくとも、値を有するノードが示されている。例えば、
図5において、510、511、および512を参照して、更に
図8において、810、811、および812を参照して、オプティマイザおよびシミュレータの関係について説明する。
【0106】
ブロック1810は、シミュレータを開示する。このシミュレータは、時点t(-n)から時点t(0)までの入力時系列を入力として使用する。このシミュレータの出力およびノードの出力は、時点t(-n)から時点t(0)までの出力時系列としてよい。例えば、
図5の505を参照しながら、系列t(-n)からt(0)の入力を説明する。例えば、時点t(-n)から時点t(0)までの入力時系列の例は、t=-nからt=0まで続くように示される、入力データ505としてよい。この入力データは、例えば、
図8の805を参照すると示されるような、天候または他の状態データでもよい。
【0107】
ブロック1815は、逆入力時系列を生成するために、入力時系列を時点t(0)からt(-n)に反転させるリバーサ(reverser)を開示する。この場合の一例は、本来の時系列を示す
図5の505、および逆時系列を示す
図7の710を参照すると、見ることができる。また、リバーサは、出力時系列も時点t(0)からt(-n)に反転させることができる。この出力時系列は、
図5の515を参照すると示されるような、選択値時系列としてもよい。次に、
図7の705は、出力(この場合、選択ノード値)逆時系列を示す。
【0108】
ブロック1820は、学習モデルを開示する。この学習モデルは、逆入力時系列を訓練入力として使用し、t(-n)における出力時系列の選択値を、学習モデルと関連付けられたコスト関数に対するグラウンド・トゥルースとして使用する。
図7を参照すると示されている学習モデルは、
図5に示した入力データ505を(リバーサ815によって)反転させたものを取り込み、これを学習モデル715への入力データとして使用する。
図9の910を参照すると、他の例が示されている。
【0109】
ブロック1825は、コスト関数デターミナ(determiner)を開示する。
図5を参照すると、シミュレータは、実行後に、選択内部ノード値515を生成する。次に、これらの選択内部ノード値515を、1組の所望のノード値520と照らして、測定する。コスト関数527を使用して、これら2組のノード値を測定し、次いでコスト525を求める。同様に、学習モデル715は1組の出力ノードを生成する。その最後の値(t-n)を、コスト関数737によって、シミュレータ・ノード値620、720と比較し、コスト735を求める。時点t(ーn)における学習モデル出力を初期シミュレータ・ノード値と比較するように、選択ノード値515および所望のノード値520をコスト関数に入力する。
図8および
図9を参照して、同様のコスト関数のアクションを示す。
【0110】
ブロック1850は、イテレータ(iterator)を開示する。本明細書において開示したオプティマイザのようなオプティマイザは、繰り返しプロセスを通じて学習する。一連の可能な値を入力として選択し、選択した入力は、シミュレーションによって、シミュレーション実行において使用され、次いで、コスト関数を使用して出力をチェックし、他の章で説明したように、所望の出力にどの位近いか確認する。停止状態にない場合、オプティマイザは次に新たな1組の値をシミュレーションに選択し、停止状態に達するまでこのプロセスは継続する。ある実施形態では、イテレータはこれらの繰り返しを制御する。例えば、イテレータは、オプティマイザを実行し、最適化されたノード値をシミュレータに渡し、シミュレーションの終了時にコスト関数を実行し、停止状態に達したか否か判定することができる。達していない場合、イテレータは、オプティマイザに、続く1組の最適化されたノード値を、コストを使用して、判定させることができる。このサイクルは、停止状態に達するまで継続する。停止状態に達したとき、最後の繰り返し、例えば、
図8における840の初期値を、開始状態推定シミュレーション、例えば、210Aへの入力として使用する。ある実施形態では、開始状態推定シミュレーションを時点t(-n)から時点t(0)まで実行する。開始状態推定シミュレーションを実行した後、状態シミュレーション(ウォームアップされたノード値を用いて、同じシミュレータを使用する)を、順方向に時点t(0)からt(m)まで実行することができる。この状態シミュレーションは、最終的にデバイスに対して制御シーケンスを生成するために使用することができる出力を生成することができる。例えば、状態シミュレーションの結果は、デバイス・シミュレーションのような、他のシミュレーションを実行するために使用することができる。このデバイス・シミュレーションは、制御シーケンスを生成することができ、この制御シーケンスは、次いで、デバイス・シミュレーション・モデルにおいてモデル化されたデバイスを運転するために使用することができる。次いで、生成した制御シーケンスを使用して、このデバイスを運転することができる。これについては、
図11Bおよび周囲の本文も参照して説明する。
【0111】
V.シミュレータを訓練するための例示的なコンピュータ読み取り可能媒体
図3および
図4を参照すると、ある実施形態は、構成された(configured)コンピュータ読み取り可能記憶媒体365を含む。媒体365は、ディスク(磁気、光、またはその他)、RAM、EEPROM、他のROM、および/または他の構成可能なメモリを含むことができる。他の構成可能なメモリには、コンピュータ読み取り可能媒体(電気、光、または音響信号のような、製造された一時的現象は対象としない)が含まれる。構成された記憶媒体は、CD、DVD、またはフラッシュ・メモリのような、リムーバブル記憶媒体365でもよい。記憶媒体上のプログラムは、メモリに結合されたプロセッサ(例えば、310,312、315等)上で実行することができる。このようなメモリは、汎用メモリ(RAM、ROM、CMOS、あるいはフラッシュのような主メモリでもよく、またはCD、ハード・ドライブ、光ディスク、またはリムーバブル・フラッシュ・ドライブのような副メモリでもよい)でもよく、コンピューティング環境300、コンピュータ化コントローラ405、または以上の任意の組み合わせを使用して、データ380および命令375の形態で、実施形態内に構成することができ、更にデータおよび命令が構成された媒体を形成するために、出力デバイス355のようなソースから読み出すことができる。命令がプロセッサによって実行されると、旅行快適性情報(traveling comfort information)を計算する方法を実行する。構成された媒体365は、コンピュータ・システムに、本明細書において関係付けたようなアクションを実行させることができる。
【0112】
ある実施形態は、ソフトウェア385が構成されたコンピュータ読み取り可能記憶媒体365を供給または利用する。ソフトウェア385が少なくとも1つの中央処理ユニット310によって実行されると、本明細書において説明した方法およびシステムを実行する。
【0113】
開示した発明の原理を応用することができる多くの可能な実施形態があることを考慮すると、図示した実施形態は、本発明の例に過ぎず、発明の範囲を限定するように捕らえてはならないことは認められてしかるべきである。逆に、発明の範囲は以下の特許請求の範囲によって定められる。したがって、これらの請求項の範囲および主旨に該当する全てを、本発明として特許請求する。
【国際調査報告】