(57)【要約】  特定の機械学習タスクを実行するように構成されたタスクニューラルネットワークのためのアーキテクチャを決定するための方法について説明する。この方法は、タスクニューラルネットワークに対する候補アーキテクチャの現在のセットを指定するデータを取得するステップと、現在のセット内の各候補アーキテクチャに対して、複数の性能予測パラメータを有する性能予測ニューラルネットワークを使用して、候補アーキテクチャを指定するデータを処理するステップであって、性能予測ニューラルネットワークは、候補アーキテクチャを有するニューラルネットワークが特定の機械学習タスクに対してトレーニングされた後で、どの程度良好に機能することになるかを特徴付ける性能予測を生成するために、性能予測パラメータの現在の値に従って、候補アーキテクチャを指定するデータを処理するように構成される、処理するステップと、現在のセット内の候補アーキテクチャに対する性能予測に基づいて、現在のセット内の候補アーキテクチャのうちの1つまたは複数を選択することによって、候補アーキテクチャの更新されたセットを生成するステップとを含む。
2021504844.tif 000002
【特許請求の範囲】
【請求項１】
1つまたは複数のコンピュータによって実行される方法であって、
特定の機械学習タスクを実行するように構成されたタスクニューラルネットワークのためのアーキテクチャを決定するステップを含み、前記決定するステップが、
前記タスクニューラルネットワークに対する候補アーキテクチャの現在のセットを指定するデータを取得するステップと、
前記現在のセット内の各候補アーキテクチャに対して、
複数の性能予測パラメータを有する性能予測ニューラルネットワークを使用して、前記候補アーキテクチャを指定する前記データを処理するステップであって、前記性能予測ニューラルネットワークは、前記候補アーキテクチャを有するニューラルネットワークが前記特定の機械学習タスクに対してトレーニングされた後で、どの程度良好に機能することになるかを特徴付ける性能予測を生成するために、前記性能予測パラメータの現在の値に従って、前記候補アーキテクチャを指定する前記データを処理するように構成される、処理するステップと、
前記現在のセット内の前記候補アーキテクチャに対する前記性能予測に基づいて、前記現在のセット内の前記候補アーキテクチャのうちの1つまたは複数を選択することによって、候補アーキテクチャの更新されたセットを生成するステップと
を含む、方法。
【請求項２】
前記特定の機械学習タスクが画像処理を含む、請求項1に記載の方法。
【請求項３】
前記特定の機械学習タスクが、画像分類またはビデオ分類を含む、請求項1または2に記載の方法。
【請求項４】
前記特定の機械学習タスクが音声認識を含む、請求項1に記載の方法。
【請求項５】
前記決定されたアーキテクチャを有するタスクニューラルネットワークをトレーニングするステップと、
受信されたネットワーク入力に対して前記特定の機械学習タスクを実行するために、前記決定されたアーキテクチャを有する前記トレーニングされたタスクニューラルネットワークを使用するステップと
をさらに含む、請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記更新されたセット内の各候補アーキテクチャに対して、
前記候補アーキテクチャを有する前記タスクニューラルネットワークのインスタンスを生成し、
前記特定の機械学習タスクを実行するために前記インスタンスをトレーニングし、
前記トレーニングされたインスタンスの実際の性能を決定するために、前記特定の機械学習タスクに対して前記トレーニングされたインスタンスの性能を評価するステップと、
前記性能予測ニューラルネットワークの前記性能予測パラメータの前記現在の値を調整するために、前記トレーニングされたインスタンスに関する前記実際の性能を使用するステップと
をさらに含む、請求項1から5のいずれか一項に記載の方法。
【請求項７】
前記更新されたセット内の各候補アーキテクチャに対して、
各新しい候補アーキテクチャに対して、1つまたは複数の動作のそれぞれのセットを前記候補アーキテクチャに追加することによって、前記候補アーキテクチャから複数の新しい候補アーキテクチャを生成するステップと、
各新しい候補アーキテクチャに対して、
前記新しい候補アーキテクチャに対する性能予測を生成するために、前記性能予測ニューラルネットワークを使用して、前記性能予測パラメータの前記更新された値に従って、前記新しい候補アーキテクチャを指定するデータを処理するステップと、
前記新しい候補アーキテクチャに対する前記性能予測に基づいて、前記新しい候補アーキテクチャのうちの1つまたは複数を選択することによって、候補アーキテクチャの新しいセットを生成するステップと
をさらに含む、請求項6に記載の方法。
【請求項８】
前記タスクニューラルネットワークのための前記アーキテクチャとして、前記新しいセット内の前記新しい候補アーキテクチャのうちの1つを選択するステップ
をさらに含む、請求項7に記載の方法。
【請求項９】
前記選択するステップが、
前記新しいセット内の各新しい候補アーキテクチャに対して、
前記新しい候補アーキテクチャを有する前記タスクニューラルネットワークのインスタンスを生成し、
前記特定の機械学習タスクを実行するために前記インスタンスをトレーニングし、
前記トレーニングされたインスタンスの実際の性能を決定するために、前記特定の機械学習タスクに対して前記トレーニングされたインスタンスの性能を評価するステップと、
前記タスクニューラルネットワークのための前記アーキテクチャとして、最良の実際の性能を有する前記トレーニングされたインスタンスに対応する新しい候補アーキテクチャを選択するステップと
を含む、請求項8に記載の方法。
【請求項１０】
前記タスクニューラルネットワークのための前記アーキテクチャが、各々が1つまたは複数のハイパーパラメータを共有する複数の畳み込みセルを含み、各畳み込みセルが、1つまたは複数の動作ブロックであって、各々が1つまたは複数のそれぞれの入力隠れ状態を受信し、それぞれの出力隠れ状態を生成する、1つまたは複数の動作ブロックを含み、各候補アーキテクチャおよび各新しい候補アーキテクチャが、各畳み込みセルによって共有される前記ハイパーパラメータの値を定義する、請求項7から9のいずれか一項に記載の方法。
【請求項１１】
各候補アーキテクチャが、第1の数の動作ブロックを有する畳み込みセルのためのアーキテクチャを定義し、各新しい候補アーキテクチャに対して、1つまたは複数の動作のそれぞれのセットを前記候補アーキテクチャに追加することによって、前記候補アーキテクチャから複数の新しい候補アーキテクチャを生成するステップが、
各新しい候補セルに対して、それぞれのハイパーパラメータを有する新しい動作ブロックを前記候補アーキテクチャに追加するステップ
を含む、請求項10に記載の方法。
【請求項１２】
前記候補アーキテクチャを指定する前記データが、前記候補アーキテクチャを定義する埋め込みのシーケンスであり、前記性能予測ニューラルネットワークが回帰ニューラルネットワークである、請求項1から11のいずれか一項に記載の方法。
【請求項１３】
前記性能予測が、前記シーケンス内の最後の埋め込みを処理した後の前記回帰ニューラルネットワークの出力である、請求項12に記載の方法。
【請求項１４】
1つまたは複数のコンピュータと、命令を記憶する1つまたは複数の記憶デバイスとを含むシステムであって、前記命令が、前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から13のいずれか一項に記載のそれぞれの方法の動作を実行させる、システム。
【請求項１５】
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに請求項1から13のいずれか一項に記載のそれぞれの方法の動作を実行させる命令を記憶する、1つまたは複数のコンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、その内容全体が参照により本明細書に組み込まれている、2017年11月30日に出願した、米国仮特許出願第62/593,213号の非仮出願であり、それに対する優先権を主張するものである。
【０００２】
本明細書は、ニューラルネットワークのためのアーキテクチャを決定することに関する。
【背景技術】
【０００３】
ニューラルネットワークは、非線形ユニットの1つまたは複数のレイヤを用いて、受信入力に対する出力を予測する機械学習モデルである。いくつかのニューラルネットワークは、出力レイヤに加えて、1つまたは複数の隠れレイヤを含む。各隠れレイヤの出力は、ネットワーク内の次のレイヤ、すなわち、次の隠れレイヤまたは出力レイヤに対する入力として使用される。ネットワークの各レイヤは、パラメータのそれぞれのセットの現在の値に従って、受信入力から出力を生成する。
【０００４】
いくつかのニューラルネットワークは、回帰ニューラルネットワークである。回帰ニューラルネットワークは、入力シーケンスを受信し、その入力シーケンスから出力シーケンスを生成するニューラルネットワークである。具体的には、回帰ニューラルネットワークは、現在の時間ステップにおいて出力を計算する際に、前の時間ステップからのネットワークの内部状態のうちのいくつかまたはすべてを使用することができる。回帰ニューラルネットワークの一例は、1つまたは複数の長短期記憶(LSTM:long short-term memory)メモリブロックを含むLSTMニューラルネットワークである。各LSTMメモリブロックは、各々が、セルが、たとえば、現在のアクティブ化をもたらす際に使用するための、またはLSTMニューラルネットワークの他の構成要素に提供されるべき、そのセルに対する前の状態を記憶することを可能にする、入力ゲート、忘却ゲート、および出力ゲートを含む、1つまたは複数のセルを含み得る。
【発明の概要】
【課題を解決するための手段】
【０００５】
本明細書は、特定の機械学習タスクを実行するように構成されたタスクニューラルネットワークのためのネットワークアーキテクチャを決定する、1つまたは複数のロケーション内の1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムについて説明する。
【０００６】
本明細書で説明する主題は、以下の利点のうちの1つまたは複数を実現するために、特定の実施形態で実装され得る。本明細書で説明する技法を使用してタスクニューラルネットワークのアーキテクチャを決定することによって、システムは、様々な機械学習タスクのうちのいずれか、たとえば、画像分類または別の画像処理タスクに対する最新性能を達成するかまたはそれをさらに超えるネットワークアーキテクチャを決定し得る。加えて、システムは、既存の技法よりも計算効率がはるかに高く、すなわち、消費する計算リソースが既存の技法よりもはるかに少ない特定の様式でタスクニューラルネットワークのアーキテクチャを決定し(たとえば、タスクニューラルネットワークのアーキテクチャにわたって繰り返される出力セルを決定し)得る。具体的には、多くの既存の技法は、候補アーキテクチャを有するネットワークをトレーニングすることによって、多数の候補アーキテクチャの性能を評価することに依拠する。このトレーニングは、時間がかかるとともに、計算集約的である。説明する技法は、代わりに、候補アーキテクチャを有する、トレーニングされたネットワークの性能を効果的に予測する性能予測ニューラルネットワークを用いることによって、すなわち、候補アーキテクチャを有するネットワークを実際にトレーニングする必要なしに、トレーニングされる必要があるタスクニューラルネットワークのインスタンス量を大きく削減する。いくつかの説明する実装形態では、この手法は、他のリソース節約手法、すなわち、さらに大きな計算効率を達成するために、出力アーキテクチャの複数のインスタンスを含む、生じるタスクニューラルネットワークの性能に悪影響を及ぼさずに最終的な出力アーキテクチャの考えられるアーキテクチャの探索空間を効果的に制限する、また場合によっては、その性能をさらに改善する、技法と組み合わせられる。たとえば、他のリソース節約手法は、畳み込みセル、または複数の動作ブロックを含む他のタイプのセルのアーキテクチャを学習し、次いで、事前決定されたテンプレートに従って、学習されたセルを繰り返して、タスクニューラルネットワークのアーキテクチャを生成することを含み得る。
【０００７】
本明細書で説明する主題の1つまたは複数の実施形態の詳細が、添付の図面および以下の明細書に記載される。本主題の他の特徴、態様、および利点は、明細書、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【０００８】
【図１】例示的なニューラルアーキテクチャ探索(NAS)システムのアーキテクチャを示す図である。
【図２】タスクニューラルネットワークの例示的なセルのアーキテクチャを示す図である。
【図３】例示的なタスクニューラルネットワークのアーキテクチャを示す図である。
【図４】出力セルのアーキテクチャを決定するための例示的なプロセスの流れ図である。
【発明を実施するための形態】
【０００９】
様々な図面における同様の参照番号および表示は、同様の要素を示す。
【００１０】
本明細書は、タスクニューラルネットワークのためのネットワークアーキテクチャを決定する、1つまたは複数のロケーション内の1つまたは複数のコンピュータ上でコンピュータプログラムとして実装されるニューラルアーキテクチャ探索システムについて説明する。タスクニューラルネットワークは、特定の機械学習タスクを実行するように構成される。
【００１１】
概して、タスクニューラルネットワークは、ネットワーク入力を受信し、その入力に対するネットワーク出力を生成するために、そのネットワーク入力を処理するように構成される。
【００１２】
場合によっては、タスクニューラルネットワークは、入力画像を受信し、その入力画像に対するネットワーク出力を生成するために、すなわち、何らかの種類の画像処理タスクを実行するために、その入力画像を処理するように構成された畳み込みニューラルネットワークである。
【００１３】
たとえば、タスクは画像分類であり得、所与の画像に対してニューラルネットワークによって生成される出力は、オブジェクトカテゴリーのセットの各々に対するスコアであり得、各スコアは、その画像がそのカテゴリーに属するオブジェクトの画像を含む推定尤度を表す。
【００１４】
別の例として、タスクは、画像埋め込み生成であり得、ニューラルネットワークによって生成される出力は、入力画像の数値埋め込みであり得る。
【００１５】
さらに別の例として、タスクはオブジェクト検出であり得、ニューラルネットワークによって生成される出力は、特定のタイプのオブジェクトが示される入力画像内のロケーションを識別し得る。
【００１６】
いくつかの他の場合には、タスクはビデオ分類であり得、タスクニューラルネットワークは、ビデオまたはビデオの一部分を入力として受信し、その入力ビデオまたはビデオ部分が何の1つまたは複数のトピックに関係するかを決定する出力を生成するように構成される。
【００１７】
いくつかの他の場合には、タスクは音声認識であり得、タスクニューラルネットワークは、入力としてオーディオデータを受信し、発せられた所与の発話に対して、その発話が表す1つまたは複数の用語を決定する出力を生成するように構成される。
【００１８】
いくつかの他の場合には、タスクはテキスト分類であり得、タスクニューラルネットワークは、入力テキストセグメントを受信し、入力テキストセグメントが何の1つまたは複数のトピックに関係するかを決定する出力を生成するように構成される。
【００１９】
図1は、例示的なニューラルアーキテクチャ探索(NAS)システム100を示す。ニューラルアーキテクチャ探索システム100は、以下で説明するシステム、構成要素、および技法が実装され得る、1つまたは複数のロケーション内の1つまたは複数のコンピュータ上でコンピュータプログラムとして実装されるシステムの一例である。
【００２０】
いくつかの実装形態では、NASシステム100は、ネットワークアーキテクチャにわたって繰り返される出力セル150のためのアーキテクチャを決定することによって、タスクニューラルネットワークのためのネットワークアーキテクチャを決定するように構成される。すなわち、タスクニューラルネットワークは、出力セル150の複数のインスタンスを含む。出力セル150のインスタンス内の畳み込み動作のフィルタの数は、タスクニューラルネットワーク内のインスタンスの位置に基づいて異なり得る。場合によっては、タスクニューラルネットワークは、出力セル150の複数のインスタンスのスタックを含む。場合によっては、出力セルのスタックに加えて、タスクニューラルネットワークは、1つまたは複数の他のニューラルネットワークレイヤ、たとえば、出力レイヤおよび/または1つまたは複数の他のタイプのレイヤを含む。たとえば、タスクニューラルネットワークは、畳み込みニューラルネットワークレイヤと、続いて出力セルの複数のインスタンスのスタックと、続いてグローバルプーリング(global pooling)ニューラルネットワークレイヤと、続いてsoftmax分類ニューラルネットワークレイヤとを含み得る。タスクニューラルネットワークの例示的なアーキテクチャについては、図3を参照しながら以下でより詳細に説明する。
【００２１】
概して、セルは、セル入力を受信し、セル出力を生成するように構成された全畳み込みニューラルネットワークである。いくつかの実装形態では、セル出力は、セル入力と同じ寸法、たとえば、同じ高さ(H)、幅(W)、および深さ(F)を有し得る。たとえば、セルは、特徴マップを入力として受信し、入力特徴マップと同じ寸法を有する出力特徴マップを生成し得る。いくつかの他の実装形態では、セル出力は、セル入力の寸法とは異なる寸法を有し得る。たとえば、セルが、ストライド2を有する全畳み込みニューラルネットワークであるとき、セル入力はH×W×Fテンソルであると考えると、セル出力は、H'×W'×F'テンソルであり得、ここで、H'=H/2、W'=W/2、およびF'=2Fである。
【００２２】
場合によっては、セルはB個の動作ブロックを含み、ここで、Bは、所定の正の整数である。たとえば、Bは、3、5、または10であり得る。セル内の各動作ブロックは、1つまたは複数のそれぞれの入力隠れ状態を受信し、1つまたは複数の動作を入力隠れ状態に適用して、それぞれの出力隠れ状態を生成する。
【００２３】
いくつかの実装形態では、B個の動作ブロックの各々は、動作ブロックに対する第1の入力隠れ状態に第1の動作を適用して、第1の出力を生成するように構成される。動作ブロックは、動作ブロックに対する第2の入力隠れ状態に第2の動作を適用して、第2の出力を生成するように構成される。動作ブロックは、次いで、第1および第2の出力に対して組合せ動作を適用して、動作ブロックに対する出力隠れ状態を生成するように構成される。第1の入力隠れ状態、第2の入力隠れ状態、第1の動作、第2の動作、および組合せ動作は、動作ブロックに関連するハイパーパラメータのセットによって定義され得る。たとえば、動作ブロックに対応するハイパーパラメータのセットは、以下のハイパーパラメータを含む、すなわち、どの隠れ状態が第1の入力隠れ状態として使用されるかを表す第1のハイパーパラメータ、どの隠れ状態が第2の入力隠れ状態として使用されるかを表す第2のハイパーパラメータ、どの動作が第1の動作として使用されるかを表す第3のハイパーパラメータ、どの動作が第2の動作として使用されるかを表す第4のハイパーパラメータ、およびどの動作が第1の動作と第2の動作の出力を組み合わせるための組合せ動作として使用されるかを表す第5のハイパーパラメータである。
【００２４】
セルの例示的なアーキテクチャについては、図2を参照しながら以下でより詳細に説明する。
【００２５】
出力セル150のアーキテクチャを決定するために、NASシステム100は、複数の性能予測パラメータ(本明細書において「予測パラメータ」とも呼ばれる)を有する性能予測ニューラルネットワーク110(「予測器110」とも呼ばれる)を含む。予測器110は、1つまたは複数の回帰ニューラルネットワークレイヤを含む回帰ニューラルネットワークである。たとえば、予測器110は、長短期メモリ(LSTM)ニューラルネットワークまたはゲート回帰ユニット(GRU:gated recurrent unit)ニューラルネットワークであり得る。
【００２６】
概して、予測器110は、候補セルを指定するデータを受信し、予測パラメータに従ってそのデータを処理して、候補セルを有するニューラルネットワークが、特定の機械学習タスクに対してトレーニングされた後で、どの程度良好に機能することになるかを特徴付ける性能予測を生成するように構成される。候補セルを指定するデータは、候補セルを定義する埋め込み(たとえば、ハイパーパラメータの各セットが候補セル内に含まれるそれぞれの動作ブロックを定義する、ハイパーパラメータの複数のセットの埋め込み)のシーケンスである。本明細書で使用される埋め込みは、ハイパーパラメータの数値表現、たとえば、ベクトル、または数値の他の順序付けられた集合である。埋め込みは、事前決定されてよいか、または予測器をトレーニングする一環として学習されてもよい。
【００２７】
性能予測は、たとえば、トレーニングされたニューラルネットワークの精度の予測であり得る。別の例として、性能予測は、予測平均精度と精度に対する予測標準偏差または差異の両方を含み得る。
【００２８】
具体的には、タスクニューラルネットワークのネットワークアーキテクチャにわたって繰り返される出力セル150のためのアーキテクチャを決定する一環として、NASシステム100は、出力セル150に対する候補セルの現在のセットを指定するデータ102を取得する。場合によっては、候補セルの現在のセットは、候補セルの初期セットである。いくつかの他の場合には、NASシステム100は、前の反復からセルを取得し、次いで、前のセルの各々を拡張することによって、たとえば、前のセルの各々にそれぞれの1つまたは複数の動作ブロックを追加することによって、候補セルの現在のセットを生成する。
【００２９】
現在のセット内の候補セルの各々に対して、予測器110は、候補セルを指定するデータを受信し、各候補セルに対する性能予測を生成するために、性能予測パラメータの現在の値に従って、性能予測ニューラルネットワーク110を使用してそのデータを処理する。
【００３０】
NASシステム100は、次いで、現在のセット内の候補セルに対する性能予測に基づいて、現在のセット内の候補セルのうちの1つまたは複数を選択することによって、候補セルの更新されたセット112を生成する。すなわち、NASシステム100は、性能予測ニューラルネットワーク110によって生成された予測に基づいて、現在のセットをプルーニング(prune)して、更新されたセットを生成する。たとえば、NASシステム100は、更新されたセット112内に含まれるべき最良の性能予測を有するK個の候補セルを現在のセットから選択し、ここで、Kは、事前決定された整数である。
【００３１】
予測器110の性能予測パラメータの値を更新するために、NASシステム100は、トレーニングエンジン120と予測パラメータ更新エンジン130とを含む。概して、トレーニングエンジン120および予測パラメータ更新エンジン130は、1つまたは複数のロケーション内の1つまたは複数のコンピュータ上にインストールされた、1つまたは複数のソフトウェアモジュールまたはソフトウェア構成要素として実装されることになる。場合によっては、1つまたは複数のコンピュータは、特定のエンジン専用になり、他の場合には、複数のエンジンがインストールされ、同じ1つまたは複数のコンピュータ上で実行してもよい。
【００３２】
更新されたセット内の各候補セルに対して、トレーニングエンジン120は、候補セルを有するタスクニューラルネットワークのインスタンスを生成し、特定の機械学習タスクを実行するためにそのインスタンスをトレーニングするように構成される。たとえば、トレーニングエンジン120は、タスクニューラルネットワークの所定のテンプレートアーキテクチャに従って、タスクニューラルネットワークのインスタンスを生成する。たとえば、タスクニューラルネットワークのテンプレートアーキテクチャは、第1のニューラルネットワークレイヤ(たとえば、畳み込みレイヤ)と、続いてセルのN個のインスタンスのスタックと、続いて出力サブネットワーク(たとえば、softmaxニューラルネットワークレイヤを含む出力サブネットワーク)とを含む。
【００３３】
タスクニューラルネットワークのインスタンスをトレーニングするために、トレーニングエンジン120は、特定の機械学習タスクに対してインスタンスをトレーニングするためのトレーニングデータ、およびその特定の機械学習タスクに対して、タスクニューラルネットワークのトレーニングされたインスタンスの性能を評価するための検証セットを取得する。
【００３４】
トレーニングエンジン120は、様々な様式のうちのいずれかでインスタンスをトレーニングするためのデータを受信し得る。たとえば、いくつかの実装形態では、トレーニングエンジン120は、たとえば、NASシステム100によって利用可能にされたアプリケーションプログラミングインターフェース(API)を使用して、データ通信ネットワークを介してNASシステム100の遠隔ユーザからのアップロードとしてトレーニングデータを受信する。
【００３５】
トレーニングエンジン120は、トレーニングされたインスタンスの実際の性能122を決定するために、特定の機械学習タスクに対してトレーニングされた各インスタンスの性能を評価する。たとえば、実際の性能は、適切な精度測定によって測定された検証セットに対するトレーニングされたインスタンスの精度であり得る。たとえば、この精度は、タスクが分類タスクであるときには分類誤り率であってよく、またはタスクが回帰タスクであるときにはIoU(Intersection over Union)差異尺度であってよい。別の例として、実際の性能はインスタンスのトレーニングの最後の2個、5個、または10個のエポックの各々に対するインスタンスの平均精度または最大精度であってよい。
【００３６】
予測パラメータ更新エンジン130は、性能予測ニューラルネットワーク110の性能予測パラメータの値を調整するために、トレーニングされたインスタンスに対する実際の性能を使用する。具体的には、予測パラメータ更新エンジン130は、予測器110をトレーニングすることによって予測パラメータの値を調整して、従来の教師あり学習(supervised learning)技法、たとえば、確率的勾配降下(SGD:stochastic gradient descent)技法を使用して、候補セルの実際の性能を正確に予測する。
【００３７】
予測器110を使用して、現在のセット内の候補セルの各々に対する性能予測を生成することによって、NASシステム100は、現在のセット内のすべての候補セルを考慮した。しかしながら、NASシステム100は、少数の候補セル、すなわち、更新されたセット内に含めるために予測器110によって生成された性能予測に基づいて選択された候補セルを実際にトレーニングすることのみが必要であった。したがって、NASシステム100は候補セルを有するネットワークを実際にトレーニングすることによって、多数の候補セルの性能の評価に依拠する既存のシステムよりも計算効率がはるかに高く、(すなわち、消費する計算リソースがはるかに少ない)特定の技術的実装形態を定義する。これは、タスクニューラルネットワークのインスタンスをトレーニングすることは、予測器110を使用してそれらの実際の性能を単に予測するよりも計算的にさらに一層費用がかかるためである。その上、いくつかの実装形態では、更新されたセット内に含めるために予測器によって選択された候補セルは、並行してトレーニングおよび評価されることが可能であり、それにより、NASシステム100が従来のシステムよりも高速で出力セルを決定することを可能にする。
【００３８】
予測器110の予測パラメータを更新した後、NASシステム100は、更新されたセット内の候補セルを拡張して、複数の新しい候補セルを含む新しいセットを生成する。具体的には、NASシステム100は、更新されたセット内の候補セルの各々に対して、ハイパーパラメータのそれぞれのセットを有するそれぞれの新しい動作ブロックを候補セルに追加することによって、更新されたセット内の候補セルを拡張する。
【００３９】
概して、更新されたセットが、各々がb個の動作ブロックを有する、N個の候補セルを有すると考えると、NASシステム100は、更新されたセット内のそれぞれの特定の候補セルに対して、(すなわち、新しい第(b+1)の動作ブロックを特定の候補セルに追加することによって)b+1個の動作ブロックを有するそれぞれの考えられるセルを有するすべての考えられるセルのサブセットを生成する。新しいセットは、b+1個の動作ブロックを有するすべての考えられるセルのサブセットの組合せである。
【００４０】
いくつかの実装形態では、新しい第(b+1)の動作ブロックは、5個のハイパーパラメータ(I1,I2,O1,O2,C)によって指定され得、ここで、I1,I2∈Ib+1は、新しい動作ブロックに対する入力を指定し、Ib+1は、新しい動作ブロックに対する考えられる入力のセットであり、O1,O2∈Oは、それぞれ、入力I1およびI2に適用するための動作を指定し、ここで、Oは、所定の動作空間であり、C∈eは、新しい動作ブロックに対するブロック出力
【００４１】
【数１】
2021504844.tif 000003
【００４２】
を生成するために、O1およびO2をどのように組み合わせるかを指定し、ここで、eは、考えられる組合せ演算子(combination operator)のセットである。
【００４３】
これらの実装形態では、第(b+1)の動作ブロックに対して考えられる構造の探索空間は、サイズ|Bb+1|=|Ib+1|2×|O|2×|e|2を有するBb+1であり、ここで、|Ib+1|=2+(b+1)-1の場合、|O|は、動作空間内の動作の数であり、|e|は、セットe内の組合せ演算子の数である。したがって、新しいセット内の候補セルの数は、N×|Bb+1|個のセルである。
【００４４】
NASシステム100は、次いで、候補セルの新しいセットを候補セルの現在のセットとして設定し、候補セルが所定の最大数の動作ブロックを有するまで、上記のプロセスを繰り返す。
【００４５】
候補セルの各々の中の動作ブロック数が動作ブロックの所定の最大数と等しくなるとき、NASシステム100は、最良の実際の性能を有する、トレーニングされたインスタンスに対応する新しい候補セルをタスクニューラルネットワークのための出力セル150として選択する。
【００４６】
いくつかの実装形態では、システム100は、出力セル150が決定されると、出力セルのアーキテクチャを指定するデータを、たとえば、ネットワークを介してユーザデバイスに提供する。アーキテクチャを指定するデータを提供する代わりに、またはそれに加えて、システム100は、決定された出力セル150を有するニューラルネットワークを、たとえば、最初からトレーニングするか、またはより大きなニューラルネットワークをトレーニングする結果として生成されたパラメータ値を微調整するためにトレーニングし、次いで、トレーニングされたニューラルネットワークを使用して、たとえば、NASシステム100によって提供されたAPIを通して、ユーザが受信した要求を処理する。
【００４７】
本明細書は、タスクニューラルネットワークにわたって複数回繰り返されるセルに対して考えられるアーキテクチャの空間を探索することについて説明するが、いくつかの他の実装形態では、NASシステム100は、たとえば、1つまたは複数の所定の出力レイヤ、および、随意に、1つまたは複数の所定の入力レイヤ以外のタスクニューラルネットワーク全体に対して考えられるアーキテクチャを通して、繰り返されていないアーキテクチャの部分を探索する。
【００４８】
図2は、タスクニューラルネットワークを構築するために使用され得る例示的なセル200のアーキテクチャを示す。
【００４９】
セル200は、セル入力(たとえば、H×W×Fテンソル)を処理して、セル出力(たとえば、H'×W'×F'テンソル)を生成するように構成された全畳み込みニューラルネットワークである。
【００５０】
いくつかの実装形態では、たとえば、セル200が、ストライド1を有する全畳み込みニューラルネットワークであるとき、セル出力は、セル入力と同じ寸法を有し得る(たとえば、H'=H、W'=W、およびF'=F)。いくつかの他の実装形態では、セル出力は、セル入力の寸法とは異なる寸法を有し得る。たとえば、セルが、ストライド2を有する全畳み込みニューラルネットワークであるとき、セル入力がH×W×Fテンソルであると考えると、セル出力は、H'×W'×F'テンソルであり得、式中、H'=H/2、W'=W/2、およびF'=2Fである。
【００５１】
セル200は、複数の動作ブロック(B個のブロック)を含む。たとえば、図2に示すように、セル200は、5個のブロック、すなわち、ブロック202、204、206、208、および210を含む。
【００５２】
セル200内の各ブロックbは、5個のハイパーパラメータ(I1,I2,O1,O2,C)によって指定することができ、ここで、I1,I2∈Ibは、ブロックbに対する入力を指定し、O1,O2∈Oは、それぞれ、入力I1、I2に適用するための動作を指定し、ここで、Oは動作空間であり、C∈eは、ブロックbに対するブロック出力
【００５３】
【数２】
2021504844.tif 000004
【００５４】
を生成するために、O1およびO2をどのように組み合わせるかを指定し、ここで、eは、考えられる組合せ演算子のセットである。
【００５５】
考えられる入力のセットIbは、セル200内のすべての前のブロックのセット
【００５６】
【数３】
2021504844.tif 000005
【００５７】
に、前のセルの出力
【００５８】
【数４】
2021504844.tif 000006
【００５９】
を加え、それに前のセルに先行するセルの出力
【００６０】
【数５】
2021504844.tif 000007
【００６１】
を加えたものである。
【００６２】
動作空間Oは、限定はしないが、以下の動作を含み得る:すなわち、3×3深さ方向分離可能な畳み込み(depthwise-separable convolution)、5×5深さ方向分離可能畳み込み、7×7深さ方向分離可能畳み込み、1×7とその後に7×1が続く畳み込み(1x7 followed by 7x1 convolution)、恒等式、3×3平均プーリング、3×3最大プーリング、および3×3拡張畳み込み(dilated convolution)、である。
【００６３】
いくつかの実装形態では、考えられる組合せ演算子のセットeは、追加動作および連結動作を含む。
【００６４】
いくつかの実装形態では、考えられる組合せ演算子のセットeは、追加動作のみを含む。これらの実装形態では、セル200の各ブロックbは、4個のハイパーパラメータ(I1,I2,O1,O2)によって指定され得る。
【００６５】
各ブロックbがブロック出力を生成した後、すべてのブロックのブロック出力が組み合わされ、たとえば、連結されるか、加算されるか、または平均されて、セル200に対するセル出力Hcを生成する。
【００６６】
図3は、例示的なタスクニューラルネットワーク300のアーキテクチャを示す。タスクニューラルネットワーク300は、ネットワーク入力302を受信し、入力302に対するネットワーク出力320を生成するように構成される。
【００６７】
タスクニューラルネットワーク300は、セルインスタンスのスタック306を含む。スタック306は、次々にスタックされるセルの複数のインスタンスを含む。スタック306内のセルインスタンスは、同じ構造を有し得るが、異なるパラメータ値を有する。スタック306内のセルインスタンスの中の畳み込み動作のフィルタ数は、そのスタック内のインスタンスの位置に基づいて異なり得る。たとえば、一実装形態では、セルインスタンス308は、ストライド2セルであり、セルインスタンス310は、ストライド1セルである。そのような実装形態では、セルインスタンス308は、セルインスタンス310が有する2倍のフィルタを有する。
【００６８】
スタック306内の第1のセルインスタンス308は、第1のセル入力を受信し、第1のセル出力を生成するために第1のセル入力を処理するように構成される。
【００６９】
場合によっては、第1のセル入力は、タスクニューラルネットワークのネットワーク入力302である。
【００７０】
いくつかの他の場合には、ネットワーク入力302は画像であり、タスクニューラルネットワーク300は、画像の処理に関連する計算コストを低減させるために、セルのスタック306に先行して、畳み込みニューラルネットワークレイヤ304を含み得る。たとえば、畳み込みニューラルネットワークレイヤ304は、ストライド2を有する3×3畳み込みフィルタレイヤである。これらの場合には、畳み込みニューラルネットワークレイヤ304は、第1のセル入力としてセルインスタンス308に提供されるべき中間出力を生成するために、ネットワーク入力302を処理するように構成される。
【００７１】
第1のセルインスタンスに続く各セルインスタンス(たとえば、セルインスタンス310〜312)は、前のセルインスタンスのセル出力を入力として受信し、入力として次のセルインスタンスに供給されるそれぞれのセル出力を生成するように構成される。スタック306の出力は、最後のセルインスタンス314のセル出力である。
【００７２】
タスクニューラルネットワーク300は、サブネットワーク316と、続いてセルインスタンスのスタック306とを含む。サブネットワーク316は、入力としてセルインスタンスのスタック306の出力を受信し、ネットワーク出力320を生成するためにスタック306の出力を処理するように構成される。一例として、サブネットワーク316は、グローバルプーリングニューラルネットワークレイヤと、続いてsoftmax分類ニューラルネットワークレイヤとを含む。
【００７３】
図4は、タスクニューラルネットワークにわたって繰り返されるセルのアーキテクチャを決定するための例示的なプロセス400の流れ図である。便宜上、プロセス400は、1つまたは複数のロケーション内に位置する1つまたは複数のコンピュータのシステムによって実行されるとして説明される。たとえば、ニューラルアーキテクチャ探索システム、たとえば、本明細書に従って適切にプログラムされた、図1のニューラルアーキテクチャ探索システム100がプロセス400を実行し得る。
【００７４】
システムは、タスクニューラルネットワークを構築するために使用される出力セルに対する候補セルの現在のセットを指定するデータを取得する(ステップ402)。
【００７５】
場合によっては、候補セルの現在のセットは、候補セルの初期セットである。いくつかの他の場合には、システムは、前の反復からセルを取得し、次いで、前のセルの各々を拡張することによって、たとえば、それぞれの1つまたは複数の動作ブロックを前のセルの各々に追加することによって、候補セルの現在のセットを生成する。
【００７６】
システムは、複数の性能予測パラメータを有する性能予測ニューラルネットワークを使用して、候補セルを指定するデータを処理する(ステップ404)。性能予測ニューラルネットワークは、候補セルを有するニューラルネットワークが、特定の機械学習スタックに対してトレーニングされた後で、どの程度良好に機能することになるかを特徴付ける性能予測を生成するために、性能予測パラメータの現在の値に従って、候補セルを指定するデータを処理するように構成される。
【００７７】
システムは、現在のセット内の候補セルに対する性能予測に基づいて、現在のセット内の候補セルのうちの1つまたは複数を選択することによって、候補セルの更新されたセットを生成する(ステップ406)。すなわち、システムは、性能予測ニューラルネットワークによって生成される予測に基づいて、現在のセットをプルーニングして、更新されたセットを生成する。たとえば、システムは、更新されたセット内に含まれるべき最良の性能予測を有するK個の候補セルを現在のセットから選択し、ここで、Kは、所定の整数である。
【００７８】
システムは、以下のように、現在のセット内の候補セルの各々に対してステップ408〜412を反復的に実行する。
【００７９】
システムは、候補セルを有するタスクニューラルネットワークのインスタンスを生成する(ステップ408)。たとえば、システムは、タスクニューラルネットワークの所定のテンプレートアーキテクチャに従って、タスクニューラルネットワークのインスタンスを生成する。たとえば、タスクニューラルネットワークのテンプレートアーキテクチャは、第1のニューラルネットワークレイヤ(たとえば、畳み込みレイヤ)と、続いてセルのN個のインスタンスのスタックと、続いて出力サブネットワーク(たとえば、softmaxニューラルネットワークレイヤを含む出力サブネットワーク)とを含む。
【００８０】
システムは、特定の機械学習タスクを実行するようにインスタンスをトレーニングする(ステップ410)。
【００８１】
タスクニューラルネットワークのインスタンスをトレーニングするために、システムは、特定の機械学習タスクに対してインスタンスをトレーニングするためのトレーニングデータ、および特定の機械学習タスクに対して、タスクニューラルネットワークのトレーニングされたインスタンスの性能を評価するための検証セットを取得する。システムは、次いで、従来の機械学習トレーニング技法を使用して、トレーニングデータに対してインスタンスをトレーニングする。
【００８２】
システムは、次いで、たとえば、検証データセットに対してトレーニングされたインスタンスの精度を測定することによって、トレーニングされたインスタンスの実際の性能を決定するために、特定の機械学習タスクに対してトレーニングされた各インスタンスの性能を評価する(ステップ412)。
【００８３】
システムが現在のセット内のすべての候補セルに対してステップ408〜412を繰り返すと、システムは、性能予測ニューラルネットワークの性能予測パラメータの値を調整するために、トレーニングされたインスタンスに対する実際の性能を使用する(ステップ414)。
【００８４】
具体的には、システムは、性能予測ニューラルネットワークをトレーニングすることによって、予測パラメータの値を調整して、従来の教師あり学習技法、たとえば、確率的勾配降下(SGD)技法を使用して、候補セルの実際の性能を正確に予測する。
【００８５】
システムは、次いで、更新されたセット内の候補セルの各々の中の動作ブロック数がセル内で許可される所定の最大動作ブロック数未満であるかどうかを決定する(ステップ416)。
【００８６】
新しいセット内の新しい候補セルの各々の中の動作ブロック数がセル内で許可される所定の最大動作ブロック数未満であるとき、システムは、更新されたセット内の候補セルを拡張して、候補セルの新しいセットを生成する。具体的には、システムは、更新されたセット内の候補セルの各々に対して、ハイパーパラメータのそれぞれのセットを有するそれぞれの新しい動作ブロックをその候補セルに追加することによって、更新されたセット内の候補セルを拡張する。システムは、次いで、候補セルのこの新しいセットを候補セルの現在のセットとして設定し、各候補セル内の動作ブロック数が最大動作ブロック数に等しくなるまで、ステップ402〜416を繰り返す。
【００８７】
更新されたセット内の候補セルの各々の中の動作ブロック数が所定の最大動作ブロック数に等しいとき、システムは、タスクニューラルネットワークのアーキテクチャにわたって繰り返される出力セルとして、最良の実際の性能を有するトレーニングされたインスタンスに対応する新しい候補セルを選択する(ステップ418)。
【００８８】
この明細書は、システムおよびコンピュータプログラム構成要素に関して「構成された」という用語を使用する。特定の動作または活動を実行するように構成されるべき1つまたは複数のコンピュータのシステムは、そのシステムが、動作中、そのシステムにそれらの動作または活動を実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをその上にインストールしていることを意味する。特定の動作または活動を実行するように構成されるべき1つまたは複数のコンピュータプログラムは、その1つまたは複数のプログラムが、データ処理装置によって実行されると、その装置にそれらの動作または活動を実行させる命令を含むことを意味する。
【００８９】
本明細書で説明した主題および機能的動作の実施形態は、デジタル電子回路で、有形に具現化されたコンピュータソフトウェアまたはファームウェアで、本明細書で開示した構造およびそれらの構造的均等物を含めて、コンピュータハードウェアで、またはそれらのうちの1つまたは複数の組合せで実装され得る。本明細書で説明した主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置によって実行するための、またはデータ処理装置の動作を制御するための、有形の非一時的記憶媒体上で符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムアクセスメモリデバイスもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つまたは複数の組合せであってよい。代替または追加として、プログラム命令は、データ処理装置による実行のために適切な受信機装置に送信するための情報を符号化するために生成された、人工的に生成された伝搬信号、たとえば、機械生成電気信号、光信号、または電磁信号上で符号化され得る。
【００９０】
「データ処理装置」という用語は、データ処理ハードウェアを指し、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含めて、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。これらの装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)であってもよいか、またはそれらをさらに含んでよい。これらの装置は、随意に、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つまたは複数の組合せを構成するコードを含み得る。
【００９１】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれることもあるか、またはそのように説明されてもよいコンピュータプログラムは、コンパイル型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含めて、任意の形態のプログラミング言語で書き込まれてよく、スタンドアロンプログラムとして、またはモジュール、構成要素、サブルーチン、もしくはコンピューティング環境で使用するのに適した他のユニットとして、を含めて、任意の形態で展開され得る。プログラムは、必ずしもその必要はないが、ファイルシステム内のファイルに対応し得る。プログラムは、他のプログラムまたはデータ、たとえば、マークアップ言語文書内、当該プログラム専用の単一のファイル内、または複数の協調ファイル、たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの部分を記憶するファイル内に記憶された1つまたは複数のスクリプトを保持するファイルの一部分の中に記憶され得る。コンピュータプログラムは、1つの場所に位置するか、または複数の場所にわたって分散され、データ通信ネットワークによって相互接続された、1つのコンピュータまたは複数のコンピュータ上で実行されるように展開され得る。
【００９２】
本明細書において、「データベース」という用語は、データの任意のコレクションを指すように広く使用され、データは、任意の特定の様式で構成される必要はなく、またはまったく構成されなくてもよく、データは、1つまたは複数のロケーション内の記憶デバイス上に記憶されてよい。したがって、たとえば、インデックスデータベースは、データの複数のコレクションを含んでよく、その各々は、異なって編成されアクセスされ得る。
【００９３】
同様に、本明細書において、「エンジン」という用語は、1つまたは複数の特定の機能を実行するようにプログラムされた、ソフトウェアベースのシステム、サブシステム、またはプロセスを指すように広く使用される。概して、エンジンは、1つまたは複数のロケーション内の1つまたは複数のコンピュータ上にインストールされた、1つまたは複数のソフトウェアモジュールまたはソフトウェア構成要素として実装されることになる。場合によっては、1つまたは複数のコンピュータは、特定のエンジン専用になり、他の場合には、複数のエンジンが同じ1つまたは複数のコンピュータ上にインストールされ実行され得る。
【００９４】
本明細書で説明したプロセスおよび論理フローは、入力データを動作させ、出力を生成することによって機能を実行するために1つまたは複数のコンピュータプログラムを実行する、1つまたは複数のプログラマブルコンピュータによって実行され得る。プロセスおよび論理フローは、専用論理回路、たとえば、FPGAもしくはASICによって、または専用論理回路と1つまたは複数のプログラムされたコンピュータの組合せによって実行されてもよい。
【００９５】
コンピュータプログラムの実行に適したコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサまたは両方、あるいは任意の他の種類の中央処理装置に基づき得る。概して、中央処理装置は、読取り専用メモリもしくはランダムアクセスメモリまたは両方から命令およびデータを受信することになる。コンピュータの必須要素は、命令を実行(perform)または実行(execute)するための中央処理装置、および命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央処理装置およびメモリは、専用論理回路によって補完されてよいか、またはその中に組み込まれてもよい。概して、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば、磁気ディスク、光磁気ディスク、または光ディスクを含むことになるか、あるいはそこからデータを受信するか、もしくはそこにデータを転送するか、または両方を行うように動作可能に結合されることになる。しかしながら、コンピュータは、そのようなデバイスを有さなくてもよい。さらに、コンピュータは、別のデバイス、たとえば、ほんのいくつかを挙げれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオプレイヤーもしくはモバイルビデオプレイヤー、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ内に埋め込まれてもよい。
【００９６】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス;磁気ディスク、たとえば、内部ハードディスクまたはリムーバブルディスク;光磁気ディスク;ならびにCD ROMディスクおよびDVD-ROMディスクを含めて、すべての形態の不揮発性のメモリ、媒体デバイスおよびメモリデバイスを含む。
【００９７】
ユーザとの対話を提供するために、本明細書で説明した主題の実施形態は、情報をユーザに表示するためのディスプレイデバイス、たとえば、CRT(陰極線管)モニタまたはLCD(液晶ディスプレイ)モニタと、それによりユーザがコンピュータに入力を提供することができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールとを有するコンピュータ上で実装され得る。他の種類のデバイスを使用して、ユーザとの対話を実現することもでき、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであってよく、ユーザからの入力は、音響入力、音声入力、または触覚入力を含めて、任意の形態で受信され得る。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送り、そこから文書を受信することによって、たとえば、ウェブブラウザから受信された要求に応じて、ウェブページをユーザのデバイス上のウェブブラウザに送ることによって、ユーザと対話することができる。また、コンピュータは、テキストメッセージまたは他の形態のメッセージをパーソナルデバイス、たとえば、メッセージングアプリケーションを実行しているスマートフォンに送り、返しに、ユーザから応答メッセージを受信することによって、ユーザと対話し得る。
【００９８】
機械学習モデルを実装するためのデータ処理装置は、たとえば、機械学習トレーニングまたは機械学習製造の共通のコンピュータ集約的な部分、すなわち、推論、作業負荷を処理するために、専用ハードウェア加速ユニットを含んでもよい。
【００９９】
機械学習モデルは、機械学習フレームワーク、たとえば、TensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、またはApache MXNetフレームワークを使用して、実装および展開され得る。
【０１００】
本明細書で説明した主題の実施形態は、たとえば、データサーバなどのバックエンド構成要素を含むか、もしくはミドルウェア構成要素、たとえば、アプリケーションサーバを含むか、またはフロントエンド構成要素、たとえば、それを通してユーザが本明細書で説明した主題の実装形態と対話することができる、グラフィカルユーザインターフェース、ウェブブラウザ、またはアプリを有するクライアントコンピュータを含むコンピューティングシステムで、あるいは1つまたは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、またはフロントエンド構成要素の任意組合せで実装され得る。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(LAN)および広域ネットワーク(WAN)、たとえば、インターネットを含む。
【０１０１】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、概して、互いから遠隔にあり、典型的には、通信ネットワークを通じて対話する。クライアントおよびサーバの関係は、それぞれのコンピュータ上で実行し、互いとクライアント/サーバ関係を有するコンピュータプログラムにより生じる。いくつかの実施形態では、サーバは、たとえば、クライアントとして働くデバイスと対話するユーザにデータを表示し、そこからユーザ入力を受信するために、データ、たとえば、HTMLページをユーザデバイスに送信する。ユーザデバイスにおいて生成されたデータ、たとえば、ユーザ対話の結果は、サーバにおいてデバイスから受信され得る。
【０１０２】
本明細書は多くの特定の実装形態詳細を含むが、これらは、本発明の範囲に対する、または特許請求され得る範囲に対する制限と解釈されるべきではなく、特定の発明の特定の実施形態に固有であり得る特徴の説明として解釈されるべきである。別個の実施形態の文脈で、本明細書で説明したいくつかの特徴は、単一の実施形態において組み合わせて実装されてもよい。逆に、単一の実施形態の文脈で説明した様々な特徴は、複数の実施形態で別々に、または任意の適切なサブコンビネーションで実装されてもよい。その上、特徴は上記でいくつかの組合せで動作するとして説明される場合があり、当初、そのようなものとして特許請求される場合すらあるが、特許請求される組合せからの1つまたは複数の特徴は、場合によっては、その組合せから削除されてよく、特許請求される組合せは、サブコンビネーションまたはサブコンビネーションの変種に関する場合がある。
【０１０３】
同様に、動作は、特定の順序で、図面において示され、請求項において列挙されるが、これは、そのような動作が、示される特定の順序で、または連続的な順序で実行されるべきであるとして、または所望の結果を達成するために、示したすべての動作が実行されるべきであるとして理解されるべきではない。状況によっては、マルチタスキングおよび並列処理が有利であり得る。その上、上記で説明した実施形態内の様々なシステムモジュールおよび構成要素の分離は、すべての実施形態においてそのような分離を必要とすると理解すべきではなく、説明したプログラム構成要素およびシステムは、概して、単一のソフトウェア製品内に一緒に統合されてよいか、または複数のソフトウェア製品内に梱包されてよいことを理解されたい。
【０１０４】
本主題の特定の実施形態について説明されてきた。他の実施形態は、以下の特許請求の範囲内である。たとえば、特許請求の範囲において列挙する活動は、異なる順序で実行され、依然として所望の結果を達成し得る。一例として、添付の図面に示したプロセスは、所望の結果を達成するために、必ずしも示した特定の順序、または連続的な順序を必要とするとは限らない。場合によっては、マルチタスキングおよび並列処理が有利であり得る。
【符号の説明】
【０１０５】
100  ニューラルアーキテクチャ探索(NAS)システム
102  データ
110  性能予測ニューラルネットワーク、予測器
112  更新されたセット
120  トレーニングエンジン
122  実際の性能
130  予測パラメータ更新エンジン
150  出力セル
200  セル
202  ブロック
204  ブロック
206  ブロック
208  ブロック
210  ブロック
300  タスクニューラルネットワーク
302  ネットワーク入力、入力
304  畳み込みニューラルネットワークレイヤ
306  セルインスタンスのスタック、スタック
308  セルインスタンス、第1のセルインスタンス
310  セルインスタンス
312  セルインスタンス
314  最後のセルインスタンス
316  サブネットワーク
320  ネットワーク出力
400  プロセス
【図１】
2021504844.tif 000008
【図２】
2021504844.tif 000009
【図３】
2021504844.tif 000010
【図４】
2021504844.tif 000011
【国際調査報告】
2021504844.tif 000012
2021504844.tif 000013