(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024137637
(43)【公開日】2024-10-07
(54)【発明の名称】最適化ニューラルアーキテクチャ探索のためのシステム及び方法
(51)【国際特許分類】
G06N 3/0985 20230101AFI20240927BHJP
G06N 3/086 20230101ALI20240927BHJP
G06N 3/082 20230101ALI20240927BHJP
G06N 3/04 20230101ALI20240927BHJP
【FI】
G06N3/0985
G06N3/086
G06N3/082
G06N3/04
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023181838
(22)【出願日】2023-10-23
(31)【優先権主張番号】18/126,067
(32)【優先日】2023-03-24
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.SMALLTALK
(71)【出願人】
【識別番号】521042770
【氏名又は名称】ウーブン・バイ・トヨタ株式会社
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100092624
【弁理士】
【氏名又は名称】鶴田 準一
(74)【代理人】
【識別番号】100147555
【弁理士】
【氏名又は名称】伊藤 公一
(74)【代理人】
【識別番号】100123593
【弁理士】
【氏名又は名称】関根 宣夫
(74)【代理人】
【識別番号】100133835
【弁理士】
【氏名又は名称】河野 努
(72)【発明者】
【氏名】山口 晃一郎
(57)【要約】
【課題】最適化されたワンショットニューラルアーキテクチャ探索(NAS)を提供する。
【解決手段】探索空間において勾配ベースの探索及びサンプリング方法の両方を使用することによって、最適化ニューラルアーキテクチャ探索(NAS)を実行するための方法、システム及び装置が提供される。この方法は、ニューラルネットワークアーキテクチャのための複数の候補層を含む第1の探索空間を取得するステップと、第1の探索空間において勾配ベースの探索を実行して第1のアーキテクチャを取得するステップと、第1のアーキテクチャを初期サンプルとして利用してサンプリング方法探索を実行するステップと、サンプリング方法探索の出力として第2のアーキテクチャを取得するステップとを含む。
【選択図】
図7
【特許請求の範囲】
【請求項1】
ニューラルアーキテクチャ探索(NAS)を実行する方法であって、
ニューラルネットワークアーキテクチャのための複数の候補層を含む第1の探索空間を取得するステップと、
前記第1の探索空間において勾配ベースの探索を実行して第1のアーキテクチャを取得するステップと、
前記第1のアーキテクチャを初期サンプルとして利用してサンプリング方法探索を実行するステップと、
前記サンプリング方法探索の出力として第2のアーキテクチャを取得するステップと
を含む、方法。
【請求項2】
前記第1の探索空間を取得するステップは、前記第1の探索空間を含む複数の部分空間を取得することを含み、前記複数の部分空間のそれぞれが候補層のセットを含み、前記勾配ベースの探索を実行するステップは、前記複数の部分空間において複数の勾配ベースの探索をそれぞれ実行して複数の第1のアーキテクチャを取得することを含む、請求項1に記載の方法。
【請求項3】
前記サンプリング方法探索を実行するステップは、前記複数の第1のアーキテクチャを初期シードとして利用して前記サンプリング方法探索を実行することを含む、請求項2に記載の方法。
【請求項4】
前記サンプリング方法探索は進化的探索アルゴリズムを含む、請求項3に記載の方法。
【請求項5】
前記進化的探索アルゴリズムは、前記複数の部分空間の和集合である探索空間を利用する、請求項4に記載の方法。
【請求項6】
前記進化的探索アルゴリズムは多数の反復にわたって繰り返される、請求項4又は5に記載の方法。
【請求項7】
前記多数の反復は所定の閾値に基づくものである、請求項6に記載の方法。
【請求項8】
ニューラルアーキテクチャ探索(NAS)を実行するための装置であって、
コンピュータ実行可能命令を記憶する少なくとも1つのメモリと、
少なくとも一つのプロセッサと
を具備し、
前記少なくとも1つのプロセッサは、前記コンピュータ実行可能命令を実行して、
ニューラルネットワークアーキテクチャのための複数の候補層を含む第1の探索空間を取得し、
前記第1の探索空間において勾配ベースの探索を実行して第1のアーキテクチャを取得し、
前記第1のアーキテクチャを初期サンプルとして利用してサンプリング方法探索を実行し、
前記サンプリング方法探索の出力として第2のアーキテクチャを取得するように構成される、装置。
【請求項9】
前記少なくとも1つのプロセッサは、前記コンピュータ実行可能命令を実行して、前記第1の探索空間を含む複数の部分空間を取得することによって前記第1の探索空間を取得するようにさらに構成され、前記複数の部分空間のそれぞれが候補層のセットを含み、
前記少なくとも1つのプロセッサは、前記コンピュータ実行可能命令を実行して、前記複数の部分空間において複数の勾配ベースの探索をそれぞれ実行して複数の第1のアーキテクチャを取得することによって、前記勾配ベースの探索を実行するようにさらに構成される、請求項8に記載の装置。
【請求項10】
前記少なくとも1つのプロセッサは、前記コンピュータ実行可能命令を実行して、前記複数の第1のアーキテクチャを初期シードとして利用して前記サンプリング方法探索を実行することによって、前記サンプリング方法探索を実行するようにさらに構成される、請求項9に記載の装置。
【請求項11】
前記サンプリング方法探索は進化的探索アルゴリズムを含む、請求項10に記載の装置。
【請求項12】
前記進化的探索アルゴリズムは、前記複数の部分空間の和集合である探索空間を利用する、請求項11に記載の装置。
【請求項13】
前記進化的探索アルゴリズムは多数の反復にわたって繰り返される、請求項11又は12に記載の装置。
【請求項14】
前記多数の反復は所定の閾値に基づくものである、請求項13に記載の装置。
【請求項15】
少なくとも1つのプロセッサによって実行可能な命令が記録された非一時的なコンピュータ可読記録媒体であって、
前記命令は、前記少なくとも一つのプロセッサに、
ニューラルネットワークアーキテクチャのための複数の候補層を含む第1の探索空間を取得するステップと、
前記第1の探索空間において勾配ベースの探索を実行して第1のアーキテクチャを取得するステップと、
前記第1のアーキテクチャを初期サンプルとして利用してサンプリング方法探索を実行するステップと、
前記サンプリング方法探索の出力として第2のアーキテクチャを取得するステップとを含む方法を実行させる、非一時的なコンピュータ可読記録媒体。
【請求項16】
前記第1の探索空間を取得するステップは、前記第1の探索空間を含む複数の部分空間を取得することを含み、前記複数の部分空間のそれぞれが候補層のセットを含み、前記勾配ベースの探索を実行するステップは、前記複数の部分空間において複数の勾配ベースの探索をそれぞれ実行して複数の第1のアーキテクチャを取得することを含む、請求項15に記載の非一時的なコンピュータ可読記録媒体。
【請求項17】
前記サンプリング方法探索を実行するステップは、前記複数の第1のアーキテクチャを初期シードとして利用して前記サンプリング方法探索を実行することを含む、請求項16に記載の非一時的なコンピュータ可読記録媒体。
【請求項18】
前記サンプリング方法探索は進化的探索アルゴリズムを含む、請求項17に記載の非一時的なコンピュータ可読記録媒体。
【請求項19】
前記進化的探索アルゴリズムは、前記複数の部分空間の和集合である探索空間を利用する、請求項18に記載の非一時的なコンピュータ可読記録媒体。
【請求項20】
前記進化的探索アルゴリズムは複数の反復にわたって繰り返される、請求項18又は19に記載の非一時的なコンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の例示的な実施形態と整合するシステム及び方法は、ニューラルネットワークに関し、さらに詳細には、ニューラルアーキテクチャ探索(NAS)を実行するためのシステム及び方法に関する。
【背景技術】
【0002】
関連技術では、ニューラルネットワークは、概して、2つの主なパラメータ、(1)そのアーキテクチャ、及び(2)ニューロン間で伝達される入力に適用される重みによって特徴付けられる。典型的には、アーキテクチャはユーザによって手動又は手作業で設計されるが、重みは訓練セット及びニューラルネットワークアルゴリズムを使用してネットワークを訓練することによって最適化される。このため、ニューラルネットワークの性能を最適化するために、アーキテクチャ設計が、特に、ネットワークが使用のために展開された時点で概して静的であるため、重要な考慮事項である。
図1は、関連技術のニューラルネットワークアーキテクチャの一例を示す。
【0003】
図1を参照すると、関連技術の例示的なニューラルネットワークアーキテクチャは、その接続、層タイプ(又は動作)、層数及び各層のチャネル数によって定義される。層タイプには、例えば、畳み込み層(畳み込みニューラルネットワーク(CNN)の場合)、活性化層(例えば、修正線形ユニット(ReLU))、プーリング層、完全接続層、バッチ正規化層、ドロップアウト層などが含まれる。ネットワークのアーキテクチャ設計は、このような層タイプの少なくともいくつかに対応する層の組み合わせによって具体化される。
【0004】
関連技術では、ニューラルアーキテクチャ探索(NAS)は、ニューラルネットワークのアーキテクチャを自動的に設計する技術である。NASを実行するための従来技術の方法には、サンプリング方法及び勾配ベースの探索方法が含まれる。
【0005】
図2は、従来技術によるサンプリング方法の機能ブロック図である。
図2を参照すると、サンプリング方法は、コントローラが(例えば、一組の層の探索空間から)サンプルアーキテクチャ候補を生成する反復プロセスである。サンプルアーキテクチャは、訓練を介して最適化され、メトリクス値(精度、レイテンシ、モデルサイズなど)を取得するために評価される。次に、コントローラは、前回のサンプルの評価結果に基づいて、強化学習、ベイジアン最適化又は進化的アルゴリズムなどの方法を使用して、次のサンプルアーキテクチャ候補を生成する。このプロセスは、目標の性能に達するまで(例えば、目標の精度、レイテンシ、モードサイズなどが得られるまで)繰り返し実行される。
【0006】
図3は、関連技術による勾配ベースの探索方法を示す。
図4は、勾配ベースの探索方法の例示的なスーパーブロックを示し、
図5は、勾配ベースの探索方法の例示的な流れを示す。
【0007】
サンプリング方法とは異なり、勾配ベースの探索では、アーキテクチャをサンプリングしないが、全候補ネットワークアーキテクチャのネットワークであるスーパーネットを使用する。
図3を参照すると、勾配ベースの探索では、接続された複数のスーパーブロックの単一の訓練プロセスを介してニューラルネットワークアーキテクチャを探索し、各スーパーブロックは、1つの層(及び/又は1組の層)に対応し、候補層(及び/又は複数組の層)の多くの選択を含む。例えば、選択1は3×3CNN、選択2は5×5CNN、選択3は最大プーリング又は残差ブロックなどである。勾配ベースの探索では、各スーパーブロック内で最良の層が探索されて選択される。
図4及び
図5に示すように、各候補はθ値(又はアーキテクチャパラメータ)を有し、θ値は訓練プロセスを介して更新される。即ち、候補が損失の削減に大きく貢献したと判定された場合、(候補層の重要性を表す)そのθ値は逆伝播によって増大し、その逆の場合もある。勾配探索の繰り返しでアーキテクチャパラメータθが更新された後、訓練画像(例えば、自動車の画像)を使用して重みパラメータが更新される。このプロセスは、ネットワークの安定性がある程度のレベルに達するまで(即ち、レイテンシ又は損失がある程度に達するまで)、又は所定の反復回数が完了するまで繰り返される。訓練が完了した時点で、最終的な(最適な)ネットワークアーキテクチャを生成するために、各スーパーブロックに対して最良の層(即ち、最も高いθ値を有する層)が選択される。
【0008】
図2に示すサンプリング方法は、ネットワーク構造に関して(即ち、層タイプ、チャネル数、層数、マクロアーキテクチャなどに関して)柔軟であり、既知の性能を備えた訓練済みモデルを提供する(即ち、再構築の必要がない)が、プロセスは、その反復的な性質のため、きわめて時間がかかるものであり、初期状態(即ち、初期サンプルアーキテクチャ)に影響される。即ち、初期シード又はサンプルアーキテクチャが準最適なものであるか、不十分なものである場合、最適なアーキテクチャを最終的に取得するには、さらに多くの反復(変異)及び時間が必要になる。
【0009】
一方、勾配探索は、1回のプロセスで適度に良好なモデルを提供できることにより、必要な時間がサンプリング方法よりもはるかに短くなる。しかし、勾配探索にはネットワーク構造に関していくつかの制約がある。即ち、アーキテクチャブロック(層タイプ、層数、チャネル数など)が非常に柔軟であるサンプリング方法とは異なり、勾配探索は予め定義されたスーパーネットに制限される。さらに、勾配探索は、複数のスーパーブロックにわたって伝播される候補ブロックの数により大量のメモリを消費し、それによって、探索空間(即ち、スーパーネット)のサイズを制限する。即ち、探索空間が大きいほど、候補ブロックの数が多くなり、勾配探索を実行するためのメモリの量も多くなる。このため、ハードウェア(メモリ)資源の利用可能性により、勾配探索の探索空間が制限される。
【0010】
このため、比較的短期間で最適なアーキテクチャを取得することが可能でありながら、資源消費全体を削減することができるNASのさらに最適化された方法が必要とされている。
【発明の概要】
【0011】
実施形態によれば、探索空間において勾配ベースの探索及びサンプリング方法の両方を使用することによって、最適化ニューラルアーキテクチャ探索(NAS)を実行するための方法、システム及び装置が提供される。特に、複数の勾配ベースの探索が複数の部分空間空間上で実行され、それにより、スーパーネットの拡張を可能としつつ、勾配ベースの探索についてのハードウェア要件が分散される。さらに、第一段階で勾配ベースの探索を利用することにより、サンプリング方法の初期シードが最適化され、それによって、探索が高速化され、最適なニューラルネットワークアーキテクチャを発見するのに必要な時間が短縮される。さらにまた、サンプリング方法による勾配ベースの探索に従うことにより、無制限の(又は区切られた)探索空間を使用して最適なアーキテクチャを構築し、それによって、ニューラルネットワーク構造の柔軟性を向上させることができる。
【0012】
一実施形態によれば、ニューラルアーキテクチャ探索(NAS)を実行する方法が提供される。この方法は、ニューラルネットワークアーキテクチャのための複数の候補層を含む第1の探索空間を取得するステップと、第1の探索空間内において勾配ベースの探索を実行して第1のアーキテクチャを取得するステップと、第1のアーキテクチャを初期サンプルとして利用してサンプリング方法探索を実行するステップと、サンプリング方法探索の出力として第2のアーキテクチャを取得するステップとを含む。
【0013】
第1の探索空間を取得するステップは、第1の探索空間を含む複数の部分空間を取得することを含み、複数の部分空間のそれぞれは候補層のセットを含み、勾配ベースの探索を実行するステップは、複数の部分空間において複数の勾配ベースの探索をそれぞれ実行して複数の第1のアーキテクチャを取得することを含む。
【0014】
サンプリング方法探索を実行するステップは、複数の第1のアーキテクチャを初期シードとして利用してサンプリング方法探索を実行することを含む。
【0015】
サンプリング方法探索は進化的探索アルゴリズムを含む。
【0016】
進化的探索アルゴリズムは、複数の部分空間の和集合である探索空間を利用する。
【0017】
進化的探索アルゴリズムは多数の反復にわたって繰り返される。
【0018】
多数の反復は所定の閾値に基づくものである。
【0019】
実施形態によれば、ニューラルアーキテクチャ探索(NAS)を実行するための装置が提供される。この装置は、コンピュータ実行可能命令を記憶する少なくとも1つのメモリと、少なくとも1つのプロセッサとを含み、少なくとも一つのプロセッサは、コンピュータ実行可能命令を実行して、ニューラルネットワークアーキテクチャのための複数の候補層を含む第1の探索空間を取得し、第1の探索空間において勾配ベースの探索を実行して第1のアーキテクチャを取得し、第1のアーキテクチャを初期サンプルとして利用してサンプリング方法探索を実行し、サンプリング方法探索の出力として第2のアーキテクチャを取得するように構成される。
【0020】
少なくとも1つのプロセッサは、コンピュータ実行可能命令を実行して、第1の探索空間を含む複数の部分空間を取得することによって第1の探索空間を取得するようにさらに構成され、複数の部分空間のそれぞれが候補層のセットを含み、少なくとも1つのプロセッサは、コンピュータ実行可能命令を実行して、複数の部分空間において複数の勾配ベースの探索をそれぞれ実行して複数の第1のアーキテクチャを取得することによって、勾配ベースの探索を実行するようにさらに構成される。
【0021】
少なくとも1つのプロセッサは、コンピュータ実行可能命令を実行し、複数の第1のアーキテクチャを初期シードとして利用してサンプリング方法探索を実行することによって、サンプリング方法探索を実行するようにさらに構成される。
【0022】
追加の態様について、一部は以下の説明に記載し、一部は説明から明らかになり、又は本開示に提示の実施形態の実践によって実現され得る。
【図面の簡単な説明】
【0023】
【
図1】
図1は、関連技術による例示的なニューラルネットワークアーキテクチャを示す。
【
図2】
図2は、関連技術によるサンプリング方法の機能ブロック図を示す。
【
図3】
図3は、関連技術による勾配ベースの探索方法の機能ブロック図を示す。
【
図4】
図4は、関連技術による勾配ベースの探索方法の例示的なスーパーブロックを示す。
【
図5】
図5は、関連技術による勾配ベースの探索方法のフロー図を示す。
【
図6】
図6は、1つ又は複数の実施形態による、ニューラルアーキテクチャ探索(NAS)プロセスの機能ブロック図を示す。
【
図7】
図7は、1つ又は複数の実施形態による、最適化NASプロセスを実行するための例示的な方法のフロー図を示す。
【発明を実施するための形態】
【0024】
本開示の例示的な実施形態の特徴、利点及び重要性について、添付の図面を参照して以下に説明する。図面では、類似の参照符号は類似の要素を示す。
【0025】
以下の例示的な実施形態の詳細な説明は、添付の図面を参照する。前述の開示は、例示及び説明を提供するものであるが、網羅的であること、あるいは開示した正確な形態に実装例を限定することを意図したものではない。修正及び変更が、上記の開示に照らして可能であるか、あるいは実装例の実践から得られてもよい。さらに、一実施形態の1つ又は複数の特徴又はコンポーネントを、別の実施形態(又は別の実施形態の1つ又は複数の特徴)に組み込んでも、組み合わせてもよい。さらに、以下に提供する動作のフローチャート及び説明では、1つ又は複数の動作を省略し得ること、1つ又は複数の動作を追加し得ること、1つ又は複数の動作を同時に(少なくとも部分的に)実施し得ること及び1つ又は複数の動作の順序を切り替え得ることが理解される。
【0026】
本明細書に記載のシステム及び/又は方法を、異なる形態のハードウェア、ファームウェア、又はハードウェアとソフトウェアの組み合わせで実装し得ることが明らかになるであろう。このようなシステム及び/又は方法を実装するために使用される実際の特殊な制御ハードウェア又はソフトウェアコードは、実装例を限定するものではない。このため、システム及び/又は方法の動作及び挙動は、特定のソフトウェアコードを参照せずに本明細書で説明した。ソフトウェア及びハードウェアを、本明細書の説明に基づいてシステム及び/又は方法を実装するように設計し得ることが理解される。
【0027】
特徴の特定の組み合わせを特許請求の範囲に記載したり、及び/又は明細書に開示したりしているとしても、このような組み合わせは、可能な実装例の開示を限定することを意図するものではない。実際、このような特徴の多くを、特許請求の範囲に特に記載していない方法及び/又は明細書に開示していない方法で組み合わせてもよい。以下に列挙する各従属請求項は1つの請求項のみに直接依存する場合があるが、可能な実装例の開示には、請求項群内の他のあらゆる請求項と組み合わせた各従属請求項が含まれる。
【0028】
本明細書で使用する要素、行動又は指示を、明示的に記載していない限り、重要又は必須であると解釈するべきではない。このほか、本明細書で使用する場合、冠詞「a」及び「an」は、1つ又は複数の項目を含むことを意図しており、「1つ又は複数」と交換可能に使用され得る。1つの項目のみを意図している場合は、「1つの」という用語又は類似する用語を使用する。このほか、本明細書で使用する場合、「有する」、「有している」、「含む」、「含んでいる」などの用語は、オープンエンドの用語であることを意図している。さらに、「基づいて」という語句は、明示的に別段の記載がない限り、「少なくとも部分的に基づいて」を意味することを意図している。さらに、「[A]及び[B]の少なくとも1つ」、又は「[A]又は[B]の少なくとも1つ」などの表現を、Aのみ、Bのみ、又はA及びBの両方を含むものとして理解するべきである。
【0029】
「1つの実施形態」、「一実施形態」、「非限定的な例示的な実施形態」又は類似する用語への本明細書全体にわたる言及は、示された実施形態に関連して説明した特定の特徴、構造又は特性が本解決策の少なくとも1つの実施形態に含まれることを意味する。このため、本明細書全体にわたる「1つの実施形態では」、「一実施形態では」、「1つの非限定的な例示的な実施形態では」という語句及び類似する表現はいずれも、必ずしもそうではないが、同じ実施形態を指す場合がある。
【0030】
さらに、本開示に記載の特徴、利点及び特性は、1つ又は複数の実施形態において任意の適切な方法で組み合わされてもよい。当業者であれば、本明細書の説明を考慮すれば、特定の実施形態の特定の特徴又は利点の1つ又は複数がなくても本開示を実施可能であることを認識するであろう。他の例では、本開示のいずれの実施形態にも存在しない可能性がある追加の特徴及び利点が特定の実施形態で認識される場合がある。
【0031】
本開示の例示的な実施形態では、探索空間上で勾配ベースの探索及びサンプリング方法の両方を用いて最適化ニューラルアーキテクチャ探索(NAS)を実行するための方法及びシステムを提供する。例示的な実施形態によれば、複数の勾配ベースの探索が複数の部分空間上で実行され、それにより、スーパーネットの拡張を可能としつつ、勾配ベースの探索についてのハードウェア要件が分散される。さらに、第一段階で勾配ベースの探索を利用することにより、サンプリング方法のための初期シードが最適化され、それによって、探索が高速化され、最適なニューラルネットワークアーキテクチャを発見するのに必要な時間が短縮される。このほか、サンプリング方法による勾配ベースの探索に従うことにより、無制限の(又は区切られた)探索空間を使用して最適なアーキテクチャを構築し、それによって、ネットワーク構造の柔軟性を向上させることができる。
【0032】
図6は、ニューラルアーキテクチャ探索(NAS)プロセスの機能ブロック図を示す。
図6を参照すると、例示的な実施形態による最適化NASは、最初に、複数の部分空間(即ち、スーパーネットの部分空間)上で複数の勾配ベースの探索をそれぞれ独立して実行する。
図6に示すように、勾配ベースの探索600-1が部分空間1において実行され、勾配ベースの探索600-2が部分空間2において実行され、勾配ベースの探索600-Nが部分空間Nにおいて実行される。ここで、Nは部分空間の任意の数である。複数の部分空間(部分空間1、部分空間2、・・・部分空間N)は、候補ブロックの異なるセットを含む。部分空間に使用される異なるセットは、その間の重なりを含んでいても含んでいなくてもよいことを理解されたい。
【0033】
複数の勾配ベースの探索は複数の最適化アーキテクチャを出力する。即ち、各勾配ベースの探索は1つの最適化アーキテクチャを出力する。
図6を参照すると、部分空間1において勾配ベースの探索600-1を実行すると、部分空間1についての最適化アーキテクチャ610-1が取得され、同様に、部分空間2において勾配ベースの探索600-2を実行すると、部分空間2についての最適化アーキテクチャ610-2が取得され、部分空間Nにおいて勾配ベースの探索600-Nを実行実施すると、部分空間Nについての最適化アーキテクチャ610-Nが取得される。
【0034】
さまざまな実施形態によれば、複数の勾配ベースの探索は、(例えば、異なるハードウェアインフラ又は資源(ノード、クラスタ、サーバ、データセンターなど)を使用して)並行して実行され、順次実行され、又はその間にいくらかの時間的重複を伴って実行される。スーパーネット及び部分空間は、手動で初期化され若しくは構成され、又は所定のアルゴリズム若しくは方針に従って又はランダムに部分空間に分割される予め定義された探索空間(スーパーネット)を使用して初期化され若しくは構成される。
【0035】
複数の最適化アーキテクチャ(610-1、610-2、・・・610-N)は、空間全体にわたるサンプリング方法620のための候補アーキテクチャの初期セットとして使用される。一実施形態によれば、複数の最適化アーキテクチャは、進化的探索のための初期シードとして使用されるい。それにもかかわらず、進化的探索で使用される探索空間は、勾配探索で使用されるあらゆる探索部分空間の和集合(union)である場合もあれば、勾配探索の外側の部分空間を含むさらに大きな空間である場合もあり得ることに留意されたい。
【0036】
進化的探索は、反復的に実行され、空間全体における最適化アーキテクチャ630を取得するために、性能メトリクス又は適合性/検証スコアを使用することを含む。1つの実施形態によれば、進化的探索の各反復では、候補アーキテクチャは、探索空間全体(例えば、任意の可能な層、層タイプ、チャネル数、層数)を利用して変異し(例えば、5×5畳み込み層を3×3畳み込み層に変更)、(例えば、いくつかのエポックのために)訓練され、評価される。次に、候補プール内で最も低いスコアのアーキテクチャが、性能が向上すると判定された新たな(変異した)アーキテクチャに置き換えられる。これは、所定の反復回数が実行されるまで、あるいは何らかの所定の閾値(例えば、所定の最適な性能)に達し、空間全体ので最適化アーキテクチャ630が出力されるまで、数回の反復にわたって繰り返される。それにもかかわらず、最適化アーキテクチャ630を選択するための閾値として、いくつかの可能な基準が使用され得ることを理解されたい。最も単純な方法では、最高スコアのアーキテクチャを選択することになるが、複数のメトリクス(例えば、精度及びレイテンシ(ランタイム速度))が考慮されている場合、例示的なプロセスの1つでは、パレートフロントセットの全アーキテクチャを出力することになるであろう。別の可能な方法では、進化的探索プロセスの間に交叉(crossover)を使用することになるであろう。具体的には、低いスコアのアーキテクチャを、2つの高いスコアのアーキテクチャの交叉に置き換えることができる。
【0037】
上述した本実施形態は進化的探索を利用しているが、1つ又は複数の他の実施形態は進化的探索に限定されないことが理解される。別の実施形態では、別のサンプリング方法又はアルゴリズム(例えば、強化学習)を利用してもよい。さらに、単一の探索空間が、サンプリング方法のための初期シードとして、勾配探索によって出力された複数の最適化アーキテクチャから選択されてもよい。例えば、検証スコアの評価が最も高い(又はレイテンシ、モデルサイズなどの特定のメトリックが最も高い)探索空間が選択され、又は勾配探索によって出力された複数の最適化アーキテクチャの中から探索空間がランダムに選択される。
【0038】
さらに、上述した本実施形態は複数の部分空間において複数の勾配探索を実行するが、1つ又は複数の他の実施形態はこれに限定されないことが理解される。例えば、別の実施形態によれば、単一の勾配ベースの探索が部分空間又はスーパーネット上で実行され、その出力が、サンプリング方法を実施するための初期シードとして使用されてもよい。
【0039】
図7は、最適化NASプロセスを実行するための例示的な方法700のフロー図を示す。
図7を参照すると、動作S710において、ニューラルネットワークアーキテクチャのための候補層を有する第1の探索空間が取得される。一実施形態によれば、第1の探索空間を取得することは、複数の部分空間(即ち、
図6を参照して説明した上記の部分空間1、2、・・・N)を取得すことを含み、各部分空間は候補層のセットを含む。
【0040】
動作S720において、第1のアーキテクチャを出力するために、動作S710において取得された第1の探索空間において、勾配ベースの探索が実行される。いくつかの実施形態では、複数のアーキテクチャを出力するために複数の勾配ベースの探索が実行されることを理解されたい。これは、複数のアーキテクチャ610-1、610-2、・・・610-Nを出力するために、
図6を参照して説明した上記の勾配ベースの探索600-1、600-2、・・・600-Nと同様である。
【0041】
動作S730において、動作S720において出力された第1のアーキテクチャを初期サンプルとして利用することによってサンプリング方法が実行される。一実施形態によれば、サンプリング方法は、
図6を参照して説明した上記のサンプリング方法620と同様である。一実施形態によれば、サンプリング方法は進化的探索アルゴリズムである。進化的探索アルゴリズムは、複数の部分空間の和集合である探索空間を利用することができる。進化的探索アルゴリズムは多数の反復にわたって繰り返され、この多数の反復は所定の閾値に基づくものである。
【0042】
動作S740において、動作S730において実行されたサンプリング方法の結果として第2のアーキテクチャが出力される。第2のアーキテクチャは、
図6を参照して説明した上記のアーキテクチャ630と同様である。本実施形態では第2のアーキテクチャを出力することを説明しているが、いくつかの実施形態では複数のアーキテクチャが出力されてもよいことも理解されたい。
【0043】
上記を考慮して、本開示の例示的な実施形態は、探索空間において勾配ベースの探索及びサンプリング方法の両方を使用することによって、最適化ニューラルアーキテクチャ探索(NAS)を実行するための方法及びシステムを提供する。例示的な実施形態によれば、複数の勾配ベースの探索が複数の部分空間上で実行され、それにより、スーパーネットの拡張を可能としつつ、勾配ベースの探索についてのハードウェア要件が分散される。さらに、第一段階で勾配ベースの探索を利用することにより、サンプリング方法の初期シードが最適化され、それによって、探索が高速化され、最適なニューラルネットワークアーキテクチャを発見するのに必要な時間が短縮される。このほか、サンプリング方法による勾配ベースの探索に従うことにより、無制限の(又は区切られた)探索空間を使用して最適なアーキテクチャを構築し、それによって、ネットワーク構造の柔軟性を向上させることができる。
【0044】
本明細書に開示したプロセス/フローチャート内のブロックの特定の順序又は階層は、例示的な手法を示すものであることが理解される。設計の好みに基づいて、プロセス/フローチャート内のブロックの特定の順序又は階層を再配置し得ることが理解される。また、いくつかのブロックが組み合わされ又は省略されてもよい。添付の方法の請求項は、さまざまなブロックの要素をサンプルの順序で提示しており、提示された特定の順序又は階層に限定されることを意味するものではない。
【0045】
いくつかの実施形態が、統合の可能なあらゆる技術的詳細レベルでのシステム、方法及び/又はコンピュータ可読媒体に関連する。さらに、上述のコンポーネントのうちの1つ又は複数は、コンピュータ可読媒体に記憶され且つ少なくとも1つのプロセッサによって実行可能な命令として実装されもよい(且つ/又は少なくとも1つのプロセッサを含んでもよい)。コンピュータ可読媒体は、プロセッサに動作を実行させるためのコンピュータ可読プログラム命令を有する(1つ又は複数の)非一時的なコンピュータ可読記憶媒体を含む。
【0046】
コンピュータ可読記憶媒体を、命令実行装置によって使用される命令を保持及び記憶することができる有形の装置とすることができる。コンピュータ可読記憶媒体は、例えば、電子記憶装置、磁気記憶装置、光記憶装置、電磁記憶装置、半導体記憶装置又はこれらの任意の適切な組み合わせであってもよいが、これらに限定されない。コンピュータ可読記憶媒体のさらに具体的な例の非網羅的なリストには、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能なプログラム可能読み取り専用メモリ(EPROM又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリーメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピーディスク、その上に記憶された命令を有するパンチカード又は溝内の隆起構造のような機械式に符号化された装置、及びこれらの任意の適切な組み合わせが含まれる。コンピュータ可読記憶媒体は、本明細書において使用されるとき、電波若しくは他の自由に伝播する電磁波、導波路若しくは他の伝送媒体を伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又はワイヤーを介して送信された電気信号のような一時的な信号そのものであると解釈されるべきではない。
【0047】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理装置にダウンロードされ、又はネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又はワイヤレスネットワークを介して外部コンピュータ又は外部記憶装置にダウンロードされることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ及び/又はエッジサーバを含むことができる。各コンピューティング/処理装置内のネットワークアダプタカード又はネットワークインターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理装置内のコンピュータ可読記憶媒体に記憶するためにコンピュータ可読プログラム命令を転送する。
【0048】
動作を実行するためのコンピュータ可読プログラムコード/命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用構成データ、又は、Smalltalk、C++などのオブジェクト指向プログラミング言語、及び「C」プログラミング言語若しくは同様のプログラミング言語のような手続き型プログラミング言語を含む1つ又は複数のプログラミング言語の任意の組み合わせで記述されたソースコード若しくはオブジェクトコードのいずれかである。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で完全に実行され、スタンドアロンソフトウェアパッケージとしてユーザのコンピュータ上で部分的に実行され、ユーザのコンピュータ上で部分的に実行され、リモートコンピュータ上で部分的に実行され、又はリモートコンピュータ若しくはサーバ上で完全に実行される。リモートコンピュータ又はサーバ上で実行される状況では、リモートコンピュータは、ローカルエリアネットワーク(LAN)若しくはワイドエリアネットワーク(WAN)を含む任意の種類のネットワークを介してユーザのコンピュータに接続され、又は(例えば、インターネットサービスプロバイダを使用したインターネットを介して)外部コンピュータに接続される。いくつかの実施形態では、例えば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)又はプログラマブル論理アレイ(PLA)を含む電子回路が、態様(aspect)又は動作を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによって、コンピュータ可読プログラム命令を実行することができる。
【0049】
これらコンピュータ可読プログラム命令は、コンピュータ若しくは他のプログラマブルデータ処理装置のプロセッサを介して実行される命令が、フローチャート及び/又はブロック図のブロック若しくは複数のブロックにおいて指定された機能/行為を実施するための手段を生成するように、汎用コンピュータ、特殊用途コンピュータ若しくは他のプログラマブルデータ処理装置のプロセッサに提供されて機械を製造してもよい。これらコンピュータ可読プログラム命令は、記憶された命令を有するコンピュータ可読記憶媒体が、フローチャート及び/又はブロック図のブロック若しくは複数のブロックにおいて指定された機能/行為の態様を実施する命令を含む製造品を含むように、コンピュータ、プログラム可能なデータ処理装置、及び/又は他の装置に特定の態様で機能するように指示することができるコンピュータ可読記憶媒体に記憶されていてもよい。
【0050】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブルなデータ処理装置、若しくは別の装置にロードされて、コンピュータ、他のプログラマブルな装置、若しくは他の装置上で実行される命令が、フローチャート及び/又はブロック図のブロック若しくは複数のブロックにおいて指定された機能/行為を実施するように、コンピュータ実装プロセスを生成するための一連の動作ステップをコンピュータ、他のプログラマブルな装置、若しくは他の装置上で実行させてもよい。
【0051】
図中のフローチャート及びブロック図は、さまざまな実施形態によるシステム、方法及びコンピュータ可読媒体の可能な実装例のアーキテクチャ、機能性及び動作を示す。これに関して、フローチャート又はブロック図の各ブロックは、指定された論理機能を実施するための1つ又は複数の実行可能命令を含むモジュール、セグメント又は命令の一部を表す。この方法、コンピュータシステム及びコンピュータ可読媒体は、図面に示すもの以外に、追加のブロック、これより少ないブロック、異なるブロック又は異なる配置のブロックを含んでもよい。いくつかの代替実装例では、ブロックに示す機能は、図面に示している順序とは異なる順序で実施されてもよい。例えば、連続して示す2つのブロックが、実際には、同時に実施されても、ほぼ同時に実施されても、関与する機能に応じて逆の順序で実施されることがあってもよい。このほか、ブロック図及び/又はフローチャート図の各ブロック及びブロック図及び/又はフローチャート図のブロックの組み合わせを、指定された機能又は行動を実行する専用のハードウェアベースのシステムによって実施することができ、あるいは各ブロック及びブロックの組み合わせが専用のハードウェアとコンピュータ命令の組み合わせを実施することができることに留意されたい。
【0052】
本明細書に記載のシステム及び/又は方法を、異なる形態のハードウェア、ファームウェア、又はハードウェアとソフトウェアとの組み合わせで実施し得ることは明らかであろう。このようなシステム及び/又は方法を実施するために使用される実際の特殊な制御ハードウェア又はソフトウェアコードは、実装例を限定するものではない。このため、システム及び/又は方法の動作及び挙動を、特定のソフトウェアコードを参照することなく本明細書で説明したが、ソフトウェア及びハードウェアを、本明細書の説明に基づいてシステム及び/又は方法を実施するように設計し得ることが理解される。
【手続補正書】
【提出日】2024-08-22
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
プロセッサによってニューラルアーキテクチャ探索(NAS)を実行する方法であって、
ニューラルネットワークアーキテクチャのための複数の候補層を含む第1の探索空間を取得するステップと、
前記第1の探索空間において勾配ベースの探索を実行して第1のアーキテクチャを取得するステップと、
前記第1のアーキテクチャを初期サンプルとして利用してサンプリング方法探索を実行するステップと、
前記サンプリング方法探索の出力として第2のアーキテクチャを取得するステップと
を含む、方法。
【請求項2】
前記第1の探索空間を取得するステップは、前記第1の探索空間を含む複数の部分空間を取得することを含み、前記複数の部分空間のそれぞれが候補層のセットを含み、前記勾配ベースの探索を実行するステップは、前記複数の部分空間において複数の勾配ベースの探索をそれぞれ実行して複数の第1のアーキテクチャを取得することを含む、請求項1に記載の方法。
【請求項3】
前記サンプリング方法探索を実行するステップは、前記複数の第1のアーキテクチャを初期シードとして利用して前記サンプリング方法探索を実行することを含む、請求項2に記載の方法。
【請求項4】
前記サンプリング方法探索は進化的探索アルゴリズムを含む、請求項3に記載の方法。
【請求項5】
前記進化的探索アルゴリズムは、前記複数の部分空間の和集合である探索空間を利用する、請求項4に記載の方法。
【請求項6】
前記進化的探索アルゴリズムは多数の反復にわたって繰り返される、請求項4又は5に記載の方法。
【請求項7】
前記多数の反復は所定の閾値に基づくものである、請求項6に記載の方法。
【請求項8】
ニューラルアーキテクチャ探索(NAS)を実行するための装置であって、
コンピュータ実行可能命令を記憶する少なくとも1つのメモリと、
少なくとも一つのプロセッサと
を具備し、
前記少なくとも1つのプロセッサは、前記コンピュータ実行可能命令を実行して、
ニューラルネットワークアーキテクチャのための複数の候補層を含む第1の探索空間を取得し、
前記第1の探索空間において勾配ベースの探索を実行して第1のアーキテクチャを取得し、
前記第1のアーキテクチャを初期サンプルとして利用してサンプリング方法探索を実行し、
前記サンプリング方法探索の出力として第2のアーキテクチャを取得するように構成される、装置。
【請求項9】
前記少なくとも1つのプロセッサは、前記コンピュータ実行可能命令を実行して、前記第1の探索空間を含む複数の部分空間を取得することによって前記第1の探索空間を取得するようにさらに構成され、前記複数の部分空間のそれぞれが候補層のセットを含み、
前記少なくとも1つのプロセッサは、前記コンピュータ実行可能命令を実行して、前記複数の部分空間において複数の勾配ベースの探索をそれぞれ実行して複数の第1のアーキテクチャを取得することによって、前記勾配ベースの探索を実行するようにさらに構成される、請求項8に記載の装置。
【請求項10】
前記少なくとも1つのプロセッサは、前記コンピュータ実行可能命令を実行して、前記複数の第1のアーキテクチャを初期シードとして利用して前記サンプリング方法探索を実行することによって、前記サンプリング方法探索を実行するようにさらに構成される、請求項9に記載の装置。
【請求項11】
前記サンプリング方法探索は進化的探索アルゴリズムを含む、請求項10に記載の装置。
【請求項12】
前記進化的探索アルゴリズムは、前記複数の部分空間の和集合である探索空間を利用する、請求項11に記載の装置。
【請求項13】
前記進化的探索アルゴリズムは多数の反復にわたって繰り返される、請求項11又は12に記載の装置。
【請求項14】
前記多数の反復は所定の閾値に基づくものである、請求項13に記載の装置。
【請求項15】
少なくとも1つのプロセッサによって実行可能な命令が記録された非一時的なコンピュータ可読記録媒体であって、
前記命令は、前記少なくとも一つのプロセッサに、
ニューラルネットワークアーキテクチャのための複数の候補層を含む第1の探索空間を取得するステップと、
前記第1の探索空間において勾配ベースの探索を実行して第1のアーキテクチャを取得するステップと、
前記第1のアーキテクチャを初期サンプルとして利用してサンプリング方法探索を実行するステップと、
前記サンプリング方法探索の出力として第2のアーキテクチャを取得するステップとを含む方法を実行させる、非一時的なコンピュータ可読記録媒体。
【請求項16】
前記第1の探索空間を取得するステップは、前記第1の探索空間を含む複数の部分空間を取得することを含み、前記複数の部分空間のそれぞれが候補層のセットを含み、前記勾配ベースの探索を実行するステップは、前記複数の部分空間において複数の勾配ベースの探索をそれぞれ実行して複数の第1のアーキテクチャを取得することを含む、請求項15に記載の非一時的なコンピュータ可読記録媒体。
【請求項17】
前記サンプリング方法探索を実行するステップは、前記複数の第1のアーキテクチャを初期シードとして利用して前記サンプリング方法探索を実行することを含む、請求項16に記載の非一時的なコンピュータ可読記録媒体。
【請求項18】
前記サンプリング方法探索は進化的探索アルゴリズムを含む、請求項17に記載の非一時的なコンピュータ可読記録媒体。
【請求項19】
前記進化的探索アルゴリズムは、前記複数の部分空間の和集合である探索空間を利用する、請求項18に記載の非一時的なコンピュータ可読記録媒体。
【請求項20】
前記進化的探索アルゴリズムは複数の反復にわたって繰り返される、請求項18又は19に記載の非一時的なコンピュータ可読記録媒体。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0011
【補正方法】変更
【補正の内容】
【0011】
実施形態によれば、探索空間において勾配ベースの探索及びサンプリング方法の両方を使用することによって、最適化ニューラルアーキテクチャ探索(NAS)を実行するための方法、システム及び装置が提供される。特に、複数の勾配ベースの探索が複数の部分空間上で実行され、それにより、スーパーネットの拡張を可能としつつ、勾配ベースの探索についてのハードウェア要件が分散される。さらに、第一段階で勾配ベースの探索を利用することにより、サンプリング方法の初期シードが最適化され、それによって、探索が高速化され、最適なニューラルネットワークアーキテクチャを発見するのに必要な時間が短縮される。さらにまた、サンプリング方法による勾配ベースの探索に従うことにより、無制限の(又は区切られた)探索空間を使用して最適なアーキテクチャを構築し、それによって、ニューラルネットワーク構造の柔軟性を向上させることができる。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0035
【補正方法】変更
【補正の内容】
【0035】
複数の最適化アーキテクチャ(610-1、610-2、・・・610-N)は、空間全体にわたるサンプリング方法620のための候補アーキテクチャの初期セットとして使用される。一実施形態によれば、複数の最適化アーキテクチャは、進化的探索のための初期シードとして使用される。それにもかかわらず、進化的探索で使用される探索空間は、勾配探索で使用されるあらゆる探索部分空間の和集合(union)である場合もあれば、勾配探索の外側の部分空間を含むさらに大きな空間である場合もあり得ることに留意されたい。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0036
【補正方法】変更
【補正の内容】
【0036】
進化的探索は、反復的に実行され、空間全体における最適化アーキテクチャ630を取得するために、性能メトリクス又は適合性/検証スコアを使用することを含む。1つの実施形態によれば、進化的探索の各反復では、候補アーキテクチャは、探索空間全体(例えば、任意の可能な層、層タイプ、チャネル数、層数)を利用して変異し(例えば、5×5畳み込み層を3×3畳み込み層に変更)、(例えば、いくつかのエポックのために)訓練され、評価される。次に、候補プール内で最も低いスコアのアーキテクチャが、性能が向上すると判定された新たな(変異した)アーキテクチャに置き換えられる。これは、所定の反復回数が実行されるまで、あるいは何らかの所定の閾値(例えば、所定の最適な性能)に達し、空間全体での最適化アーキテクチャ630が出力されるまで、数回の反復にわたって繰り返される。それにもかかわらず、最適化アーキテクチャ630を選択するための閾値として、いくつかの可能な基準が使用され得ることを理解されたい。最も単純な方法では、最高スコアのアーキテクチャを選択することになるが、複数のメトリクス(例えば、精度及びレイテンシ(ランタイム速度))が考慮されている場合、例示的なプロセスの1つでは、パレートフロントセットの全アーキテクチャを出力することになるであろう。別の可能な方法では、進化的探索プロセスの間に交叉(crossover)を使用することになるであろう。具体的には、低いスコアのアーキテクチャを、2つの高いスコアのアーキテクチャの交叉に置き換えることができる。
【外国語明細書】