JP2023120204A - ニューラルネットワークのための複合モデルスケーリング - Google Patents
ニューラルネットワークのための複合モデルスケーリング Download PDFInfo
- Publication number
- JP2023120204A JP2023120204A JP2023085645A JP2023085645A JP2023120204A JP 2023120204 A JP2023120204 A JP 2023120204A JP 2023085645 A JP2023085645 A JP 2023085645A JP 2023085645 A JP2023085645 A JP 2023085645A JP 2023120204 A JP2023120204 A JP 2023120204A
- Authority
- JP
- Japan
- Prior art keywords
- factor
- baseline
- architecture
- width
- resolution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 150000001875 compounds Chemical class 0.000 title claims abstract description 7
- 238000013528 artificial neural network Methods 0.000 title claims description 75
- 238000000034 method Methods 0.000 claims abstract description 42
- 238000003860 storage Methods 0.000 claims abstract description 18
- 239000002131 composite material Substances 0.000 claims description 38
- 238000010801 machine learning Methods 0.000 claims description 29
- 238000013527 convolutional neural network Methods 0.000 abstract description 15
- 230000008569 process Effects 0.000 description 15
- 238000004590 computer program Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 14
- 230000001537 neural effect Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000012549 training Methods 0.000 description 5
- 230000000306 recurrent effect Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 241000009334 Singa Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
Abstract
【課題】畳み込みニューラルネットワークのアーキテクチャを決定する方法、システム及び記憶媒体を提供する。
【解決手段】方法は、ネットワーク幅次元、深さ次元及び解像度次元を有するベースラインアーキテクチャのスケーリングに使用する追加の計算リソースを制御する複合係数を定義した入力データを受信することと、ベースライン幅係数、深さ係数及び解像度係数を夫々、追加の計算リソースをベースラインアーキテクチャの幅次元、深さ次元及び解像度次元にどのように割り当てるかを指定し、ベースライン幅係数、深さ係数及びび解像度係数並びに複合係数に基づき、幅係数、深さ係数及び解像度係数を決定し、ベースラインアーキテクチャの幅次元、深さ次元及び解像度次元を、対応する幅係数、深さ係数及び解像度係数に基づきスケーリングした最終アーキテクチャを生成する、各係数を決定するように探索することと、を含む。
【選択図】図1
【解決手段】方法は、ネットワーク幅次元、深さ次元及び解像度次元を有するベースラインアーキテクチャのスケーリングに使用する追加の計算リソースを制御する複合係数を定義した入力データを受信することと、ベースライン幅係数、深さ係数及び解像度係数を夫々、追加の計算リソースをベースラインアーキテクチャの幅次元、深さ次元及び解像度次元にどのように割り当てるかを指定し、ベースライン幅係数、深さ係数及びび解像度係数並びに複合係数に基づき、幅係数、深さ係数及び解像度係数を決定し、ベースラインアーキテクチャの幅次元、深さ次元及び解像度次元を、対応する幅係数、深さ係数及び解像度係数に基づきスケーリングした最終アーキテクチャを生成する、各係数を決定するように探索することと、を含む。
【選択図】図1
Description
関連出願の相互参照
本出願は、2019年1月23日に出願した米国仮出願第62/796,034号の優先権を主張するものである。先行出願の開示は、本出願の開示の一部と見なされ、参照により本出願の開示に組み込まれている。
本出願は、2019年1月23日に出願した米国仮出願第62/796,034号の優先権を主張するものである。先行出願の開示は、本出願の開示の一部と見なされ、参照により本出願の開示に組み込まれている。
本明細書は、畳み込みニューラルネットワークのアーキテクチャを決定することに関する。
ニューラルネットワークは、非線形ユニットの1つまたは複数の層を用いて、受信した入力についての出力を予測する、機械学習モデルである。一部のニューラルネットワークは、出力層に加えて、1つまたは複数の隠れ層を含む。各隠れ層の出力が、ネットワーク内の次の層、すなわち次の隠れ層または出力層への入力として使用される。ネットワークの各層が、受信した入力から、それぞれに対応するパラメータセットの現在値に従って出力を生成する。
一部のニューラルネットワークは、再帰型ニューラルネットワークである。再帰型ニューラルネットワークは、入力系列を受信し、入力系列から出力系列を生成する、ニューラルネットワークである。具体的には、再帰型ニューラルネットワークは、現在の時間ステップにおける出力を計算する際に、以前の時間ステップからのネットワークの内部状態の一部または全部を使用することができる。再帰型ニューラルネットワークの一例が、長短期(LSTM)ニューラルネットワークであり、これは、1つまたは複数のLSTMメモリブロックを含むものである。各LSTMメモリブロックは、1つまたは複数のセルを含むことができ、セルはそれぞれ、入力ゲート、忘却ゲート、および出力ゲートを含み、それらのゲートにより、セルが、例えば現在の活性化を生じさせる際に使用する、またはLSTMニューラルネットワークの他のコンポーネントに提供される、そのセルの以前の状態を格納することが可能になっている。
Sandler, M.、Howard, A.、Zhu, M.、Zhmoginov, A.、およびChen, L.-C. Mobilenetv2: Inverted residuals and linear bottlenecks. CVPR、2018
Tan, M.、Chen, B.、Pang, R.、Vasudevan, V.、Sandler, M.、Howard, A.、およびLe, Q. V. MnasNet: Platform-aware neural architecture search for mobile. CVPR、2019
本明細書では、1つまたは複数の位置にある1つまたは複数のコンピュータ上にコンピュータプログラムとして実装され、ベースラインアーキテクチャからニューラルネットワークの最終アーキテクチャを決定する、システムについて説明する。下で説明するように、最終アーキテクチャは、最終アーキテクチャのターゲット計算リソース使用量に基づいて決定される。したがって、システムは、最終アーキテクチャによる使用に利用できる低レベルの計算リソース(例えば1秒当たりの浮動小数点演算回数、すなわちFLOPS)に適合する最終アーキテクチャを決定することができる。さらに、システムはそれを、広範なハイパーパラメータチューニングを必要とすることのある従来の手法よりも効率的に行うことができる。ニューラルネットワークは、それに限定されないが画像処理(例えば画像分類)など、特定の機械学習タスクを実施するように構成されている。
本明細書において説明する本主題は、特定の実施形態において、次の利点のうちの1つまたは複数を実現するように実装することができる。畳み込みニューラルネットワークは一般に、固定の計算コストで開発され、次いで、より多くのリソースが与えられた場合に、より良好な精度を得るためにより大型のネットワークにスケールアップされる。本明細書において説明するモデルスケーリング技法では、ターゲットリソース制約が与えられると、モデル効率を維持しながら、単純ではあるが大いに効果的な複合係数を使用してベースラインニューラルネットワークモデルをターゲットのモデルにスケーリングする。従来の方法では、スケーリング中にネットワークの幅、または深さ、または解像度を任意に増大させており、その結果、精度および効率が低く、またニューラルネットワークモデルをスケールアップするプロセスが、これら3つの要素のバランスをとるために必要なハイパーパラメータチューニングのため、非効率で計算コストの高いものとなっている。対照的に、ここで説明する技法では、ベースラインモデルのネットワークの幅、深さ、および解像度を、複合係数を使用して線形スケーリングし、したがって、著しい計算リソースをハイパーパラメータチューニングに費やすことが回避されている。加えて、本明細書において説明するモデルスケーリング技法では、ベースラインモデルが非常に効果的にスケールアップされることが可能であり、その結果、以前の最先端モデルよりもパラメータが少ないながらも最先端の精度を凌駕する、より大型のモデルがもたらされる。同時に、これらのより大型のモデルは、特定の機械学習タスクを、以前の最先端モデルが使用するよりも少ない回数の演算を使用して実施することができ、したがって、これらのより大型のモデルのほうがトレーニングおよび推論時に高速である。
本明細書において説明する本主題の1つまたは複数の実施形態の詳細は、添付の図面および下の説明中に記載されている。本主題の他の特徴、態様、および利点が、説明、図面、および特許請求の範囲から明らかとなろう。
さまざまな図面中の同様の参照番号および名称は、同様の要素を示す。
本明細書では、1つまたは複数の位置にある1つまたは複数のコンピュータ上にコンピュータプログラムとして実装され、ベースラインアーキテクチャからニューラルネットワークの最終アーキテクチャを決定する、ニューラルアーキテクチャ探索システムについて説明する。ニューラルネットワークは、特定の機械学習タスクを実施するように構成されている。
一般に、ニューラルネットワークは、ネットワーク入力を受信するように、またそのネットワーク入力を処理してその入力についてのネットワーク出力を生成するように構成される。
いくつかの場合には、ニューラルネットワークは、入力画像を受信するように、またその入力画像を処理してその入力画像についてのネットワーク出力を生成するように、すなわち何らかの種類の画像処理タスクを実施するように構成された、畳み込みニューラルネットワークである。
例えば、タスクは画像分類とすることができ、ニューラルネットワークによって所与の画像について生成される出力は、物体カテゴリセットのそれぞれについてのスコアであって、各スコアが、画像がそのカテゴリに属する物体の画像を含む推定可能性を表す、スコアとすることができる。
別の例として、タスクは画像埋め込み(image embedding)の生成とすることができ、ニューラルネットワークによって生成される出力は、入力画像の数値埋め込みとすることができる。例として、それぞれの入力画像について生成された埋め込み間の埋め込み空間内での近接性は、それらの画像間の類似性を表すものであり得る。
さらに別の例として、タスクは物体検出とすることができ、ニューラルネットワークによって生成される出力は、入力画像中の、特定のタイプの物体が描かれた位置を特定することができる。
他のいくつかの場合には、タスクはビデオ分類とすることができ、ニューラルネットワークは、入力としてビデオまたはビデオの一部分を受信するように、またその入力ビデオまたはビデオの一部分が1つまたは複数のどのような話題に関係するかを特定する出力を生成するように構成される。
いくつかの他の場合には、タスクは音声認識とすることができ、ニューラルネットワークは、入力としてオーディオデータを受信するように、また所与の音声による発話(spoken utterance)について、その発話が表す1つまたは複数の言葉を特定する出力を生成するように構成される。
いくつかの他の場合には、タスクはテキスト分類とすることができ、ニューラルネットワークは、入力テキストセグメントを受信するように、また入力テキストセグメントが1つまたは複数のどのような話題に関係するかを特定する出力を生成するように構成される。
図1は、ベースラインアーキテクチャから、特定の機械学習タスクを実施するように構成されているニューラルネットワークの最終アーキテクチャを決定するように構成された、例示的なニューラルアーキテクチャ探索システム100を示す。ニューラルアーキテクチャ探索システム100は、1つまたは複数の位置にある1つまたは複数のコンピュータ上にコンピュータプログラムとして実装されたシステムの例であり、下で説明するシステム、コンポーネント、および技法はこのシステムにおいて実装することができる。
一般に、ニューラルアーキテクチャ探索システム100は、ニューラルネットワークのベースラインアーキテクチャ102と、ベースラインアーキテクチャをスケーリングするのに使用される追加の計算リソースを制御する複合係数103を定義した入力データ104とを取得し、ベースラインアーキテクチャ102の全ての次元を、単純ではあるが大いに効果的な複合係数を使用して一様にスケーリングし、特定の機械学習タスクを実施するニューラルネットワークの最終アーキテクチャ126を生成する、システムである。
システム100は、ベースラインアーキテクチャ102および入力データ104を、多様な方途のいずれかで受信することができる。例えば、システム100は、ベースラインアーキテクチャ102およびターゲットリソース使用量データ104を、例えばシステム100が利用可能にしているアプリケーションプログラミングインターフェース(API)を使用して、システムの遠隔ユーザからのアップロードとしてデータ通信ネットワーク経由で受信することができる。別の例として、システム100は、システム100によってすでに維持されているどのデータを、ベースラインアーキテクチャ102を特定するデータとして、またターゲットリソース使用量データ104として使用すべきかを特定する、ユーザからの入力を受信することができる。
入力データ104は、ベースラインアーキテクチャをスケーリングするのに使用される追加の計算リソースを制御する複合係数103を定義する。換言すれば、複合係数103は、ベースラインアーキテクチャが使用するリソースに比べてスケーリング後の最終アーキテクチャが使用することのできる計算リソース量を制御する。いくつかの場合には、システム100は、複合係数の値を、ユーザの制約に基づいて生成することができる。例えば、ユーザがベースラインアーキテクチャ(102)をN倍大きくしたい場合、システムは複合係数φ=log2(N)を生成することができる。例として、ユーザがベースラインアーキテクチャを4倍拡大したい場合、φ=2である。ユーザがベースラインモデルを32倍拡大したい場合、φ=5である。
入力データ104はさらに、最終アーキテクチャによって使用されるターゲット計算リソース量を指定することができる。具体的には、ターゲットリソース使用量データは、(i)最終アーキテクチャを作成するために許容される最大メモリサイズを示すターゲットメモリサイズ、すなわち、最終アーキテクチャのパラメータおよびアーキテクチャデータによって占有され得る最大記憶容量、ならびに(ii)特定の機械学習タスクを実施するために最終アーキテクチャが実行することのできる最大演算回数を示すターゲット演算回数(例えばFLOPS)を指定する。
ベースラインアーキテクチャ102は、特定の機械学習タスクを実施するようにトレーニングされたアーキテクチャである。ベースラインアーキテクチャ102は、ネットワーク幅次元、ネットワーク深さ次元、および解像度次元を有する。ベースラインアーキテクチャ102は、複数のニューラルネットワーク層を有する。いくつかの実装形態では、ベースラインアーキテクチャ102は、複数のネットワークステージを有し、複数のネットワークステージがそれぞれ、複数のニューラルネットワーク層を有する。ネットワークステージは、同一タイプのニューラルネットワーク層からなるグループを含む。それは、ベースラインアーキテクチャの各ネットワークステージ内の複数のニューラルネットワーク層が、同一アーキテクチャを共有する、すなわち同一サイズの入力テンソルに対して同一タイプの演算を実施して同一サイズの出力テンソルを生成する、ということを意味する。
ベースラインアーキテクチャ102のネットワーク深さ次元は、ベースラインアーキテクチャの複数のネットワークステージ内の層の数のセットである。ベースラインアーキテクチャ102内の各ニューラルネットワーク層は、前層から入力テンソルを受信するように、またその入力テンソルについて、次ニューラルネットワーク層に入力として供給される出力テンソルを生成するように構成される。任意の所与の層への入力テンソルは、高さ次元、幅次元、および入力テンソル内のチャネルの数を指定するチャネル次元を有する。
ベースラインアーキテクチャ102のネットワーク幅次元は、ベースラインアーキテクチャ102の複数のニューラルネットワーク層への入力テンソルに関連する入力チャネルの数のセットである。
ベースラインアーキテクチャ102の解像度次元は、ベースラインアーキテクチャ102の複数のニューラルネットワーク層への入力テンソルの高さ次元と幅次元のセットである。
例えば、ベースラインアーキテクチャ102は、
と表すことができ、上式で、
は、ステージiにおいて層FiがLi回繰り返されることを意味し、(Hi,Wi,Ci)は、層Fiの入力テンソルXの形状を意味し、ただしHiは高さ次元であり、Wiは幅次元であり、Ciはチャネル次元である。
図3は、5つのステージを有するベースラインアーキテクチャ102の例を示す。この例示的なアーキテクチャでは、空間次元(高さ次元および幅次元)は次第に縮小されているが、チャネル次元は層にわたって、例えば初期入力形状(224,224,3)から最終出力形状(7,7,512)に拡張されている。
最良の層アーキテクチャFiを見出すこと(すなわち層Fiによって実施される最良タイプの演算を見出すこと)に主として焦点をあてた以前の手法とは異なり、本明細書において説明するモデルスケーリング技法は、ベースラインアーキテクチャ102における事前定義されたFiを変更することなく、ネットワークの長さ(Li)、幅(Ci)、および/または解像度(Hi;Wi)を拡張させる。層Fiの演算タイプを固定することによって、本明細書において説明するモデルスケーリング技法は、以前の手法に比べて、新たなリソース制約についての設計の問題を単純にする。しかし、各層について異なるLi;Ci;Hi;Wiの可能な組合せを探求すべき大きな設計空間が依然として残っている。設計空間をさらに低減させるために、システム100は、全ての層が一定比で一様にスケーリングされなければならないという制限をかけることができる。
入力データ104によって指定されたターゲット計算リソース量が与えられると、システム100は、所与の計算リソース制約についてモデル精度を最大化しようとし、これは、以下の最適化問題として定式化することができる。
上式で、w、d、rはそれぞれ、ネットワーク幅次元、ネットワーク深さ次元、および解像度次元をスケーリングするための幅係数、深さ係数、および解像度係数であり、
は、取得されたベースラインアーキテクチャ102における事前定義されたパラメータであり、ターゲット_記憶容量は、最終アーキテクチャを作成するために許容される最大メモリサイズを示し、ターゲット_flopsは、特定の機械学習タスクを実施するために最終アーキテクチャが実行することのできる最大演算回数を示し、N(d,w,r)は、ベースラインアーキテクチャ102のネットワーク幅次元、ネットワーク深さ次元、および解像度次元を、深さ係数d、幅係数w、および解像度係数rを使用してスケーリングすることによって作成された、ニューラルネットワークアーキテクチャを表し、FLOPS(N)は、特定の機械学習タスクを実施するためにニューラルネットワークアーキテクチャによって実行される演算回数Nを表し、記憶容量(N)は、ニューラルネットワークアーキテクチャを作成するために使用される記憶容量N、すなわち、ニューラルネットワークアーキテクチャのパラメータおよびアーキテクチャデータによって占有される記憶容量Nを表す。
一般に、ベースラインアーキテクチャから最終アーキテクチャを決定するために、システム100は複合スケーリング方法を用い、これは、複合係数φを使用して、ネットワーク幅次元ネットワーク深さ次元、および解像度次元を、一定の原則に基づいて一様にスケーリングするものである。例えば、複合スケーリング方法は次のように表現することができる。
深さ:d=αφ
幅:w=βφ
解像度:r=γφ (3)
s.t. α・β2・γ2≒2
α≧1、β≧1、γ≧1
上式で、α、β、γはそれぞれ、ベースライン深さ係数、ベースライン幅係数、およびベースライン解像度係数である。α、β、γは、上記の式2および式3に基づいて、探索によって、例えばグリッドサーチによって決定することができる。直感的には、φは、モデルスケーリングにあとどれだけのリソースが利用可能であるかを制御し、一方、α、β、γはそれぞれ、これらの追加のリソースをネットワーク深さ次元、ネットワーク幅次元、および解像度次元にどのように割り当てるかを指定するものである。通常の畳み込み演算の演算回数(すなわちFLOPS)は、d、w2、r2に比例し、すなわち、ネットワーク深さ次元を2倍にすると、FLOPSは2倍になるが、ネットワーク幅次元または解像度次元を2倍にすると、FLOPSは4倍に増加することに留意されよう。ベースラインアーキテクチャが畳み込みニューラルネットワークであるとき、畳み込み演算がベースラインアーキテクチャにおける計算コストを支配しており、したがって、ベースラインアーキテクチャを式3を用いてスケーリングすると、合計FLOPSがおよそ(α・β2・γ2)φだけ増加する。α・β2・γ2≒2という制約により、任意の複合係数φについて、合計演算(すなわちFLOPS())がおよそ2φだけ増加することが確実になる。
深さ:d=αφ
幅:w=βφ
解像度:r=γφ (3)
s.t. α・β2・γ2≒2
α≧1、β≧1、γ≧1
上式で、α、β、γはそれぞれ、ベースライン深さ係数、ベースライン幅係数、およびベースライン解像度係数である。α、β、γは、上記の式2および式3に基づいて、探索によって、例えばグリッドサーチによって決定することができる。直感的には、φは、モデルスケーリングにあとどれだけのリソースが利用可能であるかを制御し、一方、α、β、γはそれぞれ、これらの追加のリソースをネットワーク深さ次元、ネットワーク幅次元、および解像度次元にどのように割り当てるかを指定するものである。通常の畳み込み演算の演算回数(すなわちFLOPS)は、d、w2、r2に比例し、すなわち、ネットワーク深さ次元を2倍にすると、FLOPSは2倍になるが、ネットワーク幅次元または解像度次元を2倍にすると、FLOPSは4倍に増加することに留意されよう。ベースラインアーキテクチャが畳み込みニューラルネットワークであるとき、畳み込み演算がベースラインアーキテクチャにおける計算コストを支配しており、したがって、ベースラインアーキテクチャを式3を用いてスケーリングすると、合計FLOPSがおよそ(α・β2・γ2)φだけ増加する。α・β2・γ2≒2という制約により、任意の複合係数φについて、合計演算(すなわちFLOPS())がおよそ2φだけ増加することが確実になる。
最終アーキテクチャ126を決定するために、システム100は、ベースライン深さ係数α(110)、ベースライン幅係数β(108)、およびベースライン解像度係数γ(112)を探索するように探索(例えばグリッドサーチ、ランダムサーチ、または他の探索ストラテジ)を実施し、ベースライン深さ係数α(110)、ベースライン幅係数β(108)、およびベースライン解像度係数γ(112)はそれぞれ、追加の計算リソースをベースラインアーキテクチャのネットワーク深さ次元、ネットワーク幅次元、および解像度次元にどのように割り当てるかを指定するものである。探索の実施については、下で図2を参照して詳細に説明する。
システム100は、複合係数103の値およびベースライン幅係数108に基づいて、幅係数114を生成し、複合係数103の値およびベースライン深さ係数110に基づいて、深さ係数116を生成し、複合係数103の値およびベースライン解像度係数112に基づいて、解像度係数118を生成する。
例えば、いくつかの実装形態では、システム100は、上記の式3を使用して幅係数、深さ係数、および解像度係数を生成することができる。
いくつかの他の実装形態では、下の式4に示すように、システム100は、定数と、ベースライン幅係数108と複合係数103の値の積とを加算することによって、幅係数114を生成することができる。システム100は、定数と、ベースライン深さ係数110と複合係数103の値の積とを加算することによって、深さ係数116を生成することができる。システム100は、定数と、ベースライン解像度係数112と複合係数103の値の積とを加算することによって、解像度係数118を生成することができる。
式4:
ネットワーク深さ係数:d=1+α・φ
ネットワーク幅係数:w=1+β・φ
ネットワーク解像度係数:r=1+γ・φ
式4:
ネットワーク深さ係数:d=1+α・φ
ネットワーク幅係数:w=1+β・φ
ネットワーク解像度係数:r=1+γ・φ
複合係数について深さ係数、幅係数、および解像度係数(d,w,r)が生成された後、システム100は、ベースラインアーキテクチャ102のネットワーク深さ次元、ネットワーク幅次元、および解像度次元を、対応する深さ係数、幅係数、および解像度係数に基づいてスケーリングすることによって、最終アーキテクチャ126を生成する。具体的には、システム100は、ベースラインアーキテクチャ102のネットワーク幅次元を、幅係数によってスケーリングし、ベースラインアーキテクチャ102のネットワーク深さ次元を、深さ係数によってスケーリングし、ベースラインアーキテクチャ102の解像度を、解像度係数によってスケーリングして、最終アーキテクチャ126を生成する。
次いで、システム100は、ニューラルネットワークの最終アーキテクチャを指定するアーキテクチャデータ150、すなわち、最終アーキテクチャの一部である層、これらの層間の接続性、およびこれらの層によって実施される演算を指定するデータを出力することができる。例えば、システム100は、アーキテクチャデータ150を、トレーニングデータをサブミットしたユーザに出力することができる。いくつかの場合には、データ150は、最終アーキテクチャとして特定された候補アーキテクチャのトレーニングからの、最終アーキテクチャのパラメータのトレーニング済みの値も含む。
いくつかの実装形態では、アーキテクチャデータ150を出力する代わりにまたはそれに加えて、システム100は、最終アーキテクチャを有するニューラルネットワークのインスタンスを、例えば最初から、または最終アーキテクチャとして特定された候補アーキテクチャをトレーニングした結果として生成されたパラメータ値を微調整するように、トレーニングし、次いで、トレーニング済みのニューラルネットワークを使用して、例えばシステム100によって提供されるAPIを通じてユーザによって受信された要求を処理する。すなわち、システム100は、処理すべき入力を受信し、最終アーキテクチャを有するトレーニング済みのニューラルネットワークを使用してその入力を処理し、受信した入力に応答してトレーニング済みのニューラルネットワークによって生成された出力またはその生成された出力から得られたデータを提供することができる。
図2は、特定の機械学習タスクを実施するニューラルネットワークの最終アーキテクチャを決定するための、例示的なプロセスのフロー図である。便宜上、プロセス200については、1つまたは複数の位置にある1つまたは複数のコンピュータからなるシステムによって実施されているものとして説明する。例えば、適切にプログラムされた、ニューラルアーキテクチャ探索システム、例えば図1のニューラルアーキテクチャ探索システム100が、プロセス200を実施することができる。
システムは、ニューラルネットワークのベースラインアーキテクチャを受領する(ステップ202)。ベースラインアーキテクチャは、特定の機械学習タスクを実施するようにトレーニングされたものである。ベースラインアーキテクチャは、ネットワーク幅次元、ネットワーク深さ次元、および解像度次元を有する。ベースラインアーキテクチャは、複数のネットワークステージを有し、複数のネットワークステージがそれぞれ、複数のニューラルネットワーク層を有する。ベースラインアーキテクチャの各ネットワークステージ内の複数のニューラルネットワーク層は、同一アーキテクチャを共有する。
ベースラインアーキテクチャのネットワーク深さ次元は、ベースラインアーキテクチャの複数のネットワークステージ内の層の数のセットである。ベースラインアーキテクチャ内の各ニューラルネットワーク層は、前層から入力テンソルを受信するように、またその入力テンソルについて、次ニューラルネットワーク層に入力として供給される出力テンソルを生成するように構成される。入力テンソルは、高さ次元、幅次元、および入力テンソル内のチャネルの数を指定するチャネル次元を有する。
ベースラインアーキテクチャのネットワーク幅次元は、ベースラインアーキテクチャの複数のニューラルネットワーク層への入力テンソルに関連する入力チャネルの数のセットである。
ベースラインアーキテクチャの解像度次元は、ベースラインアーキテクチャの複数のニューラルネットワーク層への入力テンソルの高さ次元と幅次元のセットである。
システムは、ベースラインアーキテクチャをスケーリングするのに使用される追加の計算リソースを制御する複合係数を定義した入力データを受領する(ステップ204)。換言すれば、複合係数は、ベースラインアーキテクチャが使用するリソースに比べてスケーリング後の最終アーキテクチャが使用することのできる計算リソース量を制御する。いくつかの場合には、システムは、複合係数の値を、ユーザの制約に基づいて生成することができる。例えば、ユーザがベースラインアーキテクチャ(102)をN倍大きくしたい場合、システムは複合係数φ=log2(N)を生成することができる。例として、ユーザがベースラインアーキテクチャを4倍拡大したい場合、φ=2である。ユーザがベースラインモデルを32倍拡大したい場合、φ=5である。
入力データはさらに、最終アーキテクチャによって使用されるターゲット計算リソース量を指定することができる。具体的には、ターゲットリソース使用量データは、(i)最終アーキテクチャを作成するために許容される最大メモリサイズを示すターゲットメモリサイズ、すなわち、最終アーキテクチャのパラメータおよびアーキテクチャデータによって占有され得る最大記憶容量、ならびに(ii)特定の機械学習タスクを実施するために最終アーキテクチャが実行することのできる最大演算回数を示すターゲット演算回数を指定する。
最終アーキテクチャを生成するために、システムは、ベースライン幅係数β、ベースライン深さ係数α、およびベースライン解像度係数γを決定するように探索(例えばグリッドサーチ、ランダムサーチ、または他の探索ストラテジ)を実施し、ベースライン幅係数β、ベースライン深さ係数α、およびベースライン解像度係数γはそれぞれ、追加の計算リソースをベースラインアーキテクチャのネットワーク幅次元、ネットワーク深さ次元、および解像度次元にどのように割り当てるかを指定するものである(ステップ206)。例えば、複合係数の値が1であると仮定し、より大型のモデルに2倍の量のリソースが利用可能であると仮定すると、システムは、式2および式3に基づいてα、β、γのグリッドサーチを実施し、これらのベースライン係数にとって最良の値を次のように見い出す:α・β2・γ2≒2という制約の下でα=1.2、β=1.1、γ=1.15。
グリッドサーチを実施するために、システムは以下の、
(a)ベースライン幅係数の探索値、ベースライン深さ係数の探索値、およびベースライン解像度係数の探索値を選択するステップと、
(b)(i)複合係数の所与の値、ならびに(ii)ベースライン幅係数の探索値、ベースライン深さ係数の探索値、およびベースライン解像度係数の探索値に基づいて、(例えば式3または式4を使用することによって)探索幅係数w'、探索深さ係数d'、および探索解像度係数r'を生成するステップと、
(c)ベースラインアーキテクチャ、ならびに探索幅係数、探索深さ係数、および探索解像度係数を使用して(例えばベースラインアーキテクチャのネットワーク幅次元を、探索幅係数によってスケーリングし、ベースラインアーキテクチャのネットワーク深さ次元を、探索深さ係数によってスケーリングし、ベースラインアーキテクチャの解像度を、探索解像度係数によってスケーリングすることによって)、探索候補アーキテクチャを生成するステップと、
(d)その探索候補アーキテクチャについて、探索候補アーキテクチャの、特定の機械学習タスクに対する性能を表す性能スコアを特定するステップとを繰り返し実施する。例えば、性能スコアは、探索候補アーキテクチャの、特定の機械学習タスクに対する精度を表す精度スコアとすることができる。具体的には、システムは、探索候補アーキテクチャを有するニューラルネットワークインスタンスを、特定の機械学習タスクに対してトレーニングして、探索候補アーキテクチャを有するこのニューラルネットワークインスタンスのパラメータの値を決定することができる。次いで、システムは、トレーニング済みのニューラルネットワークインスタンスの、特定のニューラルネットワークタスクに対する性能に基づいて、トレーニング済みのニューラルネットワークインスタンスの精度スコアを特定することができる。例えば、精度スコアは、トレーニング済みのインスタンスの、検証セットに対する精度を、適切な精度指標によって測定したものを表すことができる。例として、精度スコアは、出力が系列であるときはパープレキシティ指標(perplexity measure)とすることができ、または特定のニューラルネットワークタスクが分類タスクであるときは誤分類率とすることができる。別の例として、精度スコアは、インスタンスのトレーニングの最終の2回、5回、または10回のエポックのそれぞれについての、インスタンスの精度の平均値または最大値とすることができる。
(a)ベースライン幅係数の探索値、ベースライン深さ係数の探索値、およびベースライン解像度係数の探索値を選択するステップと、
(b)(i)複合係数の所与の値、ならびに(ii)ベースライン幅係数の探索値、ベースライン深さ係数の探索値、およびベースライン解像度係数の探索値に基づいて、(例えば式3または式4を使用することによって)探索幅係数w'、探索深さ係数d'、および探索解像度係数r'を生成するステップと、
(c)ベースラインアーキテクチャ、ならびに探索幅係数、探索深さ係数、および探索解像度係数を使用して(例えばベースラインアーキテクチャのネットワーク幅次元を、探索幅係数によってスケーリングし、ベースラインアーキテクチャのネットワーク深さ次元を、探索深さ係数によってスケーリングし、ベースラインアーキテクチャの解像度を、探索解像度係数によってスケーリングすることによって)、探索候補アーキテクチャを生成するステップと、
(d)その探索候補アーキテクチャについて、探索候補アーキテクチャの、特定の機械学習タスクに対する性能を表す性能スコアを特定するステップとを繰り返し実施する。例えば、性能スコアは、探索候補アーキテクチャの、特定の機械学習タスクに対する精度を表す精度スコアとすることができる。具体的には、システムは、探索候補アーキテクチャを有するニューラルネットワークインスタンスを、特定の機械学習タスクに対してトレーニングして、探索候補アーキテクチャを有するこのニューラルネットワークインスタンスのパラメータの値を決定することができる。次いで、システムは、トレーニング済みのニューラルネットワークインスタンスの、特定のニューラルネットワークタスクに対する性能に基づいて、トレーニング済みのニューラルネットワークインスタンスの精度スコアを特定することができる。例えば、精度スコアは、トレーニング済みのインスタンスの、検証セットに対する精度を、適切な精度指標によって測定したものを表すことができる。例として、精度スコアは、出力が系列であるときはパープレキシティ指標(perplexity measure)とすることができ、または特定のニューラルネットワークタスクが分類タスクであるときは誤分類率とすることができる。別の例として、精度スコアは、インスタンスのトレーニングの最終の2回、5回、または10回のエポックのそれぞれについての、インスタンスの精度の平均値または最大値とすることができる。
次いで、システムは、生成された全ての探索候補アーキテクチャの性能スコアのうちの最大性能スコアに関連する探索値を、ベースライン深さ係数、ベースライン幅係数、およびベースライン解像度係数の最終値として選択する。
システムは、ステップ(a)において、ベースライン幅係数、ベースライン深さ係数、およびベースライン解像度係数の探索値を、(ある制約に従うことを条件として)探索について取り得る値のグリッドから各係数の値をサンプリングすることによって、選択することができる。例えば、システムは、α・β2・γ2≒2という制約の下で1から2の間で取り得る値のグリッドから各係数の値をサンプリングすることができる。
ベースライン幅係数β、ベースライン深さ係数α、およびベースライン解像度係数γを取得した後で、システムは、幅係数、深さ係数、および解像度係数を決定する(ステップ208)。
いくつかの実装形態では、システムは、ベースライン幅係数、ベースライン深さ係数、およびベースライン解像度係数、ならびに複合係数の値に基づいて、式3を使用して幅係数、深さ係数、および解像度係数を生成することができる。
いくつかの他の実装形態では、式4に示すように、システムは、定数と、ベースライン幅係数と複合係数の値の積とを加算することによって、幅係数を生成することができる。システムは、定数と、ベースライン深さ係数と複合係数の値の積とを加算することによって、深さ係数を生成することができる。システムは、定数と、ベースライン解像度係数と複合係数の値の積とを加算することによって、解像度係数を生成することができる。
システムは、ベースラインアーキテクチャのネットワーク幅次元、ネットワーク深さ次元、および解像度次元をそれぞれ、対応する幅係数、深さ係数、および解像度係数に基づいてスケーリングすることによって、最終アーキテクチャを生成する(ステップ210)。具体的には、システムは、ベースラインアーキテクチャのネットワーク幅次元を、幅係数によってスケーリングし、ベースラインアーキテクチャのネットワーク深さ次元を、深さ係数によってスケーリングし、ベースラインアーキテクチャの解像度を、解像度係数によってスケーリングして、最終アーキテクチャを生成する。
次いで、特定された最終アーキテクチャによるニューラルネットワークは、機械学習タスクを実施するために使用され得る。それに加えてまたはその代わりに、特定された最終アーキテクチャを特徴付ける情報が、その最終アーキテクチャを有するニューラルネットワークの構築に使用できるように(例えば遠隔コンピュータシステムに)出力されてもよい。
いくつかの実装形態では、システムは、プロセス200を複数の異なる複合係数について実施することによって、複数のより大型のアーキテクチャを生成することができる。これにより、システムまたはユーザが、どのより大型のアーキテクチャが最良に適合するか(例えば、生成された複数のより大型のアーキテクチャのうち、どのより大型のアーキテクチャが最良の性能スコアを有するか)を、そのアーキテクチャを任意の所与の時点で実行するのに利用可能なリソース量が与えられた場合(例えば入力データによって指定されたターゲット計算リソース量が与えられた場合)、選択することが可能になり得る。
図4は、上述したモデルスケーリング技法を使用してさまざまな最終アーキテクチャを生成するために使用することのできる、別の例示的なベースラインアーキテクチャを示す。ベースラインアーキテクチャ300は、畳み込みニューラルネットワーク層302と、それに続く複数のFusedConvニューラルネットワーク層304と、それに続く複数のMBConvニューラルネットワーク層306とを含む。
FusedConvは、通常の畳み込みニューラルネットワーク副層と、それに続くチャネル方向の(pointwise)畳み込みニューラルネットワーク副層とを含む、畳み込みニューラルネットワーク層の一タイプである。FusedConvでは、空間方向の(depthwise)畳み込みニューラルネットワーク副層は使用されない。
MBConvは、チャネル方向の畳み込みニューラルネットワーク副層と、それに続く空間方向の畳み込みニューラルネットワーク副層と、それに続くチャネル方向の畳み込みニューラルネットワーク副層とを含む、畳み込みニューラルネットワーク層の一タイプである。MBConvの例は、Sandler, M.、Howard, A.、Zhu, M.、Zhmoginov, A.、およびChen, L.-C. Mobilenetv2: Inverted residuals and linear bottlenecks. CVPR、2018、ならびにTan, M.、Chen, B.、Pang, R.、Vasudevan, V.、Sandler, M.、Howard, A.、およびLe, Q. V. MnasNet: Platform-aware neural architecture search for mobile. CVPR、2019に見い出すことができる。
ベースラインアーキテクチャ300を、複合係数を使用してスケーリングすることによって生成される最終アーキテクチャは、「EfficientNet-Edge TPU」アーキテクチャとも呼ばれることがあり、これは、クラウドにおいてではなくデバイス上で(例えばGoogleのEdge TPU上で)実行されるように設計された専用ハードウェアアクセラレータ上で、最適に実行されるようにカスタマイズされたものである。そのようなモデルカスタマイゼーションを通じて、EfficientNet-Edge TPUアーキテクチャは、実時間画像分類性能をもたらすと同時に、一般にはデータセンタにおいてはるかに大型の計算量の多いモデルを実行する際にしか見られない精度を達成することが可能である。
本明細書では、システムおよびコンピュータプログラムコンポーネントに関連して「構成される」という用語を使用している。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つもしくは複数のプログラムされたコンピュータとの組合せによって、実施され得る。
コンピュータプログラムの実行に適したコンピュータは、汎用マイクロプロセッサ、もしくは専用マイクロプロセッサ、もしくはその両方、または他の任意の種類の中央処理装置に基づいていてよい。一般に、中央処理装置は、読出し専用メモリ、またはランダムアクセスメモリ、またはその両方から、命令およびデータを受信する。コンピュータの必須要素は、命令を実施または実行するための中央処理装置、ならびに命令およびデータを格納するための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 ニューラルアーキテクチャ探索システム
102 ベースラインアーキテクチャ
103 複合係数
104 入力データ、ターゲットリソース使用量データ
108 ベースライン幅係数β、ベースライン幅係数
110 ベースライン深さ係数α、ベースライン深さ係数
112 ベースライン解像度係数γ、ベースライン解像度係数
114 幅係数
116 深さ係数
118 解像度係数
126 最終アーキテクチャ
150 アーキテクチャデータ
200 プロセス
300 ベースラインアーキテクチャ
302 畳み込みニューラルネットワーク層
304 FusedConvニューラルネットワーク層
306 MBConvニューラルネットワーク層
102 ベースラインアーキテクチャ
103 複合係数
104 入力データ、ターゲットリソース使用量データ
108 ベースライン幅係数β、ベースライン幅係数
110 ベースライン深さ係数α、ベースライン深さ係数
112 ベースライン解像度係数γ、ベースライン解像度係数
114 幅係数
116 深さ係数
118 解像度係数
126 最終アーキテクチャ
150 アーキテクチャデータ
200 プロセス
300 ベースラインアーキテクチャ
302 畳み込みニューラルネットワーク層
304 FusedConvニューラルネットワーク層
306 MBConvニューラルネットワーク層
Claims (17)
- 特定の機械学習タスクを実施するニューラルネットワークの最終アーキテクチャを決定するコンピュータ実装方法であって、
前記ニューラルネットワークのベースラインアーキテクチャを受信するステップであって前記ベースラインアーキテクチャが、前記特定の機械学習タスクを実施するようにトレーニングされたものであり、前記ベースラインアーキテクチャが、ネットワーク幅次元、ネットワーク深さ次元、および解像度次元を有する、ステップと、
前記ベースラインアーキテクチャをスケーリングするのに使用される追加の計算リソースを制御する複合係数を定義したデータを受信するステップと、
ベースライン幅係数、ベースライン深さ係数、およびベースライン解像度係数を決定するように探索を実施するステップであって、前記ベースライン幅係数、前記ベースライン深さ係数、および前記ベースライン解像度係数がそれぞれ、前記追加の計算リソースを前記ベースラインアーキテクチャの前記ネットワーク幅次元、前記ネットワーク深さ次元、および前記解像度次元にどのように割り当てるかを指定するものである、ステップと、
前記ベースライン幅係数、前記ベースライン深さ係数、前記ベースライン解像度係数、および前記複合係数に基づいて、幅係数、深さ係数、および解像度係数を決定するステップと、
前記ベースラインアーキテクチャの前記ネットワーク幅次元、前記ネットワーク深さ次元、および前記解像度次元を、対応する前記幅係数、前記深さ係数、および前記解像度係数に基づいてスケーリングした前記最終アーキテクチャを生成するステップと
を含む、コンピュータ実装方法。 - 前記ベースラインアーキテクチャが、複数のネットワークステージを有し、前記複数のネットワークステージがそれぞれ、複数のニューラルネットワーク層を有する、請求項1に記載の方法。
- 前記ベースラインアーキテクチャの各ネットワークステージ内の前記複数のニューラルネットワーク層が、同一アーキテクチャを共有する、請求項2に記載の方法。
- 前記ベースラインアーキテクチャの前記ネットワーク深さ次元が、前記ベースラインアーキテクチャの前記複数のネットワークステージ内の層の数のセットである、請求項2または3に記載の方法。
- 前記ベースラインアーキテクチャ内の各ニューラルネットワーク層が、前層から入力テンソルを受信するように、また前記入力テンソルについて、次ニューラルネットワーク層に入力として供給される出力テンソルを生成するように構成され、前記入力テンソルが、高さ次元、幅次元、および前記入力テンソル内のチャネルの数を指定するチャネル次元を有する、請求項2から4のいずれか一項に記載の方法。
- 前記ベースラインアーキテクチャの前記ネットワーク幅次元が、前記ベースラインアーキテクチャの前記複数のニューラルネットワーク層への入力テンソルに関連する入力チャネルの数のセットである、請求項5に記載の方法。
- 前記ベースラインアーキテクチャの前記解像度次元が、前記ベースラインアーキテクチャの前記複数のニューラルネットワーク層への入力テンソルの高さ次元と幅次元のセットである、請求項5または6に記載の方法。
- 前記ベースライン幅係数、前記ベースライン深さ係数、前記ベースライン解像度係数、および前記複合係数に基づいて、前記幅係数、前記深さ係数、および前記解像度係数を決定するステップが、
前記複合係数および前記ベースライン幅係数に基づいて、前記幅係数を生成するステップと、
前記複合係数および前記ベースライン深さ係数に基づいて、前記深さ係数を生成するステップと、
前記複合係数および前記ベースライン解像度係数に基づいて、前記解像度係数を生成するステップと
を含む、請求項1から7のいずれか一項に記載の方法。 - 前記複合係数および前記ベースライン幅係数に基づいて、前記幅係数を生成するステップが、定数と、前記ベースライン幅係数と前記複合係数の積とを加算するステップを含む、請求項8に記載の方法。
- 前記複合係数および前記ベースライン深さ係数に基づいて、前記深さ係数を生成するステップが、前記定数と、前記ベースライン深さ係数と前記複合係数の積とを加算するステップを含む、請求項8または9に記載の方法。
- 前記複合係数および前記ベースライン解像度係数に基づいて、前記解像度係数を生成するステップが、前記定数と、前記ベースライン解像度係数と前記複合係数の積とを加算するステップを含む、請求項8から10のいずれか一項に記載の方法。
- 前記最終アーキテクチャを生成するステップが、
前記ベースラインアーキテクチャの前記ネットワーク幅次元を、前記幅係数によってスケーリングするステップと、
前記ベースラインアーキテクチャの前記ネットワーク深さ次元を、前記深さ係数によってスケーリングするステップと、
前記ベースラインアーキテクチャの解像度を、前記解像度係数によってスケーリングするステップと
を含む、請求項11に記載の方法。 - 前記ベースライン幅係数、前記ベースライン深さ係数、および前記ベースライン解像度係数を決定するように前記探索を実施するステップが、
各係数のさまざまな値に対してグリッドサーチを実施するとともに、前記複合係数を使用して、前記ベースライン幅係数、前記ベースライン深さ係数、および前記ベースライン解像度係数を決定するステップ
を含む、請求項1から12のいずれか一項に記載の方法。 - 前記最終アーキテクチャの、前記特定の機械学習タスクに対する性能を表す性能スコアを特定するステップであって、前記最終アーキテクチャを、前記特定の機械学習タスクに対してトレーニングして、前記最終アーキテクチャのパラメータの値を更新するステップと、トレーニング済みの前記最終アーキテクチャの、前記特定の機械学習タスクに対する性能を特定するステップとを含む、ステップ
をさらに含む、請求項1から13のいずれか一項に記載の方法。 - 前記受信したデータがさらに、(i)前記最終アーキテクチャを作成するために許容される最大メモリサイズを示すターゲットメモリサイズ、および(ii)前記特定の機械学習タスクを実施するために前記最終アーキテクチャが実行することのできる最大演算回数を示すターゲット演算回数を指定する、ターゲットリソース使用量データを含む、請求項1から14のいずれか一項に記載の方法。
- 1つまたは複数のコンピュータと、命令を格納した1つまたは複数の記憶デバイスとを備えるシステムであって、前記命令が、前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から14のいずれか一項に記載の方法を実行させる、システム。
- 命令を格納した1つまたは複数のコンピュータ記憶媒体であって、前記命令が、1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から14のいずれか一項に記載の方法を実行させる、1つまたは複数のコンピュータ記憶媒体。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962796034P | 2019-01-23 | 2019-01-23 | |
US62/796,034 | 2019-01-23 | ||
JP2021542494A JP7286774B2 (ja) | 2019-01-23 | 2020-01-23 | ニューラルネットワークのための複合モデルスケーリング |
PCT/US2020/014839 WO2020154536A1 (en) | 2019-01-23 | 2020-01-23 | Compound model scaling for neural networks |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021542494A Division JP7286774B2 (ja) | 2019-01-23 | 2020-01-23 | ニューラルネットワークのための複合モデルスケーリング |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023120204A true JP2023120204A (ja) | 2023-08-29 |
Family
ID=69726764
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021542494A Active JP7286774B2 (ja) | 2019-01-23 | 2020-01-23 | ニューラルネットワークのための複合モデルスケーリング |
JP2023085645A Pending JP2023120204A (ja) | 2019-01-23 | 2023-05-24 | ニューラルネットワークのための複合モデルスケーリング |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021542494A Active JP7286774B2 (ja) | 2019-01-23 | 2020-01-23 | ニューラルネットワークのための複合モデルスケーリング |
Country Status (6)
Country | Link |
---|---|
US (3) | US10909457B2 (ja) |
EP (1) | EP3912099A1 (ja) |
JP (2) | JP7286774B2 (ja) |
KR (1) | KR20210105976A (ja) |
CN (1) | CN113424199A (ja) |
WO (1) | WO2020154536A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020026327A1 (ja) * | 2018-07-31 | 2020-02-06 | 日本電気株式会社 | 情報処理装置、制御方法、及びプログラム |
US12026619B1 (en) * | 2019-12-11 | 2024-07-02 | Amazon Technologies, Inc. | Slimmable neural network architecture search optimization |
CN112116090B (zh) * | 2020-09-28 | 2022-08-30 | 腾讯科技(深圳)有限公司 | 神经网络结构搜索方法、装置、计算机设备及存储介质 |
KR102508106B1 (ko) * | 2020-11-24 | 2023-03-08 | 한남대학교 산학협력단 | 뉴로모픽 하드웨어 지원 IoT 응용 생성 자동화 방법 |
CN112836801A (zh) * | 2021-02-03 | 2021-05-25 | 上海商汤智能科技有限公司 | 深度学习网络确定方法、装置、电子设备及存储介质 |
US11720784B2 (en) * | 2021-04-01 | 2023-08-08 | Mythic, Inc. | Systems and methods for enhancing inferential accuracy of an artificial neural network during training on a mixed-signal integrated circuit |
CN114399018B (zh) * | 2021-12-17 | 2023-10-10 | 西北大学 | 一种基于轮转操控策略麻雀优化的EfficientNet陶瓷碎片分类方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05108593A (ja) * | 1991-10-14 | 1993-04-30 | Sanyo Electric Co Ltd | ニユーロ開発支援装置 |
JPH0991263A (ja) * | 1995-09-20 | 1997-04-04 | Hitachi Medical Corp | ニューラルネットワーク構造最適化装置ならびに方法 |
JP6287999B2 (ja) | 2015-08-07 | 2018-03-07 | トヨタ自動車株式会社 | ニューラルネットワーク学習装置 |
KR102532658B1 (ko) | 2016-10-28 | 2023-05-15 | 구글 엘엘씨 | 신경 아키텍처 검색 |
US11094029B2 (en) * | 2017-04-10 | 2021-08-17 | Intel Corporation | Abstraction layers for scalable distributed machine learning |
US11023803B2 (en) * | 2017-04-10 | 2021-06-01 | Intel Corporation | Abstraction library to enable scalable distributed machine learning |
-
2020
- 2020-01-23 WO PCT/US2020/014839 patent/WO2020154536A1/en unknown
- 2020-01-23 EP EP20708313.0A patent/EP3912099A1/en active Pending
- 2020-01-23 KR KR1020217023377A patent/KR20210105976A/ko unknown
- 2020-01-23 CN CN202080010508.3A patent/CN113424199A/zh active Pending
- 2020-01-23 US US16/751,081 patent/US10909457B2/en active Active
- 2020-01-23 JP JP2021542494A patent/JP7286774B2/ja active Active
-
2021
- 2021-01-08 US US17/144,450 patent/US11893491B2/en active Active
-
2023
- 2023-05-24 JP JP2023085645A patent/JP2023120204A/ja active Pending
- 2023-12-29 US US18/400,767 patent/US20240211764A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
CN113424199A (zh) | 2021-09-21 |
US20210133578A1 (en) | 2021-05-06 |
WO2020154536A1 (en) | 2020-07-30 |
JP7286774B2 (ja) | 2023-06-05 |
JP2022523666A (ja) | 2022-04-26 |
US20200234132A1 (en) | 2020-07-23 |
US11893491B2 (en) | 2024-02-06 |
EP3912099A1 (en) | 2021-11-24 |
US20240211764A1 (en) | 2024-06-27 |
KR20210105976A (ko) | 2021-08-27 |
US10909457B2 (en) | 2021-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7286774B2 (ja) | ニューラルネットワークのための複合モデルスケーリング | |
EP3718057B1 (en) | Neural architecture search using a performance prediction neural network | |
JP6790286B2 (ja) | 強化学習を用いたデバイス配置最適化 | |
US11869530B2 (en) | Generating audio using neural networks | |
US11735176B2 (en) | Speaker diarization using speaker embedding(s) and trained generative model | |
US20230259784A1 (en) | Regularized neural network architecture search | |
US20220121906A1 (en) | Task-aware neural network architecture search | |
US11488067B2 (en) | Training machine learning models using teacher annealing | |
JP2020508521A (ja) | ニューラルネットワークアーキテクチャの最適化 | |
CN108595629B (zh) | 用于答案选择系统的数据处理方法及应用 | |
CN110663049A (zh) | 神经网络优化器搜索 | |
CN114424215A (zh) | 多任务适配器神经网络 | |
JP2022160570A (ja) | マルチタスクのデプロイ方法、装置、電子機器及び記憶媒体 | |
US20240152809A1 (en) | Efficient machine learning model architecture selection | |
JP7264963B2 (ja) | 対話生成方法、装置、電子機器及び記憶媒体 | |
RU2715024C1 (ru) | Способ отладки обученной рекуррентной нейронной сети | |
CN111898389B (zh) | 信息确定方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230622 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230622 |