(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-08
(45)【発行日】2024-07-17
(54)【発明の名称】リソース制約付きニューラルネットワークアーキテクチャ検索
(51)【国際特許分類】
G06N 3/0985 20230101AFI20240709BHJP
【FI】
G06N3/0985
【外国語出願】
(21)【出願番号】P 2023112994
(22)【出願日】2023-07-10
(62)【分割の表示】P 2022512432の分割
【原出願日】2020-08-19
【審査請求日】2023-07-28
(32)【優先日】2019-08-23
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ヤン,ミン-シュアン
(72)【発明者】
【氏名】スローカム,ジョシュア・フォスター
(72)【発明者】
【氏名】ジン,シアオジエ
(72)【発明者】
【氏名】ワン,ジエン
(72)【発明者】
【氏名】ダイ,ションヤン
【審査官】武田 広太郎
(56)【参考文献】
【文献】中国特許出願公開第109491775(CN,A)
【文献】韓国公開特許第10-2019-0060600(KR,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
ユーザのデータ処理ハードウェアによって実行されると前記データ処理ハードウェアに動作を実行させる、コンピュータによって実現される方法であって、前記動作は、
ニューラルネットワークの複数の計算セルを定義する動作を含み、前記複数の計算セルの各計算セルは、予め定められた数のノードおよびエッジの異なる有向グラフと、それぞれの1つ以上の計算セルハイパーパラメータとを含み、各ノードは、それぞれのニューラルネットワーク潜在表現を表わし、各エッジは、それぞれのニューラルネットワーク潜在表現を変換するそれぞれの演算を表わしており、前記動作はさらに、
前記複数の計算セルの各計算セルに関して、1つ以上の計算リソース制約を受ける検証損失関数を最適化する動作と、
各々の最適化された検証損失関数に基づいて、前記複数の計算セル内の前記計算セルの各々の前記それぞれの1つ以上の計算セルハイパーパラメータを用いて、機械学習タスクを実行するための前記ニューラルネットワークを生成する動作とを含む、方法。
【請求項2】
前記動作はさらに、前記複数の計算セルの各計算セルに関して、それぞれのニューラルネットワーク潜在表現を変換する各それぞれの演算を、候補演算の予め定義されたセットからの候補演算のそれぞれの線形結合と置換える動作を含み、それぞれの線形結合における各々の候補演算は、前記1つ以上の計算リソース制約を受ける前記検証損失関数を最適化する動作の前に、前記それぞれの1つ以上の計算セルハイパーパラメータによってパラメータ化されたそれぞれの混合重みを有している、請求項1に記載の方法。
【請求項3】
前記1つ以上の計算リソース制約を受ける前記検証損失関数を最適化する動作はさらに、前記それぞれの1つ以上の計算セルハイパーパラメータの値および計算セル重みの値を反復的に調整する動作を含む、請求項1または2に記載の方法。
【請求項4】
前記それぞれの1つ以上の計算セルハイパーパラメータの値および前記計算セル重みの値を反復的に調整する動作は、前記検証損失関数と、トレーニングデータ上で得られる誤差の尺度を表わすトレーニング損失関数との2レベル最適化を実行する動作を含み、前記それぞれの1つ以上の計算セルハイパーパラメータは上位レベルパラメータを含み、前記計算セル重みは下位レベルパラメータを含む、請求項3に記載の方法。
【請求項5】
前記計算セルハイパーパラメータの値および前記計算セル重みの値を反復的に調整する動作は、各々の計算リソース制約に関するそれぞれのコスト関数を定義する動作を含み、各々の定義されたコスト関数は、前記計算セルハイパーパラメータをそれぞれのリソースコストにマッピングする、請求項3に記載の方法。
【請求項6】
各々の計算セルにおけるエッジのそれぞれのリソースコストは、演算の候補セットにおける演算のコストに対するソフトマックス(softmax)として計算される、請求項5に記載の方法。
【請求項7】
前記動作は、各々の定義されたコスト関数ごとに下限制約および上限制約を設定する動作をさらに含む、請求項5に記載の方法。
【請求項8】
前記検証損失関数は、前記複数の計算セルの各々の定義された計算セルを通じて検証データセットを実行した後に得られる誤差の尺度を表わす、請求項1~7のいずれか1項に記載の方法。
【請求項9】
前記1つ以上の計算リソース制約は、メモリ、浮動小数点演算の数、または推論速度のうちの1つ以上に対するユーザ定義制約を含む、請求項1~8のいずれか1項に記載の方法。
【請求項10】
前記動作はさらに、
トレーニングされたニューラルネットワークを得るために、トレーニングデータ上で前記生成されたニューラルネットワークをトレーニングする動作と、
前記トレーニングされたニューラルネットワークを用いて前記機械学習タスクを実行する動作とを含む、請求項1~9のいずれか1項に記載の方法。
【請求項11】
システムであって、
データ処理ハードウェアと、
前記データ処理ハードウェアと通信するメモリハードウェアとを含み、前記メモリハードウェアは、前記データ処理ハードウェア上で実行されると前記データ処理ハードウェアに動作を実行させる命令を格納しており、前記動作は、
ニューラルネットワークの複数の計算セルを定義する動作を含み、前記複数の計算セルの各計算セルは、予め定められた数のノードおよびエッジの異なる有向グラフと、それぞれの1つ以上の計算セルハイパーパラメータとを含み、各ノードは、それぞれのニューラルネットワーク潜在表現を表わし、各エッジは、それぞれのニューラルネットワーク潜在表現を変換するそれぞれの演算を表わしており、前記動作はさらに、
前記複数の計算セルの各計算セルに関して、1つ以上の計算リソース制約を受ける検証損失関数を最適化する動作と、
各々の最適化された検証損失関数に基づいて、前記複数の計算セル内の前記計算セルの各々の前記それぞれの1つ以上の計算セルハイパーパラメータを用いて、機械学習タスクを実行するための前記ニューラルネットワークを生成する動作とを含む、システム。
【請求項12】
前記動作はさらに、前記複数の計算セルの各計算セルに関して、それぞれのニューラルネットワーク潜在表現を変換する各それぞれの演算を、候補演算の予め定義されたセットからの候補演算のそれぞれの線形結合と置換える動作を含み、それぞれの線形結合における各々の候補演算は、前記1つ以上の計算リソース制約を受ける前記検証損失関数を最適化する動作の前に、前記それぞれの1つ以上の計算セルハイパーパラメータによってパラメータ化されたそれぞれの混合重みを有している、請求項11に記載のシステム。
【請求項13】
前記1つ以上の計算リソース制約を受ける前記検証損失関数を最適化する動作はさらに、前記それぞれの1つ以上の計算セルハイパーパラメータの値および計算セル重みの値を反復的に調整する動作を含む、請求項11または12に記載のシステム。
【請求項14】
前記それぞれの1つ以上の計算セルハイパーパラメータの値および前記計算セル重みの値を反復的に調整する動作は、前記検証損失関数と、トレーニングデータ上で得られる誤差の尺度を表わすトレーニング損失関数との2レベル最適化を実行する動作を含み、前記それぞれの1つ以上の計算セルハイパーパラメータは上位レベルパラメータを含み、前記計算セル重みは下位レベルパラメータを含む、請求項13に記載のシステム。
【請求項15】
前記計算セルハイパーパラメータの値および前記計算セル重みの値を反復的に調整する動作は、各々の計算リソース制約に関するそれぞれのコスト関数を定義する動作を含み、各々の定義されたコスト関数は、前記計算セルハイパーパラメータをそれぞれのリソースコストにマッピングする、請求項13に記載のシステム。
【請求項16】
各々の計算セルにおけるエッジのそれぞれのリソースコストは、演算の候補セットにおける演算のコストに対するソフトマックス(softmax)として計算される、請求項15に記載のシステム。
【請求項17】
前記動作は、各々の定義されたコスト関数ごとに下限制約および上限制約を設定する動作をさらに含む、請求項15に記載のシステム。
【請求項18】
前記検証損失関数は、前記複数の計算セルの各々の定義された計算セルを通じて検証データセットを実行した後に得られる誤差の尺度を表わす、請求項11~17のいずれか1項に記載のシステム。
【請求項19】
前記1つ以上の計算リソース制約は、メモリ、浮動小数点演算の数、または推論速度のうちの1つ以上に対するユーザ定義制約を含む、請求項11~18のいずれか1項に記載のシステム。
【請求項20】
前記動作はさらに、
トレーニングされたニューラルネットワークを得るために、トレーニングデータ上で前記生成されたニューラルネットワークをトレーニングする動作と、
前記トレーニングされたニューラルネットワークを用いて前記機械学習タスクを実行する動作とを含む、請求項11~19のいずれか1項に記載のシステム。
【請求項21】
コンピュータに請求項1~10のいずれか1項に記載の方法を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
技術分野
本明細書は、ニューラルネットワークのためのアーキテクチャを決定することに関する。
【背景技術】
【0002】
背景
ニューラルネットワークは、受取った入力に関する出力を予測するために非線形ユニットの1つ以上の層を採用する機械学習モデルである。いくつかのニューラルネットワークは、出力層に加えて1つ以上の隠れ層を含む。各々の隠れ層の出力は、ネットワーク内の次の層、すなわち、次の隠れ層または出力層への入力としてを用いられる。ネットワークの各層は、パラメータのそれぞれのセットの現在値に従って、受取った入力から出力を生成する。
【発明の概要】
【0003】
概要
本明細書は、リソース制約下でのワンショット・ニューラルアーキテクチャ検索のためのエンド・ツー・エンドニューラルアーキテクチャ検索フレームワークを記載する。この場合、カスタマイズされたネットワークアーキテクチャは任意の機械学習タスクデータセットに関して学習可能で或る。
【0004】
概して、本明細書で説明する主題の1つの革新的な局面は、ニューラルネットワークアーキテクチャ検索のための方法を含む。当該方法は、ニューラルネットワークの計算セルを定義するステップを含み、当該計算セルは、ノードおよびエッジの有向グラフを含み、各ノードは、それぞれのニューラルネットワーク潜在表現を表わし、各エッジは、それぞれのニューラルネットワーク潜在表現を変換するそれぞれの演算を表わしており、当該方法はさらに、それぞれのニューラルネットワーク潜在表現を変換する各々の演算を、候補演算の予め定義されたセットからの候補演算のそれぞれの線形結合と置換えるステップを含み、それぞれの線形結合における各々の候補演算は、1つ以上の計算セルハイパーパラメータによってパラメータ化されたそれぞれの混合重みを有しており、当該方法はさらに、1つ以上の計算リソース制約を受ける検証損失関数を最適化するために、i)当該計算セルハイパーパラメータの値、およびii)計算セル重みの値を反復的に調整するステップを含み、各反復ごとに、当該検証損失関数の制約なし最適化を実行して、前回の反復についての当該計算セルハイパーパラメータの値を更新し、当該計算セル重みの調整済み値を得るステップと、当該計算セルハイパーパラメータの更新済み値を、当該1つ以上のリソース制約によって定義される実現可能なセット内の最近点に投影して、当該計算セルハイパーパラメータの調整済み値を得るステップとを含み、当該方法はさらに、当該定義された計算セルと当該計算セルハイパーパラメータの当該調整済み値および当該計算セル重みの当該調整済み値とを用いて機械学習タスクを実行するためのニューラルネットワークを生成するステップを含む。
【0005】
この局面の他の実施形態は、対応するコンピュータシステムと、装置と、1つ以上のコンピュータストレージデバイスに記録されたコンピュータプログラムとを含み、各々が、当該方法の動作を実行するように構成されている。1つ以上のコンピュータシステムのシステムは、当該システムにインストールされて演算時に当該システムに動作を実行させ得るソフトウェア、ファームウェア、ハードウェア、またはこれらの任意の組合わせのにより、特定の演算または動作を実行するように構成することができる。1つ以上のコンピュ
ータプログラムは、データ処理装置によって実行されたときに当該装置に動作を実行させる命令を含むことによって、特定の演算または動作を実行するように構成することができる。
【0006】
上述および他の実施形態は各々、任意には、以下の特徴の1つ以上を単独でまたは組合わせて含み得る。いくつかの実現例では、当該定義された計算セルと当該計算セルハイパーパラメータの当該調整済み値および当該計算セル重みの当該調整済み値とを用いて機械学習タスクを実行するためのニューラルネットワークを生成するステップは、候補演算の各線形結合を、1つ以上の調整済み計算セルハイパーパラメータによってパラメータ化された最大混合重みを有する単一の演算と置換えることによって、離散計算セルアーキテクチャを定義するステップと、当該定義された離散計算セルアーキテクチャおよび当該計算セル重みの当該調整済み値を用いて機械学習タスクを実行するためのニューラルネットワークを生成するステップとを含む。
【0007】
いくつかの実現例では、当該定義された計算セルと当該計算セルハイパーパラメータの当該調整済み値および当該計算セル重みの当該調整済み値とを用いて機械学習タスクを実行するためのニューラルネットワークを生成するステップは、当該定義された計算セルの複数のコピーを積層するステップを含み、各コピーは、当該計算セルハイパーパラメータの当該調整済み値によって定義される同じセルアーキテクチャを有する。
【0008】
いくつかの実現例では、当該方法はさらに、当該定義された計算セルの複数のコピーを生成するステップと、当該定義された計算セルの生成されたコピーの各々をそれぞれのトレーニングデータ上でトレーニングするステップとを含む。
【0009】
いくつかの実現例では、当該定義された計算セルの複数のコピーを積層するステップは、当該定義された計算セルの当該複数のコピー同士の間に1つ以上の追加のニューラルネットワーク層をインターリーブするステップを含む。
【0010】
いくつかの実現例では、当該1つ以上の追加のニューラルネットワーク層は、1つの入力ノードおよび1つの中間ノードを含む接続計算セルを備え、当該方法はさらに、1つ以上の計算リソース制約を受ける当該検証損失関数を最適化するために、i)当該接続計算セルハイパーパラメータの値、およびii)接続計算セル重みの値を反復的に調整することによって、当該接続セルを学習するステップを含む。
【0011】
いくつかの実現例では、当該検証損失関数は、定義された計算セットを通じて検証データセットを実行した後に得られる誤差の尺度を表わす。
【0012】
いくつかの実現例では、検証損失関数を最適化するために、i)当該計算セルハイパーパラメータの値、およびii)計算セル重みの値を反復的に調整するステップは、当該検証損失関数と、トレーニングデータ上で得られる誤差の尺度を表わすトレーニング損失関数との2レベル最適化を実行するステップを含み、当該計算セルハイパーパラメータは上位レベルパラメータを含み、当該計算セル重みは下位レベルパラメータを含む。
【0013】
いくつかの実現例では、当該1つ以上の計算リソース制約は、メモリ、浮動小数点演算の数、または推論速度のうちの1つ以上に対するユーザ定義制約を含む。
【0014】
いくつかの実現例では、1つ以上の計算リソース制約を受ける検証損失関数を最適化するために、i)当該計算セルハイパーパラメータの値、および、ii)計算セル重みの値を反復的に調整するステップは、各々の計算リソース制約に関するそれぞれのコスト関数を定義するステップを含み、各々の定義されたコスト関数は、当該計算セルハイパーパラ
メータをそれぞれのリソースコストにマッピングする。
【0015】
いくつかの実現例では、当該計算セルにおけるエッジのそれぞれのリソースコストは、演算の候補セットにおける演算のコストに対するソフトマックス(softmax)として計算
される。
【0016】
いくつかの実現例では、当該方法は、各々の定義されたコスト関数ごとに下限制約および上限制約を設定するステップをさらに含む。
【0017】
いくつかの実現例では、当該検証損失関数の制約なし最適化を実行して、前回の反復についての計算セルハイパーパラメータの値を更新し、当該計算セル重みの調整済み値を得るステップは、当該検証損失関数の当該制約なし最適化を反復的に実行するステップを含み、各反復ごとに、当該反復に関する当該計算セルハイパーパラメータの値および当該計算セル重みの値を得るステップを含み、当該得るステップは、第1の反復のために、当該計算セルハイパーパラメータのランダムに初期化された値と、当該計算セル重みのランダムに初期化された値とを得るステップ、または、前回の反復から当該計算セルハイパーパラメータの値と当該計算セル重みの値とを得るステップを含み、各反復ごとに、さらに、予め定められた反復回数だけ、または、予め定義された収束基準が満たされるまで、反復的に、反復のために当該計算セルハイパーパラメータの当該得られた値を固定し、当該計算セル重みに対するトレーニング損失関数の勾配に基づいて、更新された計算セル重みを得るステップと、当該更新された計算セル重みを固定し、当該計算セルハイパーパラメータに対する当該検証損失関数の勾配に基づいて当該計算セルハイパーパラメータの更新済み値を得るステップとを含む。
【0018】
いくつかの実現例では、当該更新された計算セル重みを固定し、当該計算セルハイパーパラメータに対する当該検証損失関数の勾配に基づいて更新済みの計算セルハイパーパラメータを得るステップは、当該計算セルハイパーパラメータと当該計算セル重みとが無関係であると仮定するステップを含む。
【0019】
いくつかの実現例では、当該計算セルハイパーパラメータの更新済み値を、当該1つ以上のリソース制約によって定義される実現可能なセット内の最近点に投影するステップは、当該実現可能なセット内の要素を識別するステップを含み、当該実現可能なセット内の当該要素は、i)当該計算セルハイパーパラメータの当該更新済み値とii)当該実現可能なセット内の当該要素との間の差の2ノルムを最小化するものである。
【0020】
いくつかの実現例では、当該候補演算の予め定義されたセットは、プーリング演算、畳み込み演算または接続演算を含む。
【0021】
いくつかの実現例では、当該方法はさらに、当該ニューラルネットワークの複数の計算セルを定義するステップを含み、各々の定義された計算セルは、ノードおよびエッジのそれぞれの有向グラフによって表わすことができ、さらに、当該複数の定義された計算セルの各々の定義された計算セルごとに、それぞれのニューラルネットワーク潜在表現を変換する各々の演算を、候補演算の予め定義されたセットからの候補演算のそれぞれの線形結合と置換えるステップを含み、それぞれの線形結合における各々の候補演算は、1つ以上の計算セルハイパーパラメータによってパラメータ化されたそれぞれの混合重みを有し、さらに、1つ以上の計算リソース制約を受ける検証損失関数を最適化するために、i)当該計算セルハイパーパラメータの値、およびii)当該計算セル重みの値を反復的に調整するステップを含み、各反復ごとに、当該検証損失関数の制約なし最適化を実行して、前回の反復についての当該計算セルハイパーパラメータの値を更新し、当該計算セル重みの調整済み値を得るステップと、当該計算セルハイパーパラメータの更新済み値を、当該1
つ以上のリソース制約によって定義される実現可能なセット内の最近点に投影して、当該計算セルハイパーパラメータの調整済み値を得るステップとを含み、さらに、当該定義された複数の計算セルとそれぞれの当該計算セルハイパーパラメータの当該調整済み値および当該計算セル重みの当該調整済み値とを用いて機械学習タスクを実行するためのニューラルネットワークを生成するステップを含む。
【0022】
いくつかの実現例では、当該方法はさらに、トレーニングされたニューラルネットワークを得るために、トレーニングデータ上で当該生成されたニューラルネットワークをトレーニングするステップと、当該トレーニングされたニューラルネットワークを用いて当該機械学習タスクを実行するステップとを含む。
【0023】
本明細書に記載する主題は、以下の利点のうちの1つ以上を実現するように特定の実施形態において実現することができる。
【0024】
ここで説明される技術を実現するシステムは、モデルサイズおよび計算複雑性などのタスク依存型リソース制約を満たすニューラルネットワークアーキテクチャを学習することができる。たとえば、当該システムは、制約付きコンピューティングリソースでモバイルプラットフォームによって効率的に実現され得る軽量ニューラルネットワークアーキテクチャを学習することができる。
【0025】
加えて、軽量ニューラルネットワークアーキテクチャは、ニューラルネットワークアーキテクチャの品質(たとえば、その精度および性能)を損なうことなくリソース制約下で学習することができる。たとえば、学習済みニューラルネットワークアーキテクチャは、精度、モデルサイズおよび複雑性に関して最先端の性能を達成することができる。ニューラルネットワークアーキテクチャ検索を実行するための本明細書で説明する技術は、ニューラルアーキテクチャ検索速度を向上させることもできる。
【0026】
加えて、本明細書で説明される技術は、特定の機械学習アプリケーションに限定されず、本明細書で説明される技術を実現するシステムは、任意の特定の機械学習タスクおよびデータセットのためのカスタマイズされたニューラルネットワークアーキテクチャを学習することができる。ここで説明する技術は、ワンショット(one-shot:1回限りの)リソース制約付きニューラルアーキテクチャ検索にも適している。
【0027】
本明細書の主題の1つ以上の実施形態の詳細が添付の図面および以下の説明に提供されている。当該主題の他の特徴、局面、および利点は、以下の説明、添付の図面、および添付の特許請求の範囲から明らかになるだろう。
【図面の簡単な説明】
【0028】
【
図1】例示的なニューラルネットワークアーキテクチャ検索システムを示す図である。
【
図2】機械学習タスクを実行するためのニューラルネットワークを生成するための例示的なプロセスを示すフロー図である
【
図3】反復投影法を実行するための例示的なプロセスを示すフロー図である。
【
図4】離散計算セルアーキテクチャの学習を概念的に可視化した例を示す図である。
【0029】
さまざまな図面中の同様の参照番号および名称は同様の要素を示す。
【発明を実施するための形態】
【0030】
詳細な説明
画像認識、音声認識、言語モデリングなどの機械学習タスクを実行するためのニューラルネットワークアーキテクチャの設計および実現は時間およびコストがかかるプロセスになる可能性があり、当該分野における専門的な知識および経験を必要とする。
【0031】
ニューラルネットワークアーキテクチャの設計を自動化するための例示的な一技術としてニューラルアーキテクチャ検索(Neural Architecture Search:NAS)が挙げられる。NAS技術は2つの主グループに分類することができる。NAS技術の第1のグループは、ブラックボックス最適化手法、たとえば、報酬関数を最適化するための強化学習または遺伝的アルゴリズムを用いる。このような技術は、典型的には、ニューラルネットワークアーキテクチャを学習するために何千もの深層学習モデルのトレーニングを必要とするので、計算コストが高くなる。加えて、ブラックボックス最適化を用いるNAS技術は、1回限りのNASのためには計算上あまりにも高価である。異なるタスクには異なるニューラルネットワークアーキテクチャが必要となるので、ワンショット(1回限りの)NASはリソース制約付きアプリケーションにとって重要である。たとえば、画像色の分類などの単純な問題の場合、単純なニューラルネットワークアーキテクチャ(たとえば、2層ニューラルネットワーク)が必要となり、他方で、画像から猫および犬を分類するには複雑なニューラルネットワークが必要となる。
【0032】
NAS技術の第2のグループは、ニューラルアーキテクチャ検索タスクを微分可能な最適化問題として定式化し、勾配降下を利用して最適解を見出す。第2のグループにおけるNAS技術は、典型的には、第1のグループにおけるNAS技術と比べて、より計算効率が良い。
【0033】
本明細書では、ワンショットNASのためのエンド・ツー・エンドのリソース制約付き微分可能アーキテクチャ検索フレームワークを説明する。微分可能なアーキテクチャ検索タスクは、リソース制約を含むことによって制約付き最適化タスクとして定式化される。この場合、リソース制約付き最適化タスクのための検索空間は、勾配降下法の適用を可能にするために連続検索空間にマッピングされる。反復投影アルゴリズムを適用して、制約付き最適化タスクを解くとともに、制約によって定義される実行可能なセット内のニューラルネットワークアーキテクチャを学習する。マルチレベル検索戦略を適用することで、さまざまな深度でニューラルネットワーク層についてさまざまなアーキテクチャを学習することができる。
【0034】
本明細書で説明する技術によって学習されるニューラルネットワークアーキテクチャは、任意の種類のデジタルデータ入力を受取るとともに当該入力に基づいて任意の種類のスコア、分類、または回帰出力を生成するように構成することができる。
【0035】
たとえば、ニューラルネットワークアーキテクチャによって定義されるニューラルネットワークへの入力が画像であるかまたは画像から抽出された特徴である場合、所与の画像に関してニューラルネットワークによって生成される出力は、オブジェクトカテゴリのセットの各々についてのスコアであり得る。各スコアは、画像がカテゴリに属するオブジェクトの画像を含む推定尤度を表わしている。
【0036】
別の例として、ニューラルネットワークアーキテクチャによって定義されるニューラルネットワークへの入力が、インターネットリソース(たとえば、ウェブページ)、ドキュメント、もしくはドキュメントの部分であるか、または、インターネットリソース、ドキュメント、もしくはドキュメントの部分から抽出された特徴である場合、所与のインターネットリソース、ドキュメント、または、ドキュメントの部分に関してニューラルネットワークによって生成される出力はトピックのセットの各々に関するスコアであり得る。各スコアは、インターネットリソース、ドキュメント、またはドキュメントの部分がトピッ
クに関するものであることの推定尤度を表わしている。
【0037】
別の例として、ニューラルネットワークアーキテクチャによって定義されるニューラルネットワークへの入力が特定の広告についての印象コンテキストについての特徴である場合、ニューラルネットワークによって生成される出力は、特定の広告がクリックされるであろう推定尤度を表わすスコアであり得る。
【0038】
別の例として、ニューラルネットワークアーキテクチャによって定義されるニューラルネットワークへの入力が、ユーザに関する個人化された推奨の特徴、たとえば、推奨に関するコンテキストを特徴付ける特徴、たとえば、ユーザが行なった以前の動作を特徴付ける特徴である場合、ニューラルネットワークによって生成される出力は、コンテンツアイテムのセットの各々に関するスコアであり得る。この場合、各スコアは、ユーザがコンテンツアイテムを推奨することに好意的に応答するであろう推定尤度を表わしている。
【0039】
別の例として、ニューラルネットワークアーキテクチャによって定義されるニューラルネットワークへの入力が、ある一言語における一連のテキストである場合、ニューラルネットワークによって生成される出力は、別の言語におけるテキストの断片からなるセットの各々についてのスコアであり得る。この場合、各スコアは、他の言語におけるテキストの断片が、入力テキストを他の言語に適切に翻訳したものである推定尤度を表わしている。
【0040】
別の例として、ニューラルネットワークアーキテクチャによって定義されるニューラルネットワークへの入力が発話を表わすシーケンスである場合、ニューラルネットワークによって生成される出力は、テキストの断片からなるセットの各々についてのスコアであり得る。この場合、各スコアは、テキストの断片が発話についての正確なトランスクリプトである推定尤度を表わしている。
【0041】
ハードウェアの例
図1は、例示的なニューラルアーキテクチャ検索システム100を示す。ニューラルアーキテクチャ検索システム100は、以下において説明されるシステム、構成要素および技術が実現され得る1つ以上の位置において1つ以上のコンピュータ上でコンピュータプログラムとして実現されるシステムの例である。
【0042】
ニューラルアーキテクチャ検索システム100は、特定の機械学習タスクを実行するようにニューラルネットワークをトレーニングするためのトレーニングデータ102と、特定の機械学習タスクに対するニューラルネットワークの性能を評価するための検証セット104と、特定の機械学習タスクを実行する際にニューラルネットワークを実現する計算デバイスのリソース制約106を特定するデータと、を受取るシステムである。
【0043】
ニューラルアーキテクチャ検索システム100は、トレーニングデータ102および検証セット104を用いて、特定のタスクを実行するように構成されたニューラルネットワークのためのニューラルネットワークアーキテクチャを決定する。当該アーキテクチャは、ニューラルネットワーク内の層の数、層の各々によって実行される演算、およびニューラルネットワーク内の層間の接続性、すなわち、どの層がニューラルネットワーク内の他のどの層からの入力を受取るか、を定義する。一般に、トレーニングデータ102および検証セット104はともに、1セットのニューラルネットワーク入力と、各ネットワーク入力ごとに、特定のタスクを実行するためにニューラルネットワークによって生成されるべきそれぞれのターゲット出力とを含む。たとえば、トレーニングデータのより大きなセットは、トレーニングデータ102および検証セット104を生成するためにランダムに分割されていてもよい。
【0044】
ニューラルアーキテクチャ検索システム100は、特定のタスクを実行するように構成されたニューラルネットワークのためのニューラルネットワークアーキテクチャを決定する際にリソース制約を用いる。すなわち、ニューラルアーキテクチャ検索システム100は、リソース制約下でニューラルネットワークアーキテクチャを学習する。例示的なリソース制約は、利用可能なメモリの量、浮動小数点演算の数、推論速度、またはモデルサイズを含むがこれらに限定されない。リソース制約下でニューラルネットワークを学習することは、モバイルプラットフォームおよびリアルタイムのアプリケーションにとって特に有用である。
【0045】
システム100は、トレーニングデータ102、検証セット104、および計算リソース制約を、さまざまな方法のいずれかで受取ることができる。たとえば、システム100は、たとえば、システム100によって利用可能にされたアプリケーションプログラミングインターフェイス(application programming interface:API)を用いて、データ
通信ネットワークを介してシステムの遠隔ユーザからのアップロードとしてトレーニングデータを受取り、当該アップロードされたデータをトレーニングデータ102と検証セット104とにランダムに分割することができる。システム100はまた、たとえば、システム100によって利用可能にされたアプリケーションプログラミングインターフェイス(API)を用いて、データ通信ネットワークを介してシステムの遠隔ユーザからのアップロードとして、ユーザ定義された計算リソース制約を受取ることもできる。
【0046】
別の例として、システム100は、ニューラルネットワークをトレーニングするために、システム100によってすでに維持されているどのデータを用いるべきかを特定する入力をユーザから受取り、次いで、この特定されたデータをトレーニングデータ102と検証セット104とに分割することができる。同様に、システム100は、ニューラルネットワークアーキテクチャを決定するために、システム100によって維持される複数のリソース制約のうちのどれを使用すべきかを特定する入力をユーザから受取ることができる。
【0047】
ニューラルアーキテクチャ検索システム100は、計算セル生成器110と、計算セルパラメータ調整エンジン120と、ニューラルネットワークアーキテクチャ生成器130とを含む。
【0048】
計算セル生成器110は、システム100によって決定されているニューラルネットワークアーキテクチャが属するニューラルネットワークの計算セルを定義するように構成される。計算セル生成器110によって定義される計算セルは、システム100によって決定されているニューラルネットワークアーキテクチャが属するニューラルネットワークのアーキテクチャ構築ブロック(たとえば、サブネットワーク)である。たとえば、それぞれの学習されたアーキテクチャおよび独立して学習された重みを有する定義済みの計算セルの複数のインスタンスを積層して、より深いニューラルネットワークを生成することができる。
【0049】
計算セル生成器110によって定義される計算セルは各々、予め定められた数のノードVおよびエッジEのそれぞれの有向非巡回グラフG=(V,E)として表わすことができる。計算セルにおける各ノードxi∈Vは、潜像表現、たとえば、畳み込みネットワークにおける特徴マップを表わす。各々の有向エッジ(ij)は演算Oi,jに関連付けられ
ている。演算Oi,jはノードxiを変換する。たとえば、演算は入力として潜像表現x
iを採用して、潜像表現xjを出力する。各ノードは、その先行するノードの変換済み出力のすべてに基づいて計算することができる。たとえば、
【0050】
【0051】
であり、ここで、
【0052】
【0053】
はx
jの先行ノードのセットを表わす。例示的な計算セルは、以下において
図4を参照して例示および説明される。
【0054】
計算セル生成器110は、受取った入力102~106に基づいて計算セルを定義するように構成することができる。たとえば、定義された計算セルに含まれるノードおよびエッジの数は、システム100によって決定されているニューラルネットワークアーキテクチャが属するニューラルネットワークによって実行されるべき機械学習タスクと、ニューラルネットワークを実現するために利用可能な計算リソースとに依存し得る。
【0055】
計算セルパラメータ更新エンジン120は、計算セル生成器110からの定義された計算セル122を表わすデータを受取るように構成される。計算セルパラメータ調整エンジン120は、リソース制約106を受ける検証損失関数を最適化するために、計算セルハイパーパラメータの値および計算セル重みの値を反復的に調整するように構成される。リソース制約106を受ける検証損失関数を最適化するために計算セルハイパーパラメータの値および計算セル重みの値を調整することは、連続緩和戦略を実現して、アーキテクチャ検索空間を候補演算O
i,jの所定の離散セットによって定義される離散検索空間から連続検索空間にマッピングすることを含んでおり、これにより、勾配降下を用いてアーキテクチャを決定することができるようになる。次いで、連続検索空間についての制約付き最適化問題を実行して、計算セルハイパーパラメータの調整済み値および計算セル重みの調整済み値を決定することで、検証損失関数を最適化する。計算セルパラメータ更新エンジン120によって実行される演算は、
図2および
図3を参照しつつ以下においてより詳細に記載される。
【0056】
ニューラルネットワークアーキテクチャ生成器130は、調整された計算セルパラメータ値132(たとえば、ハイパーパラメータ132aおよび重み132b)を表わすデータを計算セルパラメータ調整エンジン120から受取るように構成される。ニューラルネットワークアーキテクチャ生成器130は、調整された計算セルパラメータ値(および定義された計算セル122)を用いてニューラルネットワークアーキテクチャ150を決定するように構成される。たとえば、ニューラルネットワークアーキテクチャ生成器130は、ニューラルネットワークアーキテクチャ150を、定義された計算セルの複数のコピーの積重ねに等しいものと決定することができる。この場合、計算セルの各コピーのアーキテクチャは、調整された計算セルパラメータ値132によって定義されたセルアーキテクチャを有する。場合によっては、ニューラルネットワークアーキテクチャ生成器130は、決定されたニューラルネットワークアーキテクチャ内の計算セルの積重ね同士の間に追加の層(たとえば、1つ以上のフィルタ層)を含み得る。定義された計算セルおよび学習済み計算セルパラメータを用いてニューラルネットワークアーキテクチャを決定することについて、
図2を参照して以下でより詳細に説明する。
【0057】
ニューラルネットワーク検索システム100は、ニューラルネットワークのアーキテクチャを特定するアーキテクチャデータ150、すなわち、ニューラルネットワークの一部
である層を特定するデータ、層間の接続性、および層によって実行される演算、を出力することができる。たとえば、ニューラルネットワーク検索システム100は、トレーニングデータおよびリソース制約をサブミットしたユーザに対してアーキテクチャデータ150を出力することができる。次いで、ユーザは、リソース制約付きデバイスを用いて、決定されたアーキテクチャを有するニューラルネットワークのインスタンスをトレーニングするとともに、トレーニングされたニューラルネットワークを用いてニューラルネットワーク入力を処理することができる。
【0058】
いくつかの実現例では、アーキテクチャデータ150を出力する代わりに、またはアーキテクチャデータ150を出力することに加えて、システム100は、たとえば、最初から、または、アーキテクチャを有するニューラルネットワークをトレーニングした結果として生成されたパラメータ値を微調整するために、決定されたアーキテクチャを有するニューラルネットワークのインスタンスをトレーニングし、次いで、トレーニングされたニューラルネットワークを用いて、たとえば、システムが提供するAPIを介して、ユーザによって受信された要求を処理する。すなわち、システム100は、処理されるべき入力を受取り、トレーニングされたニューラルネットワークを用いて入力を処理し、トレーニングされたニューラルネットワークによって生成された出力を提供するか、または受取った入力に応答して生成された出力から導出されたデータを提供することができる。
【0059】
ハードウェアのプログラミング
図2は、機械学習タスクを実行するためのニューラルネットワーク152を生成するための例示的な方法200のフロー図である。便宜上、方法200は、1つ以上の位置に配置された1つ以上のコンピュータのシステムによって実行されるものとして説明される。たとえば、ニューラルアーキテクチャ検索システム(たとえば、本明細書に従って適切にプログラムされた
図1のニューラルアーキテクチャ検索システム100)は方法200を実行することができる。
【0060】
システムは、ニューラルネットワークのための計算セルを定義する(ステップ202)。計算セルは、例示的な方法200によって生成されたニューラルネットワークのアーキテクチャ構築ブロック(たとえば、サブネットワーク)と見なすことができる。たとえば、ステップ206を参照して以下でより詳細に説明されるように、同じ学習されたアーキテクチャおよび独立して学習された重みを有する定義された計算セルの複数のインスタンスは、より深いニューラルネットワークを生成するために積層することができる。
【0061】
定義された計算セルは、予め定められた数のノードVおよびエッジEの有向非巡回グラフG=(V,E)として表わすことができる。計算セルにおける各ノードxi∈Vは、畳み込みネットワークにおける潜像表現(たとえば、特徴マップ)を表わす。各々の有向エッジ(ij)は演算Oi,jに関連付けられている。演算Oi,jはノードxiを変換する。たとえば、当該演算では入力として潜像表現xiを採用して、潜像表現xjを出力する。各ノードは、その先行するノードの変換済み出力のすべてに基づいて計算することができる。たとえば、
【0062】
【0063】
であり、ここで、
【0064】
【0065】
はxjの先行ノードのセットを表わす。
定義された計算セルに含まれるノードの数およびエッジの数は、最終的な生成されたニューラルネットワークによって実行されるべき機械学習タスクと、ニューラルネットワークのアーキテクチャを検索するために利用可能な計算リソースとに依存し得る。たとえば、大規模データセット上においてニューラルネットワーク全体またはニューラルネットワークの大規模サブネットワークのアーキテクチャを検索することは計算上費用が高くなる可能性があるので、定義された計算セルのサイズは、ニューラルネットワークの最終精度を維持しながらも計算コストを低減するように選択され得る。
【0066】
いくつかの実現例では、計算セルは、1つ以上の入力ノードおよび1つ以上の出力ノード(たとえば、2つの入力ノードおよび単一の出力ノード)を含み得る。入力ノードは、前の計算セルの出力を変換するノードとして定義することができる。たとえば、ニューラルネットワークアーキテクチャが畳み込みニューラルネットワークアーキテクチャである場合、計算セルは畳み込みセルであり得るとともに、入力ノードは、前の2つの層からのセル出力として定義することができる。たとえば、入力ノードは入力画像を表わす。ニューラルネットワークアーキテクチャがリカレントニューラルネットワークアーキテクチャである場合、計算セルはリカレントセルであり、入力ノードは、現時点でのステップにおける入力と、前のステップから保持されている状態とを含む。出力ノードは、計算セルの出力を与えるノードとして定義することができる。計算セルの出力は、すべてのノードに対するリダクション演算(例えば、連結)を適用することによって得ることができ、たとえば、xN-1=concat(x2,…,xN-2)であり、この場合、Nは計算セルにおけるノードの総数を表わしている。
【0067】
有向エッジに関連付けられた演算は、ニューラルネットワークアーキテクチャが実行できる事前定義された演算のセットを含む離散アーキテクチャ検索空間
【0068】
【0069】
の一部である。たとえば、事前定義された演算のセットは、プーリング演算、たとえば、最大プーリングまたは平均プーリング、カーネルサイズが変動する畳み込み演算、たとえば、分離可能な畳み込みまたは拡張された分離可能な畳み込み、または接続、たとえば、ゼロ接続またはアイデンティティ接続を含み得る。
【0070】
アーキテクチャ検索空間
【0071】
【0072】
は、事前定義された演算のセット
【0073】
【0074】
内の各候補演算を、(本明細書では混合演算
【0075】
【0076】
とも称される)事前定義された候補演算のセットからの候補演算のそれぞれの線形結合と置換えることによって、連続検索空間に変換することができる。それぞれの線形結合における各々の候補演算は、1つ以上の計算セルハイパーパラメータによってパラメター化されるそれぞれの混合重みを有する。いくつかの実現例では、各々の混合演算
【0077】
【0078】
は、
【0079】
【0080】
におけるすべての実現可能な演算のソフトマックス加重和を出力する。例示的な混合演算が以下の式(1)により与えられる。
【0081】
【0082】
式(1)では、1対のノード(i,j)についての演算混合重みが、ベクトル
【0083】
【0084】
によってパラメター化される。
アーキテクチャ検索空間
【0085】
【0086】
が連続検索空間に変換された後、機械学習タスクを実行するためにニューラルネットワークを生成するタスクは、連続変数θ={θ(i,j)}のセットを学習することを含む。連続変数のセットが学習されると、対応する離散計算セルアーキテクチャは、対応するエッジの強度に基づいてノードXjについてのいくつかの最強の先行ノードを最初に決定することによって得ることができる。ここで、エッジ(i,j)の強度は以下の式(2)で定義される。
【0087】
【0088】
たとえば、当該システムは、ノードxjについての最強の先行ノードのxjの先行ノード
【0089】
【0090】
のセットのサイズに等しい数を決定することができる。次いで、エッジ(i,j)に関する混合演算は、以下の式(3)で定義されるように、混合重みが最も大きい単一の演算と置換される。
【0091】
【0092】
当該システムは、検証損失関数を最適化することによって、i)計算セルアーキテクチャを定義する計算セルハイパーパラメータと、ii)計算セル重みとを学習する(ステップ204)。
【0093】
検証損失関数
【0094】
【0095】
は、トレーニング済みニューラルネットワークを通じて1セットの検証データを実行した後に得られる誤差の尺度を表わす。検証損失は、計算セルハイパーパラメータθおよびニューラルネットワーク重みωに依存する。すなわち、
【0096】
【0097】
であり、検証損失関数を最適化することは、検証損失
【0098】
【0099】
を最小化する最適な計算セルハイパーパラメータθ*を決定することを含む。ここで、ω*=ω*(θ)は、トレーニングデータ(ニューラルネットワークによって実行されるべき機械学習タスクに特有のトレーニングデータ)に関して得られる誤差の尺度を表わすトレーニング損失関数
【0100】
【0101】
を最適化することによって得られる計算セル重みを表わすものであり、すなわち、
【0102】
【0103】
である。言い換えれば、当該システムは2レベル最適化を実行するものであって、計算セルハイパーパラメータθは上位レベルパラメータであり、計算セル重みωは下位レベルパラメータである。
【0104】
当該システムは、1つ以上のリソース制約を受ける検証損失関数を最適化する。1つ以上のリソース制約は、例示的な方法200を用いて生成されたニューラルネットワークを実現する際に利用可能な計算リソースに基づいて、ユーザによって定義され得る。たとえば、当該システムは、さまざまリソースコストの目標値を表わすデータを入力として、たとえば、利用可能なメモリ、FLOP、または推論速度などを受取り得る。
【0105】
当該システムは、計算セルハイパーパラメータをそれぞれのリソースコストにマッピングする対応するコスト関数に、各々のユーザ定義リソース制約を関連付けることができる。たとえば、当該システムは、式(3)に従って計算セルハイパーパラメータθから離散化ネットワークアーキテクチャを作成し、離散化ネットワークについてのコストを計算して、計算セルアーキテクチャの正確なコストを決定することができる。離散化ネットワークアーキテクチャの目的関数は連続的ではないので、勾配降下を用いて目的関数を最適化することは困難である。したがって、当該システムは、ユーザ定義リソース制約に対して連続的な緩和戦略を実現する。この場合、定義された計算セルにおけるエッジ(i,j)のコストは、以下の式(4)によって与えられるように、すべての実現可能な演算のコストに関するソフトマックスとして計算される。
【0106】
【0107】
式(4)において、
【0108】
【0109】
は、
【0110】
【0111】
におけるすべての演算のリソースコストを表わし、
【0112】
【0113】
はソフトマックス関数を表わし、σはインジケータ関数を表わし、
【0114】
【0115】
は、ノードjについての先行ノードのセットを表わす。
式(4)は、θから導出される離散アーキテクチャの実際のコストへの近似として、或るセルにおけるリソースコストの予測値を用いる。式(4)において関数形式を用いることには複数の利点がある。たとえば、式(4)は微分可能なw.r.t.θであるので、勾配降下を用いることで検証損失関数を最適化することが可能となる。別の例として、式(4)は簡単に実現することができる。なぜなら、エッジ(i,j)に関する各候補演算のリソースコストがθ(i,j)の値とは無関係であるからである。したがって、
【0116】
【0117】
はトレーニング前に固定して計算することができる。特定のプラットフォーム上での推論速度などのより複雑なリソース制約が実現される場合、アーキテクチャハイパーパラメータをリソースコストにマッピングするニューラルネットワークを学習することができる。
【0118】
当該システムは、モデルが過度に単純化されたアーキテクチャを学習することを防止するために、各コスト関数ごとに下限制約および上限制約を設定することができる。下限制約は、モデルが充分な表現能力を有することを確実にするように設定することができる。
【0119】
要約すると、当該システムは、以下の式(5)によって与えられる制約付き最適化を実行する。
【0120】
【0121】
式(5)において、
【0122】
【0123】
はトレーニング損失を表わし、
【0124】
【0125】
M個のコスト関数のセットを表わし、
【0126】
【0127】
は、それぞれ、コスト制約のユーザ定義の下限および上限を表わす。すなわち、コストΦm(θ)は、
【0128】
【0129】
の範囲に収まるように制約される。検証損失関数
【0130】
【0131】
を最適化するために、当該システムは反復投影法を実行する。当該システムが反復投影法を実行するのは、θに対するコスト関数が式(4)中のソフトマックス関数のせいで非凸になるからであり、目的関数に対する閉形式解が存在しないからである。
【0132】
反復投影法は、2つの交互位相における検証損失関数を最適化するものであり、2つの交互位相とは、制約なしでより大きいパラメータ空間において計算セルハイパーパラメータθを学習するために検証損失関数の制約なし最適化を実行することによって、改善されたアーキテクチャを検索する制約なしトレーニング位相と、制約なしトレーニング位相によって出力される計算セルハイパーパラメータθを、式(5)の制約によって定義される実現可能なセット内のその最近点に投影するアーキテクチャ投影位相とである。制約なしトレーニング位相およびアーキテクチャ投影位相は、
図3を参照して以下においてより詳細に説明される。
【0133】
当該システムは、定義された計算セルならびに学習済み計算セルハイパーパラメータおよび計算セル重みを用いて機械学習タスクを実行するためのニューラルネットワークを生成する(ステップ206)。
【0134】
いくつかの実現例では、定義された計算セル、ならびに学習済み計算セルハイパーパラメータおよび計算セル重みを用いてニューラルネットワークを生成するステップは、計算セルの複数のコピーを積層するステップを含み得る。たとえば、当該システムは、計算セルの複数のコピーを生成することができる。この場合、計算セルの各コピーは、学習済みの計算セルハイパーパラメータによって定義されたのと同じセルアーキテクチャを有する。当該システムは、(ニューラルネットワークによって実行されるべき機械学習タスクに特有である)トレーニングデータのそれぞれのセット上で計算セルの各コピーをトレーニングすることができる。このようにして、計算セルの複数のコピーは計算セル重みを独立して学習したものとなっている。次いで、当該システムは、機械学習タスクを実行するためのより深いニューラルネットワークを作成するために、トレーニング済みの計算セルの複数のコピーを積層することができる。
【0135】
定義された計算セルが入力ノードおよび出力ノードを含む場合、トレーニング済みの計算セルの複数のコピーを積層するステップは、計算セルの第1のコピー内の出力ノードを除去するステップと、計算セルの中間コピーの入力ノードおよび出力ノードを除去するステップと、積層前に計算セルの最後のコピーの入力ノードを除去するステップとを含み得る。定義された計算セルが入力ノードおよび出力ノードを含まない場合、トレーニング済みの計算セルの複数のコピーを積層するステップは、1つ以上の入力ノードおよび1つの出力ノードをこの積重ねに追加するステップを含み得る。いずれの場合も、当該システムはさらに、追加のノードおよび/または層を、トレーニング済みの計算セルのコピーの積重ね(たとえば、1つ以上のフィルタ層)に追加することができる。
【0136】
いくつかの実現例では、当該システムは、ニューラルネットワークを生成するための例示的な方法200を実行する際にマルチレベル検索戦略を実現することができる。マルチ
レベル検索戦略を実現するために、当該システムは、ステップ202において複数の計算セルを定義することができる。この場合、定義された計算セルの各々は、予め定められた数のノードおよびエッジのそれぞれの有向非巡回グラフとして表わすことができる。すなわち、定義された複数の計算セルは、それぞれ異なるアーキテクチャを有し得る。次いで、当該システムは、定義された計算セルごとにステップ204を実行し、学習済み計算セルおよび/または学習済み計算セルのコピーを組合わせてニューラルネットワークを生成することができる。これはステップ206を参照して説明されるとおりである。
【0137】
マルチレベル検索戦略を実現することは複数の理由から有利であり得る。たとえば、さまざまネットワーク深度におけるセルでは、リソースコスト(たとえば、パラメータの数およびFLOPの数)の変動が大きくなる可能性がある。なぜなら、入力の分解能を低下させるたびにフィルタのチャネルの数が増加するからである。この設計は、情報フローのボトルネックを回避するために深層ネットワークにおいて広く用いられている。この場合、低レベル層、すなわち入力に近い層、は高レベル層よりも大きなFLOPを有する一方で、高レベル層は低レベル層よりも多数のパラメータを有する。学習済みアーキテクチャが所与のリソース制約を満たすようにするためには、セルのアーキテクチャを層の深さに応じて変化させることが有利であり得る。別の例として、深さが異なるセルは、ネットワークの全体的な性能に対してさまざまな異なる影響を及ぼす可能性があり、たとえば、パラメータの数を減らすことで(入力に近い)低レベル層が受ける影響がより小さくなる可能性がある。
【0138】
加えて、より軽量なアーキテクチャを得るために、当該システムは、たとえば、1×1convとなるように接続を予め定義するのではなく、ステップ202~204を適用して、計算セルのスタック間の接続セルまたは接続層を学習することができる。接続セルは、ステップ202を参照して上述したように定式化することができる。いくつかの実現例では、接続セルは、当該接続セル内に1つの入力ノードおよび1つのノードを含み得る。
【0139】
図3は、
図2を参照して上述した反復投影法を実行するための例示的なプロセス300を示すフロー図である。便宜上、プロセス300は、1つ以上の位置に配置される1つ以上のコンピュータのシステムによって実行されるものとして説明されるだろう。たとえば、本明細書に従って適切にプログラムされるニューラルアーキテクチャ検索システム(たとえば、
図1のニューラルアーキテクチャ検索システム100)は、プロセス300を実行することができる。
【0140】
当該システムは、計算セルハイパーパラメータの値(θ=θ0)および計算セル重みの値(ω=ω0)をランダムに初期化する(ステップ302)。
【0141】
当該システムは、制約なしトレーニングプロセス(すなわち、以下に記載するような検証損失関数の制約なし最適化)と、アーキテクチャ投影プロセスとを、予め定められた反復回数だけ、または予め定義された収束基準が満たされるまで、反復して実行する(ステップ304)。たとえば、各々の反復は、制約なしトレーニングプロセスの実施と、その直後に続くアーキテクチャ投影プロセスの実施とを含み得る。
【0142】
各反復のたびに、当該システムは、反復ごとに計算セルハイパーパラメータθtおよび計算セル重みωtを得る(ステップ304a)。反復が反復投影法の第1の反復である場合、システムは、ランダムに初期化された計算セルハイパーパラメータθt=θ0と、ランダムに初期化された計算セル重みwt=w0とを得ることができる。反復が反復投影法の後続の反復である場合、システムは、反復投影法の前回の反復t-1から計算セルハイパーパラメータθt-1および計算セル重みωt-1を受取ることができる。
【0143】
当該システムは、
図3を参照して上記で定義された検証損失
【0144】
【0145】
を最適化する(最小化する)調整済み計算セルハイパーパラメータを決定することによって、制約なしトレーニングプロセスを実行する(ステップ304b)。上述したように、ω*=ω*(θ)は、トレーニング損失関数
【0146】
【0147】
を最適化することによって得られる計算セル重みを表わす。すなわち、当該システムは、以下の式(6)で与えられる最適化問題を解く。
【0148】
【0149】
計算セル重みωおよび計算セルハイパーパラメータθの両方について式(6)に対する正確な解を並列に得ることが困難であるので、当該システムは、座標勾配降下技術を実施して、重みωおよびハイパーパラメータθを、一方の値を固定した状態で、反復的かつ交互に更新する。
【0150】
たとえば、第1のステップでは、当該システムは、受取った計算セルハイパーパラメータθtの値を固定し、
【0151】
【0152】
に沿って降下させることによって、更新された計算セル重みωt+1を得ることができる。第2のステップでは、当該システムは、第1のステップ中に得られた計算セル重みωt+1の値を固定し、
【0153】
【0154】
に沿って降下させることによって、更新された計算セルハイパーパラメータθt+1を得る。当該システムは、予め定められた反復回数にわたり、または予め定義された収束基準が満たされるまで、第1のステップおよび第2のステップを反復的に実行することができる。第2のステップ中、ωおよびθは計算効率の増大および申し分のない性能を得るために無関係であると仮定することができる。
【0155】
システムは、調整済み計算セルハイパーパラメータθt+1を用いてアーキテクチャ投影プロセスを実行する(ステップ304c)。システムは、更新済み計算セルハイパーパラメータθt+1を、式(5)で与えられるリソース制約によって定義される実現可能なセット内の最近点θpに投影する。この投影の目的は以下の式(7)によって説明することができる。
【0156】
【0157】
ここで、
【0158】
【0159】
がθpの非凸関数であるので、式(7)に対する閉形式解は存在しない。したがって、システムは、式(7)を、以下の式(8)によって与えられるそのラグランジュに変換する。
【0160】
【0161】
システムは、勾配降下を実行して式(8)を最適化する。時間ステップt=0において、システムは、
【0162】
【0163】
を設定する。次の時間ステップtにおいて、システムは、
【0164】
【0165】
を
【0166】
【0167】
の方向に降下させることによって、
【0168】
【0169】
を得る。システムは、すべての制約が満たされるまで、または、予め定められた最大反復回数epに達するまで、当該更新を反復的に実行する。
【0170】
いくつかの実現例では、システムは、重み付け項λ1およびλ2を、すべての制約に関して同一のλ1=λ2=λとなるように設定する。収束を容易にするために、λは、トレーニング中に指数関数的に減少するように設定することができる。トレーニングの終わりには、
【0171】
【0172】
となる。単純なリソース制約のために
【0173】
【0174】
を計算するには高速であるので、アーキテクチャ反復投影位相(ステップ404c)は、制約なしのトレーニング位相(ステップ404b)よりも高速である。
【0175】
システムは、式(8)によって与えられるラグランジュを最適化することによって得られる計算セルパラメータθ
pを、制約なしのトレーニングプロセスおよびアーキテクチャ投影プロセスの次の反復のための入力として提供する。反復が最終反復である場合、システムは、
図3を参照して上述した離散アーキテクチャを導出するためにハイパーパラメータθ
pを与える(ステップ306)。
【0176】
例示的なプロセス400を実行することで、いくつかの利点が提供される。たとえば、計算セル重みおよび計算セルハイパーパラメータを共同で最適化することによって、システムは、アーキテクチャ投影プロセスのための改善された開始点を学習することができる。別の例として、アーキテクチャ投影位相が実行された後、制約なしトレーニング位相を実行して、より広い制約なしパラメータ空間において計算セルアーキテクチャを学習する。したがって、アーキテクチャ投影位相により、結果として準最適な計算セルアーキテクチャが得られたとしても、制約なしのトレーニング位相は、依然として、改善された計算セルアーキテクチャを学習することができる。加えて、ニューラルネットワークは、初期トレーニング位相における重みに対する摂動に対して影響され易い可能性があるので、いくつかの実現例では、当該システムはウォームスタート戦略を実現することができる。このウォームスタート戦略では、反復投影法の第1の反復のための制約なしトレーニング位相は、反復投影法の後続の反復と比べて、第1のステップおよび第2のステップの反復回数がより多くなっている。これにより、アーキテクチャ投影位相における不良な局所最適点においてモデルが詰まってしまう尤度を低くすることができる。
【0177】
図4は、離散計算セルアーキテクチャの学習を概念的に可視化した例を示す。
段階(a)は、例示的な方法200のステップ202に対応する。段階(a)において、初期計算セル400が定義される。初期計算セル400は、4つの中間ノード、たとえば、ノード402を、含む。初期計算セル400はさらに、1つ以上の入力ノードおよび1つの出力ノードを含み得るが、明確にするために、これら入力ノードおよび出力ノードは
図4では省略している。初期計算セル400はさらに、中間ノード間の6つの有向エッジ、たとえばエッジ404、を含む。
【0178】
式(1)を参照して上述したように、段階(b)において、6つのエッジの各々に対する演算は、候補演算の予め定義されたセット内のすべての候補演算の組合せに置換えられ
る。
図4に示す例示的な視覚化では、3つの候補演算があるが、実現例の中には、より少ない候補演算があってもよく、またはより多い候補演算があってもよい。
【0179】
段階(c)は、例示的な方法200のステップ204に対応する。段階(c)では、
図3を参照して上述した反復投影法を適用して、式(5)によって与えられる制約付き最適化問題を解く。この場合、アーキテクチャパラメータおよびセル内の重みは、リソース制約を満たすように共同で最適化される。
【0180】
段階(d)では、最終計算セルアーキテクチャ406は組合わされた演算における学習済みの重みから導出される。次いで、例示的な方法200のステップ206を参照して上述したように、計算セルを用いてニューラルネットワークを生成することができる。
【0181】
本明細書に記載されている主題および機能的動作の実施形態は、デジタル電子回路で実現されてもよく、有形的に具体化されたコンピュータソフトウェアもしくはファームウェアで実現されてもよく、本明細書に開示されている構造およびそれらの構造的等価物を含むコンピュータハードウェアで実現されてもよく、またはそれらのうちの1つ以上の組合せで実現されてもよい。本明細書中に記載される主題の実施形態は、1つ以上のコンピュータプログラムとして、すなわちデータ処理装置による実行のために、またはデータ処理装置の動作を制御するために有形の非一時的なプログラムキャリア上で符号化されるコンピュータプログラム命令の1つ以上のモジュールとして実現されてもよい。代替的または付加的には、プログラム命令は、データ処理装置によって実行されるように好適な受信機装置に送信される情報を符号化するために生成される人為的に生成された伝搬信号(たとえば機械によって生成された電気信号、光学信号または電磁気信号)で符号化することができる。コンピュータ記憶媒体は、機械読取可能なストレージデバイス、機械読取可能な記憶基板、ランダムアクセスメモリデバイスもしくはシリアルアクセスメモリデバイス、またはこれらのうちの1つ以上の組合せであってもよい。しかしながら、コンピュータ記憶媒体は伝搬信号ではない。
【0182】
「データ処理装置」という語は、データを処理するためのあらゆる種類の装置、デバイスおよびマシンを包含し、一例として、プログラム可能なプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む。装置はまた、専用論理回路類、たとえばフィールドプログラマブルゲートアレイ(field programmable gate array:FPG
A)、特定用途向け集積回路(application-specific integrated circuit:ASIC)
を含み得る。装置はまた、ハードウェアに加えて、該当するコンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステムまたはこれらのうち1つ以上の組合せを構成するコード、を含み得る。
【0183】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプトまたはコードとも称され得るかまたは記載され得る)は、コンパイラ型言語もしくはインタープリタ型言語または宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で書込まれてもよく、スタンドアロンのプログラムとして、またはコンピューティング環境での使用に適したモジュール、コンポーネント、サブルーチンまたは他のユニットとして任意の形態で展開されてもよい。コンピュータプログラムは、ファイルシステム内のファイルに対応していてもよいが、必ずしも対応している必要はない。プログラムは、他のプログラムもしくはデータ(たとえばマークアップ言語文書に格納された1つ以上のスクリプト)を保持するファイルの一部に格納されてもよく、当該プログラムに専用の単一のファイルに格納されてもよく、または複数の調整されたファイル(たとえば1つ以上のモジュール、サブプログラム、またはコードの一部を格納するファイル)に格納されてもよい。コンピュータプログラ
ムは、1つのコンピュータ上で、または、一箇所に位置するかもしくは複数の箇所にまたがって分散されて通信ネットワークによって相互接続されている複数のコンピュータ上で実行されるように展開されてもよい。
【0184】
本明細書で使用する「エンジン」または「ソフトウェアエンジン」は、入力と異なる出力を提供する、ソフトウェアによって実現される入出力システムのことを言う。エンジンは、ライブラリ、プラットフォーム、ソフトウェア開発キット(software development kit:「SDK」)またはオブジェクト等の機能の符号化ブロックであってもよい。各エンジンは、適切な任意の種類のコンピューティングデバイス上で実現することができ、このコンピューティングデバイスは、たとえば、サーバ、携帯電話、タブレットコンピュータ、ノートブックコンピュータ、音楽再生機器、電子書籍リーダー、ラップトップもしくはデスクトップコンピュータ、PDA、スマートフォン、または、1つ以上のプロセッサとコンピュータ読取可能媒体とを含むその他の据え置き型デバイスもしくは移動デバイスである。加えて、エンジンの2つ以上が同一のコンピューティングデバイス上で実現されてもよく、または、異なるコンピューティングデバイス上で実現されてもよい。
【0185】
本明細書中に記載されているプロセスおよび論理フローは、入力データ上で演算して出力を生成することによって機能を実行するように1つ以上のコンピュータプログラムを実行する1つ以上のプログラム可能なプロセッサによって実行され得る。また、プロセスおよび論理フローは、特殊用途論理回路、たとえばFPGA(フィールド・プログラマブル・ゲート・アレイ)またはASIC(特殊用途向け集積回路)によって実行されてもよく、装置も、特殊用途論理回路、たとえばFPGAまたはASICとして実現されてもよい。
【0186】
コンピュータプログラムの実行に適したコンピュータは、一例として、汎用マイクロプロセッサ、特殊用途マイクロプロセッサもしくはこれら両方を含むか、または、他の任意の種類の中央処理装置を含むか、またはこれらに基づいていてもよい。概して、中央処理装置は、リードオンリメモリまたはランダムアクセスメモリまたはそれら両方から命令およびデータを受信するであろう。コンピュータの必須の要素は、命令を実行または実施するための中央処理装置と、命令およびデータを格納するための1つ以上のメモリデバイスとである。一般に、コンピュータは、データを格納するための1つ以上の大容量記憶装置、たとえば磁気ディスク、光磁気ディスクまたは光ディスクも含み、または、当該1つ以上の大容量記憶装置からデータを受信するもしくは当該1つ以上の大容量記憶装置にデータを転送するように、もしくは受信も転送も行なうように動作可能に結合されるであろう。しかし、コンピュータは、このようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、たとえば数例を挙げると、携帯電話、パーソナルデジタルアシスタント(personal digital assistant:PDA)、携帯型オーディオまたはビデオプレーヤ、ゲームコンソール、グローバル・ポジショニング・システム(Global Positioning System:GPS)受信機、またはポータブルストレージデバイス(たとえばユニバーサル
・シリアル・バス(universal serial bus:USB)フラッシュドライブ)に組込まれてもよい。
【0187】
コンピュータプログラム命令およびデータを格納するのに適したコンピュータ読取可能な媒体は、すべての形態の不揮発性メモリ、媒体およびメモリデバイスを含み、一例としてたとえばEPROM、EEPROMおよびフラッシュメモリデバイスといった半導体メモリデバイス、たとえば内蔵ハードディスクまたは取外し可能なディスクといった磁気ディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含む。プロセッサおよびメモリは、特殊用途論理回路によって補完されてもよく、または特殊用途論理回路に組込まれてもよい。
【0188】
ユーザと対話できるようにするために、この明細書中に記載される主題の実施形態は、情報をユーザに表示するための表示装置、たとえば陰極線管(CRT)または液晶表示(liquid crystal display:LCD)モニタと、ユーザがコンピュータに入力することを可能にするキーボードおよびポインティングデバイス、たとえばマウスまたはトラックボールとを有するコンピュータ上で実現され得る。ユーザと対話できるようにするために他の種類のデバイスが使用されてもよく、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば視覚フィードバック、聴覚フィードバックまたは触覚フィードバックといった形態であってもよく、ユーザからの入力は、音響入力、音声入力または触知入力を含む任意の形態で受取ることができる。また、コンピュータは、ユーザが使用するデバイスとの間で文書を送受信することによって、たとえばウェブブラウザから受取った要求に応答してユーザのクライアントデバイス上でウェブブラウザにウェブページを送ることによって、ユーザと対話し得る。
【0189】
本明細書に記載の主題の実施形態は、たとえばデータサーバとしてバックエンドコンポーネントを含むか、または、ミドルウェアコンポーネント、たとえばアプリケーションサーバを含むか、または、フロントエンドコンポーネント、たとえば本明細書に記載の主題の実現例とユーザがやり取りできるようにするグラフィカルユーザインターフェイスもしくはウェブブラウザを有するクライアントコンピュータを含むか、または、1つ以上のそのようなバックエンド、ミドルウェア、もしくはフロントエンドコンポーネントの任意の組合わせを含む、コンピューティングシステムにおいて実現することができる。システムの構成要素は、デジタルデータ通信の任意の形態または媒体、たとえば通信ネットワークにより、相互に接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、たとえばインターネットを含む。
【0190】
コンピューティングシステムはクライアントおよびサーバを含み得る。クライアントおよびサーバは、一般的には互いから離れており、典型的には通信ネットワークを通してやり取りする。クライアントとサーバとの関係は、各コンピュータ上で実行されるとともにクライアントとサーバとの相互の関係を有するコンピュータプログラムにより生じるものである。
【0191】
本明細書は多くの具体的な実現例の詳細を含んでいるが、これらは、いずれかの発明の範囲、またはクレームされ得るものの範囲を限定するものとして解釈されるべきではなく、むしろ特定の発明の特定の実施形態に特有となり得る特徴の説明であると解釈されるべきである。別々の実施形態の文脈において本明細書に記載されている特定の特徴は、単一の実施形態において組合せて実現されてもよい。逆に、単一の実施形態の文脈において記載されているさまざまな特徴は、複数の実施形態において別々に、または任意の好適な副次的組合せで実現されてもよい。さらに、特徴は特定の組合せで作用するものとして上述され得るとともに、さらにはそのようなものとして最初にクレームされ得るが、クレームされている組合せのうちの1つ以上の特徴は、場合によっては、当該組合せから削除されてもよく、クレームされている組合せは、副次的組合せまたは副次的組合せの変形例に向けられてもよい。
【0192】
同様に、動作は特定の順序で図面に示されているが、これは、このような動作が、望ましい結果を達成するために、示されている特定の順序もしくは連続的な順序で実行されなければならないと理解されるべきではなく、または、望ましい結果を達成するために、示されているすべての動作が実行されなければならないと理解されるべきではない。特定の状況では、マルチタスクおよび並列処理が有利であるかもしれない。さらに、上述の実施形態におけるさまざまなシステムモジュールおよび構成要素の分離は、すべての実施形態においてこのような分離が必要であると理解されるべきではなく、記載されているプログ
ラム構成要素およびシステムが、一般に単一のソフトウェア製品に一体化され得ること、または複数のソフトウェア製品にパッケージングされ得ることが理解されるべきである。
【0193】
主題の特定の実施形態が説明されてきた。他の実施形態は添付の特許請求の範囲内である。たとえば、特許請求の範囲に記載されている動作は、異なる順序で実行されて、依然として望ましい結果を達成することができる。一例として、添付の図面に示されているプロセスは、所望の結果を達成するために、必ずしも、図示される特定の順序または連続的順序を必要とするものではない。特定の実現例では、マルチタスクおよび並列処理が有利であるかもしれない。