IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ザ ユニヴァーシティー オヴ シカゴの特許一覧

<>
  • 特開-学習済み動的制御複合システム 図1A
  • 特開-学習済み動的制御複合システム 図1B
  • 特開-学習済み動的制御複合システム 図2
  • 特開-学習済み動的制御複合システム 図3
  • 特開-学習済み動的制御複合システム 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023055853
(43)【公開日】2023-04-18
(54)【発明の名称】学習済み動的制御複合システム
(51)【国際特許分類】
   G05B 13/02 20060101AFI20230411BHJP
   G05B 13/04 20060101ALI20230411BHJP
   G06N 20/00 20190101ALI20230411BHJP
【FI】
G05B13/02 L
G05B13/04
G06N20/00
【審査請求】有
【請求項の数】21
【出願形態】OL
(21)【出願番号】P 2023014337
(22)【出願日】2023-02-02
(62)【分割の表示】P 2020534567の分割
【原出願日】2018-12-20
(31)【優先権主張番号】62/609,244
(32)【優先日】2017-12-21
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ANDROID
(71)【出願人】
【識別番号】501242712
【氏名又は名称】ザ ユニヴァーシティー オヴ シカゴ
(74)【代理人】
【識別番号】100127926
【弁理士】
【氏名又は名称】結田 純次
(74)【代理人】
【識別番号】100140132
【弁理士】
【氏名又は名称】竹林 則幸
(72)【発明者】
【氏名】ヘンリー・ホフマン
(72)【発明者】
【氏名】レスター・タイヒナー
(72)【発明者】
【氏名】ベンジャミン・ヴェア
(57)【要約】      (修正有)
【課題】効率的に計算することができ、制御対象システム(複数可)の変化に適応することができるハイブリッドコントローラのネットワークを可能にする。
【解決手段】効率的に計算することができ、制御対象システムの変化に適応することができるハイブリッドコントローラのネットワークを可能にする。ネットワークは、動的サブコントローラ及び学習済みシステムサブコントローラを含む少なくとも1つのハイブリッドコントローラを含む。制御対象システムの実行中の性能に関する情報は、ハイブリッドコントローラ及びオーバーコントローラの両方に提供され、ハイブリッドコントローラの実行中の動作を修正するために、ハイブリッドコントローラに1つ以上の制御入力を提供する。
【選択図】図3
【特許請求の範囲】
【請求項1】
第1の期間の間に、システムの出力を検出すること、
前記第1の期間の間に検出された前記出力に基づいて、前記システムの第1の性能メトリックを判定すること、
前記第1の性能メトリックに基づいて、第1のハイブリッドコントローラを動作させて、第1のハイブリッドコントローラ出力を生成することであって、前記第1のハイブリッドコントローラが、第1の制約、第1の動的システム、及び第1の学習済みシステムモデルを含んでおり、前記第1のハイブリッドコントローラを動作させて、前記第1のハイブリッドコントローラ出力を生成することが、
前記第1の性能メトリックと前記第1の制約との間の第1の差を判定すること、
前記判定された第1の差を前記第1の動的システムに適用して、第1の動的システム出力を生成すること、及び
前記生成された第1の動的システム出力を前記第1の学習済みシステムモデルに適用して、前記第1のハイブリッドコントローラ出力を生成すること
を含む、前記第1のハイブリッドコントローラ出力を生成すること、
前記生成された第1のハイブリッドコントローラ出力に従って、第2の期間の間に、前記システムを制御すること、
第3の期間の間に、前記システムの前記出力を検出すること、
前記第3の期間の間に検出された前記出力に基づいて、前記システムの第2の性能メトリックを判定すること、
前記第1の性能メトリック及び前記第2の性能メトリックに基づいて、第2のハイブリッドコントローラを動作させて、更新された制約値を生成すること、
前記更新された制約値に従って、前記第1の制約を更新すること、
前記第1の制約の更新後に、前記第2の性能メトリックに基づいて、前記第1のハイブリッドコントローラを動作させて、第2のハイブリッドコントローラ出力を生成すること、ならびに
前記生成された第2のハイブリッドコントローラ出力に従って、第4の期間の間に、前記システムを制御すること
を含む、方法。
【請求項2】
前記第1の学習済みシステムモデルがルックアップテーブルを含み、
前記生成された第1の動的出力を前記第1の学習済みシステムモデルに適用して、前記第1のハイブリッドコントローラ出力を生成することが、前記第1の動的出力の値に基づいて、前記ルックアップテーブル内のエントリを選択することを含む、請求項1に記載の方法。
【請求項3】
前記第1の動的システムが極によって特徴付けられており、更に、
前記第1の期間の間に検出された前記システムの前記出力に基づいて、前記第1の学習済みシステムモデルに対する信頼度を判定すること、
前記判定された信頼度に基づいて、前記第1の動的システムの前記極の更新値を判定すること、及び
前記更新された動的システムの前記極が、前記判定された更新値に対応する値を持つように、前記第1の動的システムを更新すること
を含む、請求項1に記載の方法。
【請求項4】
前記第1の期間の間に検出された前記システムの前記出力に基づいて、前記学習済みシステムモデルを更新することを更に含む、請求項1に記載の方法。
【請求項5】
前記第1の性能メトリック及び前記第2の性能メトリックに基づいて、前記第2のハイ
ブリッドコントローラを動作させて、前記学習済みシステムモデルを更新するよう判定することであって、前記第1の期間の間に検出された前記システムの前記出力に基づいて、前記学習済みシステムモデルを更新することは、前記第2のハイブリッドコントローラが、前記学習済みシステムモデルを更新するよう判定することに応答して行われる、前記学習済みシステムモデルを更新するよう判定することを更に含む、請求項4に記載の方法。
【請求項6】
前記第1の期間の間に検出された前記システムの前記出力に基づいて、前記学習済みシステムモデルを更新することが、
前記第1の期間の間に検出された前記システムの前記出力の表示を、リモートシステムに送信すること、及び
前記学習済みシステムモデルに対する更新の表示を、前記リモートシステムから受信すること
を含む、請求項4に記載の方法。
【請求項7】
前記第1の期間の間に検出された前記システムの前記出力に基づいて、前記学習済みシステムモデルを更新することが、種々の学習済みシステムモデルのセットから、ある学習済みシステムモデルを選択することを含む、請求項4に記載の方法。
【請求項8】
前記システムは、2つ以上の演算器であって、そのそれぞれがそれぞれの動作状態を有している前記2つ以上の演算器を有するコンピューティング基体を含み、
前記第1のハイブリッドコントローラ出力が、前記コンピューティング基体の前記2つ以上の演算器のそれぞれの動作状態の表示を含む、請求項1に記載の方法。
【請求項9】
前記計算基体の前記演算器の少なくとも1つの前記動作状態が、クロック速度を含む、請求項8に記載の方法。
【請求項10】
前記第2のハイブリッドコントローラが、第2の制約、第2の動的システム、及び第2の学習済みシステムモデルを含んでおり、
前記第1の性能メトリック及び前記第2の性能メトリックに基づいて、前記第2のハイブリッドコントローラを動作させて、更新された制約値を生成することが、
前記第1の性能メトリックまたは前記第2の性能メトリックの少なくとも1つを前記第2の動的システムに適用して、第2の動的システム出力を生成すること、及び
前記生成された第2の動的出力を前記第2の学習済みシステムモデルに適用して、前記更新された制約値を生成すること
を含む、請求項1に記載の方法。
【請求項11】
前記第1の期間の間に、第2のシステムの第2の出力を検出すること、
前記第1の期間の間に検出された前記第2の出力に基づいて、前記第2のシステムの第3の性能メトリックを判定すること、
前記第3の性能メトリックに基づいて、第3のハイブリッドコントローラを動作させて、第3のハイブリッドコントローラ出力を生成することであって、前記第3のハイブリッドコントローラが、第3の制約、第3の動的システム、及び第3の学習済みシステムモデルを含んでおり、前記第3のハイブリッドコントローラを動作させて、前記第3のハイブリッドコントローラ出力を生成することが、
前記第3の性能メトリックと前記第3の制約との間の第2の差を判定すること、
前記判定された第2の差を前記第3の動的システムに適用して、第3の動的システム出力を生成すること、及び
前記生成された第3の動的出力を前記第3の学習済みシステムモデルに適用して、前記第3のハイブリッドコントローラ出力を生成すること
を含む、前記第3のハイブリッドコントローラ出力を生成すること、
前記生成された第3のハイブリッドコントローラ出力に従って、前記第2の期間の間に、前記第2のシステムを制御すること、
前記第3の期間の間に、前記第2のシステムの前記第2の出力を検出すること、
前記第3の期間の間に前記第2のシステムから検出された前記第2の出力に基づいて、前記第2のシステムの第4の性能メトリックを判定すること、
前記第3の性能メトリック及び前記第4の性能メトリックに基づいて、前記第2のハイブリッドコントローラを動作させて、更なる更新された制約値を生成すること、
前記更なる更新された制約値に従って、前記第3の制約を更新すること、
前記第4の性能メトリックに基づいて、前記第3のハイブリッドコントローラを動作させて、第4のハイブリッドコントローラ出力を生成すること、ならびに
前記生成された第4のハイブリッドコントローラ出力に従って、前記第4の期間の間に、前記第2のシステムを制御すること
を更に含む、請求項10に記載の方法。
【請求項12】
前記第1の性能メトリック及び前記第2の性能メトリックに基づいて、前記第2のハイブリッドコントローラを動作させて、前記更新された制約値を生成することは、
前記第1の性能メトリック及び前記第2の性能メトリックに基づいて、前記システムの前記出力が発振していることを検出することを含む、請求項1に記載の方法。
【請求項13】
前記第1の性能メトリック及び前記第2の性能メトリックに基づいて、前記第2のハイブリッドコントローラを動作させて、前記更新された制約値を生成することは、
前記第1の性能メトリック及び前記第2の性能メトリックに基づいて、前記システムの前記出力が、閾値レートよりも遅く応答することを検出することを含む、請求項1に記載の方法。
【請求項14】
前記第1の性能メトリック及び前記第2の性能メトリックに基づいて、前記第2のハイブリッドコントローラを動作させて、前記更新された制約値を生成することは、
前記第1の性能メトリック及び前記第2の性能メトリックに基づいて、前記システムの前記出力が、前記第1の制約に対してバイアスを示すことを検出することを含む、請求項1に記載の方法。
【請求項15】
第1の期間の間に、システムの出力を検出すること、
前記第1の期間の間に検出された前記出力に基づいて、前記システムの第1の性能メトリックを判定すること、
前記第1の性能メトリックに基づいて、第1のハイブリッドコントローラを動作させて、第1のハイブリッドコントローラ出力を生成することであって、前記第1のハイブリッドコントローラが、第1の制約、第1の動的システム、第1の学習済みシステムモデル、及び第1の学習済みシステム更新モジュールを含んでおり、前記第1の学習済みシステム更新モジュールが、前記システムから検出された少なくとも1つの出力に基づいて、前記第1の学習済みシステムモデルを更新するように構成されており、前記第1の学習済みシステム更新モジュールが、第1の学習パラメータに対応するタイミングまたはレートの少なくとも1つに従って、前記第1の学習済みシステムモデルを更新するように構成されており、前記第1の動的システムが、前記第1の動的システムの全体的な応答性に対応する第1の動的パラメータを有しており、前記第1のハイブリッドコントローラを動作させて、前記第1のハイブリッドコントローラ出力を生成することが、
前記第1の性能メトリックと前記第1の制約との間の第1の差を判定すること、
前記判定された第1の差を前記第1の動的システムに適用して、第1の動的システム出力を生成すること、及び
前記生成された第1の動的出力を前記第1の学習済みシステムモデルに適用して、前記第1のコントローラ出力を生成すること
を含む、前記第1のハイブリッドコントローラ出力を生成すること、
前記生成された第1のハイブリッドコントローラ出力に従って、第2の期間の間に、前記システムを制御すること、
第3の期間の間に、前記システムの前記出力を検出すること、
前記第3の期間の間に検出された前記出力に基づいて、前記システムの第2の性能メトリックを判定すること、
前記第1の性能メトリック及び前記第2の性能メトリックに基づいて、第2のハイブリッドコントローラを動作させて、第1のハイブリッドコントローラ更新版を生成することであって、前記第1のハイブリッドコントローラ更新版が、更新された第1の制約値、更新された第1の動的パラメータ、または更新された第1の学習パラメータのうちの少なくとも1つを含む、前記第1のハイブリッドコントローラ更新版を生成すること、
前記第1のハイブリッドコントローラ更新版に従って、前記第1のハイブリッドコントローラを更新すること、
前記第2の性能メトリックに基づいて、前記更新された第1のハイブリッドコントローラを動作させて、第2のハイブリッドコントローラ出力を生成すること、ならびに
前記生成された第2のハイブリッドコントローラ出力に従って、第4の期間の間に、前記システムを制御すること
を含む、方法。
【請求項16】
前記第1の動的システムが極によって特徴付けられ、前記極は前記第1の動的パラメータに関連しており、前記方法は、更に、
前記第1の期間の間に検出された前記システムの前記出力に基づいて、前記第1の学習済みシステムモデルに対する信頼度を判定すること、
前記判定された信頼度に基づいて、前記第1の動的システムの前記極の更新値を判定すること、及び
前記更新された第1の動的システムの前記極が、前記判定された更新値に対応する値を持つように、前記第1の動的パラメータを更新することを含む、請求項15に記載の方法。
【請求項17】
前記第2のハイブリッドコントローラが、第2の制約、第2の動的システム、及び第2の学習済みシステムモデルを含んでおり、
前記第1の性能メトリック及び前記第2の性能メトリックに基づいて、前記第2のハイブリッドコントローラを動作させて、第1のハイブリッドコントローラ更新版を生成することが、
前記第1の性能メトリックまたは前記第2の性能メトリックの少なくとも1つを前記第2の動的システムに適用して、第2の動的システム出力を生成すること、及び
前記生成された第2の動的出力を前記第2の学習済みシステムモデルに適用して、前記第1のハイブリッドコントローラ更新版を生成すること
を含む、請求項16に記載の方法。
【請求項18】
前記第1の期間の間に、第2のシステムの第2の出力を検出すること、
前記第1の期間の間に検出された前記第2の出力に基づいて、前記第2のシステムの第3の性能メトリックを判定すること、
前記第3の性能メトリックに基づいて、第3のハイブリッドコントローラを動作させて、第3のハイブリッドコントローラ出力を生成することであって、前記第3のハイブリッドコントローラが、第3の制約、第3の動的システム、第3の学習済みシステムモデル、及び第3の学習済みシステム更新モジュールを含んでおり、前記第3の学習済みシステム更新モジュールが、前記第2のシステムから検出された少なくとも1つの出力に基づいて、前記第3の学習済みシステムモデルを更新するように構成されており、前記第3の学習済みシステム更新モジュールが、第3の学習パラメータに対応するタイミングまたはレー
トの少なくとも1つに従って、前記第3の学習済みシステムモデルを更新するように構成されており、前記第3の動的システムが、前記第3の動的システムの全体的な応答性に対応する第3の動的パラメータを有しており、前記第3のハイブリッドコントローラを動作させて、前記第3のハイブリッドコントローラ出力を生成することが、
前記第3の性能メトリックと前記第3の制約との間の第2の差を判定すること、
前記判定された第2の差を前記第3の動的システムに適用して、第3の動的システム出力を生成すること、及び
前記生成された第3の動的出力を前記第3の学習済みシステムモデルに適用して、前記第3のハイブリッドコントローラ出力を生成すること
を含む、前記第3のハイブリッドコントローラ出力を生成すること、
前記生成された第3のハイブリッドコントローラ出力に従って、前記第2の期間の間に、前記第2のシステムを制御すること、
前記第3の期間の間に、前記第2のシステムの前記第2の出力を検出すること、
前記第3の期間の間に前記第2のシステムから検出された前記第2の出力に基づいて、前記第2のシステムの第4の性能メトリックを判定すること、
前記第3の性能メトリック及び前記第4の性能メトリックに基づいて、前記第2のハイブリッドコントローラを動作させて、第3のハイブリッドコントローラ更新版を生成することであって、前記第3のハイブリッドコントローラ更新版が、更新された第3の制約値、更新された第3の動的パラメータ、または更新された第3の学習パラメータのうちの少なくとも1つを含む、前記第3のハイブリッドコントローラ更新版を生成すること、
前記第3のハイブリッドコントローラ更新版に従って、前記第3のハイブリッドコントローラを更新すること、
前記第4の性能メトリックに基づいて、前記第3のハイブリッドコントローラを動作させて、第4のハイブリッドコントローラ出力を生成すること、ならびに
前記生成された第4のハイブリッドコントローラ出力に従って、前記第4の期間の間に、前記第2のシステムを制御すること
を更に含む、請求項17に記載の方法。
【請求項19】
前記第1の性能メトリック及び前記第2の性能メトリックに基づいて、第4のハイブリッドコントローラを動作させて、更なる第1のハイブリッドコントローラ更新版を生成することであって、前記更なる第1のハイブリッドコントローラ更新版が、更新された第1の制約値、更新された第1の動的パラメータ、または更新された第1の学習パラメータのうちの少なくとも1つを含む、前記更なる第1のハイブリッドコントローラ更新版を生成すること、
前記更なる第1のハイブリッドコントローラ更新版に従って、前記第1のハイブリッドコントローラを更新することであって、前記第2の性能メトリックに基づいて、前記更新された第1のハイブリッドコントローラを動作させて、第2のハイブリッドコントローラ出力を生成することが、前記第1のハイブリッドコントローラ更新版及び前記更なる第1のハイブリッドコントローラ更新版の両方によって更新された前記第1のハイブリッドコントローラを動作させて、前記第2のハイブリッドコントローラ出力を生成することを含む、前記第1のハイブリッドコントローラを更新すること
を更に含む、請求項18に記載の方法。
【請求項20】
前記第1の性能メトリック及び前記第2の性能メトリックに基づいて、第3のハイブリッドコントローラを動作させて、更なる第1のハイブリッドコントローラ更新版を生成することであって、前記更なる第1のハイブリッドコントローラ更新版が、更新された第1の制約値、更新された第1の動的パラメータ、または更新された第1の学習パラメータのうちの少なくとも1つを含む、前記更なる第1のハイブリッドコントローラ更新版を生成すること、
前記更なる第1のハイブリッドコントローラ更新版に従って、前記第1のハイブリッド
コントローラを更新することであって、前記第2の性能メトリックに基づいて、前記更新された第1のハイブリッドコントローラを動作させて、第2のハイブリッドコントローラ出力を生成することが、前記第1のハイブリッドコントローラ更新版及び前記更なる第1のハイブリッドコントローラ更新版の両方によって更新された前記第1のハイブリッドコントローラを動作させて、前記第2のハイブリッドコントローラ出力を生成することを含む、前記第1のハイブリッドコントローラを更新すること
を更に含む、請求項17に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2017年12月21日出願の米国仮特許出願第62/609,244号に対する優先権を主張するものであり、この米国仮特許出願を参照により本明細書に援用する。
【背景技術】
【0002】
特定のシステムを制御する(例えば、システムの出力を所望のレベルに維持する)コントローラを、様々に構成することができる。いくつかの例では、コントローラは、制御すべきシステムのモデルとなるように訓練されているか、または別の方法で指定された構成要素を含む場合がある。コントローラは、コントローラ全体の動的応答を改善するために、そのようなシステムモデリング構成要素と組み合わせた動的構成要素(例えば、フィルタまたは他の動的制御構造)を含む場合もある。しかしながら、そのようなコントローラは、制御対象システムの内部構造をモデリングするために指定された構成要素を含むにもかかわらず、例えば、コントローラのシステムモデリング構成要素を訓練する目的で用いられる訓練データを生成するのに用いられた条件とは異なる条件の下では、最適に機能しない可能性がある。
【発明の概要】
【0003】
対象のシステムの制御を改善するために、動的構成要素(例えば、フィルタまたはその他の動的コントローラ要素)と、制御対象システムをモデリングするために指定された構成要素(例えば、制御対象システムの観測された過去の挙動に基づいて訓練された学習済みシステムモデル)との両方を含むハイブリッドコントローラが提供され得る。このようなハイブリッドコントローラは、動的要素またはシステムモデリング要素のみを含む代替コントローラと比較して、システムの出力を制御することに関して、または他のいくつかの対象動作パラメータに関して、出力を向上させることができる。また、ハイブリッドコントローラは、コスト効率良く、計算リソース(例えば、サイクル、メモリ、コア)を最小限に抑えて実施することもできる。ハイブリッドコントローラは、その性能に関して(分析的に扱いやすい動的構成要素の存在のため)特定の形式的な保証を提供しながらも、被制御システムの複合体構造に関する学習済み情報を(システムモデリング構成要素を介して)考慮に入れ得る制御出力を生成することができる。
【0004】
しかしながら、このようなハイブリッドコントローラは、特定の状況下では最適ではない挙動を示す場合がある。例えば、制御対象システム及び/またはシステム環境が、ハイブリッドコントローラを作り上げる(例えば、コントローラの学習済みシステムモデルを訓練する)のに使用された条件とは大きく異なる場合、ハイブリッドコントローラは、最適ではない出力を生じ得る。そうした例では、ハイブリッドコントローラの監視及び統御を行うために、追加のコントローラ(例えば、追加のハイブリッドコントローラ)を設けてもよい。この追加のコントローラは、ハイブリッドコントローラによって制御されているシステムの出力を受け取ることができ、その出力に基づいて、ハイブリッドコントローラの動作を制御する1つ以上の出力を供給することができる。このような出力は、ハイブリッドコントローラの1つ以上の制約(例えば、システムのフィードバック制御に用いられる目標値、伝達待ち時間制限など)を含む場合がある。このような出力は、ハイブリッドコントローラの動的システムモデル構成要素、及び/または学習済みシステムモデル構成要素の1つ以上のパラメータの値を含む場合がある。例えば、統括コントローラの出力は、フィルタの極の大きさもしくは位相、フィードバック利得、またはハイブリッドコントローラの動的構成要素の他のいくつかの動作パラメータであり得る。別の例では、統括
コントローラの出力は、ハイブリッドコントローラの学習済みシステムモデル構成要素の学習率または他のパラメータであり得る。いくつかの例では、統括コントローラの出力は、ハイブリッドコントローラ上でプロセスが実行されるべきであるという、例えば、ハイブリッドコントローラの学習済みのシステムモデルが、非同期的に更新され、及び/または学習モードに入ることができるという判定であり得る。別の例では、統括コントローラの出力は、学習済みシステム構成要素で使用されるべき新しい学習モデルの選択であり、例えば、正則化回帰モデルからベイズモデルへの切り替えであり得る。別の例では、統括コントローラの出力は、例えば、当初のハイブリッドコントローラの配備後に、新しいリソースが動的に構成可能になった場合、ハイブリッドコントローラによって制御すべき新たなアクチュエータを指示してもよい。
【0005】
このような統括コントローラを使用して、複数のハイブリッドコントローラを制御することができる。追加または代替として、複数の統括コントローラ(例えば、複数の統括ハイブリッドコントローラ)が、1つ以上のハイブリッドコントローラを共通に制御してもよい。統括コントローラによって制御されるハイブリッドコントローラの各々が、より大きなシステム全体に属するサブシステムをそれぞれ制御してもよい。例えば、電気自動車のバッテリ充電/放電回路構成を第1のハイブリッドコントローラが制御してもよく、電気自動車の駆動モータを第2のハイブリッドコントローラが制御してもよい。このような例では、統括コントローラは、下位のハイブリッドコントローラを介してシステム全体を効果的に制御していると考えられ得る。統括コントローラは、それ自体がそれぞれのサブシステムを直接制御する下位ハイブリッドコントローラに入力(例えば、目標値またはその他の制約、フィルタの極またはその他の動的システムパラメータ、学習率またはその他の学習済みシステムモデルパラメータ)を適用すること、または別の方法で、その下位ハイブリッドコントローラの動作を修正し、もしくは制御することによって、システム全体を制御することができる。いくつかの例では、そのような統括コントローラは、それ自体がハイブリッドコントローラであってもよい。
【0006】
本開示の一態様は、1つ以上のコンピュータ、コントローラ、マイクロコントローラ、グラフィックプロセッシングユニット、テンソルプロセッシングユニット、特定用途向け集積回路、及び/または他のいくつかの様々な計算基体(computational substrate)によって実施される方法に関する。本方法は、(i)第1の期間の間に、システムの1つ以上の出力を検出すること、(ii)第1の期間の間に検出された1つ以上の出力に基づいて、システムの第1の性能メトリックを判定すること、(iii)少なくとも第1の性能メトリックに基づいて、第1のハイブリッドコントローラを動作させて、第1のハイブリッドコントローラ出力を生成すること、(iv)少なくとも生成された第1のハイブリッドコントローラ出力に従って、第2の期間の間に、システムを制御すること、(v)第3の期間の間に、システムの1つ以上の出力を検出すること、(vi)第3の期間の間に検出された1つ以上の出力に基づいて、システムの第2の性能メトリックを判定すること、(vii)少なくとも第1の性能メトリック及び第2の性能メトリックに基づいて、第2のハイブリッドコントローラを動作させて、更新された制約値を生成すること、(viii)更新された制約値に従って、第1の制約を更新すること、(ix)少なくとも第2の性能メトリックに基づいて、第1のハイブリッドコントローラを動作させて、第2のハイブリッドコントローラ出力を生成すること、ならびに(x)少なくとも生成された第2のハイブリッドコントローラ出力に従って、第4の期間の間に、システムを制御することを含む。第1のハイブリッドコントローラは、第1の制約、第1の動的システム、及び第1の学習済みシステムモデルを含む。第1のハイブリッドコントローラを動作させて、第1のハイブリッドコントローラ出力を生成することは、(1)第1の性能メトリックと第1の制約との間の第1の差を判定すること、(2)判定された第1の差を第1の動的システムに適用して、第1の動的システム出力を生成すること、(3)生成された第1の動的出力を第1の学習済みシステムモデルに適用して、第1のハイブリ
ッドコントローラ出力を生成することを含む。
【0007】
本開示の別の態様は、1つ以上のコンピュータ、コントローラ、マイクロコントローラ、グラフィックプロセッシングユニット、テンソルプロセッシングユニット、特定用途向け集積回路、及び/または他のいくつかの様々な計算基体によって実施される方法に関する。本方法は、(i)第1の期間の間に、システムの出力を検出すること、(ii)第1の期間の間に検出された出力に基づいて、システムの第1の性能メトリックを判定すること、(iii)第1の性能メトリックに基づいて、第1のハイブリッドコントローラを動作させて、第1のハイブリッドコントローラ出力を生成すること、(iv)生成された第1のハイブリッドコントローラ出力に従って、第2の期間の間に、システムを制御すること、(v)第3の期間の間に、システムの出力を検出すること、(vi)第3の期間の間に検出された出力に基づいて、システムの第2の性能メトリックを判定すること、(vii)第1の性能メトリック及び第2の性能メトリックに基づいて、第2のハイブリッドコントローラを動作させて、第1のハイブリッドコントローラ更新版を生成することであって、第1のハイブリッドコントローラ更新版が、更新された第1の制約値、更新された第1の動的パラメータ、または更新された第1の学習パラメータのうちの少なくとも1つを含む、第1のハイブリッドコントローラ更新版を生成すること、(viii)第1のハイブリッドコントローラ更新版に従って、第1のハイブリッドコントローラを更新すること、(ix)第2の性能メトリックに基づいて、更新された第1のハイブリッドコントローラを動作させて、第2のハイブリッドコントローラ出力を生成すること、ならびに(x)生成された第2のハイブリッドコントローラ出力に従って、第4の期間の間に、システムを制御することを含む。第1のハイブリッドコントローラは、第1の制約、第1の動的システム、第1の学習済みシステムモデル、及び第1の学習済みシステム更新モジュールを含む。第1の学習済みシステム更新モジュールは、システムから検出された少なくとも1つの出力に基づいて、第1の学習済みシステムモデルを更新すると共に、第1の学習パラメータに対応するタイミングまたはレートの少なくとも1つに従って、第1の学習済みシステムモデルを更新するように構成されている。第1の動的システムは、第1の動的システムの全体的な応答性に対応する第1の動的パラメータを有する。第1のハイブリッドコントローラを動作させて、第1のハイブリッドコントローラ出力を生成することは、(1)第1の性能メトリックと第1の制約との間の第1の差を判定すること、(2)判定された第1の差を第1の動的システムに適用して、第1の動的システム出力を生成すること、(3)生成された第1の動的出力を第1の学習済みシステムモデルに適用して、第1のコントローラ出力を生成することを含む。
【0008】
これらばかりでなく、他の態様、利点、及び代替物も、添付の図面を必要に応じて参照しながら、以下の詳細な説明を理解することによって、当業者に明らかになるであろう。更に、本文書の本概要部などで提供される説明は、限定ではなく、一例として、特許請求の範囲に係る主題を示すことを意図していることを理解すべきである。
【図面の簡単な説明】
【0009】
図1A】ハイブリッドコントローラの例の概略図を示す。
図1B】ハイブリッドコントローラの例の概略図を示す。
図2】コントローラのネットワークの例の概略図を示す。
図3】方法のフローチャートである。
図4】方法のフローチャートである。
【発明を実施するための形態】
【0010】
本明細書では、方法及びシステムの例について説明する。「例示的」、「例」、及び「例証的」という用語は、本明細書では、「例、実例、または例証として機能する」という意味で使用されることを理解されたい。本明細書で「例示的」、「例」、または「例証的
」と記載されているいかなる実施形態または特徴も、必ずしも他の実施形態または特徴よりも好ましいまたは有利であると解釈されるべきものではない。更に、本明細書で説明する例示的な実施形態は、限定する意図はない。開示されるシステム及び方法の特定の態様は、多種多様な構成の配置及び組み合わせを可能にすることが容易に理解されるであろう。
【0011】
本出願は、Wang, Shu, et al.「Understanding and Auto-Adjusting Performance-Sensitive Configurations.」Proceedings of the Twenty-Third International Conference on Architectural Support for Programming Languages and Operating Systems. ACM, 2018、Zhang, Huazhe, and Henry Hoffmann.「Performance & energy tradeoffs for dependent distributed applications under system-wide power caps.」Proceedings of the 47th International Conference on Parallel Processing. ACM, 2018、及びSantriaji, Muhammad Husni, and Henry Hoffmann.「Formalin: Architectural Support for Power & Performance Aware GPU.」2018 IEEE Conference on Control Technology and Applications (CCTA). IEEE, 2018の内容を参照により援用する。
【0012】
I.概要
本開示は、機械学習と制御理論とを組み合わせて、1つ以上のサブシステムで構成される階層型もしくは分散型の、またはその他の複合システムの性能の監視、制御、改善、及び/または最適化を、そのような複合システムが動的な動作条件で最適に機能することを保証する1つ以上の拡張機械学習制御システムを作成することによって行うシステム、方法、及び装置を開示する。1つ以上の各サブシステムは、同様の、別の、または共通の、ローカル及び/またはグローバルな目標を有しており、そのような複合システムのうちの制御された1つ以上の各サブシステム(複数可)は、1つ以上または全てのサブシステム(複数可)を一括して最適化及び/または監視する目的で、ハードウェア及び/またはソフトウェアにおいて密に、または疎に結合される。
【0013】
開示された実施形態のいくつかは、アプリケーションの実行、及びシステム動作性能のデータ評価の最中に、制御システム(複数可)の構成の動的な監視、学習、及び変更を行うことに基づいているが、これらに限定されない、実習方式(複数可)を使用することによって、そのような制御システム(複数可)またはサブシステム(複数可)を監視し、及び/または最適化することに関する。また、システムまたはサブシステム(複数可)は、その制御される少なくとも1つの制約及び/または性能目標を動的に調整してもよく、及び/または監視制御システム自体を調整してもよい。
【0014】
開示された実施形態のいくつかは、対象とする制約(複数可)及び/または性能目標(複数可)の、そのような最適化及び/または監視の結果として生じる、経時的なシステム性能における動的変化の評価から得られたメタデータを使用して、例えば、有益な制約及び性能目標を設立すること、1つ以上のシステムまたはサブシステムにおける極小/極大、または他の障害のカスケード、競合を防止すること、結果の生成を一層効率化する高度な学習方法を開発すること、例えば、潜在的な結果の時間的、逐次的なシミュレーション、または他のシミュレーションのために、機械学習方法(人工知能:ニューラルネットワ
ーク、または他のそのような方法)の動作的な評価及び/または改善を行う目的で、敵対的生成ネットワークを全体的または部分的に置換する、及び/または別の方法で性能を向上させることなどに関連している。
【0015】
機械学習制御システム(人工知能)は、金融取引、自律走行車、物流システム、チップ及びマイクロプロセッサ、軍事システムなどの応用分野において、業界全体にわたって広く展開され、採用されている。教師なし学習、教師あり学習、または半教師あり学習の教師あり構成要素の下で、これらのシステムのそれぞれは、制御すべき適用先環境を記述する大規模なデータセットの初期「学習」を必要とし、次に様々な複雑さのニューラルネットワークを介して処理され、そしてテストされて、配備後に、制御システムが、所望の結果を高確率でもたらすように、「十分に知っている」ことを確認する。教師なし学習、または半教師あり学習の教師なし構成要素の下では、このデータが頻繁に生成される。
【0016】
通常は、最適に近い状態で動作し得る制御ソリューションを開発しようとするときには、データが多いほど、こうした所望の結果である確率が高くなる。しかし、実際には、性能は最適にはならない場合があり、ニューラルネットワークまたは他の学習済み予測アルゴリズム及び/または制御アルゴリズムの内部の動きは容易には理解されず、データは、取得が高価であったり、または幅が限られていたりすることが多く、機械学習された制御システムは、リアルタイムで動作し、それ自体の追加の動作データを収集することができるので、その学習セット及び動作ロジックを更新しなければならない。
【0017】
従来の制御理論の手法では、システム動作パラメータが既知の微分モデルまたは差分モデルから導出される場合があり、確率論的な制御結果を生成し、学習またはその他のデータセット(複数可)の「完全性」と、予期しない動作条件に遭遇するリスクとに関する様々な度合いの不確実性をもたらす機械学習システムと対照をなす。
【0018】
機械学習と制御理論の手法とを組み合わせて、本発明者らが「ハイブリッド制御システム」と呼ぶものにすることができる。このようなハイブリッド制御システムは、1つ以上の対象とする制約及び/または性能目標を使用する動的最適化という従来のアイデアを導入し、深く統合されて、未学習の条件、予期しない「不十分な挙動」、またはその他の予定外または予想外の事象に遭遇した場合に、基となる機械学習済みシステムを、より迅速に、その最適な全体ターゲットへと追い込む、対象とする制約及び/または性能目標あたりでのシステム動作に対する応答性に優れた予測テーブルを構築することによって、機械学習済みシステムの機能を強化させる。
【0019】
例えば、このような複合の機械学習済みシステムは、強化学習、転移学習、または能動学習を用いたものを含む、教師ありシステム、教師なしシステム、または半教師ありシステムのいずれにおいても、ベイズ法及びその他の方法を用いた敵対的生成ネットワーク、例えばDCGAN、ワッサースタインGAN、及びDCGANアンサンブルなどの様々な数学的方法を作成することによって、学習プロセスを高速化するように適用されてもよい。
【0020】
例えば、これらの敵対的なディープニューラルネットワークは、複雑なデータ分布の条件付き及び無条件のモデリングの両方において、より効果的であることが証明されている。条件付き生成はインタラクティブな制御を可能にするが、新しい制御の作成、または以前のモデリングの更新には、多くの場合、費用のかかる再訓練が必要になる。いずれにしても、目標は、より良いモデリング(すなわち、より速く、より経済的で、より適切な予測など、他にも多くをもたらすモデリング)を開発することである。
【0021】
学習には、費用と時間がかかる可能性があり、ニューラルネットワークの内部動作につ
いての理解を深めるために、様々な手法を適用して、例えば、32ビット及び64ビットの精度から4ビット及び8ビットの精度の計算に精度を落とすことによって、必要な学習セットのサイズ及び幅に対する要求を減らすことができる。これらの方法のほとんどは、例えば計算効率の理解を深めること、リスクまたは性能を評価すること、教師なし学習の精度を改善すること、意図したものではない結果を減らすこと、及び信頼性が高く理解可能な機械学習システムで市場投入までの時間を短縮することを目的として開発されている。
【0022】
ニューラルネットワークは優れた経験的性能を発揮するが、内部の仕組みについては不明なところが多い。他の手法を適用して、数学的特性がよく理解された学習手法、例えば、各種のカーネル学習法及びスペクトラル学習法などの経験的性能を向上させることができる。
【0023】
概して、先行研究では、疎もしくは密に結合される個別に最適化されたサブシステムが合わせて動作し構成されているか、または同じ、関連する、もしくは異なる制約(複数可)及び/または性能目標(複数可)を用いて決定を行う1つ以上の組み合わせの、階層型、分散型、または他の複合型の制御システム、例えば、1つ以上のハイブリッド制御システムで構成される複合システムをシミュレーションすること、このシステムを作成すること、このシステムを観測すること、このシステムから学習すること、このシステムを同時監視すること、及び/またはこのシステムを最適化することのうちの1つ以上を行うためのシステムも方法も提供することができなかった。
【0024】
また、この先行研究では、動的な動作環境が、これらの初期条件またはその他の条件に違反した場合に挙動を訂正する手段も提供されず、また、1つ以上のサブシステムの異常作動が、一定の期間にわたって「正常」挙動になった場合に、分散型階層システムの挙動を経時的に最適化する方法を学習する手段も提供されない。
【0025】
また、この先行研究では、システムのグローバルな最適性能目標(複数可)に対する応答時間を改善するために、最適な制約(複数可)を設立する、動作中に監視する、または動的に変更するための静的または動的なシステムまたは方法も全く提供されず、また、実行時の監視データ及び/または最適化性能データを使用して、例えば、監視器自体の少なくとも1つの制約及び/または性能目標(複数可)を策定する、または動的に変更することも提供されない。
【0026】
また、この先行研究では、リアルタイムの動作環境において、システムまたは方法の実際の性能を、最初に設定し、次に監視し、そして制御する手段、より良い機械学習方法を開発する手段、時間的に、逐次的に、または別なようにして、種々の制約及びまたは性能目標のターゲットを使用して、様々な結果をシミュレートする手段も提供されない。
【0027】
以下を行うためのシステム、方法、及び装置について説明する。すなわち、
(1)ハードウェア及び/またはソフトウェアにおいて、密に結合されているか疎に結合されているかに関わらず、個々の複合システムもしくはサブシステム、または複合システムもしくはサブシステムの一群を監視して、及び/または最適化して、システム毎に、またはサブシステム毎に、同一であるか、異なっているか、グループ化されているか、または別の方法で設定されているかしてもよい、少なくとも1つの制約及び/または性能目標のセットを満たす、少なくとも1つの分散型及び/または階層型の機械学習済み制御システム(複数可)の複合制御システムを作成し、制御すること。
【0028】
(2)制御システムの少なくとも1つの制約及び/または性能目標を満たす静的または動的な動作環境でのその性能を監視すること。
【0029】
(3)監視対象のシステムまたはサブシステムが、指定された制約を最適に満たすように動作しているとき、または指定された制約を最適には満たさないときを判定すること。
【0030】
(4)この挙動に応答するように、学習器、コントローラ、または別のシステムを動的に調整すること(例えば、そのようなシステムの目標または他の動作パラメータを調整すること)。
【0031】
(5)1つ以上のサブシステムの異常作動が「新たな正常」である場合に、複合制御システムの動作からのデータを使用して挙動を監視し、最適化目標を作成すること。
【0032】
(6)機械学習済み制御システムを作成する初期プロセス中に、制御システムの最適化パラメータ及びまたは監視パラメータを作成することを可能にして、その後、監視し、静的または動的に、機械学習されるかまたは別の方法で、分散システムの動的性能をグローバルに、またはその構成要素のいずれか1つ以上で、もしくはそれ自体の管理で調整すること。
【0033】
(7)システムまたはそのいずれかのサブシステムが、その少なくとも1つの制約及び/または性能目標を動的に調整できるようにすること。
【0034】
(8)システムまたはサブシステム(複数可)の性能に関する情報を使用して、基礎となるシステムまたはサブシステム(複数可)のために、及び/または他者が使用する他の関連システム及び/または非関連システムのために、決定、予測、及び/またはシミュレーションを行う目的で使用することができる性能メトリックのデータベース及びライブラリ、または類似のレコードを作成すること。
【0035】
(9)最適化及び/または監視上のアクションに関する動的な動作情報(すなわち、性能メタデータ)を使用して、深層学習の新しい方法を含むがこれに限定されない、教師あり、教師なし、または半教師ありのデータセットの要件に対する要求を減らすこと。
【0036】
(10)各種の制約及び/または性能目標が、機械学習されるかまたはその他の方法で、様々に選択されまたは構成されているこれらの効果をシミュレートして、基礎となる制御システムが経時的に作用する実際のデータを設定した場合に、階層型分散システム構成の実現性を評価すること、である。
【0037】
先行研究では、動的イベントの実際の監視に応答して、複合の、最適化された機械学習済みシステムの堅牢性を向上させるためのシステム及び方法が開示されている。
【0038】
機械学習及び制御理論の能力は、既存の複合システムに適用することができる。学習システムは、システムの挙動を測定し、それを使用して最適化モデルを構築する。モデルは制御システムに渡され、制御システムは、そのモデルに加えて、指定された制約、及び測定されたシステム挙動を使用してパラメータを調整し、その制約が最も適切なように満たされることを確実にする。
【0039】
このアプローチの利点は2つある。第1に、学習と制御の組み合わせは、複雑性及び動態の両方を処理し、どちらか一方のみに依存するアプローチよりも優れている(単に便宜的に、機械学習済み構成要素及び制御理論的構成要素を備えたこれらの制御システムを、「ホフマン最適化フレームワーク」、「HOF」、「フレームワーク」、「抽象化コントローラ」、「抽象化制御システム」、「ハイブリッドコントローラ」、または「ハイブリッド制御システム」として識別することにする)。
【0040】
第2に、この組み合わせにより、結果として得られるシステムは明らかに堅牢になる。つまり、学習されたモデルと実際動作の挙動との間で、その組み合わせが、指定された制約に収束することを引き続き可能にする、システムの許容誤差を容易に判定して設定することができる。
【0041】
一般に、HOFを使用する複合の最適化されたシステムは、観測可能であり、かつ調整可能である。具体的には、指定された制約が分かっており、システムは、任意の制約範囲での動作を測定するフィードバックを生成するように、既に装置化されている。したがって、以下を含むが、それらに限定されないHOF制御の品質を観測することができる。すなわち、システムは安定しているか、または発振しているか?システムが発振しない場合、システムは所望の制約通りに安定するか?安定しない場合、安定挙動は所望の挙動から、どのくらい隔たっているのか?予期しないイベントによってシステムが不安定になったとき、システムが応答するのにどの位の時間がかかるか?同じイベントでは、安定化に向けて戻る過程で発生する最大の誤差は何か?システムが所望の挙動に安定した時点で、システムは、それらの制約に対して最適と推定される状態から、どれくらい隔たっているのか?これら全ての質問に対する答えは、指定された制約と挙動のフィードバックとの間の測定された差を使用して定量化することができる。
【0042】
最適化されたシステムを更に評価して、その結果、階層型及び/または分散型の複合制御システムにおいて、または現場にある間に最適化戦略及び/または最適化戦術と組み合わせて、スタンドアロンの監視器としての監視、または様々な監視を提供することができるという、この洞察により、本開示で説明されるシステム及び方法は、様々な利点を提供することができる。
【0043】
HOFの監視下にある複合制御システムは、制御システムが、それ自体またはシステム内の他のHOFの動作に関するデータのリアルタイムの動的な流入への応答に基づいてシステムを最適化する少なくとも1つの制約及び/または性能目標を有する。また、1つのHOFか、それとも1つ以上のHOFを有する階層システムで稼働する複数のHOFの複合体であるかに関わらず、制御されているシステムの最適化を更に最適化するために、それら自体を評価し、選択することができる制約及び性能目標を設定するシステムまたは方法についても本明細書で説明する。そのような分析の複雑さは、一例では、それ自体、システムの性能目標と整合性のある最適な静的制約または動的制約及び性能保証を設定するために、動作データを使用する(機械学習されたまたはされていない)HOFの使用か、またはオプションの検討を必要とする場合がある。
【0044】
HOFの挙動は、一連の時間ステップにわたる達成された動作と制約との差として表され得る。適切に動作するコントローラは、偏差を最適に訂正して、性能を要件の近くに維持する。
【0045】
これらのメカニズムを適用する上での重要な洞察は、いずれかの制約された範囲での所望の挙動と達成された挙動との時系列の差が、学習及び制御の両方の挙動を検出し、調整を促進するために使用できるという洞察である。より形式的には、時刻tにおける任意の制約cと測定された挙動bとの間の誤差eは、e(t)=c(t)-b(t)として計算され得る。
【0046】
例えば、時刻tでの誤差を計算したとなれば、それを使用して、異常作動をする、学習及び制御を組み合わせたシステムを検出することができる。HOFの動作に問題がある場合、HOFは次のような様々な挙動の1つ以上を示す可能性がある。
【0047】
発振:システムが安定することはなく、制約(複数可)及び/または性能目標(複数可)を下回る状態と上回る状態とを交互に繰り返す。発振のパターンは非常に複雑であり、極値に向かう途中で多くの中間状態を通過する。このような発振は、正の値から負の値になり、元に戻る誤差によって示され得る。
【0048】
動的変化への低速応答:誤差が急に大きな正または負の数になったが、その後、ゼロに近い大きさに戻るまでに多くの時間ステップがかかる場合。
【0049】
定常的に低性能:システムは目標を下回る性能で安定し、大きな正の誤差をもたらす。
【0050】
定常的に過剰性能:システムは目標を超える性能で安定し、大きな負の誤差をもたらす。
【0051】
制約の片方を偏重する:挙動の制約のわずかに上方及び下方に測定値が均等に分布する代わりに、コントローラが制約の片方を不釣り合いに偏重する。
【0052】
これらの異常作動または他の異常作動が検出される場合、学習器、コントローラ、目標自体、または制御システムの他のいくつかのパラメータを以下のように修正してもよい。
【0053】
学習器の修正:先行研究では、学習システムが局所最適解を排除し、コントローラが凸最適化問題を解決できることを前提としていた。しかしながら、予想される挙動または予想外の挙動により、新しい局所最適解が導入される場合があり、コントローラは、上記の「発振」または「制約の片方を偏重すること」を含むがこれに限定されない挙動を示すようになる。したがって、発振挙動、または制約の片方を偏重することが検出された場合は、学習器のパラメータを調整して、新しいデータ点を組み込むことができる。最も単純なケースの1つでは、複合システムの選択された構成とその結果として生じる挙動とを記録して、学習器の訓練データに追加してもよい。その場合、例えば、学習器は、局所最適解を削除し、期待される安定した性能を達成する新しいモデルを出力することができる。学習器がオンライン更新を行うように既に構築されている場合(例えば、ある種の強化学習器)、システムは、学習率を調整して、局所最適解に関する新しい情報が、制御システムによって使用されるモデルに組み込まれる速度を上げてもよい。
【0054】
コントローラの修正:あらゆる種類の制御システムは、外乱が与えられた場合に、誤差に対する感度を収束速度と引き換えるパラメータを公開する。例えば、PIDコントローラでは、これらの変数は1つ以上の極を含む。発振するシステム、または制約の片方を大きく偏重するシステムが与えられた場合、これらの制御パラメータを調整して、誤差許容範囲を広くすることと引き換えに、収束速度を上げることができる。この調整は、システムが制約に違反するのを防ぐが、制約のない挙動は、引き続き最適ではない可能性がある。また、これらの制御パラメータを調整することは、システムが動的なイベントの後に、再収束するのが遅過ぎることが観測される場合にも役立ち得る。例えば、元のシステムが悲観的過ぎて、実際の配備においては発生しない誤差条件を想定して設計されていたために、制御パラメータを調整することで、システムが、この予想以上に優れた挙動に対応することができる可能性がある。どちらの場合にも、制御パラメータの調整を学習パラメータの調整と組み合わせることが有用であり得る。例えば、予期せぬ誤差が発振の原因となっている場合、制御パラメータを調整してコントローラの動作を遅くし、発振を直ちに排除することができ、一方、学習パラメータをゆっくり調整して、新しい動作条件を取り入れた新しいモデルを生成することができる。
【0055】
目標の修正:更に、学習パラメータ及び制御パラメータ自体を修正してもよい。追加または代替として、新たな仮想目標を作成してもよい。仮想目標は、別の方法では検出でき
なかった、または設計時に予想されなかった挙動を訂正するために使用することができる。例えば、配備された環境が予想よりも遥かに騒々しい場合(例えば、設計されたものよりも変化量が大きい場合)、提案されたシステムは、指定された制約を上書きして、異なる動作範囲の新しい制約を設定してもよい。例えば、システムが、95パーセンタイルのサービス品質制約を有するが、実行時の変化量が予想よりも大きい場合、更に高いサービス品質を提供する仮想目標を設定してもよい。別の例では、配備されたシステムが、ユーザ指定の1つまたは複数の目標を満たすことができなくなる可能性がある。目標の非到達可能性は、標準的な制御方法論(通常は設計時に適用され、本明細書では実行時または他の評価(複数可)のために修正され得る)を使用してテストすることができる。この制御性テストにより、システムは、指定された目標を満たすことができなくなったと形式的に結論付けることができるようになり得る。この場合、システムは、所望の目標とは異なる仮想目標またはその他の目標を設定してもよく、次いでその状態を報告するようにしてもよい。
【0056】
機械学習済みシステムは、例えばメモリ不足にならないなどの厳しい制約、及び性能構成と性能との間の間接的な関係など、多くの性能構成に特有の課題を容易に処理できない。それによって、例えば、システムが、個別のまたは関係のある構成要素またはサブ構成要素の階層型アーキテクチャまたは分散型アーキテクチャを含むように設計されている場合には、更に一層、複雑で困難になる。
【0057】
このような分散アーキテクチャで性能構成を設定し、調整するには、多くの課題があり、例えば、(1)メモリ不足またはディスク不足の問題のような、厳しい性能の制約を脅かす性能構成、(2)他のシステム変数の閾値を設定することによって、間接的に性能に影響を与える性能構成、(3)特定のシステムイベントに関連付けられ、したがって条件付きでのみ効力を生じる性能構成、(4)多くの場合、種々の構成が同じ性能目標に同時に影響を及ぼし、調整を必要とすること、(5)ローカルの目標を持つサブシステムと、グローバルな目標を持つマスターである主要システムとを制御する階層システムにおいて、競合が発生し、即時の応答及び調整を必要とすること、(6)リアルタイムのイベントが、「正常」を「新たな正常」の状態へと長期的な変化をもたらす場合があり、1つ以上の制約を、一時的または永続的に、部分的または全体的に、不適切にする、または危険にさえする場合があること、及び(7)制御システムの最適化と監視との役割の間に生じる潜在的な競合または調整要件の解決がある。
【0058】
システム起動時にユーザが性能構成を設定する従来構成フレームワークとは異なり、特定の実施形態では、ホフマン最適化フレームワークは、動作中に、疎または密に結合されたハードウェア及び/またはソフトウェアの制御システムに1つ以上のHOFを含めることができる分散アーキテクチャ全体の性能構成を自動的に設定し、動的に調整する。ホフマン最適化フレームワークは、性能構成設定の問題を分解する。
【0059】
HOFは、他の性能メトリックを監視するかどうか、及び/または最適化するかどうかに関わらず、性能の制約、目標、及び/または形式的な保証を、それらの制約及び/または目標を満たすための構成の設定及び調整の方法を気にすることなく、指定できるようにする。HOFは、例えば、分散した複合システム上で、1つ以上のHOFの有無に関わらず、他の複合システムの存在下で、そのようにすることができる。HOFは、これらの最適化能力を提供して、動的に(実行中に)、静的に、または他の手段により、制約及び/または目標に性能構成を設定するが、更に、複合システムのグループ、または1つ以上のHOFのグループの監視器として機能して、目標及び制約に対する性能を監視し、管理し、または別の方法で最適化する能力をも提供する。
【0060】
上記のように、これらの制御システムの主な利点の1つは、複合の最適化されたシステ
ムを、例えば、システムの実行中に発生する可能性がある異常作動、誤差、またはその他の準最適な状況もしくは構成などに対して堅牢にすることである。このような状況は、単独であれ、組み合わせであれ、いくつかの原因から、例えば、システムが本来設計されていない環境にシステムが遭遇することから生じる可能性があり、正確な原因を理解したり、または検出したりする必要はない。
【0061】
先行研究の1つの限界は、例えば、複数の別々の構成要素(サブシステム)が、システム全体の性能に寄与し、これらのサブシステムのそれぞれが、ローカル及びシステム全体の固有の要件に合わせて最適化されている場合に、しばしば発生する実際の状況を無視する場合があるということである。
【0062】
例えば、3層構造のウェブサーバでは、全体的なレイテンシ及びパワーは、(1)ロードバランサ、(2)リクエストマネージャ、及び(3)バックエンドデータベースのレイテンシ及びパワーによって決まる。大規模なシステムでは、これらの個々の構成要素は、半自律的に動作することができ、物理的に分離してもよい。その他の例としては、複雑な物流システムにおいて、他の物理的資産と協働して動作するドローン及びその他の配送車両の複合保有車両、または社内外の両方の性能目標を有する自律走行車などがある。
【0063】
複数のHOF実施態様の管理は、動作時には更に複雑化する場合があり、固有のサブシステムのための個々のHOF実施態様のローカルまたは他の目標(性能保証及び/または制約)が、グローバルな性能目標を満たすように、時として、グローバルなソリューションの配列、及びそれらの実施のタイミングを拡大するか、または縮小することがある。
【0064】
これらの分散された複合制御システムを最適化するには、監視HOF方法が必要である。本明細書では、高位のHOFコントローラ(または複数のそのような高位HOFコントローラ)が、その全体のシステム性能のための少なくとも1つの制約及び/または性能目標を有し、下位のローカルHOF及びまたは他の手段が、これらの個々のローカル目標を満たすように機能するときに、これらによって管理されているグローバル目標に向けた進捗状況を、高位HOFコントローラが追跡し、管理するシステム及び方法を開示する。
【0065】
いくつかの例では、HOFは、少なくとも1つのHOF実施態様で構成される分散階層を制御するために使用してもよい。
【0066】
いくつかの例では、制約及び/または性能目標は、単純または複雑な分散システムにおける単一または複数のHOFアーキテクチャをHOFが制御するときに、それ自体が類似または異なる制約と共に使用されているHOFを制御するために使用してもよい。
【0067】
いくつかの例では、制約及び/または性能目標は、単純または複雑な分散システムにおける単一または複数のHOFアーキテクチャにおいて、HOF自体を制御している、及び/またはHOF自体のリソース活用を管理するHOFを制御するために使用してもよい。
【0068】
いくつかの例では、HOFまたは1つ以上のHOFで構成されるネットワークは、動作データを監視し、制御システムの性能に関するデータを収集し、報告し、そして応答することによって、制御システムの監視及び/または最適化の役割に適用することができる。
【0069】
一例としては、自律走行車の決定を行うために画像プロセッサの使用されている画素数を監視することが挙げられる。画像がシステム要件を満たしていない場合、監視の役割は、画像プロセッサからのイメージングシステムの利用可能な画素数と他の要素とが、そのセンサの許容範囲内にあるかどうかを評価し、次に、設立された制約及び性能目標に基づいて、最適な解決策を用いて動作を推論することになる。その後、情報は、後で最適化を
決定するために学習器が利用できるようになる。
【0070】
いくつかの例では、HOFは、単純または複雑な分散制御システムにおいて、少なくとも1つ以上のHOFで構成される単一または複数のアーキテクチャをHOFが制御し、及び/または最適化するときに、単独でまたは組み合わせて、最適化及び/または監視の役割で使用することができる。
【0071】
ホフマンフレームワークの単一配備のためのもう1つの制限は、システムの設計時に最大許容誤差を把握し、または推定する必要があることである。システムが配備され、予期せぬ大きな誤差が(例えば、予期せぬシステムのカスケード障害のために)発生した場合、システムがユーザ指定の動作制約を満たすという保証が失われる。
【0072】
この制限を補うために、本開示は、上記の制限を克服するためのシステム及び方法を提供し、複合型の最適化されたシステムが、例えば、カスケード型の実行時エラーに遭遇した時でも、または異常作動が「新たな正常」になった時でも、実行し続けることを可能にする。
【0073】
いくつかの例では、1つ以上のHOFを使用して、1つ以上のHOFまたは他の制御方法論を制御し、及び/または最適化し、それによって、例えば、元のシステムまたは他のシステムの制御からアクチュエータを除去することによって、動作境界を作成することができる。
【0074】
いくつかの例では、階層型及びまたは分散型の制御システムの挙動は、システムが静的または動的な動作データに応答するとき、制約及び/または性能保証を調整して、グローバルまたはローカルの目標を満たすように手段を更に最適化するために、監視される。
【0075】
いくつかの例では、複合制御システムの動作と、制御されている基礎となる複合システムの性能とから得られる動作上の「メタデータ」が、動作データとして収集され、集合的もしくは個別にまたは組み合わせて制御システム(複数可)に通知するために使用され、その応答が観測されて記録される。代替案を分析して、基礎となるシステムまたは他のシステムからの他のデータを用いる他の用途のための理想的な最適化戦略(複数可)及び/または静的または動的な戦術(複数可)を作成するために、(特に)時間的情報及びイベントシーケンス情報が、HOF(複数可)の監視及び/または最適化の両方のために、ならびに学習器及び/またはコントローラの後分析及びシステム性能改善のために、実行時の動作条件及び動作ターゲットに応答して、動作性能の変更を設定するように、動的に使用される。
【0076】
いくつかの例では、そのような分析に由来するツールは、時間的に動的であり、その同じ期間にわたって評価される動作データに応答して変化する、1つ以上のHOFのための制約及び/または性能目標を作成するために使用され、例えば、任意の時点での最適化、及び/または監視目標が、動作性能に応じて同じであってもよく、または異なっていてもよいようにする。
【0077】
これらのツールは、例えば、テストデータまたは学習セットを使用するシミュレーション、または入力データに応答する他のシミュレーションとして最初に配備されてもよい。また、これらのツールは、実行中のシステム、シミュレーション、またはシミュレーション(複数可)と実行中のシステム(複数可)の組み合わせに配備してもよい。
【0078】
例えば、これらのツールは、例えば機械学習済みツールを使用してもよく、電子的に、人間の関与の有無に関わらず、及び/または両方の方法、または自然言語生成から派生し
たレポートなどの新規の方法を組み合わせるシステムに、配備させてもよい。
【0079】
II.ハイブリッドコントローラの例
本明細書で使用するとき、「ハイブリッドコントローラ」という用語は、協働して、1つ以上の制御入力(例えば、制御下のシステムから検出されるか、または別の方法で受信される入力)に基づいて、1つ以上の制御出力(例えば、制御下のシステムに適用される出力)を生成する複数の異なるサブ構成要素を含むコントローラを指す。そのようなハイブリッドコントローラの種々の構成要素は、それぞれの入力を受け取り、それぞれの出力を生成し、ある構成要素の出力は、ハイブリッドコントローラの特定の構成に従って、別の構成要素に入力として提供され得る。特定の例では、ハイブリッドコントローラは、動的システム構成要素及び学習済みシステムモデル構成要素を含んでもよい。動的システム構成要素には、コントローラが時間的な動態(例えば、1つ以上の極及び/または零点によって特徴付けられる時間的な動態)を示すと共に、コントローラ/システム性能全体に関する特定の形式的な保証を提供することを可能にするために、1つ以上のフィルタ、積分器、微分器、利得、またはその他の要素を含めることができる。学習済みシステムモデル構成要素には、ルックアップテーブル、多項式関数、多変数関数、ニューラルネットワークもしくは他のモデルでエンコードされた任意の複雑挙動、またはハイブリッドコントローラが、制御下のシステムの観測された過去の最適(及び準最適)な挙動に適合した制御を提供すること、複雑な非線形及び/または多次元の挙動を示すこと、及び少数の入力に基づいて多くの出力を提供することを可能にする、制御対象システムの挙動及び/または構造に関する情報(例えば、訓練データ)に基づく他のいくつかの要素を含めることができる。ハイブリッドコントローラには、複数のそのような学習済みシステムモデルを含めることができ、ハイブリッドコントローラは、これらのモデルの間を(例えば、制御対象システムの動作に関して受け取ったデータに対する、各学習済みシステムモデルの正確さの信頼度に基づいて)切り替えることができる。
【0080】
また、ハイブリッドコントローラには、制御対象システムの動作に関する新たに受信されたデータに基づいて、学習済みシステムモデル(複数可)を訓練し、または別の方法で更新するように構成された学習済みシステム更新モジュールを含めることもできる。そのような学習済みシステム更新モジュールは、更新スケジュールに従って(例えば、学習済みシステムモジュールを、経過した絶対秒数、計算されたコントローラ時間ステップ数、または他のいくつかのスケジュールごとに1回、更新するように)、及び/または他のいくつかの情報または条件から決定されたタイミングに従って(例えば、制御対象システムの観測された挙動が、学習済みシステムモデルによって予測された挙動から、指定の閾値を超えて逸脱した場合に、学習済みシステムモデルを更新するように)、学習済みシステムモデル(複数可)を更新するように動作してもよい。このような学習済みシステム更新モジュールは、学習済みシステムモデルを、例えば、勾配降下訓練法に関係したステップサイズまたはステップ長によって指定された量だけ更新するように動作してもよい。
【0081】
図1Aは、対象のシステム101aを制御するように構成されたハイブリッドコントローラ100aの例を示す。本システムは、対象の任意システム、例えば、サーバもしくは他の何らかのコンピューティング基体の1つ以上のプロセッサ、物流ネットワークの物流ハブもしくは他の施設、ロボットシステムの関節モータもしくは他のサブ構成要素、またはシステムが制御するのに有利である他の何らかのシステムであってよい。ハイブリッドコントローラ100aは、制約120a、動的システム130a、学習済みシステムモデル140a、及び学習済みシステム更新モジュール150aを含む。また、ハイブリッドコントローラ100aは、被制御システム101aから入力110aを受け取る。
【0082】
制約は、例えば、システム101aの出力のために指定された目標値であり得る。コントローラ100aは、システム101aの出力に、そのような制約120aの値を反映す
るようにシステム101aを制御するための出力を生成し得る。システム101aの出力が検出され、次いで入力110aを介して制約と比較される。いくつかの例では、入力110aは、検出されたシステム101aの出力のための単なるパススルーであってもよい。追加または代替として、入力110aは、被制御システム101aの1つ以上の検出された出力に基づいて有用な入力値(例えば、システムの全体的な性能を表す性能メトリック)を生成するために、フィルタ、伝達関数、または他のいくつかのアルゴリズムもしくは他の関係性を含んでもよい。例えば、システム101aの出力は、プロセッサのいくつかのコアのそれぞれによって実行される1秒あたりの動作数であってもよく、入力110aは、全てのコアの1秒あたりの動作数の合計に対応する性能メトリックであってもよい。別の例では、システムの出力は、システム101aの全体的な性能の尺度(例えば、サーバによって実行される1秒あたりの総動作数)であってもよく、入力110aは、ベースライン性能レベルに対する、経時的なサーバ出力の増加または「高速化」に対応する値であってもよい。別の例では、システムの出力は、システム全体の性能とプロセッサの全体的な電力消費との1つ以上の導出された測定値を含むことができ、システムへの入力は、性能及び電力消費の相対的な変化に対応する2つの値を含むことができる。この例では、入力及び出力はベクトルであり、各ベクトル成分はメトリックまたは信号である。
【0083】
次に、制約120aと入力110aとの間の差が判定され、その差が動的システム130aに適用されて、動的システム出力が生成される。動的システムは、1つ以上の、微分器、積分器、利得、和算、多極フィルタ、サンプルホールド、漏れ積分器、フィードバックループ、目標値、非線形関数、非線形フィルタ、多項式関数、有限インパルス応答フィルタ、無限インパルス応答フィルタ、内部状態変数、または差分入力に基づいて動的で時間依存の出力を提供するように構成された他の動的要素を含んでもよい。動的システム構成要素130aの挙動は、1つ以上のパラメータ(例えば、フィルタの1つ、またはその1つ以上の極及び/または零点、または動的システム130aの他の要素のうちの1つ以上のパラメータ)によって特徴付けられ得る。例えば、動的システムは、1つ以上の極の振幅及び位相によって特徴付けられたフィルタを含んでもよい。
【0084】
動的システム構成要素130aの出力は、学習済みシステムモデル構成要素140aに適用されて、システム101aに適用され得る1つ以上のコントローラ100a出力を生成する。学習済みシステムモデル構成要素140aは、1つ以上の出力を生成することができ、これらの出力は、その後、被制御システム101aに適用され得る。学習済みシステムモデルの出力は、被制御システム101aのアクチュエータまたは他の要素のセットのそれぞれの1つのための1つ以上の動作パラメータを含んでもよい。例えば、被制御システム101aは、演算器(例えば、離散プロセッサ、プロセッサコア、メモリユニット、算術論理演算装置、サーバブレード、テクスチャ処理ユニット)のアレイを含む計算基体(例えば、サーバ、GPU、サーバのネットワーク、クラウドコンピューティングシステム)であってもよい。そのような例では、コントローラ100aの出力は、演算器のそれぞれのための1つ以上の動作パラメータを含んでもよい。そのような動作パラメータには、クロック速度、メモリバス速度もしくは他のバス速度、ビット幅、特定の演算器がアクティブであるべきか非アクティブであるべきか、アクティブであるべき演算器サブ構成要素(例えば、ALU、メモリセル)の数もしくは識別情報、または被制御システム101aの演算器のうちの1つ以上の演算器の他のいくつかの動作パラメータが含まれ得る。
【0085】
学習済みシステムモデル構成要素140aは、動的システム構成要素130aの出力を、制御システム101aを制御するために適用可能な1つ以上の出力に変換するための1つ以上の人工ニューラルネットワーク、多項式関数、非線形関数、多変数関数、区分的定義関数、ルックアップテーブル、または他の要素を含むことができる。いくつかの例では、学習システムモデル構成要素140aは、複数の異なる学習システムモデル(例えば、異なる基礎構造を有するモデル、訓練/学習に先立って異なる開始条件に初期化されたモ
デル、異なる訓練データのセットに公開されたモデル、利用可能な訓練データに基づいてモデルを訓練するために使用される訓練方法に関して異なるモデル、及び/または何らかの他の検討事項に関して異なるモデル)を含んでもよい。そのような例では、学習済みシステムモデル構成要素140aは、その学習済みシステムモデルのセットのうちの1つを選択し、動的システム構成要素130aの出力を、選択された学習済みシステムモデルに適用して、被制御システム101aを制御するために適用可能な1つ以上の出力を生成するように構成されてもよい。このような選択は、例えば、被制御システム101aの挙動を予測することに関して、学習済みシステムモデルのそれぞれの精度の推定値に基づいて、または学習済みシステムモデル構成要素140aのサブ要素における他のいくつかの判定された信頼度に基づいて実行されてもよい。そのような推定値は、被制御システム101aからの検出された出力に基づいて、例えば、学習済みシステム更新モジュール150aによるそのような出力に基づいて決定され得る。
【0086】
例えば、図1Bは、対象のシステム101bを制御するように構成され、制約120b、動的システム130b、及び学習システムモデル140bを含み、被制御システム101bから入力110bを受け取るハイブリッドコントローラ100bの例を示す。被制御システム101bは、例えば、被制御システム101bの演算器であり得る4つのサブシステム105a、105b、105c、105dを含む。学習済みシステムモデル140bは、ルックアップテーブル145bを含む。ルックアップテーブル145bは、複数のエントリを含み、それぞれがシステム101bを制御するために適用され得る少なくとも1つの出力を含む。一例として示すように、図1Bのルックアップテーブル145bの各エントリは、被制御システム101bの演算器105a、105b、105c、105dのそれぞれのクロック速度(「ClkA、ClkB、ClkC、ClkD」)の値を含む。ルックアップテーブル145bの各エントリは、更に、最初の2つの演算器105a,105bのコアがいくつアクティブであるか(「CoresA,CoresB」)と、後者の2つの演算器105c,105dによって実行される演算のビット幅(「WidthC,WidthD」)との表示を含む。動的システム構成要素130aの出力の値は、ルックアップテーブル145bの複数のエントリから特定のエントリを選択して、学習済みシステムモデル140bから出力し、それによってシステム101bを制御するために使用される。例えば、ルックアップテーブル145bの各エントリは、動的システム構成要素130a出力の値の範囲に対応してよい。
【0087】
本明細書で説明されるハイブリッドコントローラの学習済みシステムモデル構成要素(例えば、140a、140b)は、様々な方法で生成することができる。制御すべきシステムの完全なモデルが分かっている場合、この完全なモデルを使用して、学習済みシステムモデルを生成してもよい(例えば、ルックアップテーブルのエントリと、対応する動的システム出力値の範囲を生成してもよい)。追加または代替として、制御対象システムの過去及び/または進行中の観測された挙動に関する情報、または同様のシステム(例えば、制御すべきサーバまたは他のシステムの特定のモデルの他の例)の挙動に関する情報を使用して、ハイブリッドコントローラの学習済みシステムモデルの生成、更新、及び/または訓練を行ってもよい。例えば、学習済みシステム更新モジュール150aは、被制御システム101aから検出された出力に基づいて、学習済みシステムモデル構成要素140aを更新し、及び/または訓練することができる。
【0088】
制御対象システムの挙動及び/または構造に関する取得された追加のデータに基づく、学習済みシステムモデルに対する更新は、ハイブリッドコントローラの実施に使用されるのと同じ計算基体(例えば、プロセッサ、サーバ)によって、ローカルで実行され得る。追加または代替として、そのような更新はリモートシステム(例えば、クラウドコンピューティングシステム)によって実行されてもよく、その後、更新された学習済みシステムモデルに関する情報(例えば、更新された1つ以上のニューラルネットワークの重み、ま
たは他のパラメータの値、更新されたルックアップテーブル)は、リモートシステムから、ハイブリッドコントローラを実施しているシステムに送信されてもよい。このようなリモートシステムは、複数の異なるハイブリッドコントローラに対して、そのような学習ベースの更新を提供するサービスとして機能し得る。このようなリモートシステムは、ハイブリッドコントローラを実施しているシステムからリモートシステムに送信された制御対象システムに関する情報(例えば、適用された制御出力、検出されたシステム出力及び/または性能メトリック)に基づいて、このような学習更新を生成してもよい。
【0089】
ハイブリッドコントローラの学習済みシステムモデルのそのような更新、及び/または制御対象システムの挙動及び/または構造についての学習は、継続的に、例えば、指定されたレートで、または指定されたスケジュールに従って行われ得る。追加または代替として、学習済みシステムモデルに対する更新は、例えば、ハイブリッドコントローラの性能が閾値性能レベルを下回ったことを検出すること、制御対象システムの性能の急激な変化を検出すること、制御対象システムが特定の望ましくない動作状態に入ったことを検出すること、または他の何らかのイベントを検出することなど、いくつかのイベントを検出することに応答して行われ得る。学習済みシステムモデルが更新されるレートまたはタイミング、及び/またはそのような更新の大きさまたは程度(例えば、勾配降下またはその他の反復更新プロセスのステップサイズ)は、学習済みシステムモデルの精度の推定値に基づいて、または学習済みシステムモデルにおける他のいくつかの判定された信頼度に基づいて判定されてもよい。例えば、モデルの推定精度が低い場合に、学習済みシステムモデルをより頻繁に、及び/または大幅に更新してもよい。そのような推定値は、例えば、学習済みシステムモデルによって生成された予測されたシステム出力と、システムの観測された出力との間の誤差の量に基づいて決定されてもよい。
【0090】
また、そのような判定された信頼度は、ハイブリッドコントローラの動作の他の態様を更新し、または制御するために使用されてもよい。例えば、動的システム構成要素の極及び/または零点が、例えば、学習済みシステムモデルの信頼度が低いときに、動的システム構成要素の応答性を低下させるように調整されてもよい。これは、例えば、学習済みシステムモデルが制御対象システムの挙動を正確に予測できないときに、目標(例えば、最大メモリ、最大電力使用)を超える結果となる制御出力をハイブリッドコントローラが生成する可能性を減らすために行ってもよい。
【0091】
いくつかの例では、ハイブリッドコントローラ(例えば、100a、100b)によって制御されるシステム(例えば、101a、101b)は、計算基体(例えば、1つ以上のコントローラ、プロセッサ、またはその他のコンピューティング要素を含む、サーバ、コンピュータ、グラフィックプロセッサ、またはその他のシステム)を含む。これらの例では、ハイブリッドコントローラは、システムの計算基体によって提供される計算リソースの一部分を使用して実施され得る。追加または代替として、ハイブリッドコントローラは、別のコントローラ、プロセッサ、または他のコンピューティング要素(複数可)(例えば、特定用途向けに作られた特定用途向け集積回路)上で実施されてもよい。
【0092】
III.マルチハイブリッドコントローラアーキテクチャの例
上記のように、ハイブリッドコントローラは、対象のシステムを制御するために適用され得る。このようなハイブリッドコントローラは、制御対象システムの複雑挙動及び/または複雑構造に関する観測された情報を組み込む能力と、例えば、モデルの信頼度が低い場合にコントローラ全体がより「控え目に」振る舞うように、学習済みシステムモデルの精度に対する判定された信頼度に基づいて、動的コントローラの極またはその他の時間的動態を修正することによって、全体的なシステム性能に関する特定の保証を示すように形式的に示すことができる時間的に動的なコントローラ出力を提供する能力を含む、多くの利点を提供する。しかし、このようなハイブリッドコントローラの性能は、特定の状況下
では低下する場合がある。例えば、制御対象システム及び/またはそのようなシステムの環境が、ハイブリッドコントローラを生成するため(例えば、ハイブリッドコントローラの学習済みシステムモデル要素を訓練するため)に使用されるシステム及び/または環境の状態から大きく逸脱している場合、ハイブリッドコントローラは、最適ではない出力を生成するおそれがある。
【0093】
例えば、制御対象システムが、サーバのネットワークである場合があり、サーバのネットワークを統御するために使用されるハイブリッドコントローラは、サーバの1つに重大な障害が発生した場合に、最適ではない性能を発揮する可能性がある。別の例では、制御対象システムが産業用ロボットである場合があり、ロボットの関節サーボが動作不能になるか、または性能の大幅な低下を示す場合に、ロボットを統御するために使用されるハイブリッドコントローラは、最適ではない性能を発揮する可能性がある。更に別の例では、制御対象システムが、荷物を配送するための物流ネットワークである場合があり、ネットワークで使用されている空港が悪天候のために閉鎖された場合に、ネットワークを統御するために使用されるハイブリッドコントローラは、最適ではない性能を発揮する可能性がある。
【0094】
このような状況では、ハイブリッドコントローラの性能が低下する可能性がある。また一方、ハイブリッドコントローラの性能は、これらの状況でハイブリッドコントローラを変えることによって(例えば、ハイブリッドコントローラの1つ以上の制約または他のパラメータを変更することによって、コントローラの学習済みシステムモデルを更新することによって)、改善することができる。これには、コントローラの制約(例えば、120a、120b)を変更する(例えば、達成が容易な性能目標を指定する)ことが含まれてもよい。別の例では、ハイブリッドコントローラの動的システム要素のフィルタ極または他のパラメータを(例えば、制御対象システムの出力の変化に対して、ハイブリッドコントローラが、多かれ少なかれ応答性を有するように)調整することによって、コントローラの時間的動態が修正され得る。更に別の例では、ハイブリッドコントローラの学習済みシステムモデルを修正してもよい。これには、制御対象システムに関する最近の情報に基づいて、学習済みシステムモデルを更新すること(例えば、学習済みシステムモデルの非同期更新を実行すること)や、または学習済みシステムモデルに適用される進行中の学習プロセスの更新レート(例えば、逆伝播または他の学習アルゴリズムの更新レート、ステップサイズ)を調整することが含まれてもよい。
【0095】
ハイブリッドコントローラの動作及び/または構成に対するそのような調整が指示されていることを判定するために、及び/またはそのような調整を生成するために、1つ以上の監視コントローラ(複数可)が提供され得る。そのような監視器コントローラは、入力として、制御対象システムの出力(複数可)を受け取り、出力として、ハイブリッドコントローラのパラメータまたは制約の値、ハイブリッドコントローラの要素(例えば、学習済みシステムモデル)の更新のタイミング、またはハイブリッドコントローラの動作及び/または構成に関連する他のいくつかの出力を生成することができる。
【0096】
このことは、一例として図2に示される。第1のハイブリッドコントローラ200aは、第1のシステム201aに制御出力を供給し、第1のシステム201aから1つ以上の入力を検出するように構成される。第1のハイブリッドコントローラ200aは、入力210a、制約220a(例えば、動作目標値)、動的システム230a、及び学習済みシステムモデル240aを含む。システム201aの出力は、統括コントローラ250への入力としても供給される。統括コントローラ250は、第1のシステム201aからの検出された出力に基づいて、制約220a、動的システム230a(例えば、フィルタの極の値または他のいくつかの動的パラメータ)、及び/または学習済みシステムモデル240a(例えば、更新された学習率またはその他のパラメータ、学習済みシステムモデルを
更新する必要があるという表示)のうちの1つ以上の値及び/または更新を生成するように構成される。
【0097】
統括コントローラ250は、様々な方法で構成することができる。いくつかの例では、統括コントローラ250は、1つ以上の制御要素、例えば、フィルタ、フィードバックループ、積分器、利得、微分器、加算器、多項式関数を含んでもよい。いくつかの例では、統括コントローラ250は、それ自体がハイブリッドコントローラであってもよい。いくつかの例では、統括コントローラ250は、第1のシステム201aの出力における1つ以上のパターンまたは条件を検出し、ハイブリッドコントローラ200aの動作及び/または構成を応答性良く調整するように構成され得る。この例は、統括コントローラ250が、そのようなパターンまたは条件の存在を明示的に検出すること(例えば、システム出力を閾値と比較すること、パターンを検出するためにテンプレート照合アルゴリズムを使用すること)、及び/またはコントローラの要素(例えば、フィルタ、ルックアップテーブル、フィードバックコントローラ)が、そのような検出を効果的に行うように構成されていることを含んでもよい。
【0098】
そのような検出されたイベントは、システム201a出力において、システム201a出力のフィルタリングされたバージョンにおいて(例えば、システム201a出力の統合された、バンドパスされた、微分化された、または別の方法でフィルタリングされたバージョンにおいて)、システム201a出力の目標値によってオフセットされたバージョン(例えば、制約220aの値によってオフセットされたバージョン)において、または別の方法で処理されたシステム201a出力のバージョンにおいて、1つ以上のパターンまたは条件の存在を検出することを含んでもよい。システム201a出力に基づいてパターン、条件、またはイベントを検出することは、(i)システム201aの出力が発振していることを検出すること、(ii)システム201aの入力及び/または環境の変化に応答して、システム201aの出力の応答が遅すぎるか(例えば、閾値レートより遅い)、または速すぎる(例えば、閾値レートより速い)ことを検出すること、(iii)システム201aの入力及び/または環境の変化に応答して、システム201aの出力が(例えば、閾値を超えて)目標値をオーバーシュートすることを検出すること、及び/または(iv)システム201aの出力が、目標値(例えば、制約220a)に対して、(例えば、閾値を超えて)一貫したバイアスを示すことを検出することを含んでもよい。
【0099】
このような統括コントローラは、複数の異なるハイブリッドコントローラに、そのような制御/監視を提供するために適用されてもよい。これは、図2に示されており、第2のシステム201bに制御出力を供給し、第2のシステム201bから1つ以上の入力を検出するように構成された第2のハイブリッドコントローラ200bをも含む。第2のハイブリッドコントローラ200bは、入力210b、制約220b、動的システム230b、及び学習済みシステムモデル240bを含む。第2のシステム201bの出力は、統括コントローラ250への入力としても供給される。統括コントローラ250は、更に、第2のシステム201bからの検出された出力に基づいて、制約220b、動的システム230b、及び/または第2のコントローラ200bの学習済みシステムモデル240bのうちの1つ以上の値及び/または更新を生成するように構成される。
【0100】
このような例では、異なるシステム200a、200bは、単一のより大きなシステムのサブシステムであってもよい。したがって、統括コントローラ250は、下位のコントローラ200a、200bを介してシステム全体を効果的に制御していると考えられ得る。例えば、システム201a、201bは、データセンタのそれぞれ異なるサーバであってもよい。別の例では、システム201a、201bは、従来から古典的な制御を採用しており、本明細書に記載された方法を適用することによって性能を改善できるシステムである、旅客機のエンジン及び油圧トランスデューサであり得る。更に別の例では、システ
ム201a、201bは、自律走行車のバッテリ管理ユニット及びモータであり得る。
【0101】
追加または代替として、監視下にある1つまたは複数のハイブリッドコントローラに、そのような制御/監視を提供するために、複数の統括コントローラを適用することができる。これは図2に示されており、これはまた、第2の統括コントローラ260を含む。第2の統括コントローラ260は、監視下でハイブリッドコントローラ200a、200bの一方または両方から入力を受け取り、第2の統括コントローラ260は、学習済みシステムモデル(複数可)、及び/または学習済みシステムモデル(複数可)を訓練し、及び/または更新するために使用されるプロセスの制約(複数可)、動的システムパラメータ(複数可)、及び/またはパラメータ(複数可)に対する更新及び/または修正を出力することができる。
【0102】
このような例では、それぞれの統治コントローラ250、260は、単一のシステム(例えば、第1のハイブリッドコントローラ200aによって制御されているシステム201a)及び/または1つ以上のサブシステムを含む複合システム(例えば、第1の200aシステムと第2の200bシステムとを含む複合システム)の異なる性能目標または制約を構成することができる。
【0103】
IV.応用例と試験結果
本明細書で説明される方法及びシステムは、様々な用途に適用されており、それらの用途によるシステムの改善された動作を提供している。本明細書で説明する制御方法は、複数の競合する目標に照らして効率的な動作が望まれる任意のシステムに幅広く適用可能である。これらの制御方法は、モバイルデバイス、データセンタサーバ等の機器、分散ソフトウェアシステム、映像配信ネットワーク、自律走行車、グラフィックプロセッシングユニット、携帯無線機、衛星全地球測位受信機、またはその他の複合システムの動作に適用することができる。
【0104】
1つの適用例では、本明細書に記載されている制御方法を、Samsung Galaxy S5ハンドセットにて出荷されたSamsung Exynos 5422プロセッサの性能を改善するために適用した。この適用例では、本方法は、複雑なベンチマークにおいて、代替の最先端の最適化方法(AIを含む)と比較して、同等またはそれ以上の性能レベルで、エネルギー使用量を14%削減することを達成した。また、本方法では、純正のSamsung/Android最適化ソフトウェアと比較して、40%以上のエネルギー使用量の削減を実現した。
【0105】
別の適用例では、本明細書で説明する制御方法は、ウェブ検索、デジタル信号処理、クラスタリング、画像検索、ビデオエンコーディング、及び画像追跡(これらのアプリケーションは同時に実行されることもある)など、8つの異なるアプリケーションを実行する64GB RAMのIntel Xeon E5 2600シリーズデュアルプロセッサの性能を向上させるために適用した。この適用例では、本現在の方法は、AIを含む代替的な最先端の最適化方法と比較して、エネルギー使用量を(「壁から」、コンピュータシステム全体に対して測定した場合)全体で8%削減することを達成した。
【0106】
更に別の適用例では、MapReduce、Cassandra、Hadoop Database/Hadoop Distributed File Systemを実行する複合ソフトウェア分散ストレージ及び処理サービスの性能を向上させるために、本明細書で説明する制御方法を適用した。この適用例では、本方法は、代替の最先端の最適化方法と比較して、34%の高速化を達成し、かつクラッシュが60%少ないことを示した。これは特に印象的なことで、コントローラには、ストレージと処理サービスの基盤となる構造または能力に関する事前情報を一切提供していなかった。その代わりに、コントロ
ーラは、被制御システムに関するこの情報を学習するように、時間をかけて動作した。
【0107】
更なる適用例では、本明細書に記載された制御方法を、自律走行車の画像処理システムの性能を改善するために適用した。この適用例では、本方法は、システムのハードウェア能力の75%が故障したにもかかわらず、画像処理システムが引き続き機能して、反応することが可能であった。
別の例では、本明細書に記載された制御方法を、LAMMPSフレームワークを使用して分子動力学シミュレーションを実行するCray CX40システムの性能を改善するために適用した。本制御方法は、指定されたパワーバジェット内で分子動力学解析の完了数を増やすために適用した。この適用例(これは、現在及び将来のエクサスケールスーパーコンピュータ及び/またはスーパーコンピュータ環境、ならびにその他への本明細書の方法の適用可能性を示す)では、本明細書に記載した階層型及び分散型の制御方法の適用は、電力バジェット内で完了した解析の数に関して、最先端の方法及び他の代替的な電力及び/または性能管理方法と比較して、約30%の増加をもたらした。
【0108】
V.方法の例
図3は、本明細書で説明するシステムを制御するための方法300のフローチャートである。方法300は、第1の期間の間に、システムの出力を検出する(302)ことを含む。方法300は、第1の期間の間に検出された出力に基づいて、システムの第1の性能メトリックを判定する(304)ことを更に含む。方法300は、第1の性能メトリックに基づいて、第1のハイブリッドコントローラを動作させて、第1のハイブリッドコントローラ出力を生成する(306)ことを更に含む。第1のハイブリッドコントローラは、第1の制約、第1の動的システム、及び第1の学習済みシステムモデルを含む。第1のハイブリッドコントローラを動作させて、第1のハイブリッドコントローラ出力を生成することは、(i)第1の性能メトリックと第1の制約との間の第1の差を判定すること、(ii)判定された第1の差を第1の動的システムに適用して、第1の動的システム出力を生成すること、(iii)生成された第1の動的出力を第1の学習済みシステムモデルに適用して、第1のハイブリッドコントローラ出力を生成することを含む。方法300は、更に、生成された第1のハイブリッドコントローラ出力に従って、第2の期間の間に、システムを制御する(308)こと、及び第3の期間の間に、システムの出力を検出する(310)ことを含む。方法300は、第3の期間の間に検出された出力に基づいて、システムの第2の性能メトリックを判定する(312)こと、及び第1の性能メトリック及び第2の性能メトリックに基づいて、第2のハイブリッドコントローラを動作させて、更新された制約値を生成する(314)ことを更に含む。方法300は、更新された制約値に従って、第1の制約を更新する(316)こと、第2の性能メトリックに基づいて、更新された第1のハイブリッドコントローラを動作させて、第2のハイブリッドコントローラ出力を生成する(318)こと、及び生成された第2のハイブリッドコントローラ出力に従って、第4の期間の間に、システムを制御する(320)ことを更に含む。
【0109】
方法300は、追加の要素または特徴を含んでもよい。いくつかの実施形態では、第2のハイブリッドコントローラは、第1のハイブリッドコントローラの動作及び/または構成を修正するために、追加または代替の出力を提供すること(例えば、第1のコントローラの動的システムの動的パラメータの修正、パラメータの変更、及び/または第1のコントローラの学習済みシステムモデルの更新の開始)ができる。いくつかの実施形態では、第2のハイブリッドコントローラは、追加のシステムから更に入力を受け取り、追加のシステムを制御するように構成された追加のコントローラ(例えば、ハイブリッドコントローラ)の動作及び/または構成に関する出力を提供してもよい。追加または代替として、第1のハイブリッドコントローラは、追加の監視コントローラ(例えば、追加の監視ハイブリッドコントローラ)から、更新されたパラメータ値を受け取ってもよい。
【0110】
図4は、本明細書で説明するシステムを制御するための方法400のフローチャートである。方法400は、第1の期間の間に、システムの出力を検出する(402)ことを含む。方法400は、第1の期間の間に検出された出力に基づいて、システムの第1の性能メトリックを判定する(404)ことを更に含む。方法400は、第1の性能メトリックに基づいて、第1のハイブリッドコントローラを動作させて、第1のハイブリッドコントローラ出力を生成する(406)ことを更に含む。
【0111】
第1のハイブリッドコントローラは、第1の制約、第1の動的システム、第1の学習済みシステムモデル、及び第1の学習済みシステム更新モジュールを含む。第1の学習済みシステム更新モジュールは、システムから検出された少なくとも1つの出力に基づいて、第1の学習済みシステムモデルを更新すると共に、第1の学習パラメータに対応するタイミングまたはレートの少なくとも1つに従って、第1の学習済みシステムモデルを更新するように構成されている。第1の動的システムは、第1の動的システムの全体的な応答性に対応する第1の動的パラメータを有する。第1のハイブリッドコントローラを動作させて、第1のハイブリッドコントローラ出力を生成することは、(i)第1の性能メトリックと第1の制約との間の第1の差を判定すること、(ii)判定された第1の差を第1の動的システムに適用して、第1の動的システム出力を生成すること、(iii)生成された第1の動的出力を第1の学習済みシステムモデルに適用して、第1のハイブリッドコントローラ出力を生成することを含む。
【0112】
方法400は、更に、生成された第1のハイブリッドコントローラ出力に従って、第2の期間の間に、システムを制御する(408)こと、及び第3の期間の間に、システムの出力を検出する(410)ことを含む。方法400は、第3の期間の間に検出された出力に基づいて、システムの第2の性能メトリックを判定する(412)こと、及び第1の性能メトリック及び第2の性能メトリックに基づいて、第2のハイブリッドコントローラを動作させて、第1のハイブリッドコントローラ更新版を生成する(414)ことを更に含む。第1のハイブリッドコントローラ更新版は、更新された第1の制約値、更新された第1の動的パラメータ、または更新された第1の学習パラメータのうちの少なくとも1つを含む。方法400は、第1のハイブリッドコントローラ更新版に従って、第1のハイブリッドコントローラを更新する(416)こと、第2の性能メトリックに基づいて、更新された第1のハイブリッドコントローラを動作させて、第2のハイブリッドコントローラ出力を生成する(418)こと、及び生成された第2のハイブリッドコントローラ出力に従って、第4の期間の間に、システムを制御する(420)ことを更に含む。
【0113】
方法400は、追加の要素または特徴を含んでもよい。いくつかの実施形態では、第2のハイブリッドコントローラは、追加のシステムから更に入力を受け取り、追加のシステムを制御するように構成された追加のコントローラ(例えば、ハイブリッドコントローラ)の動作及び/または構成に関する出力を提供してもよい。追加または代替として、第1のハイブリッドコントローラは、追加の監視コントローラ(例えば、追加の監視ハイブリッドコントローラ)から、更新されたパラメータ値を受け取ってもよい。
【0114】
VI.応用例
ハイブリッドコントローラ/HOFは、直接制御、監視、シミュレーション、開発、または既存/旧来のシステムまたは他の制御方法に適用されるかどうかに関わらず、それらが配置されているシステムの性能及び挙動を根本的に変更し、改善することができる。HOFは一般化可能であるが、1つまたは複数のシステムに導入されたHOFは、システムの性能及び特性を変更することができる。運用にも根本的な変化がある。システムは現在、1つまたは複数の目標に向けて、利用可能なリソースを割り当てており、システムは、未知または予期しないイベント、ならびにシステムの「制御」に使用された以前のモデル及び方法に含まれ、想定されたイベントに応答する。
【0115】
分散型または階層型のHOFの一例の実施形態は、システム全体の性能を設定する目的で、複数のデータセンタに分散したクラウドコンピューティング環境を制御するために実施されるトップレベルのHOFを含む。これは、分散型データウェアハウスとウェブサーバ、及び親HOF(複数可)に非同期的に(そして場合によっては予測不能/不規則に)接続されているいくつかのエッジ及び他のIoTデバイスを含む。これらのデバイスの一部は、それらを制御するHOFを持たないが、様々なHOFベースの制約及びフィードバックの一部であるレガシーシステムである場合がある。
【0116】
別の例示的な実施形態は、1つ以上のデータセンタまたは他の分散された複合システムの一部である複合システムを含む、分散型及び/または階層型のHOFを有するシステムを含み、これはHOFによって実行される場合とされない場合とがある他の複合システムと通信し、その一部(全体として、親、子、または単に寄稿者であるかどうかに関わらず)である場合がある。これらの他の複合システムには、「エッジ」、IoT、または車、ドローン、電話、衛星、「コネクテッド」センサ、サーバ、カメラなどのオンプレミスデバイスが含まれる場合がある。これらのシステムは、予測可能な及び/または不規則な方法で、より大きなシステムまたは他のシステムと同期及び/または非同期で通信する場合がある(その際、その一部である場合とそうでない場合とがあり、参加または脱退する場合がある)。
【0117】
別の例示的な実施形態では、目標を満たすために制約またはノブ(調整可能なパラメータ)を変更するのではなく、既に公開されているノブ(複数可)に加えて、またはその代わりに、基礎となるモデルを動的に変更してもよい。これは、システムまたは外部の変更による「新たな正常」に適応することを含む、様々な理由で行われ得る。
【0118】
更に別の例示的な実施形態として、物理的に利用可能なメモリが重要な制約となり、クラッシュ/エラーの原因となることが多いHadoopなどの分散型(クラウド型)データフレームワークがある。このHOFの実施形態では、利用可能なメモリは、上限値がシステムによって違反されない可能性があるので、「ハード」目標として設定される。多くの異なる動作及び変数が、単一または複数のHOFで利用されるモデルではうまく表現されない方法でメモリ使用量に影響を与えるため、他の異常な動作(「新たな正常」またはカスケード障害など)が検出されたかどうかに関係なく、動的に変化する目標、または制約、またはモデルの代わりに、HOF(複数可)の動的システムの極値が変更され、ハード目標に近づいたり、またはそこからドリフトしたりするときに、動的になる可能性がある。これは、例えば、(基礎となるシステムに関係なく、分散されているかどうかに関係なく)単一のHOF、階層、監視、またはシミュレートされた1つまたは複数のHOF上で行われてもよい。
【0119】
上述の2つの実施形態の手法は、システムまたはシステムの性能を変更するために、多様な「ハード」目標及び「ソフト」目標を複数の基礎となるモデルを介在させてもよいように拡張してもよい。
【0120】
上記の手法は、悪意のあるアクターまたはネットワーク効果の要求によって引き起こされるカスケード障害など、様々な他のタイプの外部または内部の障害が発生した場合にも、様々な方法で、または同時に使用することもできる。
【0121】
更に別の例示的な実施形態は、例えば、特定の特性(例えば、時間的空間、ライドシェアネットワーク、通信プロバイダ、目的地など)を共有する自律型自動車及び/またはドローンの間で形成され、そのうちのいくつかは、それ自体がHOFによって制御されるアドホックシステムである。監視、目標設定だけでなく、階層的で分散した既存のHOFか
らの制御及び学習のための新しい(目的駆動型の)HOFベースのシステムは、このアドホックな実施形態の全ての部分である。
【0122】
更に別の例示的な実施形態は、倉庫流通システムである。倉庫システム自体は、それ自体が相互に依存する、より大きな複合システムの一部であることが多い、いくつかのより大きな複合システム(例えば、トラック運送、製造業など)の一部である。倉庫内には、パッケージのスループット(一定期間内に到着及び出発するパッケージの量)、倉庫内の位置(どこに、どの棚に)、密度(パッケージが形状や重量に応じてどれだけ密接に/「密に」配置できるか)など、競合し共有される制約や目標を有する多くのシステムが存在する場合がある。他のシステムもまた、ロボット、労働者の稼働率、休日、天候など、継続的、動的で、常に予測可能とは限らない方法で倉庫物流システムに影響を与えるので、この全てを考慮に入れなければならない。この実施形態では、倉庫を制御するHOF(複数可)は、トラックまたは航空輸送が遅れているときに、例えば、高いスループットよりも密度を優先させるなど、トレードオフを自動的に最適化することができる。
【0123】
別の例示的な実施形態は、記述された倉庫環境内にあり、ここでは、ロボットが利用できなくなるか、または不規則に振る舞う(例えば、人間の作業員が解雇され、それに応じてロボットに損傷を与えた場合)。これらの事象は予期せぬものではあるが、これが新たな正常(すなわち、損傷を受けたロボットの機能の完全または部分的な喪失)となり、一定の期間が経過する。この実施形態では、監視HOFは、短期的な目標(コンテナを降ろすというローカルな目標を達成するために、人やロボットを「降ろす」ローカルHOFに移動させるなど)を達成するために利用可能な人間労働者及びロボットの目標(複数可)、制約(複数可)、及び他のリソースを変更することができ、その後、他のローカルシステム及び/またはグローバル目標(複数可)(パッケージのスループット、密度、市など)を変更して、この「新たな正常」が持続する可能性がある限り、それを達成する(次のシフトまで、または新しいロボットが届くまで)。
【0124】
別の例示的な実施形態は、同じ物流複合システムにあるが、今回は、顧客の一部に保証された納期(例えば、2日以内)を提供し、倉庫、輸送モダリティ(例えば、飛行機、列車、トラック、ドローン、様々なサードパーティ)のネットワークを有するグローバル規模の業者としてのものである。各システムは、独自の目標及び制約を伴って動作し、より大きな複合システムの一部でもあり、その中にはHOFがそれらを制御しているものもあれば、そうでないものもある。天候、道路、及び他の条件が変化すると、HOFまたはHOFを含む1または複数の管理者(自動化、半自動化、人間、または何らかの他の形態の制御であるかどうかに関わらない)は、全体的または複合システム目標を(例えば、2日を4日へ)更新することができ、HOFが有効化されたシステムの残りの全ては、その後、新しい目標(複数可)に合わせてリソースを最適化させることができる。
【0125】
上記の実施形態(複合グローバル物流システム)は、予期しないイベントまたは事象に応答して、目標、制約、モデル、極値、ハード目標及びソフト目標、「仮想的な」目標及び制約などの更新を生成する1つ以上のHOFを含む。例えば、自然災害や人災が発生し、一部の住所への配達が一時的に不可能になり、他の住所への配達が著しく遅れることがある。次に、これらの災害配送に対して、または通常配送に対して、余分に利用可能なリソースを割り当てることができ、目標、制約、及びモデルを、以前に機能していたローカル及び/またはグローバル複合システムの新たな正常及び様々な障害モードに様々に更新できるようにする。
【0126】
別の例示的な実施形態は、(制御ではなく)テストまたは情報提供の目的で1つまたは複数のHOFを(開発中、展開中、またはその他の段階で)1つまたは複数のシステムに適用することを含み、情報は、1つまたは複数のHOFの様々な機能を利用して、様々な
性能及び構成パラメータについて収集される。結果として得られる情報は、同じシステム、類似システム、または異なるシステムの構成管理及び目標設定の両方を通知するために使用することができる。
【0127】
1つまたは複数のHOFは、選択時のシステムのパラメータまたは制約の構成にかかわらず、1つ以上のモデルが動作条件に基づいて動的に選択(動的に交換または変更)されるような1つ以上の性能目標を有していてもよい。言い換えれば、システムの基礎となるモデルは、それ自体が、1つまたは複数の性能目標に役立つ調整可能な最適化パラメータとして利用可能である。
【0128】
1つまたは複数のHOFは、様々なハード制約(それ自体は、ユーザ(複数可)のニーズ及びそのようなシステムの外部環境及び性能能力に応じて、動的にまたは時間の経過とともに変化する場合があり、または変化しない場合がある)を持つ「リアルタイム」システムを(O/Sまたは他のいくつかのレベルで)制御することができる。
【0129】
1つまたは複数のHOFは、基礎となる複合システムが独自の1つまたは複数のHOFを有することなく、既存の複合システム上の様々な構成設定の性能エンベロープをテストし、評価するために使用されてもよい。
【0130】
1つまたは複数のHOFは、既存の複合システム上の様々な性能目標の性能エンベロープをテストして評価し、様々な構成設定の動作エンベロープ及びアウトオブバウンズエンベロープを設立するために使用されてもよい。
【0131】
1つまたは複数のHOFは、既存の複合システム上の様々な性能目標の性能エンベロープをテストして評価し、様々な基礎となる性能モデルの動作エンベロープを設立するために使用されてもよい。
【0132】
1つまたは複数のHOFは、既存の複合システム上の、時間の経過と共に変化し得る様々な性能目標の性能エンベロープをテストして評価し、様々な基礎となる性能モデルの動作エンベロープを設立するために使用されてもよい。
【0133】
上記の手法から得られた情報をライブラリに収集し、既存のシステムに適用して活用するために、1つまたは複数のHOFを配備してもよい。
【0134】
上記の手法から得られた情報をライブラリに収集し、開発中のシステムに適用して活用するために、1つまたは複数のHOFを配備してもよい。
【0135】
様々な複合システムをHOFでテストして得られ収集された情報は、そのようなシステムの性能エンベロープ及び制約を含めて、新しいシステムの設計及び開発に利用することができる。
【0136】
1つまたは複数の複合システムで監視HOFを使用して得られ収集された情報は、監視下にある1つまたは複数の元の複合システムを含む場合と含まない場合とがある、新しいシステム及びモデルの設計及び開発に適用することができる。
【0137】
シミュレーションは、1つもしくは複数のHOFを使用したテスト、1つもしくは複数のHOFを含む複合システムの実行、1つもしくは複数のHOFを使用した監視、またはそれらの一部もしくは全ての組み合わせから得られた情報及び収集された情報に基づいて、新しい1つまたは複数のHOFを開発するために使用してもよい。
【0138】
シミュレーションは、1つもしくは複数のHOFを使用したテスト、1つもしくは複数のHOFを含む複合システムの実行、1つもしくは複数のHOFを使用した監視、またはそれらの一部もしくは全ての組み合わせから得られた情報及び収集された情報に基づいて、新しいシステムを開発するために使用してもよい。
【0139】
シミュレーションを監視HOFと組み合わせて、複合システムまたはシステムの性能を向上させることができる。
【0140】
シミュレーションを適用して、1つもしくは複数のHOFによって管理されるシステム、または1つもしくは複数のHOFを実行するシステムもしくはシステムの性能を向上させることができる。
【0141】
複合システムは、複数のHOFを含む場合があり、それらの1つ以上は、人工知能及び/またはニューラルネットワーク、またはその他の高度な学習方法を使用して、任意の時間または任意の条件に対して性能目標及び/または構成パラメータを設定するようにそれ自体が教示される。
【0142】
1つもしくは複数のHOFを、評価/識別ネットワーク及び/または敵対的生成ネットワーク(GAN)の生成ネットワークに適用して、性能(例えば、速度または精度)を制約し、または別の方法で改善することができる。
【0143】
動作している1つまたは複数のHOFによって生成された情報(性能メタデータなど)を適用して、基礎となる機械学習モデル、または新しい機械学習モデル、またはAIモデルを改善できる。
【0144】
HOFは、その複合システムが範囲外であると検出された場合にのみ、その使用から生成された情報を利用して、機械学習モデルまたはAIモデルの将来及び現在の性能を向上させるために、複合システムを制御するように使用することができる。
【0145】
複数のHOFは、1つのHOFが、1つまたは複数の主要な性能目標を設立し、そのとき現在アクティブである1つまたは複数のアプリケーションの動作パラメータに一意に関連する他のHOFを動的に構成する分散制御システムとして、スマートフォンまたは他のデバイス上に配備することができる。
【0146】
開示された方法のいずれかは、従来の制御ソリューションが陳腐化するか、またはそれ以外の場合で劣った性能を提供する場合にはいつでも、従来の制御ベースのソリューション(PIDなど)をHOFに置き換えるために適用することができる。
【0147】
VII.結論
上記の詳細な説明では、添付の図面を参照して、開示されたシステム、デバイス、及び方法の様々な特徴及び機能を説明している。図において、類似の符号は、文脈が別段のことを示さない限り、典型的には類似の構成要素を識別するものである。詳細な説明、図、及び特許請求の範囲に記載された例示的な実施形態は、限定的することを意味するものではない。本明細書に提示される主題の範囲から逸脱することなく、他の実施形態を利用することができ、他の変更を行うことができる。本開示の態様は、本明細書に一般的に説明され、図示されているように、多種多様な構成で配置、置換、結合、分離、及び設計することができ、それらの全てが本明細書に明示的に企図されていることが容易に理解されるであろう。
【0148】
図中のメッセージフロー図、シナリオ、及びフローチャートのいずれかまたは全てに関
して、及び本明細書で議論されるように、各ステップ、ブロック、及び/または通信は、例示的な実施形態に従って、情報の処理及び/または情報の伝送を表してもよい。代替的な実施形態は、これらの例示的な実施形態の範囲内に含まれる。これらの代替実施形態では、例えば、ステップ、ブロック、伝送、通信、要求、応答、及び/またはメッセージとして記述された機能は、関与する機能に応じて、実質的に同時または逆の順序を含む、示されたまたは議論されたものから順不同で実行されてもよい。更に、より多くのまたはより少ないステップ、ブロック、及び/または機能が、本明細書で議論されるメッセージフロー図、シナリオ、及びフローチャートのいずれかと共に使用されてもよく、これらのメッセージフロー図、シナリオ、及びフローチャートは、部分的にまたは全体的に、互いに組み合わされてもよい。
【0149】
情報の処理を表すステップまたはブロックは、本明細書に記載された方法または手法の特定の論理的機能を実行するように構成され得る回路に対応することができる。代替または追加として、情報の処理を表すステップまたはブロックは、モジュール、セグメント、またはプログラムコードの一部(関連データを含む)に対応してもよい。プログラムコードは、方法または技術において特定の論理的機能またはアクションを実装するためにプロセッサによって実行可能な1つ以上の命令を含んでもよい。プログラムコード及び/または関連データは、ディスクドライブ、ハードドライブ、または他の記憶媒体を含む記憶装置などの任意のタイプのコンピュータ可読媒体に記憶することができる。
【0150】
また、コンピュータ可読媒体は、レジスタメモリ、プロセッサキャッシュ、及び/またはランダムアクセスメモリ(RAM)のような短時間データを記憶するコンピュータ可読媒体などの非一時的なコンピュータ可読媒体を含んでもよい。また、コンピュータ可読媒体は、プログラムコード及び/またはデータを、より長い期間保存する非一時的なコンピュータ可読媒体、例えば、読み出し専用メモリ(ROM)、光ディスクまたは磁気ディスク、及び/またはコンパクトディスク読み出し専用メモリ(CD-ROM)のような二次的または永続的な長期記憶装置を含んでもよい。また、コンピュータ可読媒体は、他の何らかの揮発性または不揮発性の記憶システムであってもよい。コンピュータ可読媒体は、例えば、コンピュータ可読記憶媒体、または有形記憶装置とみなすことができる。
【0151】
更に、1つ以上の情報伝送を表すステップまたはブロックは、同じ物理デバイス内のソフトウェア及び/またはハードウェアモジュール間の情報伝送に対応していてもよい。しかし、他の情報伝送が、異なる物理デバイス内のソフトウェアモジュール及び/またはハードウェアモジュール間であってもよい。
【0152】
様々な態様及び実施形態が本明細書に開示されているが、他の態様及び実施形態は、当業者には明らかであろう。本明細書に開示された様々な態様及び実施形態は、例示を目的としたものであり、限定を意図するものではなく、真の範囲は以下の特許請求の範囲によって示される。
図1A
図1B
図2
図3
図4
【手続補正書】
【提出日】2023-03-03
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
1つ以上のデバイスにより行われる1つ以上の動作として実行される方法であって:
第1の期間の間に検出されたシステムの出力に基づいて、前記システムの第1の性能メトリックを判定すること、
前記第1の性能メトリックに基づいて、第1のハイブリッドコントローラを動作させて、第1のハイブリッドコントローラ出力を生成することであって、前記第1のハイブリッドコントローラが、第1の制約に従って動作して、第1の動的システム及び第1の学習済みシステムモデルと動作し、前記第1のハイブリッドコントローラを動作させて、前記第1のハイブリッドコントローラ出力を生成することが、
前記第1の性能メトリックと前記第1の制約との間の第1の差を関数として、第1の動的システム出力を生成すること、及び
前記生成された第1の動的システム出力を前記第1の学習済みシステムモデルに提供して、前記第1のハイブリッドコントローラ出力を生成することを含むこと、
前記生成された第1のハイブリッドコントローラ出力に従って、第2の期間の間に、前記システムを制御することを含むこと、
第3の期間の間に検出された、前記システムの出力に基づいて、前記システムの第2の性能メトリックを判定すること、
前記第1の性能メトリック及び前記第2の性能メトリックに基づいて、第2のハイブリッドコントローラを動作させて、更新された制約値を生成すること、
前記更新された制約値に従って、前記第1の制約を更新すること、
前記第1の制約の更新後に、前記第2の性能メトリックに基づいて、前記第1のハイブリッドコントローラを動作させて、第2のハイブリッドコントローラ出力を生成すること、ならびに
前記生成された第2のハイブリッドコントローラ出力に従って、第4の期間の間に、前記システムを制御すること
を含む、方法。
【請求項2】
前記第1の学習済みシステムモデルがルックアップテーブルを含み、
前記生成された第1の動的システム出力を前記第1の学習済みシステムモデルに適用して、前記第1のハイブリッドコントローラ出力を生成することが、前記第1の動的システ
ム出力の値に基づいて、前記ルックアップテーブル内のエントリを選択することを含む、請求項1に記載の方法。
【請求項3】
前記第1の動的システムが極によって特徴付けられており、更に、
前記第1の期間の間に検出された前記システムの前記出力に基づいて、前記第1の学習済みシステムモデルに対する信頼度を判定すること、
前記判定された信頼度に基づいて、前記第1の動的システムの前記極の更新値を判定すること、及び
前記更新された第1の動的システムの前記極が、前記判定された更新値に対応する値を持つように、前記第1の動的システムを更新すること
を含む、請求項1に記載の方法。
【請求項4】
前記第1の期間の間に検出された前記システムの前記出力に基づいて、前記学習済みシステムモデルを更新することを更に含む、請求項1に記載の方法。
【請求項5】
前記第1の性能メトリック及び前記第2の性能メトリックに基づいて、前記第2のハイブリッドコントローラを動作させて、前記学習済みシステムモデルを更新するよう判定することであって、前記第1の期間の間に検出された前記システムの前記出力に基づいて、前記学習済みシステムモデルを更新することは、前記第2のハイブリッドコントローラが、前記学習済みシステムモデルを更新するよう判定することに応答して行われる、前記学習済みシステムモデルを更新するよう判定することを更に含む、請求項4に記載の方法。
【請求項6】
前記第1の期間の間に検出された前記システムの前記出力に基づいて、前記学習済みシステムモデルを更新することが、
前記第1の期間の間に検出された前記システムの前記出力の表示を、リモートシステムに送信すること、及び
前記学習済みシステムモデルに対する更新の表示を、前記リモートシステムから受信すること
を含む、請求項4に記載の方法。
【請求項7】
前記第1の期間の間に検出された前記システムの前記出力に基づいて、前記学習済みシステムモデルを更新することが、種々の学習済みシステムモデルのセットから、ある学習済みシステムモデルを選択することを含む、請求項4に記載の方法。
【請求項8】
前記システムは、2つ以上の演算器であって、そのそれぞれがそれぞれの動作状態を有している前記2つ以上の演算器を有するコンピューティング基体を含み、
前記第1のハイブリッドコントローラ出力が、前記コンピューティング基体の前記2つ以上の演算器のそれぞれの動作状態の表示を含む、請求項1に記載の方法。
【請求項9】
前記計算基体の前記演算器の少なくとも1つの前記動作状態が、クロック速度を含む、請求項8に記載の方法。
【請求項10】
前記第2のハイブリッドコントローラが、第2の制約、第2の動的システム、及び第2の学習済みシステムモデルを含んでおり、
前記第1の性能メトリック及び前記第2の性能メトリックに基づいて、前記第2のハイブリッドコントローラを動作させて、更新された制約値を生成することが、
前記第1の性能メトリックまたは前記第2の性能メトリックの少なくとも1つを前記第2の動的システムに適用して、第2の動的システム出力を生成すること、及び
前記生成された第2の動的システム出力を前記第2の学習済みシステムモデルに適用して、前記更新された制約値を生成すること
を含む、請求項1に記載の方法。
【請求項11】
前記第1の期間の間に検出された第2の出力に基づいて、前記第2のシステムの第3の性能メトリックを判定すること、
前記第3の性能メトリックに基づいて、第3のハイブリッドコントローラを動作させて、第3のハイブリッドコントローラ出力を生成することであって、前記第3のハイブリッドコントローラが、第3の制約に従って動作して、第3の動的システム及び第3の学習済みシステムモデルと動作し、前記第3のハイブリッドコントローラを動作させて、前記第3のハイブリッドコントローラ出力を生成することが、
前記第3の性能メトリックと前記第3の制約との間の第2の差を関数として、第3の動的システム出力を生成すること、及び
前記生成された第3の動的システム出力を前記第3の学習済みシステムモデルに提供して、前記第3のハイブリッドコントローラ出力を生成することを含むこと、
前記生成された第3のハイブリッドコントローラ出力に従って、前記第2の期間の間に、前記第2のシステムを制御すること、
第3の期間の間に検出された、前記第2のシステムの第2の出力に基づいて、前記第2のシステムの第4の性能メトリックを判定すること、
前記第3の性能メトリック及び前記第4の性能メトリックに基づいて、前記第2のハイブリッドコントローラを動作させて、更なる更新された制約値を生成すること、
前記更なる更新された制約値に従って、前記第3の制約を更新すること、
前記第4の性能メトリックに基づいて、前記第3のハイブリッドコントローラを動作させて、第4のハイブリッドコントローラ出力を生成すること、ならびに
前記生成された第4のハイブリッドコントローラ出力に従って、前記第4の期間の間に、前記第2のシステムを制御すること
を更に含む、請求項10に記載の方法。
【請求項12】
前記第1の性能メトリック及び前記第2の性能メトリックに基づいて、前記第2のハイブリッドコントローラを動作させて、前記更新された制約値を生成することは、
前記第1の性能メトリック及び前記第2の性能メトリックに基づいて、前記システムの前記出力が発振していることを検出することを含む、請求項1に記載の方法。
【請求項13】
前記第1の性能メトリック及び前記第2の性能メトリックに基づいて、前記第2のハイブリッドコントローラを動作させて、前記更新された制約値を生成することは、
前記第1の性能メトリック及び前記第2の性能メトリックに基づいて、前記システムの前記出力が、閾値レートよりも遅く応答することを検出することを含む、請求項1に記載の方法。
【請求項14】
前記第1の性能メトリック及び前記第2の性能メトリックに基づいて、前記第2のハイブリッドコントローラを動作させて、前記更新された制約値を生成することは、
前記第1の性能メトリック及び前記第2の性能メトリックに基づいて、前記システムの前記出力が、前記第1の制約に対してバイアスを示すことを検出することを含む、請求項1に記載の方法。
【請求項15】
前記システムが、自動車に構成され、第1のハイブリッドコントローラ出力が自動車の動作状態の表示を含む、請求項1に記載の方法。
【請求項16】
インストラクションがプログラムされたプロセッサであって、インストラクションが実行されたとき、プロセッサが:
第1の期間の間に検出されたシステムの出力に基づいて、前記システムの第1の性能メトリックを判定すること、
前記第1の性能メトリックに基づいて、第1のハイブリッドコントローラを動作させて
、第1のハイブリッドコントローラ出力を生成することであって、
前記第1のハイブリッドコントローラが、第1の制約に従って動作して、第1の動的システム、第1の学習済みシステムモデル、及び第1の学習済みシステム更新モジュールと動作し、
前記第1の学習済みシステム更新モジュールが、前記システムから検出された少なくとも1つの出力に基づいて、前記第1の学習済みシステムモデルを更新するように構成されており、
前記第1の学習済みシステム更新モジュールが、第1の学習パラメータに対応するタイミングまたはレートの少なくとも1つに従って、前記第1の学習済みシステムモデルを更新するように構成されており、
前記第1の動的システムが、前記第1の動的システムの全体的な応答性に対応する第1の動的パラメータを有しており、
前記第1のハイブリッドコントローラを動作させて、前記第1のハイブリッドコントローラ出力を生成することが、
前記第1の性能メトリックと前記第1の制約との間の第1の差を判定すること、
前記第1の性能メトリックと前記第1の制約との間の第1の差を関数として、第1の動的システム出力を生成すること、及び
前記生成された第1の動的システム出力を前記第1の学習済みシステムモデルに提供して、前記第1のハイブリッドコントローラ出力を生成することを含むこと、
前記生成された第1のハイブリッドコントローラ出力に従って、第2の期間の間に、前記システムを制御すること、
前記第3の期間の間に検出された前記出力に基づいて、前記システムの第2の性能メトリックを判定すること、
前記第1の性能メトリック及び前記第2の性能メトリックに基づいて、第2のハイブリッドコントローラを動作させて、第1のハイブリッドコントローラ更新版を生成することであって、前記第1のハイブリッドコントローラ更新版が、更新された第1の制約値、更新された第1の動的パラメータ、または更新された第1の学習パラメータのうちの少なくとも1つを含む、前記第1のハイブリッドコントローラ更新版を生成すること、
前記第1のハイブリッドコントローラ更新版に従って、前記第1のハイブリッドコントローラを更新すること、
前記第2の性能メトリックに基づいて、前記更新された第1のハイブリッドコントローラを動作させて、第2のハイブリッドコントローラ出力を生成すること、ならびに
前記生成された第2のハイブリッドコントローラ出力に従って、第4の期間の間に、前記システムを制御すること
を含む動作を行う、前記プロセッサ。
【請求項17】
前記第1の動的システムが極によって特徴付けられ、前記極は前記第1の動的パラメータに関連しており、前記プロセッサは、インストラクションが実行されたとき、プロセッサが:
前記第1の期間の間に検出された前記システムの前記出力に基づいて、前記第1の学習済みシステムモデルに対する信頼度を判定すること、
前記判定された信頼度に基づいて、前記第1の動的システムの前記極の更新値を判定すること、及び
前記更新された第1の動的システムの前記極が、前記判定された更新値に対応する値を持つように、前記第1の動的パラメータを更新することを含む動作を行うインストラクションが更にプログラムされた、請求項16に記載のプロセッサ。
【請求項18】
前記第2のハイブリッドコントローラが、第2の制約、第2の動的システム、及び第2の学習済みシステムモデルを含んでおり、
前記第1の性能メトリック及び前記第2の性能メトリックに基づいて、前記第2のハイブリッドコントローラを動作させて、第1のハイブリッドコントローラ更新版を生成する
ことが、
前記第1の性能メトリックまたは前記第2の性能メトリックの少なくとも1つを前記第2の動的システムに適用して、第2の動的システム出力を生成すること、及び
前記生成された第2の動的システム出力を前記第2の学習済みシステムモデルに適用して、前記第1のハイブリッドコントローラ更新版を生成することの動作を含む、請求項17に記載のプロセッサ。
【請求項19】
インストラクションが実行されたとき、プロセッサが:
前記第1の期間の間に検出された前記第2の出力に基づいて、前記第2のシステムの第3の性能メトリックを判定すること、
前記第3の性能メトリックに基づいて、第3のハイブリッドコントローラを動作させて、第3のハイブリッドコントローラ出力を生成することであって、前記第3のハイブリッドコントローラが、第3の制約、第3の動的システム、第3の学習済みシステムモデル、及び第3の学習済みシステム更新モジュールを含んでおり、前記第3の学習済みシステム更新モジュールが、前記第2のシステムから検出された少なくとも1つの出力に基づいて、前記第3の学習済みシステムモデルを更新するように構成されており、前記第3の学習済みシステム更新モジュールが、第3の学習パラメータに対応するタイミングまたはレートの少なくとも1つに従って、前記第3の学習済みシステムモデルを更新するように構成されており、前記第3の動的システムが、前記第3の動的システムの全体的な応答性に対応する第3の動的パラメータを有しており、前記第3のハイブリッドコントローラを動作させて、前記第3のハイブリッドコントローラ出力を生成することが、
前記第3の性能メトリックと前記第3の制約との間の第2の差を判定すること、
前記判定された第2の差を前記第3の動的システムに適用して、第3の動的システム出力を生成すること、及び
前記生成された第3の動的システム出力を前記第3の学習済みシステムモデルに適用して、前記第3のハイブリッドコントローラ出力を生成することを含む、前記第3のハイブリッドコントローラ出力を生成することを含むこと、
前記生成された第3のハイブリッドコントローラ出力に従って、前記第2の期間の間に、前記第2のシステムを制御すること、
前記第3の期間の間に、前記第2のシステムの前記第2の出力を検出すること、
前記第3の期間の間に前記第2のシステムから検出された前記第2の出力に基づいて、前記第2のシステムの第4の性能メトリックを判定すること、
前記第3の性能メトリック及び前記第4の性能メトリックに基づいて、前記第2のハイブリッドコントローラを動作させて、第3のハイブリッドコントローラ更新版を生成することであって、前記第3のハイブリッドコントローラ更新版が、更新された第3の制約値、更新された第3の動的パラメータ、または更新された第3の学習パラメータのうちの少なくとも1つを含む、前記第3のハイブリッドコントローラ更新版を生成すること、
前記第3のハイブリッドコントローラ更新版に従って、前記第3のハイブリッドコントローラを更新すること、
前記第4の性能メトリックに基づいて、前記第3のハイブリッドコントローラを動作させて、第4のハイブリッドコントローラ出力を生成すること、ならびに
前記生成された第4のハイブリッドコントローラ出力に従って、前記第4の期間の間に、前記第2のシステムを制御すること
を含む動作を行うインストラクションが更にプログラムされた、請求項18に記載のプロセッサ。
【請求項20】
インストラクションが実行されたとき、プロセッサが:
前記第1の性能メトリック及び前記第2の性能メトリックに基づいて、第4のハイブリッドコントローラを動作させて、更なる第1のハイブリッドコントローラ更新版を生成することであって、前記更なる第1のハイブリッドコントローラ更新版が、更新された第1
の制約値、更新された第1の動的パラメータ、または更新された第1の学習パラメータのうちの少なくとも1つを含む、前記更なる第1のハイブリッドコントローラ更新版を生成すること、
前記更なる第1のハイブリッドコントローラ更新版に従って、前記第1のハイブリッドコントローラを更新することであって、前記第2の性能メトリックに基づいて、前記更新された第1のハイブリッドコントローラを動作させて、第2のハイブリッドコントローラ出力を生成することが、前記第1のハイブリッドコントローラ更新版及び前記更なる第1のハイブリッドコントローラ更新版の両方によって更新された前記第1のハイブリッドコントローラを動作させて、前記第2のハイブリッドコントローラ出力を生成することを含む、前記第1のハイブリッドコントローラを更新すること
を含む動作を行うインストラクションが更にプログラムされた、請求項19に記載のプロセッサ。
【請求項21】
インストラクションが実行されたとき、プロセッサが:
前記第1の性能メトリック及び前記第2の性能メトリックに基づいて、第3のハイブリッドコントローラを動作させて、更なる第1のハイブリッドコントローラ更新版を生成することであって、前記更なる第1のハイブリッドコントローラ更新版が、更新された第1の制約値、更新された第1の動的パラメータ、または更新された第1の学習パラメータのうちの少なくとも1つを含む、前記更なる第1のハイブリッドコントローラ更新版を生成すること、
前記更なる第1のハイブリッドコントローラ更新版に従って、前記第1のハイブリッドコントローラを更新することであって、前記第2の性能メトリックに基づいて、前記更新された第1のハイブリッドコントローラを動作させて、第2のハイブリッドコントローラ出力を生成することが、前記第1のハイブリッドコントローラ更新版及び前記更なる第1のハイブリッドコントローラ更新版の両方によって更新された前記第1のハイブリッドコントローラを動作させて、前記第2のハイブリッドコントローラ出力を生成することを含む、前記第1のハイブリッドコントローラを更新すること
を含む動作を行うインストラクションが更にプログラムされた、請求項20に記載のプロセッサ。