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

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

▶ ウーブン・プラネット・ホールディングス株式会社の特許一覧

特許7589318選択的訓練によるワンショットニューラルアーキテクチャ探索のためのシステム及び方法
<>
  • 特許-選択的訓練によるワンショットニューラルアーキテクチャ探索のためのシステム及び方法 図1
  • 特許-選択的訓練によるワンショットニューラルアーキテクチャ探索のためのシステム及び方法 図2
  • 特許-選択的訓練によるワンショットニューラルアーキテクチャ探索のためのシステム及び方法 図3
  • 特許-選択的訓練によるワンショットニューラルアーキテクチャ探索のためのシステム及び方法 図4
  • 特許-選択的訓練によるワンショットニューラルアーキテクチャ探索のためのシステム及び方法 図5
  • 特許-選択的訓練によるワンショットニューラルアーキテクチャ探索のためのシステム及び方法 図6
  • 特許-選択的訓練によるワンショットニューラルアーキテクチャ探索のためのシステム及び方法 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-15
(45)【発行日】2024-11-25
(54)【発明の名称】選択的訓練によるワンショットニューラルアーキテクチャ探索のためのシステム及び方法
(51)【国際特許分類】
   G06N 3/0985 20230101AFI20241118BHJP
【FI】
G06N3/0985
【請求項の数】 20
【外国語出願】
(21)【出願番号】P 2023193805
(22)【出願日】2023-11-14
(65)【公開番号】P2024137648
(43)【公開日】2024-10-07
【審査請求日】2023-11-14
(31)【優先権主張番号】18/189,728
(32)【優先日】2023-03-24
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521042770
【氏名又は名称】ウーブン・バイ・トヨタ株式会社
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100092624
【弁理士】
【氏名又は名称】鶴田 準一
(74)【代理人】
【識別番号】100147555
【弁理士】
【氏名又は名称】伊藤 公一
(74)【代理人】
【識別番号】100123593
【弁理士】
【氏名又は名称】関根 宣夫
(74)【代理人】
【識別番号】100133835
【弁理士】
【氏名又は名称】河野 努
(72)【発明者】
【氏名】山口 晃一郎
【審査官】山本 俊介
(56)【参考文献】
【文献】米国特許出願公開第2022/0284688(US,A1)
【文献】米国特許出願公開第2022/0092381(US,A1)
【文献】埜田 夕平ほか,構造の複雑さを考慮したNeural Architecture Searchにおける複数構造探索の効率化,第36回人工知能学会全国大会論文集(2022),一般社団法人人工知能学会,2022年06月14日
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/0985
(57)【特許請求の範囲】
【請求項1】
ワンショットニューラルアーキテクチャ探索(NAS)を実行する方法であって、前記方法は、
ネットワーク全体を取得するステップであって、前記ネットワーク全体が前記ワンショットNASのための複数の候補サブネットワークを含む、ステップと、
前記ネットワーク全体から前記複数の候補サブネットワークのうちの第1のサブネットワークを取得するステップと、
前記第1のサブネットワークの第1のメトリック値を取得するステップと、
前記第1のメトリック値が第1の所定の条件を満たすかどうかを判定するステップと、
前記第1のメトリック値が前記第1の所定の条件を満たさないという判定に基づいて、
前記ワンショットNASのために、前記取得された第1のサブネットワークを訓練しないと判定し、
前記ネットワーク全体から前記複数の候補サブネットワークのうちの第2のサブネットワークを取得するステップと、
前記ワンショットNASのために前記第2のサブネットワークを訓練するステップと
を含む、方法。
【請求項2】
前記第2のサブネットワークを訓練するステップは、
前記第2のサブネットワークの第2のメトリック値を取得することと、
前記第2のメトリック値が前記第1の所定の条件を満たすかどうかを判定することと
を含み、
前記ワンショットNASのための前記第2のサブネットワークは、前記第2のメトリック値が前記第1の所定の条件を満たすという判定に基づいて訓練される、請求項1に記載の方法。
【請求項3】
前記第1のメトリック値が前記第1の所定の条件を満たすかどうかを判定するステップは、前記第1のメトリック値を第1の所定の閾値と比較することを含む、請求項1又は2に記載の方法。
【請求項4】
前記第1のメトリック値が前記第1の所定の条件を満たすかどうかを判定するステップは、前記第1のメトリック値が第1の所定の閾値よりも大きく且つ第2の所定の閾値よりも小さいかどうかを判定することを含む、請求項1又は2に記載の方法。
【請求項5】
前記第1のメトリック値を取得するステップは、前記第1のサブネットワークの前記第1のメトリック値を含む複数のメトリック値を取得することを含み、
前記第1のメトリック値が前記第1の所定の条件を満たすかどうかを判定するステップは、前記複数のメトリック値が、それぞれ、前記ワンショットNASにおける訓練のための、前記第1の所定の条件を含む対応する複数の所定の条件を満たすかどうかを判定することを含む、請求項1又は2に記載の方法。
【請求項6】
前記第1のメトリック値は、レイテンシ値、モデルサイズ値、及び1秒当たりの浮動小数点演算数(フロップス)値のうちの少なくとも1つを含む、請求項1又は2に記載の方法。
【請求項7】
前記第1の所定の条件は、サブネットワークの層の総数、サブネットワークの畳み込み層の総数、サブネットワークの残差ブロックの総数、及びサブネットワークのトランスポート層の総数のうちの少なくとも1つに基づいて判定される、請求項1又は2に記載の方法。
【請求項8】
ワンショットニューラルアーキテクチャ探索(NAS)を実行するためのシステムであって、
命令を記憶する少なくとも1つのメモリと、
少なくとも1つのプロセッサと
を具備し、
前記少なくとも1つのプロセッサは、前記命令を実行して、
前記ワンショットNASのための複数の候補サブネットワークを含むネットワーク全体を取得し、
前記ネットワーク全体から前記複数の候補サブネットワークのうちの第1のサブネットワークを取得し、
前記第1のサブネットワークの第1のメトリック値を取得し、
前記第1のメトリック値が第1の所定の条件を満たすかどうかを判定し、
前記第1のメトリック値が前記第1の所定の条件を満たさないという判定に基づいて、
前記ワンショットNASのために、前記取得された第1のサブネットワークを訓練しないと判定し、
前記ネットワーク全体から前記複数の候補サブネットワークのうちの第2のサブネットワークを取得し、
前記ワンショットNASのために前記第2のサブネットワークを訓練するように構成される、システム。
【請求項9】
前記少なくとも1つのプロセッサは、前記命令を実行して、
前記第2のサブネットワークの第2のメトリック値を取得することと、
前記第2のメトリック値が前記第1の所定の条件を満たすかどうかを判定することと
によって前記第2のサブネットワークを訓練するように構成され、
前記ワンショットNASのための前記第2のサブネットワークは、前記第2のメトリック値が前記第1の所定の条件を満たすという判定に基づいて訓練される、請求項8に記載のシステム。
【請求項10】
前記少なくとも1つのプロセッサは、前記命令を実行して、前記第1のメトリック値を第1の所定の閾値と比較することによって、前記第1のメトリック値が前記第1の所定の条件を満たすかどうかを判定するように構成される、請求項8又は9に記載のシステム。
【請求項11】
前記少なくとも1つのプロセッサは、前記命令を実行して、前記第1のメトリック値が第1の所定の閾値よりも大きく且つ第2の所定の閾値よりも小さいかどうかを判定することによって、前記第1のメトリック値が前記第1の所定の条件を満たすかどうかを判定するように構成される、請求項8又は9に記載のシステム。
【請求項12】
前記少なくとも1つのプロセッサは、前記命令を実行して、前記第1のサブネットワークの前記第1のメトリック値を含む複数のメトリック値を取得することによって前記第1のメトリック値を取得するように構成され、
前記少なくとも1つのプロセッサは、前記命令を実行して、前記複数のメトリック値がそれぞれ、前記ワンショットNASにおける訓練のための、前記第1の所定の条件を含む対応する複数の所定の条件を満たすかどうかを判定することによって、前記第1のメトリック値が前記第1の所定の条件を満たすかどうかを判定するように構成される、請求項8又は9に記載のシステム。
【請求項13】
前記第1のメトリック値は、レイテンシ値、モデルサイズ値、及び1秒当たりの浮動小数点演算数(フロップス)値のうちの少なくとも1つを含む、請求項8又は9に記載のシステム。
【請求項14】
前記第1の所定の条件は、サブネットワークの層の総数、サブネットワークの畳み込み層の総数、サブネットワークの残差ブロックの総数、及びサブネットワークのトランスポート層の総数のうちの少なくとも1つに基づいて判定される、請求項8又は9に記載のシステム。
【請求項15】
命令を記憶する非一時的なコンピュータ可読記憶媒体であって、
前記命令は、少なくとも1つのプロセッサによって実行されると、該少なくとも1つのプロセッサに、
ネットワーク全体を取得するステップであって、前記ネットワーク全体がワンショットNASのための複数の候補サブネットワークを含む、ステップと、
前記ネットワーク全体から前記複数の候補サブネットワークのうちの第1のサブネットワークを取得するステップと、
前記第1のサブネットワークの第1のメトリック値を取得するステップと、
前記第1のメトリック値が第1の所定の条件を満たすかどうかを判定するステップと、
前記第1のメトリック値が前記第1の所定の条件を満たさないという判定に基づいて、
前記ワンショットNASのために、前記取得された第1のサブネットワークを訓練しないと判定し、
前記ネットワーク全体から前記複数の候補サブネットワークのうちの第2のサブネットワークを取得するステップと、
前記ワンショットNASのために前記第2のサブネットワークを訓練するステップと、を実施させる、非一時的なコンピュータ可読記憶媒体。
【請求項16】
前記命令は、実行されると、前記少なくとも1つのプロセッサに、
前記第2のサブネットワークの第2のメトリック値を取得することと、
前記第2のメトリック値が前記第1の所定の条件を満たすかどうかを判定することと
によって、前記第2のサブネットワークを訓練するステップを実施させ、
前記ワンショットNASのための前記第2のサブネットワークは、前記第2のメトリック値が前記第1の所定の条件を満たすという判定に基づいて訓練される、請求項15に記載の記憶媒体。
【請求項17】
前記命令は、実行されると、前記少なくとも1つのプロセッサに、前記第1のメトリック値を第1の所定の閾値と比較することによって、前記第1のメトリック値が前記第1の所定の条件を満たすかどうかを判定するステップを実施させる、請求項15又は16に記載の記憶媒体。
【請求項18】
前記命令は、実行されると、前記少なくとも1つのプロセッサに、前記第1のメトリック値が第1の所定の閾値よりも大きく且つ第2の所定の閾値よりも小さいかどうかを判定することによって、前記第1のメトリック値が前記第1の所定の条件を満たすかどうかを判定するステップを実施させる、請求項15又は16に記載の記憶媒体。
【請求項19】
前記命令は、実行されると、前記少なくとも1つのプロセッサに、前記第1のサブネットワークの前記第1のメトリック値を含む複数のメトリック値を取得することによって、前記第1のメトリック値を取得するステップを実施させ、
前記命令は、実行されると、前記少なくとも1つのプロセッサに、前記複数のメトリック値が、それぞれ、前記ワンショットNASにおける訓練のための、前記第1の所定の条件を含む対応する複数の所定の条件を満たすかどうかを判定することによって、前記第1のメトリック値が前記第1の所定の条件を満たすかどうかを判定するステップを実施させる、請求項15又は16に記載の記憶媒体。
【請求項20】
前記第1のメトリック値は、レイテンシ値、モデルサイズ値、及び1秒当たりの浮動小数点演算数(フロップス)値のうちの少なくとも1つを含む、請求項15又は16に記載の記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の例示的な実施形態による装置及び方法は、ニューラルアーキテクチャ探索(NAS)に関する。
【背景技術】
【0002】
概して、ニューラルネットワークは、2つの主なパラメータ、(1)アーキテクチャ、及び(2)ニューロン間で送信される入力に適用される重みによって特徴付ける。典型的には、アーキテクチャは手動又は手作業で設計されるが、重みは訓練セット及びニューラルネットワークアルゴリズムを用いてネットワークを訓練することによって最適化される。このため、ニューラルネットワークの性能を最適化するために、アーキテクチャ設計が、特に、ネットワークが使用のために展開された時点で概して静的になるため、重要な考慮事項である。関連技術では、ニューラルネットワークのアーキテクチャを自動設計するための技術として、ニューラルアーキテクチャ探索(NAS)が登場している。しかし、このプロセスは、非常に時間がかかり、反復的な性質のため初期状態(即ち、初期サンプルアーキテクチャ)に影響される。
【発明の概要】
【0003】
実施形態によれば、システム及び方法は、不必要な訓練反復又は悪影響を及ぼす訓練反復(即ち、訓練全体に悪影響を及ぼすサブネットワーク)を排除するために、ネットワーク全体のワンショット訓練段階において何らかの評価が実施される、最適化されたワンショットニューラルアーキテクチャ探索(NAS)である。。
【0004】
本開示の一態様によれば、ワンショットNASを実行する方法が、ネットワーク全体を取得するステップであって、ネットワーク全体がワンショットNASのための複数の候補サブネットワークを含むステップと、ネットワーク全体から複数の候補サブネットワークのうちの第1のサブネットワークを取得するステップと、第1のサブネットワークの第1のメトリック値を取得するステップと、第1のメトリック値が第1の所定の条件を満たすかどうかを判定するステップと、第1のメトリック値が第1の所定の条件を満たさないという判定に基づき、ワンショットNASのために、取得された第1のサブネットワークを訓練しないと判定し、ネットワーク全体から複数の候補サブネットワークのうちの第2のサブネットワークを取得するステップと、ワンショットNASのために第2のサブネットワークを訓練するステップとを含む。
【0005】
本開示の一態様によれば、ワンショットNASを実行するためのシステムが、命令を記憶する少なくとも1つのメモリと、少なくとも1つのプロセッサとを含み、少なくとも一つのプロセッサは、命令を実行して、ワンショットNASのための複数の候補サブネットワークを含むネットワーク全体を取得し、ネットワーク全体から複数の候補サブネットワークのうちの第1のサブネットワークを取得し、第1のサブネットワークの第1のメトリック値を取得し、第1のメトリック値が第1の所定の条件を満たすかどうかを判定し、第1のメトリック値が第1の所定の条件を満たさないという判定に基づき、ワンショットNASのために、取得された第1のサブネットワークを訓練しないと判定し、ネットワーク全体から複数の候補サブネットワークのうちの第2のサブネットワークを取得し、ワンショットNASのために第2のサブネットワークを訓練するするように構成される。
【0006】
本開示の一態様によれば、非一時的なコンピュータ可読記憶媒体が命令を記憶し、命令は、少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサに、ネットワーク全体を取得するステップであって、ネットワーク全体がワンショットNASのための複数の候補サブネットワークを含む、ステップと、ネットワーク全体から複数の候補サブネットワークのうちの第1のサブネットワークを取得するステップと、第1のサブネットワークの第1のメトリック値を取得するステップと、第1のメトリック値が第1の所定の条件を満たすかどうかを判定するステップと、第1のメトリック値が第1の所定の条件を満たさないという判定に基づき、ワンショットNASのために、取得された第1のサブネットワークを訓練しないと判定し、ネットワーク全体から複数の候補サブネットワークのうちの第2のサブネットワークを取得するステップと、ワンショットNASのために第2のサブネットワークを訓練するステップとを実施させる。
【0007】
追加の態様について、一部は以下の説明に記載し、一部は説明から明らかになることになるか、本開示で提示した実施形態の実践によって実現され得る。
【図面の簡単な説明】
【0008】
図1図1は、一実施形態によるニューラルネットワークアーキテクチャの図である。
図2図2は、一実施形態によって実施されるニューラルアーキテクチャ探索(NAS)の例の図である。
図3図3は、一実施形態によるシングルパスワンショット(SPOS)方法の図である。
図4図4は、一実施形態によるSPOSサブネットワークの図である。
図5図5は、一実施形態によるNASの方法のフローチャートである。
図6図6は、本明細書に記載のシステム及び/又は方法が実装され得る例示的な環境の図である。
図7図7は、一実施形態による装置の例示的なコンポーネントの図である。
【発明を実施するための形態】
【0009】
本開示の例示的な実施形態の特徴、利点及び重要性について、添付の図面を参照して以下に説明する。図面では、類似の符号は類似の要素を示す。
【0010】
以下の例示的な実施形態の詳細な説明は、添付の図面を参照する。異なる図面の同一の参照番号は、同一又は類似の要素を識別する場合がある。
【0011】
前述の開示は、例示及び説明を提供するものであるが、網羅的であること、あるいは開示した正確な形態に実装例を限定することを意図したものではない。修正及び変更が、上記の開示に照らして可能であるか、あるいは実装例の実践から得られてもよい。さらに、一実施形態の1つ又は複数の特徴又はコンポーネントを、別の実施形態(又は別の実施形態の1つ又は複数の特徴)に組み込んでも、組み合わせてもよい。さらに、以下に提供する動作のフローチャート及び説明では、1つ又は複数の動作を省略し得ること、1つ又は複数の動作を追加し得ること、1つ又は複数の動作を同時に(少なくとも部分的に)実施し得ること及び1つ又は複数の動作の順序を切り替え得ることが理解される。
【0012】
本明細書に記載のシステム及び/又は方法を、異なる形態のハードウェア、ファームウェア、又はハードウェアとソフトウェアの組み合わせで実装し得ることが明らかになるであろう。このようなシステム及び/又は方法を実装するために使用される実際の特殊な制御ハードウェア又はソフトウェアコードは、実装例を限定するものではない。このため、システム及び/又は方法の動作及び挙動は、特定のソフトウェアコードを参照せずに本明細書で説明した。ソフトウェア及びハードウェアを、本明細書の説明に基づいてシステム及び/又は方法を実装するように設計し得ることが理解される。
【0013】
特徴の特定の組み合わせを特許請求の範囲に記載したり、及び/又は明細書に開示したりしているとしても、このような組み合わせは、可能な実装例の開示を限定することを意図するものではない。実際、このような特徴の多くを、特許請求の範囲に特に記載していない方法及び/又は明細書に開示していない方法で組み合わせてもよい。以下に列挙する各従属請求項は1つの請求項のみに直接依存する場合があるが、可能な実装例の開示には、請求項群内の他のあらゆる請求項と組み合わせた各従属請求項が含まれる。
【0014】
本明細書で使用する要素、行動又は指示を、明示的に記載していない限り、重要又は必須であると解釈するべきではない。このほか、本明細書で使用する場合、冠詞「a」及び「an」は、1つ又は複数の項目を含むことを意図しており、「1つ又は複数」と交換可能に使用され得る。1つの項目のみを意図している場合は、「1つの」という用語又は類似する用語を使用する。このほか、本明細書で使用する場合、「有する」、「有している」、「含む」、「含んでいる」などの用語は、オープンエンドの用語であることを意図している。さらに、「基づいて」という語句は、明示的に別段の記載がない限り、「少なくとも部分的に基づいて」を意味することを意図している。さらに、「[A]及び[B]の少なくとも1つ」、又は「[A]又は[B]の少なくとも1つ」などの表現を、Aのみ、Bのみ、又はA及びBの両方を含むものとして理解するべきである。
【0015】
本開示の例示的な実施形態では、方法及びシステムを開示する。ここで、システムは、NAS用の複数の候補サブネットワークを含む全体ネットワークを取得し、全体ネットワークから複数の候補サブネットワークのうちの第1のサブネットワークを取得し、第1のサブネットワークの第1のメトリック値を取得し、第1のメトリック値が第1の所定の条件を満たすかどうかを判定し、第1のメトリック値が第1の所定の条件を満たさないとの判定に基づいて、ワンショットNASのために、取得された第1のサブネットワークを訓練しないことを判定し、ネットワーク全体から複数の候補サブネットワークのうちの第2のサブネットワークを取得する。システムは、ワンショットNASのために第2のサブネットワークを訓練してもよい。ワンショットNASの訓練段階で不可能又は非実用的なサブネットワークをフィルタリングすることによって、潜在的に有害で不必要な訓練を省略することができ、これによって、冗長な訓練及び共有重みの崩壊が回避され、訓練段階が迅速化される。
【0016】
図1は、一実施形態によるニューラルネットワークアーキテクチャの図である。図1を参照すると、ニューラルネットワークアーキテクチャ100は、その接続、層タイプ(又は動作)、層の数及び各層のチャネルの数によって定義される。層タイプには、例えば、畳み込み層(畳み込みニューラルネットワーク(CNN)の場合)、活性化層(例えば、修正線形ユニット(ReLU))、プーリング層(最大値プーリング)、完全接続層、バッチ正規化層(BatchNorm)、ドロップアウト層などが含まれる。ネットワークのアーキテクチャ設計は、このような層タイプの少なくともいくつかに対応する層の組み合わせによって具体化される。
【0017】
図2は、一実施形態によって実施されるニューラルアーキテクチャ探索(NAS)の例の図である。NASは、ニューラルネットワークのアーキテクチャを自動的に設計する技術を指す。機能ブロック図200図2に示される。図2では、NASがサンプリング方法又はアルゴリズム(例えば、強化学習、進化的探索、ベイジアン最適化など)に従って実行される。NASは、コントローラ202、並びに訓練動作204及び評価動作206を有して実装される。
【0018】
図2を参照すると、サンプリング方法は、コントローラ202が(例えば、一組の層の探索空間から)サンプルアーキテクチャ候補210を生成する反復プロセスである。サンプルアーキテクチャ210は、精度、レイテンシ、モデルサイズなどのメトリック値を取得するために、訓練動作204及び評価動作206を介して最適化される。前回のサンプルの評価動作206の評価結果に基づいて、コントローラ202は、強化学習、ベイジアン最適化、進化的アルゴリズムなどのような方法を使用して、次のサンプルアーキテクチャ候補を生成する。このプロセスは、目標性能に達するまで(例えば、目標精度が得られるまで、目標レイテンシが得られるまで、目標モデルサイズが得られるまでなど)、繰り返し実施される。
【0019】
図2に示すサンプリング方法は、ネットワーク構造に関して(即ち、層タイプ、チャネル数、層数、マクロアーキテクチャなどに関して)柔軟であり、既知の性能を備えた訓練済みモデルを提供し得る(即ち、再構築の必要がない)のに対し、プロセスはきわめて時間がかかるものであり、その反復的な性質のため、初期状態(即ち、初期サンプルアーキテクチャ)に影響される。即ち、サンプリング方法では、最適なアーキテクチャを最終的に取得するために、サンプルアーキテクチャ(特に初期シードが最適ではない場合)の訓練、評価、更新/変更を何度も繰り返す必要がある。
【0020】
図3は、一実施形態によるシングルパスワンショット(SPOS)方法の図である。ワンショットNAS方法では、評価及び探索から訓練を切り離し、定義された探索空間(例えば、本明細書ではスーパーネットと呼ぶ)の全候補ネットワークアーキテクチャを含む全体ネットワーク上で訓練を実行することによって、探索のための計算オーバーヘッド及び時間を削減することができる。即ち、ネットワーク全体はNASの複数の候補サブネットワークを含む。特に、SPOS方法では、各反復においてスーパーネットの単一のサブネットワークを訓練し、結果として得られる重みを、基礎となる全アーキテクチャに均一に適用する。
【0021】
図3を参照すると、SPOS方法は、スーパーブロック302、スーパーブロック304からスーパーブロックN306までの多数のスーパーブロックを含んでもよい。各スーパーブロックは複数の選択ブロックを含んでもよい。SPOS方法は、(例えば、図3の矢印で示すように)複数の連続するスーパーブロック内の選択ブロックを接続するシングルパスをランダムに選択し、各スーパーブロックは、1つの層(及び/又は1組の層)に対応し、各選択ブロックは候補層(及び/又は複数組の層)に対応する。例えば、スーパーブロック302~306では、選択Xまで、選択1は3×3CNN、選択2は5×5CNN、選択3はReLUなどであってもよい。このプロセスは、1つの訓練反復における選択ブロックに適用された重みが、選択された経路(即ち、サブネットワーク)にその選択ブロックが含まれる別の反復においてその選択ブロックに均一に適用されることで、繰り返される。即ち、訓練反復中に判定された重みは、アーキテクチャ候補(即ち、サブネットワーク)全体で共有される。次に、サンプリング方法(例えば、進化的アルゴリズム)を適用して、微調整を実施せずに最高の性能のアーキテクチャを効率的に探索する。評価及び探索から訓練を切り離すことにより、1回のみの訓練が必要となり、訓練後に異なる制約を適用することができる。
【0022】
探索空間又はスーパーネットが大きなものであり且つ任意のサブネットワークが選択される例示的な実施形態では、訓練はさらに困難で複雑になり、時間がかかるようになる。そのような場合、スーパーネットをさらに充分に訓練することが困難になる可能性がある。
【0023】
例示的な実施形態には、不必要な訓練反復又は悪影響を及ぼす訓練反復(即ち、全体的な訓練に悪影響を及ぼすサブネットワーク)を排除するために、ネットワーク(例えば、スーパーネット)全体のワンショット訓練段階で何らかの評価が実施される、最適化されたワンショットニューラルアーキテクチャ探索(NAS)が含まれる。
【0024】
例示的な実施形態では、特定のアーキテクチャメトリクスを訓練なしで評価する。このため、これら評価を訓練段階の間に実施する。例えば、モデルサイズ、1秒当たりの浮動小数点演算数(フロップス)値、レイテンシなどのメトリクスを、サブネットワークに関して、そのサブネットワークを訓練する前に評価する場合があり、メトリクスは訓練による影響を受けない。このため、SPOS訓練の反復中にランダムに選択されたサブネットワークに、特定の基準を満たさない1つ又は複数のメトリクス(例えば、第1の閾値よりも小さい又は第2の閾値よりも大きいモデルサイズ、第3の閾値よりも大きいレイテンシなど)がある場合、そのサブネットワークは訓練されず(即ち、サブネットワークが拒否され)、別のサブネットワークが選択されるい(例えば、ランダムに選択されても、サブネットワークの所定の順序に基づいて選択されてもよい)。その結果、不必要な訓練反復又は有害な可能性のある訓練反復が回避され、冗長な訓練及び共有重みの崩壊が回避され、全体の訓練時間が低減される。
【0025】
図4は、一実施形態によるSPOSサブネットワークの図である。即ち、図4は、サブネットワーク402、サブネットワーク404及びサブネットワーク406のような、SPOS探索のためにランダムに選択され又は構築されたサブネットワークの例を示す。
【0026】
図4に示すように、サブネットワーク402は、第1の閾値よりも小さいと判定され、このため、訓練なしで拒否される。第1の閾値は、サブネットワークの層又はコンポーネントの数に基づいて判定された閾値である。閾値は、サブネットワークの層の総数、サブネットワークの畳み込み層の総数、ネットワークの残差ブロックの総数、トランスポート層の総数などに基づくものであってもよい。その結果、不必要な訓練又は有害な可能性のある訓練が回避される。さらに、共有重みの崩壊が回避される。即ち、サブネットワーク402(即ち、単一の畳み込み層アーキテクチャ)は、不可能なネットワークアーキテクチャである。サブネットワーク402がSPOS探索で訓練された場合、第1のスーパーブロックの畳み込み層選択ブロックに対して結果として得られる共有重みは、当該層を含む任意の現実的又は可能なネットワークアーキテクチャにとって最適なものではないであろう。この場合、その選択ブロックの最適な重みを取得するには、追加の訓練反復が必要になるであろう。サブネットワーク402を訓練せずに拒否することにより、冗長又は不必要な訓練が回避され、訓練全体が高速化される。
【0027】
さらに、サブネットワーク404は許容可能であると判定されるが、サブネットワーク406は大きすぎるため許容できないと判定され、不必要な訓練又は潜在的に有害な訓練が回避される。
【0028】
さらに、目標機械学習タスクを実行するためのタスクニューラルネットワークの最終アーキテクチャを判定する方法が提供される。目標機械学習タスクは、目標訓練データセットに関連付けられる。システムは目標訓練データセットのための目標メタ特徴テンソルを生成し、目標メタ特徴テンソルは目標訓練データセットの特徴を表す。システムは、複数のアーキテクチャを定義する探索空間から、目標機械学習タスクを実行するためのタスクニューラルネットワークのための候補アーキテクチャを生成することと、目標メタ特徴テンソルと、候補アーキテクチャを指定するデータとを含む入力を評価ニューラルネットワークに基づいて処理して、目標機械学習タスク上の候補アーキテクチャの性能を推定する候補性能スコアを生成することとを繰り返し実行する。システムは、候補アーキテクチャのなかで最大の候補性能スコアを有する候補アーキテクチャを最終アーキテクチャとして識別する。
【0029】
図5は、一実施形態によるNASの方法のフローチャートである。動作502では、システムはネットワーク全体を取得し、ネットワーク全体はNASの複数の候補サブネットワークを含む。動作504では、システムは、ネットワーク全体から複数の候補サブネットワークのうちの第1のサブネットワークを取得するい。動作506では、システムは、第1のサブネットワークの第1のメトリック値を取得する。動作508では、システムは、第1のメトリック値が第1の所定の条件を満たすかどうかを判定する。第1のメトリック値が第1の所定の条件を満たさないとの判定に基づいて、動作510では、システムは、ワンショットNASのために、取得した第1のサブネットワークを訓練しないと判定し、動作512では、システムは、ネットワーク全体から複数の候補サブネットワークの第2のサブネットワークを取得する。動作514では、システムは、ワンショットNASのために第2のサブネットワークを訓練する。
【0030】
第2のサブネットワークを訓練することは、第2のサブネットワークの第2のメトリック値を取得することと、第2のメトリック値が第1の所定の条件を満たすかどうかを判定することとを含む。ここで、ワンショットNASのための第2のサブネットワークは、第2のメトリック値が第1の所定の条件を満たすという判定に基づいて訓練される。第1のメトリック値が第1の所定の条件を満たすかどうかを判定することは、第1のメトリック値を第1の所定の閾値と比較することを含む。第1メトリック値が第1の所定の条件を満たすかどうかを判定することは、第1のメトリック値が第1の所定の閾値よりも大きく且つ第2の所定の閾値よりも小さいかどうかを判定することを含む。第1のメトリック値を取得することは、第1のサブネットワークの第1のメトリック値を含む複数のメトリック値を取得することを含み、第1のメトリック値が第1の所定の条件を満たすかどうかを判定することは、複数のメトリック値が、それぞれ、ワンショットNASにおける訓練のための、第1の所定の条件を含む対応する複数の所定の条件を満たすかどうかを判定することを含む。第1のメトリック値は、レイテンシ値、モデルサイズ値及びフロップス値のうちの少なくとも1つを含む。第1の所定の条件は、サブネットワークの層の総数、サブネットワークの畳み込み層の総数、サブネットワークの残差ブロックの総数、及びサブネットワークのトランスポート層の総数のうちの少なくとも1つに基づいて判定される。
【0031】
ワンショットNASの訓練段階において不可能又は非実用的なサブネットワークをフィルタリングすることによって、潜在的に有害で不必要な訓練を省略することができ、これによって、冗長な訓練及び共有重みの崩壊が回避され、訓練段階が迅速化される。
【0032】
図6は、本明細書に記載のシステム及び/又は方法が実装され得る例示的な環境600の図である。図6に示すように、環境600は、ユーザ装置610、プラットフォーム620及びネットワーク630を含む。環境600の装置は、有線接続、無線接続、又は有線接続と無線接続との組み合わせを介して相互接続される。実施形態では、上記で図1を参照して説明された機能及び動作のいずれも、図6に示す要素の任意の組み合わせによって実行される。
【0033】
ユーザ装置610は、プラットフォーム620に関連付けられた情報を受信し、生成し、記憶し、処理し、且つ/又は提供することができる1つ又は複数の装置を含む。例えば、ユーザ装置610は、コンピューティング装置(例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、携帯型コンピュータ、スマートスピーカ、サーバなど)、携帯電話(例えば、スマートフォン、無線電話など)、ウェアラブル装置(例えば、一対のスマートグラス又はスマートウォッチ)又は類似する装置)を含む。いくつかの実装例では、ユーザ装置610はプラットフォーム620から情報を受信し且つ/又はプラットフォーム620に情報を送信する。
【0034】
プラットフォーム620は、情報を受信し、生成し、記憶し、処理し、且つ/又は提供することができる1つ又は複数の装置を含む。いくつかの実装例では、プラットフォーム620はクラウドサーバ又はクラウドサーバ群を含む。いくつかの実装例では、プラットフォーム620は、特定のソフトウェアコンポーネントが特定のニーズに応じてスワップイン又はスワップアウトされるように、モジュール式に設計されてもよい。そのように、プラットフォーム620は、種々の用途について容易に且つ/又は迅速に再構成される。
【0035】
いくつかの実装例では、図示するように、プラットフォーム620は、クラウドコンピューティング環境622内でホストされる。とりわけ、本明細書に記載の実装例では、プラットフォーム620をクラウドコンピューティング環境622内でホストされるものとして説明しているが、いくつかの実装例では、プラットフォーム620は、クラウドベースでなくても(即ち、クラウドコンピューティング環境の外側で実装されても)、又は部分的にクラウドベースであってもよい。
【0036】
クラウドコンピューティング環境622は、プラットフォーム620をホストする環境を含む。クラウドコンピューティング環境622は、プラットフォーム620をホストするシステム及び/又は装置の物理的な場所及び構成に関するエンドユーザ(例えば、ユーザ装置610)の知識を必要としない計算、ソフトウェア、データアクセス、ストレージなどのサービスを提供してもよい。図示のように、クラウドコンピューティング環境622は、一群のコンピューティングリソース624(集合的に「複数のコンピューティングリソース624」と呼ばれ、個別に「コンピューティングリソース624」と呼ばれる)を含む。
【0037】
コンピューティングリソース624は、1つ又は複数のパーソナルコンピュータ、計算装置の集まり、ワークステーションコンピュータ、サーバ装置又は他のタイプのコンピューティング装置及び/又は通信装置を含む。いくつかの実装例では、コンピューティングリソース624は、プラットフォーム620をホストする。クラウドリソースは、コンピューティングリソース624内で実行されるコンピュートインスタンス、コンピューティングリソース624内に設けられた記憶装置、コンピューティングリソース624によって提供されたデータ転送装置などを含んでもよい。いくつかの実装例では、コンピューティングリソース624は、有線接続、無線接続、又は有線接続と無線接続との組み合わせを介して他のコンピューティングリソース624と通信する。
【0038】
さらに図6に示すように、コンピューティングリソース624は、1つ又は複数のアプリケーション(「APP」)624-1、1つ又は複数の仮想マシン(「VM」)624-2、仮想化ストレージ(「VS」)624-2、1つ又は複数のハイパーバイザ(「HYP」)624-4、又はこれらの均等物のような一群のクラウドリソースを含む。
【0039】
アプリケーション624-1は、ユーザ装置610に提供され又はユーザ装置610によってアクセスされる1つ又は複数のソフトウェアアプリケーションを含む。アプリケーション624-1は、ユーザ装置610上にソフトウェアアプリケーションをインストールして実行する必要性を排除することができる。例えば、アプリケーション624-1は、プラットフォーム620に関連付けられたソフトウェア及び/又はクラウドコンピューティング環境622を介して提供可能な任意の他のソフトウェアを含む。いくつかの実装例では、1つのアプリケーション624-1は、仮想マシン624-2を介して、1つ又は複数の他のアプリケーション624-1との間で情報を送受信する。
【0040】
仮想マシン624-2は、物理マシンのようなプログラムを実行するマシン(例えば、コンピュータ)のソフトウェア実装を含む。仮想マシン624-2は、用途、又は仮想マシン624-2による任意の実マシンへの対応の度合いに応じて、システム仮想マシン又はプロセス仮想マシンのいずれかである。システム仮想マシンは、完全なオペレーティングシステム(「OS」)の実行を支援する完全なシステムプラットフォームを提供する。プロセス仮想マシンは、単一のプログラムを実行し、単一のプロセスを支援する。いくつかの実装例では、仮想マシン624-2は、ユーザ(例えば、ユーザ装置610)に代わって実行し、データ管理、同期又は長期間のデータ転送のようなクラウドコンピューティング環境622のインフラを管理することができる。
【0041】
仮想化ストレージ624-3は、コンピューティングリソース624のストレージシステム又は装置内で仮想化技術を使用する1つ又は複数のストレージシステム及び/又は1つ又は複数の装置を含む。いくつかの実装例では、ストレージシステムの文脈において、仮想化の種類にはブロック仮想化及びファイル仮想化が含まれる。ブロック仮想化とは、物理ストレージ又は異種構造に関係なくストレージシステムにアクセスし得るように、物理ストレージから論理ストレージを抽象化(又は分離)することを指す。この分離により、ストレージシステムの管理者は、エンドユーザのストレージをどのように管理するかについて柔軟性を得ることができる。ファイル仮想化は、ファイルレベルでアクセスされるデータと、ファイルが物理的に保存される場所との間の依存関係を排除することができる。これにより、ストレージの使用、サーバの統合及び/又は稼働中のファイル移行のパフォーマンスの最適化が可能になる。
【0042】
ハイパーバイザ624-4は、複数のオペレーティングシステム(例えば、「ゲストオペレーティングシステム」)がコンピューティングリソース624のようなホストコンピュータ上で同時に実行されることを可能とするハードウェア仮想化技術を提供する。ハイパーバイザ624-4は、仮想オペレーティングプラットフォームをゲストオペレーティングシステムに提示し、ゲストオペレーティングシステムの実行を管理する。さまざまなオペレーティングシステムの複数のインスタンスが、仮想化されたハードウェア資源を共有する。
【0043】
ネットワーク630は1つ又は複数の有線及び/又は無線のネットワークを含む。例えば、ネットワーク630は、セルラーネットワーク(例えば、第5世代(5G)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多元接続(CDMA)ネットワークなど)、公衆陸上移動体通信網(PLMN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、電話網(例えば、公衆交換電話網(PSTN))、私的ネットワーク、臨時ネットワーク、イントラネット、インターネット、光ファイバーベースのネットワーク、若しくはこれらの均等物、及び/又はこれら又は他のタイプのネットワークの組み合わせを含む
【0044】
図6に示す装置及びネットワークの数及び配置は、一例として提供される。実際には、図6に示すもの以外に、追加の装置及び/又はネットワーク、これより少ない装置及び/又はネットワーク、異なる装置及び/又はネットワーク、あるいは異なる配置の装置及び/又はネットワークが存在してもよい。さらに、図6に示す2つ以上の装置を単一の装置内で実装しても、図6に示す単一の装置を複数の分散装置として実装してもよい。これに加えて、あるいはこれとは別に、環境600の装置のセット(例えば、1つ又は複数の装置)が、環境600の装置の別のセットによって実施されるものとして説明する1つ又は複数の機能を実施してもよい。
【0045】
図7は、装置700の例示的なコンポーネントの図である。装置700は、ユーザ装置610及び/又はプラットフォーム620に対応する。図7に示すように、装置700は、バス710、プロセッサ720、メモリ730、記憶コンポーネント740、入力コンポーネント750、出力コンポーネント760及び通信インターフェース770を含む。
【0046】
バス710は、装置700のコンポーネント間の通信を可能にするコンポーネントを含む。プロセッサ720は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアとの組み合わせで実装される。プロセッサ720は、中央処理装置(CPU)、グラフィック処理装置(GPU)、加速処理装置(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)又は別のタイプの処理コンポーネントである。いくつかの実装例では、プロセッサ720は、機能を実行するようにプログラム可能な1つ又は複数のプロセッサを含む。メモリ730は、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)及び/又はプロセッサ720によって使用される情報及び/又は命令を記憶する別のタイプの動的記憶装置又は静的記憶装置(例えば、フラッシュメモリ、磁気メモリ及び/又は光メモリ)を含む。
【0047】
記憶コンポーネント740は、装置700の動作及び使用に関連する情報及び/又はソフトウェアを記憶する。例えば、記憶コンポーネント740は、ハードディスク(例えば、磁気ディスク、光ディスク、光磁気ディスク及び/又はソリッドステートディスク)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク、カートリッジ、磁気テープ、及び/又は別のタイプの非一時的なコンピュータ可読媒体を、対応するドライブと共に含む。入力コンポーネント750は、装置700がユーザ入力(例えば、タッチスクリーンディスプレイ、キーボード、キーパッド、マウス、ボタン、スイッチ及び/又はマイク)などを介して情報を受信することができるようにするコンポーネントを含む。加えて又は代替的に、入力コンポーネント750は、情報を感知するためのセンサ(例えば、全地球測位システム(GPS)コンポーネント、加速度計、ジャイロスコープ及び/又はアクチュエータ)を含んでもよい。出力コンポーネント760は、装置700からの出力情報を提供するコンポーネント(例えば、ディスプレイ、スピーカ及び/又は1つ又は複数の発光ダイオード(LED))を含む。
【0048】
通信インターフェース770は、装置700が有線接続、無線接続、又は有線接続と無線接続との組み合わせなどを介して他の装置と通信することができるようにするトランシーバ状のコンポーネント(例えば、トランシーバ及び/又は別個の受信機及び送信機)を含む。通信インターフェース770は、装置700が別の装置から情報を受信し且つ/又は別の装置に情報を提供することを可能にする。例えば、通信インターフェース770は、イーサネットインターフェース、光インターフェース、同軸インターフェース、赤外線インターフェース、無線周波数(RF)インターフェース、ユニバーサルシリアルバス(USB)インターフェース、Wi-Fiインターフェース、セルラーネットワークインターフェース、又はこれらの均等物を含む。
【0049】
装置700は、本明細書に記載の1つ又は複数のプロセスを実行する。装置700は、メモリ730及び/又は記憶コンポーネント740のような非一時的なコンピュータ可読媒体によって記憶されたソフトウェア命令をプロセッサ720が実行することに応答して、これらプロセスを実行するい。コンピュータ可読媒体は、本明細書において非一時的なメモリ装置として定義される。メモリ装置には、単一の物理記憶装置内のメモリ空間又は複数の物理記憶装置にまたがるメモリ空間が含まれる。
【0050】
ソフトウェア命令は、通信インターフェース770を介して、別のコンピュータ可読媒体又は別の装置からメモリ730及び/又は記憶コンポーネント740に読み込まれてもよい。メモリ730及び/又は記憶コンポーネント740に記憶されたソフトウェア命令は、実行されると、プロセッサ720に、本明細書に記載の1つ又は複数のプロセスを実行させる。
【0051】
加えて又は代替的に、ハードワイヤード回路は、本明細書に記載の1つ又は複数のプロセスを実行するために、ソフトウェア命令の代わりに又はソフトウェア命令と組み合わせて使用される。このため、本明細書に記載の実装例は、ハードウェア回路及びソフトウェアの任意の特定の組み合わせに限定されない。
【0052】
図7に示すコンポーネントの数及び配置は、一例として提供される。実際には、装置700は、図7に示すもの以外に、追加のコンポーネント、これより少ないコンポーネント、異なるコンポーネント又は異なる配置のコンポーネントを含んでもよい。加えて又は代替的に、装置700のコンポーネントのセット(例えば、1つ又は複数のコンポーネント)が、装置700のコンポーネントの別のセットによって実行されるものとして説明される1つ又は複数の機能を実行してもよい。
【0053】
実施形態では、図1図5の動作又はプロセスのいずれか1つが、図6及び図7に示す要素のいずれか1つによって実施され、又は図6及び図7に示す要素のいずれか1つを使用して実施される。
【0054】
前述の開示は、例示及び説明を提供するものであるが、網羅的であることを意図したものでも、開示した正確な形態に実装例を限定することを意図したものでもない。修正及び変更が、上記の開示に照らして可能であり、又は実装例の実践から得られる。
【0055】
いくつかの実施形態が、統合の可能なあらゆる技術的詳細レベルでのシステム、方法及び/又はコンピュータ可読媒体に関連する。さらに、上述のコンポーネントのうちの1つ又は複数は、コンピュータ可読媒体に記憶され且つ少なくとも1つのプロセッサによって実行可能な命令として実装されもよい(且つ/又は少なくとも1つのプロセッサを含んでもよい)。コンピュータ可読媒体は、プロセッサに動作を実行させるためのコンピュータ可読プログラム命令を有する(1つ又は複数の)非一時的なコンピュータ可読記憶媒体を含む。
【0056】
コンピュータ可読記憶媒体を、命令実行装置によって使用される命令を保持及び記憶することができる有形の装置とすることができる。コンピュータ可読記憶媒体は、例えば、電子記憶装置、磁気記憶装置、光記憶装置、電磁記憶装置、半導体記憶装置又はこれらの任意の適切な組み合わせであってもよいが、これらに限定されない。コンピュータ可読記憶媒体のさらに具体的な例の非網羅的なリストには、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能なプログラム可能読み取り専用メモリ(EPROM又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリーメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピーディスク、その上に記憶された命令を有するパンチカード又は溝内の隆起構造のような機械式に符号化された装置、及びこれらの任意の適切な組み合わせが含まれる。コンピュータ可読記憶媒体は、本明細書において使用されるとき、電波若しくは他の自由に伝播する電磁波、導波路若しくは他の伝送媒体を伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又はワイヤーを介して送信された電気信号のような一時的な信号そのものであると解釈されるべきではない。
【0057】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理装置にダウンロードされ、又はネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又はワイヤレスネットワークを介して外部コンピュータ又は外部記憶装置にダウンロードされることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ及び/又はエッジサーバを含むことができる。各コンピューティング/処理装置内のネットワークアダプタカード又はネットワークインターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理装置内のコンピュータ可読記憶媒体に記憶するためにコンピュータ可読プログラム命令を転送する。
【0058】
動作を実行するためのコンピュータ可読プログラムコード/命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用構成データ、又は、Smalltalk、C++などのオブジェクト指向プログラミング言語、及び「C」プログラミング言語若しくは同様のプログラミング言語のような手続き型プログラミング言語を含む1つ又は複数のプログラミング言語の任意の組み合わせで記述されたソースコード若しくはオブジェクトコードのいずれかである。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で完全に実行され、スタンドアロンソフトウェアパッケージとしてユーザのコンピュータ上で部分的に実行され、ユーザのコンピュータ上で部分的に実行され、リモートコンピュータ上で部分的に実行され、又はリモートコンピュータ若しくはサーバ上で完全に実行される。リモートコンピュータ又はサーバ上で実行される状況では、リモートコンピュータは、ローカルエリアネットワーク(LAN)若しくはワイドエリアネットワーク(WAN)を含む任意の種類のネットワークを介してユーザのコンピュータに接続され、又は(例えば、インターネットサービスプロバイダを使用したインターネットを介して)外部コンピュータに接続される。いくつかの実施形態では、例えば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)又はプログラマブル論理アレイ(PLA)を含む電子回路が、態様(aspect)又は動作を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによって、コンピュータ可読プログラム命令を実行することができる。
【0059】
これらコンピュータ可読プログラム命令は、コンピュータ若しくは他のプログラマブルデータ処理装置のプロセッサを介して実行される命令が、フローチャート及び/又はブロック図のブロック若しくは複数のブロックにおいて指定された機能/行為を実施するための手段を生成するように、汎用コンピュータ、特殊用途コンピュータ若しくは他のプログラマブルデータ処理装置のプロセッサに提供されて機械を製造してもよい。これらコンピュータ可読プログラム命令は、記憶された命令を有するコンピュータ可読記憶媒体が、フローチャート及び/又はブロック図のブロック若しくは複数のブロックにおいて指定された機能/行為の態様を実施する命令を含む製造品を含むように、コンピュータ、プログラム可能なデータ処理装置、及び/又は他の装置に特定の態様で機能するように指示することができるコンピュータ可読記憶媒体に記憶されていてもよい。
【0060】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブルなデータ処理装置、若しくは他の装置にロードされて、コンピュータ、他のプログラマブルな装置、若しくは他の装置上で実行される命令が、フローチャート及び/又はブロック図のブロック若しくは複数のブロックにおいて指定された機能/行為を実施するように、コンピュータ実装プロセスを生成するための一連の動作ステップをコンピュータ、他のプログラマブルな装置、若しくは他の装置上で実行させてもよい。
【0061】
図中のフローチャート及びブロック図は、さまざまな実施形態によるシステム、方法及びコンピュータ可読媒体の可能な実装例のアーキテクチャ、機能性及び動作を示す。これに関して、フローチャート又はブロック図の各ブロックは、指定された論理機能を実施するための1つ又は複数の実行可能命令を含むモジュール、セグメント又は命令の一部を表す。この方法、コンピュータシステム及びコンピュータ可読媒体は、図面に示すもの以外に、追加のブロック、これより少ないブロック、異なるブロック又は異なる配置のブロックを含んでもよい。いくつかの代替実装例では、ブロックに示す機能は、図面に示している順序とは異なる順序で実施されてもよい。例えば、連続して示す2つのブロックが、実際には、同時に実施されても、ほぼ同時に実施されても、関与する機能に応じて逆の順序で実施されることがあってもよい。このほか、ブロック図及び/又はフローチャート図の各ブロック及びブロック図及び/又はフローチャート図のブロックの組み合わせを、指定された機能又は行動を実行する専用のハードウェアベースのシステムによって実施することができ、あるいは各ブロック及びブロックの組み合わせが専用のハードウェアとコンピュータ命令の組み合わせを実施することができることに留意されたい。
【0062】
本明細書に記載のシステム及び/又は方法を、異なる形態のハードウェア、ファームウェア、又はハードウェアとソフトウェアとの組み合わせで実施し得ることは明らかであろう。このようなシステム及び/又は方法を実施するために使用される実際の特殊な制御ハードウェア又はソフトウェアコードは、実装例を限定するものではない。このため、システム及び/又は方法の動作及び挙動を、特定のソフトウェアコードを参照することなく本明細書で説明したが、ソフトウェア及びハードウェアを、本明細書の説明に基づいてシステム及び/又は方法を実施するように設計し得ることが理解される。
図1
図2
図3
図4
図5
図6
図7