JP2022510782A - 機械学習モデルの自動生成 - Google Patents

機械学習モデルの自動生成 Download PDF

Info

Publication number
JP2022510782A
JP2022510782A JP2021525023A JP2021525023A JP2022510782A JP 2022510782 A JP2022510782 A JP 2022510782A JP 2021525023 A JP2021525023 A JP 2021525023A JP 2021525023 A JP2021525023 A JP 2021525023A JP 2022510782 A JP2022510782 A JP 2022510782A
Authority
JP
Japan
Prior art keywords
model
child
parent
candidate
trained
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.)
Granted
Application number
JP2021525023A
Other languages
English (en)
Other versions
JP7478145B2 (ja
Inventor
デイ,デバディープタ
フー,ハンチュン
エー. カルアナ,リチャード
シー. ランフォード,ジョン
ジェイ. ホルヴィッツ,エリック
Original Assignee
マイクロソフト テクノロジー ライセンシング,エルエルシー
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by マイクロソフト テクノロジー ライセンシング,エルエルシー filed Critical マイクロソフト テクノロジー ライセンシング,エルエルシー
Publication of JP2022510782A publication Critical patent/JP2022510782A/ja
Application granted granted Critical
Publication of JP7478145B2 publication Critical patent/JP7478145B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/086Learning methods using evolutionary algorithms, e.g. genetic algorithms or genetic programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • G06N3/105Shells for specifying net layout
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Physiology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Human Computer Interaction (AREA)
  • Probability & Statistics with Applications (AREA)
  • Image Analysis (AREA)
  • Machine Translation (AREA)

Abstract

Figure 2022510782000001
本明細書は、ニューラルネットワーク等の機械学習モデルを自動生成することに関する。システムの一例は、ハードウェア処理ユニット及び記憶資源を含む。記憶資源はコンピュータ可読命令を記憶することができ、親モデルを修正して子モデルを得ることを含む反復的モデル成長プロセスをハードウェア処理ユニットに実行させる。反復的モデル成長プロセスは、候補層の初期化プロセス内で学習される重みに少なくとも基づいて子モデルに含める候補層を選択することも含み得る。システムは、子モデルから選択される最終モデルを出力することもできる。

Description

背景
[0001] 従来から、機械学習モデルは、モデルの構造を定め、モデルを訓練するために自動化された技法を使用する専門家によって手動で構築されてきた。機械学習モデルがより複雑に成長するにつれ、機械学習モデルを生成するプロセスを自動化するための様々な試みが行われてきた。しかし、それらの努力に対する成果は限られたものであった。
概要
[0002] この概要は、以下の詳細な説明の中で更に説明する一連の概念を単純化した形で紹介するために提供する。この概要は、特許請求の範囲に記載の内容の重要な特徴又は本質的な特徴を識別することも、特許請求の範囲に記載の内容の範囲を限定するために使用されることも意図しない。
[0003] この説明は、概して機械学習モデルを自動生成するための技法に関する。一例は、計算装置上で実行され得る方法又は技法を含む。その方法又は技法は、反復的モデル成長プロセスの2回以上の反復を実行することを含み得る。反復的モデル成長プロセスは、1つ又は複数の親モデルの親モデルプールから特定の親モデルを選択すること、複数の候補層を生成し、特定の親モデルの学習済みパラメータ及び/又は構造を再利用しながら複数の候補層を初期化することを含み得る。反復的モデル成長プロセスは、訓練のために子モデルに含めるための層等、特定の候補コンポーネントを選択することも含むことができる。それぞれの子モデルは特定の親モデル及び特定の候補層又は他の構造の1つ又は複数を含み得る。反復的モデル成長プロセスは、複数の子モデルを訓練して訓練済みの子モデルを得ること、及び1つ又は複数の基準を使用して訓練済みの子モデルを評価することも含み得る。反復的モデル成長プロセスは、評価することに少なくとも基づき、個々の訓練済みの子モデルを新たな親モデルとして指定し、新たな親モデルを親モデルプールに追加することも含み得る。この方法又は技法は、2回以上の反復後に少なくとも1つの訓練済みの子モデルを最終モデルとして選択し、その最終モデルを出力することも含み得る。
[0004] 別の例は、ハードウェア処理ユニット及び記憶資源を伴うシステムを含む。記憶資源は、ハードウェア処理ユニットによって実行されるとき、親モデルを修正して子モデルを得ることを含む反復的モデル成長プロセスをハードウェア処理ユニットに実行させるコンピュータ可読命令を記憶することができる。反復的モデル成長プロセスは、候補層の初期化プロセス内で学習される重みに少なくとも基づいて子モデルに含める候補層を選択することを含み得る。コンピュータ可読命令は、子モデルから選択される最終モデルをハードウェア処理ユニットに出力させることもできる。
[0005] 別の例は、処理装置によって実行されるとき、処理装置に動作を実行させる命令を記憶するコンピュータ可読記憶媒体を含む。動作は、反復的モデル成長プロセスの2回以上の反復を実行することを含み得る。反復的モデル成長プロセスは、1つ又は複数の親モデルの親モデルプールから特定の親モデルを選択すること、複数の候補層を初期化すること、及び複数の子モデルを訓練のために選択することを含み得る。それぞれの子モデルは、特定の親モデルから継承した構造及び候補層の少なくとも1つを含み得る。反復的モデル成長プロセスは、複数の子モデルを訓練して訓練済みの子モデルを得ること、及び1つ又は複数の基準に少なくとも基づいて個々の訓練済みの子モデルを新たな親モデルとして指定することも含み得る。反復的モデル成長プロセスは、新たな親モデルを親モデルプールに追加することも含み得る。動作は、2回以上の反復後に少なくとも1つの訓練済みの子モデルを最終モデルとして選択し、その最終モデルを出力することも含み得る。
[0006] 上記で挙げた例は読者を補助するための簡易参照を与えることを意図しており、本明細書に記載する概念の範囲を定めることは意図しない。
図面の簡単な説明
[0007] 添付図面に関して詳細な説明を記載する。図中、参照番号の一番左の数字はその参照番号が最初に登場する図面を識別する。説明及び図面の異なるインスタンス内で同様の参照番号を使用することは同様の又は同一のアイテムであることを意味し得る。
[0008]本概念の一部の実装と合致する、機械学習モデルを自動生成するための方法又は技法の一例を示す。 [0009]本概念の一部の実装と合致する、機械学習モデルの候補層を生成するための手法の一例を示す。 [0010]本概念の一部の実装と合致する、機械学習モデルの候補層を初期化するための手法の一例を示す。 [0011]本概念の一部の実装と合致する、機械学習モデルの候補層を初期化するための手法の別の例を示す。 [0012]本概念の一部の実装と合致する、子モデルを訓練するための手法の一例を示す。 [0013]本概念の一部の実装と合致する、反復的モデル成長プロセスの連続反復に関連する散布図を示す。 [0013]本概念の一部の実装と合致する、反復的モデル成長プロセスの連続反復に関連する散布図を示す。 [0013]本概念の一部の実装と合致する、反復的モデル成長プロセスの連続反復に関連する散布図を示す。 [0014]本概念の一部の実装と合致する、機械学習モデルを自動生成するための処理フローの一例を示す。 [0015]本概念の一部の実装と合致するシステムの一例を示す。 [0016]本概念の一部の実装と合致するグラフィカルユーザインタフェースの一例を示す。
詳細な説明
概要
[0017] 教師あり学習及び/又は教師なし学習を使用して訓練可能な様々な種類の機械学習フレームワークがある。サポートベクトルマシン、決定木、及びニューラルネットワークは教師あり学習に適した機械学習フレームワークのほんの数例であり、モデルはラベル付き訓練データから学習することができる。ニューラルネットワーク等の一部の機械学習フレームワークは、特定の演算を実行するノードの層を使用する。
[0018] ニューラルネットワークでは、ノードが1つ又は複数のエッジによって互いに接続される。ニューラルネットワークは、入力層、出力層、及び1つ又は複数の中間層を含み得る。それぞれのノードが既定の機能に従ってその個々の入力を処理し、出力をその後の層に又は一部の事例では前の層に与えることができる。所与のノードへの入力は、入力とノードとの間のエッジの対応する重み値を乗じることができる。加えて、ノードは出力をもたらすためにも使用される個々のバイアス値を有することができる。エッジの重み及び/又はバイアス値を学習するために様々な訓練手続きを適用することができる。本明細書では「学習済みパラメータ」という用語は、ニューラルネットワーク等の階層型機械学習モデルを訓練することによって学習されるエッジ及びバイアス値等のパラメータを指す。
[0019] ニューラルネットワーク構造はモジュール式に構築することができる。例えば、ノードの1つ又は複数の層がプーリング演算又は畳み込み演算等の特定の演算を集合的に実行し得る。次いで、様々な層を接続して全体的なネットワーク構造を形成することができる。本明細書では「層」という用語は、1つ又は複数の入力層及びその層の中のノードから出力を受信する1つ又は複数のターゲット層への接続性を共有するノード群を指す。「演算」という用語は、ノードの1つ又は複数の層によって実行され得る機能を指す。「モデル構造」という用語は、層の数、層の接続性、及びそれぞれの層によって実行される演算の種類を含む階層型モデルの全体的なアーキテクチャを指す。「ニューラルネットワーク構造」という用語は、ニューラルネットワークのモデル構造を指す。開示する実装は、階層型機械学習モデルのモデル構造の例としてニューラルネットワーク構造を主に使用する。「訓練済みモデル」という用語は、モデル構造と共にモデル構造のための学習済みパラメータを指す。例えば2つのモデルが異なる訓練データに基づいて訓練される場合又は基礎となる確率過程が訓練プロセス内にある場合、2つの訓練済みモデルが同じモデル構造を共有し、それでもなお異なる学習済みパラメータを有し得ることに留意されたい。
[0020] 先に述べたように、モデル構造を生成する1つのやり方は人間がモデル構造を手動で定めることである。次いで、そのモデル構造をコンピュータによって何らかの訓練データセットに基づいて訓練して訓練済みモデルを取得し、その後、検証データセットを使用して訓練済みモデルを検証することができる。その後、例えば層又は層間の接続を追加又は除去することによってモデル構造への修正を手動で生成することができる。次いで、修正済みの構造を再び初めから訓練して追加の訓練済みモデルを得ることができ、追加の訓練済みモデルを互いに比較して所与のタスクについて上手く機能する最終モデル及び対応する構造を選択することができる。但しこの手法は、初期モデル構造及び修正を作成するために、更に最終モデル構造を選択するために、特定分野の専門家である人間の関与を必要とする。
[0021] 別の手法は、様々なモデル構造を生成するために、及び生成した構造から最終モデル構造を選択するためにコンピュータを使用することによってプロセスを自動化することである。しかし、モデル構造の生成を自動化する過去の努力に対する成果は限られたものであった。現代のコンピュータは計算能力の点で非常に進歩したが、ニューラルネットワーク構造等のモデル構造を自動生成するための既存の手法は、限られた探索空間を探り又は実際的でない計算資源量を必要とする傾向にある。実際、現在入手可能な計算ハードウェアを所与として、モデル構造を生成することは計算的に実現可能である傾向にあるが、多くの異なるモデル構造を独立に訓練することは計算的に実現できない傾向にある。
[0022] モデル構造の訓練時間を定量化する1つのやり方は、仮想マシン又はプロセッサ等の参照計算資源及びその参照計算資源上で訓練を完了するのにかかる時間を定めることによる。例えば特定の種類のグラフィックス処理ユニット(「GPU」)上での1日の訓練をGPU-dayと呼ぶことができ、所与のモデルを訓練する計算コストをGPU-dayの数として規定することができる。他の手法、例えば特定のCPU又はFPGAモデル上での訓練時間数、仮想マシン上で費やされる時間等も可能である。
[0023] モデル構造の生成を自動化する1つの手法は、探索空間を簡単に定め、全てのモデル構造をその探索空間内で生成することである。その後、あり得るモデル構造の全てを独立に訓練して訓練済みモデルを取得し、訓練済みモデルの1つを最終モデルとして選択することができる。概して、探索空間はモデル構造の深度、モデルによって実行される演算、及びモデルの接続性を制限することによって定めることができる。例えば深度5の全ての全結合モデル構造を検討するようにコンピュータをプログラムすることができ、5つの層のそれぞれは幾つかある可能な演算の1つを実行する。
[0024] 但し、この手法は多くのモデルで実現できない。まず、モデル構造は多くの異なる層及びノードを伴って非常に大きく成長する可能性がある。第2に、そのような大きなモデル構造では訓練に非常に長い時間がかかり得る。最後にこの手法は、目下のタスクにより適している可能性がある探索空間外の他のモデル構造は考慮しない。例えばタスクが画像認識であり、妥当と思われる如何なる5層モデルよりも6層モデルの方がこのタスクに関して著しく優れている場合、探索空間を5層に限定すれば6層モデルが見つかることはない。
[0025] モデル構造を自動生成するためのより洗練された手法は、所与のタスクのための新たなモデル構造を生成するために訓練される別個の「コントローラ」モデルを作成することを含む。しかし、新たなモデル構造を生成するためにコントローラモデルを使用する過去の努力も上記の欠点の幾つかに依然として悩まされる。大きな探索空間が検討される場合、例えば広範な潜在的モデル構造をコントローラモデルが検討することが予期される場合、各モデル構造を生成し、完全に訓練し、他のモデルに対して評価する必要がある。大きなデータセットでは訓練に数日かかり得るので、相対的に制約されていない探索空間と共に新たなモデル構造の学習を自動化する努力に対する成果は限られたものであった。例えばかかる手法は、許容可能な性能水準を有する最終モデル構造を出力するために数百又は数千GPU-dayかかる可能性がある。
[0026] モデル構造を自動生成するための別の手法は、探索空間を著しく制約し、制約された探索空間内で相対的に限られた1組のモデルを探索することである。例えば過去の一部の手法は、指定のモジュール化された層の数及びモジュール間の接続の種類を有する外部モデルスケルトン(outer model skeleton)を定める。次いで、これらの手法は様々な候補下部構造又は「セル」を生成し評価し、これが外部モデルスケルトンの中で繰り返される。しかし、これらの手法は代替的な外部スケルトン、セル間の代替的な接続、又は各セル内での様々な種類の下部構造の使用を考慮しない。
[0027] 上記で概説した従来の技法の不完全性とは対照的に、開示する実装は上記で論じた技法と比較してかなりの訓練時間を節約しながら、相対的に制約されていない探索空間内でモデル構造を生成することができる。広範な探索空間を検討することにより、開示する実装は、より制約された探索空間において可能であり得るよりも優れた性能を提供する新たなモデル構造を、場合によっては見つけることができる。例えば開示する実装は、既定の外部スケルトンに限定されないモデル構造を見つけることができ、モデルの様々な層において異なる種類の演算を有するモデル構造を見つけることもできる。
[0028] 開示する実装は、探索空間内の全てのモデル構造を別々に生成し訓練することを回避するための幾つかの技法を利用することができる。開示する実装はむしろ、既に評価されている構造と比較して改善されたモデル構造を含むことが予期される探索空間の部分へと、改善されたモデル構造を含む可能性が低い探索空間の他の部分の探索を回避しながら新たなモデル構造の成長を導く。
モデル構造の生成方法
[0029] 以下の解説は、実行されるニューラルネットワーク等のモデル構造の自動生成を可能にすることができる機能の概要を示す。図1は、本概念と合致する方法100の一例を示す。以下で更に論じるように、方法100は多くの異なる種類の装置上で、例えば1つ又は複数のクラウドサーバによって、ラップトップ、タブレット、若しくはスマートフォン等のクライアント装置によって、又は1つ若しくは複数のサーバ、クライアント装置等の組み合わせによって実装することができる。
[0030] 方法100はブロック102で開始し、ブロック102では親モデルプールを初期化する。例えば、1つ又は複数の初期親モデルを親モデルプールに追加することができる。初期親モデルは、特定のタスクで上手く機能したと過去に判定されている既知のモデルとすることができ、ランダムに生成することができ、又は単純に既定のデフォルトシードモデルとすることができる。
[0031] 方法100はブロック104に続き、ブロック104では特定の親モデルをプールから選択する。例えば、親モデルはプールからランダムに又は確定的に選択することができる。以下で更に論じるように、特定の親モデルは修正可能な対応するモデル構造を有する。
[0032] 方法100はブロック106に続き、ブロック106では候補層を生成し初期化する。概して、候補層を生成することは、候補層に入力を与えるための特定の親モデルの1つ又は複数の層を選択すること、及び候補層の出力を受信するための特定の親モデルの別の「ターゲット」層を選択することを含み得る。従って、候補層は特定の親モデルの構造への追加と見なすことができる。加えて、候補層を生成することは、特定の親モデルの被選択層によって与えられる入力に対して実行するための演算を選択することを含み得る。本明細書で更に論じるように、候補層を初期化することは候補層に対して何らかの初期訓練を実行することを含み得る。
[0033] 方法100はブロック108に続き、ブロック108では、親モデルから導出される1つ又は複数の子モデルに含めるための特定の候補層を選択する。以下でより詳細に論じるように、例えば特定の候補層は候補層を初期化するとき学習される初期化パラメータに基づいて選択することができる。他の事例では、子モデルに含めるために候補層のそれぞれが選択される。何れにせよ、子モデルは親モデルの構造を継承し、被選択候補層の1つ又は複数を更に含むモデルと見なすことができる。
[0034] 方法100はブロック110に続き、ブロック110では子モデルを訓練する。以下でより詳細に論じるように、一部の事例では子モデルは親モデルからの学習済みパラメータを再利用することによって訓練する。これらの事例では、子モデルは親モデルからの学習済みパラメータを最初に継承すると見なすこともできるが、それらの学習済みパラメータは子モデルの訓練中に更に調節することができる。
[0035] 方法100はブロック112に続き、ブロック112では1つ又は複数の基準に従って訓練済みの子モデルを評価する。概して、基準は所与のタスクにおけるモデルの性能、例えば精度、及び/又は子モデルを訓練する計算コスト等の他の要因に関係し得る。
[0036] 方法100はブロック114に続き、ブロック114では、ブロック112での評価に基づいてそれぞれの子モデルを新たな親モデルとして指定する。新たな親モデルは親モデルプールに追加される。
[0037] 方法100は判定ブロック116に続き、判定ブロック116では停止条件に達したかどうかの判定を行う。停止条件は、使用される指定の計算資源量(例えばGPU-day単位のバジェット)、指定の性能基準(例えば閾値精度)、指定の時間等を定めることができる。
[0038] 停止条件に達していない場合、この方法はブロック104に続き、ブロック104~116のその後の反復を実行することができる。全般的に言えば、ブロック104~116は停止条件に達するまで複数の反復にわたって繰り返すことができる反復的モデル成長プロセスと見なすことができる。
[0039] 停止条件に達している場合、この方法はブロック118に移り、ブロック118では最終モデルを出力する。例えば最終モデルは、ブロック112に関して上記で論じたような1つ又は複数の基準に従って子モデルの全てから選択することができる。
[0040] 多くの場合、方法100は特定のアプリケーションによく適したモデルを生成するために実行される。例えば顔認識シナリオでは、画像内に顔が含まれているかどうか更に画像内の何処に顔が位置するのかを示す画像のラベル付きの例を訓練データが含み得る。シーン分割の例では、所定のセグメントに分割されているビデオのラベル付きの例を訓練データが含み得る。新たな子モデルを反復的に生成し、それらを特定のタスクのための訓練データセットに対して評価することにより、方法100は特定のタスクにおいて上手く機能する最終モデルを出力することができる。
候補層の生成
[0041] 図2は、親モデル210及び候補層220を示す。以下、親モデルの構造から候補層をどのように導出することができるのかの一例を記載する。以下でより詳細に論じるように、図2は親モデル及び候補層の単一のインスタンスではなく、所与の親モデルから複数の候補層を生成するための手法を表すことに留意されたい。
[0042] 図2では親モデルの要素を実線で示し、候補層の要素を点線で示す。この事例では親モデルがモデル入力211、層212、213、214、及び215、並びにモデル出力216を含む。親モデルは、図2に示す円によって表す不図示の1つ又は複数の他の層も含み得る。概してモデル入力は、生画像、ビデオ、音声、及び/又はテキストデータ等、モデルによって処理される特徴を含み得る。出力はモデルの計算結果、例えば画像内の顔の識別、分割されたビデオ、転記された音声、テキストの意味表現等を表し得る。
[0043] この例では候補層が個々の演算221、222、及び223、並びに集約演算224を含む。本明細書で更に論じるように、概して個々の演算221、223、及び223は畳み込み、プーリング等を含み得る。集約演算224は、集約演算から出力を受信する親モデルのターゲット層、例えば層215に準拠するように個々の演算の出力を操作することを含み得る。例えば集約演算は個々の演算の出力を連結し、ターゲット層の入力にマッチする形式又は形にそれらを投影することができる。
[0044] 上記で論じたように、方法100のブロック106は候補層を生成するために使用することができる。候補層を生成することは、親モデルから1つ又は複数の入力層を選択すること、候補層の出力を受信するための親モデルの1つ又は複数のターゲット層を選択すること、及び入力に対して候補層によって実行される1つ又は複数の演算を選択することを含み得る。加えて、候補層を生成することは演算の動作パラメータ、例えば畳み込みサイズ、畳み込みストライド、プーリングウィンドウ等を選択することを含み得る。
[0045] この例では、あり得る候補層の探索空間を以下のように定めることができる。親モデル内の全ての既存の層をx,...,xとする。候補層はタプル(xout、xin,1、op1、xin,2、op2、...、xin,J、opJ)によって定めることができ、Jは正の整数であり、xout、xin,1、...、xin,Kは既存の層であり、op、...、opは畳み込み及びプーリング等の演算である。xoutは親モデルの計算グラフのトポロジ順序内で厳密に全てのxin,iの後ろにあると定めることができ、そのため直接サイクルは形成され得ない。候補層は
Figure 2022510782000002

から計算し、1つ又は複数の入力層から入力を取得し、その出力をxoutに与えるために追加することができる。
[0046] 候補層xを形成するための或る特定のアルゴリズムは以下の通りである。まず、親モデル210内にあった層からターゲット層xoutをランダムにサンプリングする。次にi=1、2、3の3つの入力層xin,iを選択することができる。xがローカル層にアクセスできることを確実にするために、初期親モデル内にあったxoutの最も深い入力としてxin1を選択することができる。xin,2及びxin,3は、xoutよりもトポロジ的に早い親モデルの全ての層からランダムに一様に置換と共にサンプリングすることができる。次に、各入力層に対して実行される演算を演算群からランダムに一様に選択することができる。
[0047] 例えば演算群は予め定めることができる。演算の具体例は、畳み込み、プーリング、及び一致演算を含む。演算のそれぞれの種類は異なる演算パラメータを有することができる。例えば畳み込み演算は指定のカーネルサイズパラメータ、1x1、3x3、5x5、7x7等を有し得る。畳み込みはフィルタサイズパラメータ、例えば16、32、又は64フィルタ等、並びにストライドパラメータ、パディングパラメータ等も有し得る。プーリング演算は最大及び平均プーリング演算を含むことができ、ウィンドウサイズパラメータによって異なるウィンドウにわたって適用され得る。概して、モデルの訓練によって得られる重み及びバイアス値等の「学習済みパラメータ」と区別するために、本明細書ではこれらのパラメータを「演算パラメータ」と呼ぶ。候補層を生成することは、様々な演算及び/又は様々な演算パラメータを確定的に又はランダムに選択することを含み得る。
[0048] 一部の実装では、分離できる畳み込みを2回適用することができる。各演算の出力を集約演算224によって連結し、1x1の畳み込みを使用してターゲット層xoutと同じ形に投影することができる。その結果が候補層xである。
[0049] 一部の実装は、探索空間を減らすために候補層の接続性を制約することができる。所与の親モデル内の深度iにおいてi-1個の潜在的な前の層があり、前の層の任意のサブセットを候補層への入力として選択することができる。その結果、候補層への入力の指数関数的な選択肢の数がある。従って一部の実装は、繰り返し可能なセルモジュールだけを学習し、手動で設計されたスケルトンマクロ構造にセルを展開することによって入力の選択肢を限定することができる。これらの実装では、セルモジュール内の層は、同じセル内の他の層から及び最も近い2つの前のセルの出力からだけ入力を得ることができる。他の実装は或る特定のスケルトン又は接続性の構成に限定されず、モデル構造が成長するにつれて変化するモデルスケルトンの任意の層の間のスパーススキップ接続を可能にし得る。
[0050] 方法100のブロック106は、方法の反復ごとに上記で論じた手法を使用して1つ又は複数の候補層を生成することを含み得る。一部の事例では、モデル構造が任意の数の異なる組み合わせで接続される数千又は数百万の異なる層を含む場合があり、従って単一の反復内で単一の親モデルから生成され得る潜在的な候補層の数は多くあり得る。以下、あり得る子モデルの構造の全空間を独立に訓練する計算負荷を減らすことができる一部の手法を解説する。
候補層の初期化
[0051] 上記で述べたように、方法100のブロック106は候補層を初期化することも含み得る。概して、候補層の初期化は幾つかの目的を果たすことができる。まず、候補層のパラメータを初期化することは子モデルを初めからではなく初期化から開始して訓練できるようにする。換言すれば、方法100のブロック110において最後の訓練が行われるとき子モデルは既に部分的に訓練されている。第2に、候補層の初期化は候補層に関する情報を提供することができ、そのため以下で更に論じるように他の候補層を省きながら候補層を親モデルに選択的に追加することができる。
[0052] 図3は、候補層が親モデル210に影響を及ぼすことを最初に防ぐことによって候補層220を訓練する実装の例示的な初期化操作を示す。それを行うために、各演算のそれぞれの入力に適用される勾配停止演算(sg:stop-gradient)を用いて演算221、222、及び223を強化することができる。sg(x)は、順方向伝搬中はxであり、逆伝搬中はゼロである。逆伝搬中、モデルの学習済みパラメータを調節するために勾配が層ごとに計算される。sg演算は、親モデルの先行する任意の層内の学習済みパラメータの何れかに勾配が影響を及ぼすことを防ぐ。
[0053] ターゲット層215に出力が与えられる前に、集約演算224の出力に転送停止(sf:stop-forward)演算302を適用することができる。ここではsf(x)は、順方向伝搬中はゼロであり、逆伝搬中は恒等関数である。このことは、ターゲット層に影響を及ぼすことなしに候補層220が初期化中に勾配情報を受信することを可能にする。従って初期化中、候補層はターゲット層によって出力される値又はその後の任意の出力に実際に影響を及ぼすことなしに、ターゲット層に関する損失の勾配を累積することができる。
[0054] 従って候補層の初期化では、候補層の学習済みパラメータの初期化された値を決定する間、親モデルの学習済みパラメータが安定した状態を保つことができる。一部の事例では、同じ反復内で生成される異なる候補層がエッジを共有し得る。その場合、共有されるエッジの重みを候補層ごとに独立に初期化し及び/又は訓練することができる。或いはこの初期化及び/又は訓練は、異なる候補層が共通して有するエッジの重みをそれらの候補層が共有するように実行することができる。例えば順方向伝搬及び逆伝搬動作は、共有エッジの初期化及び/又は訓練中に共有することができ、候補層の間で共有されていない他のエッジでは独立に実行される。所与の候補層及び/又は子モデル内のエッジの共有された初期化及び/又は訓練によって計算コストの著しい節約を得ることができる。
候補層の削除
[0055] 一部の事例では、方法100のブロック108は、その後の訓練及び評価のために子モデルに含めるためにブロック106で生成した候補層の全てを選択することを含み得る。これが該当する場合、ブロック114で特定の子モデルだけが親モデルとして指定されるので、方法100は従来の技法と比較して依然として著しい利益をもたらすことができる。その結果、各反復内の子モデルは既知の優れた親モデルから導出される。新たな子モデルを成長させるとき、この手法は探索空間のかなりの部分を省くことを可能にする。
[0056] 但し、検討中の潜在的な演算、演算パラメータ、及び接続性の種類に応じて、任意の所与の反復における可能な候補層の数が非常に多くなり得る。従って、所与の親のあり得る直接の子モデルの数が多くなり得る。新たな子モデルを訓練する計算負荷を減らすための更なる洗練として、一部の実装は子モデルをブロック110で訓練する前に特定の候補層をフィルタで除去することができる。そのようにフィルタで除去することは、上記で論じたように各反復内で訓練し評価する必要がある子モデルの空間を更に減らすことができる。
[0057] 訓練する子の数を減らすための1つの手法は、より少ない子が訓練される必要があるように、方法100のブロック108であり得る候補層をランダムにサンプリングすることである。他の実装では、ブロック108は訓練のためにどの候補層を子モデルに組み込むべきかを決定するために候補層の初期化パラメータを使用することを含み得る。複数の候補層が所与の親モデルの1つ又は複数の入力層及びターゲット層への接続性を共有するが、異なる演算を実行するシナリオを検討されたい。異なる演算によって入力及び/又は出力される候補層のエッジに対して異なる重みを初期化することができる。これらの初期化された重みを使用して更なる訓練のために子モデルに含める特定の候補層を選択することができる。他の候補層は削除することができ、そのためそれらの候補層を有する子モデルは訓練されず、従って余計な訓練時間を節約する。
[0058] 図4は、有用である可能性が低い候補層を削除するために初期化パラメータを使用するための1つの技法を示す。とりわけ図4は、親モデル210から集約候補層402を導出することによって複数の演算を一緒に初期化できるシナリオを示す。概して集約候補層402は、親モデルへの接続性をそれぞれ共有するが異なる演算を実行する複数の候補層を表す。以下で更に論じるように、図4は子モデルを得るために親モデルに全ての候補層を追加する、又は候補層をランダムに選択することの代替策を与える。簡潔にするために、図4は図2及び図3で示されていた層212を省くことに留意されたい。
[0059] 候補層を削除するための特定のアルゴリズムが続く。入力xin,iごとに、xin,iに対するあり得る演算をopi,1、...、opi,kとしてインスタンス化することができ、kはあり得る演算の数である。図4では、それらの入力が例えば層213及び214によって与えられる。Jの入力xin,iを所与とし、これにより合計Jkのテンソルo、o、...、oJkが得られる。これらの演算は同時に一緒に訓練することができる。訓練されると、演算のサブセットを合計して
Figure 2022510782000003

として集約候補層演算404を公式xによって完遂することができる。
[0060] 訓練されると、集約候補層402は異なる演算に接続されるエッジに関して異なる重みを含む。従って集約候補層は、様々な演算を接続するエッジごとに様々な重みの組を有する複数の初期化された候補層として考えることができる。これらの重みは、子モデル内で使用するための候補層の1つ又は複数を選択するための、及び同様に子モデル内で使用されないように1つ又は複数の他の候補層を削除するための特徴選択技法に入力することができる。この特徴選択プロセスは、選択演算406によって図4内で表す。図4は、図3に関して上記で論じたのと同様のやり方で転送停止演算408並びに勾配停止演算410及び412を用いることを示すことにも留意されたい。
[0061] 選択演算406内でスパース特徴選択を実現するための1つの手法は、選択肢o、...、oJkを線形に組み合わせ、ラッソ回帰(「lasso」)等のL-1ノルム正則化を線形重みに使用することである。スパース性は全体的な損失に以下の正則化、つまり
Figure 2022510782000004

を加えることによって強制することができ、λoutはスパース性の水準を管理するためのターゲット層215(xout)に関連するパラメータである。別の代替策は、以下のように線形損失を二乗損失で置換することである:
Figure 2022510782000005

一部の実装では、
Figure 2022510782000006

であり、従って先の等式は
Figure 2022510782000007

と等しいことを思い出されたい。
[0062] 或る観点から見ると、幾つかの組み合わせの候補層を初期化し、そのサブセットを選択して更なる訓練のために子モデルに含めるために、上記で論じた実装は特徴選択及び学習済みパラメータの共有を用いる。この手法はモデルの性能を改善する可能性が高い候補層の選択に有利に働き、モデルの性能を改善する可能性が低い候補層の選択に不利に働くことができる。その結果、潜在的な親モデルとしての評価のために合計で一層少ない子モデルを訓練する必要があり、訓練される子モデルは所望の性能を示す子孫をもたらす可能性が高い。
子モデルの訓練
[0063] 初期化後、所与の子モデルは親モデルから継承した学習済みパラメータ、更にその子モデルに含まれる任意の候補層の初期化パラメータを含み得る。上記で論じたように、方法100のブロック110は子モデルを全体として訓練することを含むことができ、例えば候補層を親モデルの残りの部分と一緒に訓練することができる。これは「ウォームスタート」技法と見なすことができ、子モデルは訓練の開始時に候補層のパラメータを初期化し、親モデルのパラメータを継承しており、そのどちらも所与の子モデルを全体として訓練するとき更に修正され得る。
[0064] 図5は、子モデルを訓練するための手法の一例を示す。図5では、入力に対する勾配停止演算を除去することができる。加えて、転送停止演算をスカラ乗算器502で置換することができる。スカラは訓練可能であり、ゼロであるように初期化することができる。従って、初期化の直後に子モデルが親モデルと同じ機能を表す。従って子モデルは親モデルと異なる構造を有するが、親モデルの機能性は保たれる。スカラ乗算器は経時変化することができ、追加される候補層がモデルのターゲット層及びその後の出力に徐々に寄与し始めるので、親のパラメータ及び初期化済みの候補のパラメータの組み合わせから開始して子モデルを訓練する。この手法は親モデルから継承される学習済みパラメータを候補層が不安定にするのを防ぐことができ、かかるパラメータは親モデルが完全に訓練されていることを所与として最適に近い可能性がある。
[0065] 一部の実装は図3に示すsg演算及びsf演算を省き、代わりに候補層が訓練されている間、候補層が親モデルに直接影響を及ぼすことを可能にし得ることに留意されたい。図3に示すようにsf-sgを候補層の接頭部及び接尾部として使用することは候補層をより高速に収束させることができる。但し、これには初期化中の候補のための追加目標(additional objective)の公式化が伴い得る。
[0066] 他方で、親と候補層との間で値が自由に流れることを可能にすることは、最終損失を適合させることに新たな候補層が直接寄与することを可能にする。しかし、候補層の初期値は親内のモデルと比較して最適から離れ過ぎている可能性があり、そのことは親モデルのパラメータに悪影響を及ぼし得る。この問題に対処するための代替的手法は、親モデルを訓練する際に使用するよりもはるかに小さい、候補層を初期化するための学習率(元の0.1~0.02倍)を使用することである。
親として子モデルを評価し指定する
[0067] 先に述べたように、方法100のブロック114で特定の子モデルを親モデルプールに追加する。親モデルプールにどの子モデルを追加するのかを決定するための1つの手法は、過去に発見されたモデルと比較してその後の反復内で改善を示す子孫をどの子モデルがもたらす可能性が高いのかを予測するために1つ又は複数の基準を使用することを含む。概して、基準は所与の子モデルの損失並びに所与の子モデルを訓練するための計算量等の要因を考慮し得る。損失が高いことはモデルの検証中の精度が低いことを含意し、コストが高いことは訓練データセットに基づく訓練時間が長いことを含意する。親モデルプールに含めるために、相対的に低い損失及び少ない計算量を示す子モデルを優先することができる。
[0068] 親プール用の子モデルを選択するための或る特定の手法を図6に関して本明細書に示す。この図面は、様々な訓練済みモデルの散布図600の一例を示す。訓練を完了する子モデルごとに、その子モデルを訓練するための計算コストを計算し、x軸602上にプロットすることができる。加えて、その子モデルの損失を計算し、y軸604上にプロットすることができる。所与の反復に関する全てのモデルをプロットすると、プロットした値から下側凸包606を計算することができる。計算コストは、標準化されたハードウェア(例えば特定のモデルのGPU)上でモデルを訓練するのに必要な時間を反映するGPU-day等の値として計算できることに留意されたい。他の実装では、訓練エポック数等の訓練固有値及び/又は訓練に関与するデータ強化に関係なく、計算コストが試験時間コスト、例えば予測を行うために所与のモデルを使用する際に関与する演算の数を反映する。図6に示すように計算コストは0~1の数に正規化することができる。
[0069] 下側凸包606は、所与の子モデルを親モデルプールに追加するかどうかを決定するためのメカニズムとして使用することができる。例えば以下の特定のアルゴリズムを使用して定められる確率と共に、下側凸包上の子モデルを親モデルプールに追加することができる。m及びmが計算コストc及びc(c<c)を有する包上の2つの隣接するモデルである場合、mの確率重みはc-cに比例して設定することができる。曲線上で後続のモデルを有さない最も正確なモデルを親モデルプールに含めるために0.5の確率で選択することができる。図6では最も正確なモデルはモデル608であり、それはこのモデルが最も低い損失を有するからである。
[0070] 概して、下側凸包はパレートフロンティアのサブセットであり、従って別の手法は親プールに含めるためにパレートフロンティア上の子モデルを選択することである。何れの手法も、親モデルプールに追加する子モデルを選択することに関して優れた性能をもたらし得る。下側凸包及び/又はパレートフロンティアを考察する1つのやり方は以下の通りである。下側凸包又はパレートフロンティア上の所与のモデルは、他の基準を劣化させることなしに下側凸包/パレートフロンティア上の別のモデルに移ることによって或る基準に関して改善することはできない。
[0071] 確率勾配を形成する際のランダム性により、同じモデルが異なる検証エラーを有し得ることに留意されたい。その結果、マルチプリケイティブ帯域幅(multiplicative bandwidth)を用いて下側凸包又はパレートフロンティアを緩和することができる。従って、その検証エラーが同じ計算コストにおいて下側凸包の検証エラーに(1+γ)乗じた範囲内にある子モデルは下側凸包上にあると見なすことができ、親として選択することができる。一部の実装はγ=0.025に設定することができる。この手法は、下側凸包に近いが厳密にその上に位置しない特定の子モデルを依然として親モデルとして指定することを可能にする。
[0072] 下側凸包の所定の近傍内の位置を有する子モデルを親モデルとして選択できるようにする他の手法も使用することができる。例えば一部の実装は、下側凸包からの閾値距離を定め、下側凸包の閾値距離内の子モデルを親モデルとして選択できるようにし得る。これは1つ又は複数の基準に基づいて1つ又は複数の子モデルのサブセットを親モデルとして選択するために使用可能な様々な手法の1つに過ぎない。
[0073] 図6は、訓練を完了したモデルを黒色点として示す。説明のために、図6は反復N後の散布図600の状態を表すと仮定されたい。上記で論じたように別の候補層を追加し初期化して更なる子モデルを形成可能なその後の反復N+1のために、下側凸包606上の又はその近くの子モデルの1つ又は複数を親モデルとして選択することができる。
[0074] 図7は、反復N+1後の後続の状態における散布図600を示す。図7では反復N+1中に訓練される子モデルを正方形で示している。新たな下側凸包702を計算することができる。反復N+1における下側凸包の下方向への移動を示すために、前の下側凸包606は点線で示している。
[0075] この場合もやはりその後の反復N+2のために、下側凸包702内の又はその近くの子モデルの1つ又は複数を選択することができる。図8では反復N+2中に訓練される子モデルを三角形として示している。新たな下側凸包802を計算することができ、下側凸包802に対する位置を示すために前の下側凸包606及び702は点線で示している。
[0076] 図6~図8に示す手法を考察する1つのやり方は、コスト効率のよいプリディクタ(predictor)を見つけるための貪欲法である。これは訓練/検証の計算コスト更にはモデルの精度の両方を考慮する多目的手法であることに留意されたい。代替的実装は異なる及び/又は追加の基準、例えば3つ以上の基準の多次元プロット、1つ又は複数の基準にわたって定められる目的関数等を使用し得る。
[0077] 上記の手法は、概してランダム化された手法を使用してネットワークを成長させる。しかし、計算的に実行不可能であり得る純粋にランダムな手法の代わりに、更なる修正のための基礎として既知の優れたモデルを使用することを優先する傾向がある予測基準によって手法が導かれる。先に述べたように、モデルを最初から訓練することは非常に計算集約的であり得る。例えば訓練データセットは数百万の訓練データ項目を含む場合があり、収束前に所与のモデルを幾つかの訓練エポックにわたって訓練する必要があり得る。訓練エポックは訓練データセット内のデータ項目ごとに、全モデルを通して1つの順方向伝搬及び1つの逆伝搬動作を含み得る。
[0078] 上記の手法は、自動化されたモデル生成のための従来の手法と比較して様々な利益を与える。後続の訓練のための候補層を導出するために全ての子モデルが使用されるわけではないことに留意されたい。むしろ、親モデルとして下側凸包に沿って生じる子モデルのサブセットを使用することにより、開示する実装は既知の優れたモデルの親モデルの構造を継承する子モデルの構造を用いてそれぞれの新たな反復を開始する。このように反復を開始することは、下側凸包から遠く離れた探索空間のかなりの部分を占めるモデルを訓練することなしにその後の反復を進めることを可能にし、膨大な量の訓練時間を節約することができる。加えて、新たな親モデルとしてどの子モデルを使用するのかを選択するための基準として精度だけでなく訓練コストも使用することにより、開示する実装はより計算集約的な新たなモデルの生成を嫌う。このことはひいてはそれらのモデルだけでなく、かかるモデルから導出される子モデルの訓練のための訓練時間も減らす。
[0079] 加えて、候補層の初期化は、親モデルの構造だけでなく親モデルの学習済みパラメータも継承する子モデルに対して実行できることを思い出されたい。その結果、新たな候補層のパラメータを比較的素早く妥当な値に初期化することができる。更に、この形態は全体として子モデルの「ウォームスタート」訓練を可能にする。ウォームスタート訓練は、例えばそれぞれの子モデルを最初から完全に訓練する場合よりもはるかに少ない訓練エポック又は訓練サンプルを必要とすることによって収束を速め得る。
[0080] 加えて、任意の2つの子モデル間の共有エッジは一緒に初期化し訓練できることを思い出されたい。子モデルは共有された親モデルプールから導出されることを考慮すれば、エッジが共有される可能性は相対的に高い。従って、それぞれの子モデルについて共有エッジを別々に初期化し訓練する代替形態と比較してかなりの訓練時間を節約することができる。
[0081] 機械学習モデルを自動生成するための過去の技法は、計算的に実行不可能な訓練負荷に悩まされ、又は非常に制限された探索空間内のモデルだけを考慮したことを思い出されたい。まとめると上記で述べた利益は、モデルを生成するために使用される計算資源に対して過度の計算負荷を課すことなしに、相対的に制約されていない探索空間から大規模で正確な機械学習モデルを自動生成することを可能にする。
処理フローの例
[0082] 図9は、モデル構造を増分的に成長させるための処理フロー900の大まかな概要を示す。この処理フローは、親モデルプールをどのように反復的に成長させることができるのかを示す。この処理フローは、仮想マシン等のワーカープロセスに特定のタスクを割り当てるための手法の一例である。例えばこの処理フローは、ワーカープロセスが利用できるようになるときハイパーバイザ又はオペレーティングシステムが新たなジョブを徐々にスケジューリングする分散システム又はサーバファームに適している場合がある。
[0083] 段階910で、親モデルプール912を決定する。例えば一部の事例では、人間又は自動化された技法がモデルの既知の性能に基づいてプール用の1つ又は複数のモデルを選択することができる。簡単にするために、プールが初期化時に単一のモデル914を含むと仮定する。
[0084] 段階920で、親モデルから候補層を初期化する。例えば図9は候補層922、924、及び926を示す。先に述べたように、各候補層は親モデルプール912に追加することができる。候補層は候補層待ち行列928に追加することができる。所与のワーカープロセスが利用できるようになると、ワーカープロセスは候補層待ち行列から候補層を取り出し、本明細書で論じたように例えば訓練の初期反復を数回実行することによってその候補層を初期化することができる。
[0085] 初期化されると、段階930での訓練のために、子モデル待ち行列932に含めるための候補層のサブセットを選択することができる。利用可能なワーカープロセスは、段階930での訓練のために子モデル待ち行列から所与の子モデルを取り出すことができる。図9は、候補層924を含むが候補層922又は926は含まないものとして、段階930におけるそのような1つの子モデル934を示す。例えば上記で言及した特徴選択の実装において論じたように、これは候補層922及び/又は926が前の段階920内で削除されているという考えを示す。
[0086] 先に述べたように、子モデルは必ずしも初めから訓練されず、親モデルの学習済みパラメータから、更には子モデルに追加する候補層を初期化する場合は段階920で決定した初期化パラメータから開始して訓練することができる。更に、同じく上記で論じたように、より大きな1つのモデルの一部として複数の子モデルを一緒に訓練できることに留意されたい。
[0087] 矢印936によって示すように、親モデルプール912に追加するために段階930で子モデル待ち行列932から特定の子モデルを選択することができる。先に論じたように、親モデルプールに追加する子モデルは様々な基準に基づいて選択することができる。例えば一部の実装は検証データセットに基づいて訓練済みの子モデルを評価し、子モデルごとにそれぞれの損失を求め、親モデルプールに子モデルを追加するための基準として損失を使用することができる。或いは及び/又は加えて、親モデルプールにその子モデルを追加するかどうかを判定するための基準として所与の子モデルを訓練する計算費用を使用することができる。他の手法は、追加することの期待値に関して計算される計算費用及び予測を検討することに基づく、親モデルプールに子モデルを追加する正味期待値の形式計算を活用することができる。親モデルプールが更新されると、その後の反復のために処理が段階910に戻ることができる。
システムの例
[0088] 本明細書の実装は様々な装置上で様々なシナリオ内で実行され得る。図10は、以下で更に論じるように本明細書の実装をその内部で使用することができるシステム1000の一例を示す。
[0089] 図10に示すように、システム1000は、1つ又は複数のネットワーク1050によって接続されるクライアント装置1010、サーバ1020、サーバ1030、及びクライアント装置1040を含む。クライアント装置は、スマートフォン又はタブレット等のモバイル装置並びにデスクトップ、サーバ装置等の固定式装置の両方として実装できることに留意されたい。同様に、サーバは様々な種類の計算装置を使用して実装することができる。一部の事例では、図10に示す装置の何れかだが、とりわけサーバをデータセンタ、サーバファーム等によって実装することができる。
[0090] 本明細書では、図10に示す装置の特定のコンポーネントを括弧に入った参照番号によって参照する場合がある。以下の説明では、括弧に入った(1)はクライアント装置1010上での所与のコンポーネントの発生を示し、(2)はサーバ1020上での所与のコンポーネントの発生を示し、(3)はサーバ1030上での発生を示し、(4)はクライアント装置1040上での発生を示す。所与のコンポーネントの特定のインスタンスを識別しない限り、本明細書では括弧を用いずにコンポーネントに広く言及する。
[0091] 概して、装置1010、1020、1030、及び/又は1040は、以下でより詳細に論じる個々の処理資源1001及び記憶資源1002を有し得る。装置は、本明細書で論じた技法を実行するために処理資源及び記憶資源を使用して機能する様々なモジュールも有し得る。記憶資源は、磁気ドライブ又はソリッドステートドライブ等の永続記憶資源、及び1つ又は複数のランダムアクセスメモリ装置等の揮発性記憶域の両方を含み得る。一部の事例ではモジュールが、永続記憶装置上に記憶され、ランダムアクセスメモリ装置内にロードされ、実行のために処理資源によってランダムアクセスメモリから読み出される実行可能命令として提供される。
[0092] クライアント装置1010は、サーバ1020上のモデル生成モジュール1021と対話することができる構成モジュール1011を含み得る。概して言えば、構成モジュールはモデル生成モジュールに特定の構成パラメータを与えることができる。モデル生成モジュールはそれらの構成パラメータを使用して、本明細書で論じるモデル生成機能を実行する。具体的には、モデル生成モジュールは構成パラメータに基づいて方法100を実行することができる。上記のように、反復的モデル成長プロセスは親モデルを修正して子モデルを得ること、候補層の初期化プロセス内で学習される重みに少なくとも基づいて子モデルに含める候補層を選択すること、及び子モデルから選択される最終モデルを出力することを含み得る。モデル生成モジュールは、方法100の各ブロックに関する様々なサブモジュール(不図示)を含み得る。
[0093] モデル生成モジュール1021は、サーバ1030に最終モデルを出力することができる。モデル実行モジュール1031が、受信した入力に応じて最終モデルを実行することができる。例えばクライアント装置1040上の記録モジュール1041は最終モデルによって処理するための画像又は音声等のデータを記録することができ、ローカルアプリケーション1042は記録されたデータを処理のためにサーバ1030にアップロードすることができる。モデル実行モジュールは、アップロードされたデータを最終モデルを使用して処理し、モデルの出力を更なる処理のためにローカルアプリケーションに与えることができる。
グラフィカルインタフェースの例
[0094] 上記で述べたように、クライアント装置1010上の構成モジュール1011は、モデル生成モジュール1021に初期構成パラメータを与えることができる。モデル生成モジュール1021は、構成モジュールによって与えられる構成パラメータに従って方法100を実行することができる。図11は、これらの構成パラメータをユーザが定めるためにクライアント装置1010上で提示可能な構成グラフィカルユーザインタフェース(「GUI」)1100の一例を示す。
[0095] 親モデル要素1101は、モデル成長プロセスを開始するためにどの種類の初期親モデルを使用すべきかをユーザが指定することを可能にする。図11では、ユーザがデフォルトの親モデルを選択していることが示されている。例えばモデル生成モジュール1021は、汎用初期親モデルとして使用するためのデフォルトのニューラルネットワーク構造を提供することができる。他の選択肢は、初期親として使用するためのランダムモデル構造をモデル生成モジュールが選択するランダム生成モデルを含み得る。別の選択肢は、特定のタスクに関して相対的に優れた性能を与えることが知られている既存モデルにユーザがナビゲートするためのものである。この場合、構成モジュール1011は初期親モデルとして使用するために指定のモデルをモデル生成モジュールにアップロードすることができる。
[0096] 演算要素1102は、モデル生成モジュール1021によってどの種類の演算が検討されるのかをユーザが指定することを可能にする。例えばモデル生成モジュールは、候補層のために選択可能な列挙される演算群に関して様々な選択肢を提供することができる。第1の選択肢であるグループ1は、単一の畳み込み演算(例えば5x5)及び単一のプーリング演算(例えば最大プーリング)という2つの演算を定め得る。第2の選択肢であるグループ2は、2つの畳み込み演算、例えば5x5及び7x7、並びに平均プーリング及び最大プーリングの2つのプーリング演算という合計4つのあり得る演算を定め得る。第3の選択肢であるグループ3は、1x1、3x3、5x5、及び7x7の畳み込み、平均及び最大プーリング、並びに一致演算という合計7つのあり得る演算を定め得る。列挙した演算は所定の又は選択可能な演算パラメータ、例えば調節可能なウィンドウサイズ、ストライド等を有する場合もある。
[0097] バジェット入力要素1103は、モデルを生成するための計算バジェットをユーザが指定することを可能にする。例えばユーザは10,000GPU-dayのバジェットを指定することができ、モデル生成モジュール1021は方法100の判定ブロック116における停止条件としてそのバジェットを使用することができる。代替的実装は、処理演算の数、仮想マシンの数、時間等の他のメトリックを計算バジェットとして使用することができる。
[0098] 基準1の要素1104はモデルを評価するための第1の基準をユーザが指定することを可能にし、基準2の要素1105は第2の基準をユーザが指定することを可能にする。図11では、上記で論じたようにこれらの基準が計算コスト及び損失としてそれぞれ示されている。但し、ユーザはモデル構造の全体的なサイズ、接続の数、モデルの学習可能パラメータの総数等の他の基準を指定したい場合がある。モバイル装置又はモノのインターネット(IoT)装置上でモデルを実行すること等の資源が制約された応用では、それらの装置が限られた記憶域及び/又はメモリ容量を有する傾向にあるので、バイト単位のモデルのサイズが重要な基準であり得る。加えて、それらの装置は所与のモデルの実行に長時間かかるときユーザがレイテンシを知覚することを招き得る制約された処理能力を有する場合があるので、それらのシナリオではモデルを実行するための計算時間も有用な基準であり得る。
[0099] 図11に示す構成パラメータは例示に過ぎず、他の様々な実装が考えられることに留意されたい。例えば一部の事例では、ユーザが接続性のパラメータを指定することができる。一例として、ユーザは指定した数の前の層から、又は種々の(例えばランダムな)数の前の層から候補層が入力を受信することを指定することができる。別の例として、ユーザはスキップ接続(例えば或る層がすぐ次の層に入力を与えない可能性があり、代わりにすぐ次の層を飛ばしてその後の別の層に接続する)が許可されているかどうかを指定することができる。ユーザは、モデル内の先行する全ての層に各層が接続されるdensenetアーキテクチャを指定することもできる。
[00100] 更に、一部の実装は方法100の進捗を示すための1つ又は複数のGUIを提供し得ることに留意されたい。例えば一部の実装は、図6~図8に示したのと同様のやり方で、モデル成長の様々な反復にわたって変化する散布図600を示すGUIを生成し得る。他の実装は個々のモデル及び/又は候補層が生成されるとき、それらのグラフィカル表現を表示することができる。
アプリケーションの例
[00101] 本明細書で論じた技法は制限なしに様々なアプリケーションに使用することができる。それでもなお、以下の内容は一部の具体例を説明目的で示す。
[00102] 第1の例として、ユーザの写真集内のユーザの友人全員にタグ付けするアプリケーションを或るエンティティが市場に出したいと仮定する。このエンティティはその目的で現在使用している既存モデルを有している場合があり、そのモデルはクライアント装置1040上のローカルアプリケーション1042によって与えられる写真に対してサーバ1030上のモデル実行モジュール1031によって実行され得る。しかし、既存モデルが十分正確ではなく、一部の状況下では思わしくないユーザエクスペリエンスを与え得るとそのエンティティが感じることがある。
[00103] まず、そのエンティティはサーバ1020上のモデル生成モジュール1021に既存モデルをアップロードすることができ、上記で論じたように様々な初期パラメータを構成することができる。次に、モデル生成モジュールは停止条件に達するまで既存モデルを反復的に成長させ、最終モデルをサーバ1030にエクスポートすることができる。サーバ1030は初期モデルを受信済みの最終モデルと置換し、論じたようにユーザの写真にタグ付けし続けることができる。
[00104] 或る代替策として、クライアント装置は最終モデルによる音声転記のために録音済み音声データを提供することができる。別の代替策として、クライアント装置は最終モデルによる第2の言語への翻訳用に第1の言語のテキストを提供することができる。更なる例として、最終モデルはビデオに対するシーン分割、画像又はビデオに対するオブジェクト検出(例えば顔、車両等の識別)、テキストに対する文法構文解析等を行うことができる。
[00105] 更に別の例として、最終モデルは文書及びクエリを意味ベクトルへとマッピングするために使用され得る。この場合サーバ1030は、インデックス付き文書と受信クエリとの間のベクトル距離を使用してクライアント装置1040のユーザのために検索結果に順位を付ける検索エンジン機能を提供することができる。より広くは、最終モデルはこれだけに限定されないが分類、機械翻訳、及びパターン認識タスクを含む、訓練データを入手可能な任意の適切なタスクを実行することができる。
[00106] 更に、一部の実装は訓練、検証、及び/又は試験のためのデータセットをエンティティが提供することを可能にし得る。例えば第1のエンティティは、クライアント装置1010からサーバ1020を制御する第2のエンティティにデータセットを送信し得る。第2のエンティティは、第1のエンティティによって与えられたデータセットを使用して最終モデルを生成することができる。一部の事例では、第2のエンティティは、例えば第1のエンティティによってサーバ1030上で実行するために最終モデルを第1のエンティティに与えることができる。他の事例では、第2のエンティティはモデル自体を提供しないが、代わりに第1のエンティティがモデルを呼び出すことを可能にする。この場合、第2のエンティティは同じ装置上でサーバ1020及びサーバ1030の両方を制御し、及び/又はモデルの生成及び実行の両方を実装することができる。
[00107] 加えて「最終モデル」という用語は、本明細書では所与の子モデルがアプリケーション内での実際的使用に関して指定されることを含意するために使用するに過ぎないことに留意されたい。一部の実装では、エンティティによって出力され使用される最終モデルは、本明細書に記載したモデル成長プロセスのその後の反復のための初期親モデルとして使用することもできる。一部の事例では、エンティティが所与の最終モデルを使用するうちに新たなデータを取得し、プロセスのその後の反復のための訓練/検証/試験データとしてその新たなデータを使用することができる。そのように新たなデータを使用することは新たな最終モデルが出力されることをもたらすことができ、その最終モデルは更なる新たなデータが取得されるときしばらくの間使用することができ、このプロセスは所与のエンティティが対象とする所与の実用的アプリケーションの寿命にわたって継続的に繰り返すことができる。
[00108] 加えて、開示した実装は候補層がモデル構造に追加される例に焦点を当てたことに留意されたい。しかし一部の事例では、層の代わりに他の種類の候補コンポーネントが使用され得る。概して、候補コンポーネントは、簡単な算術演算子又はブール演算子からより複雑な訓練可能モジュールに及ぶ任意の種類の数学的及び/又は論理的機能を使用して実装することができる。
装置の実装
[00109] 図10に関して上記で述べたように、システム1000は、クライアント装置1010、サーバ1020、サーバ1030、及びクライアント装置1040を含む幾つかの装置を含む。同じく述べたように、装置の全ての実装を図示できるわけではなく、上記の及び下記の説明から装置の他の実装が当業者に明らかになる。
[00110] 本明細書で使用するとき「装置」、「コンピュータ」、「計算装置」、「クライアント装置」、及び又は「サーバ装置」という用語は幾らかの量のハードウェア処理能力及び/又はハードウェア記憶/メモリ能力を有する任意の種類の装置を意味し得る。処理能力は、機能を提供するためにコンピュータ可読命令形式のデータを実行可能な1つ又は複数のハードウェアプロセッサ(例えばハードウェア処理ユニット/コア)によって提供され得る。コンピュータ可読命令及び/又はデータは、記憶域/メモリ及び又はデータストア等の記憶域上に記憶され得る。本明細書で使用するとき「システム」という用語は単一の装置、複数の装置等を指すことができる。
[00111] 記憶資源は、関連するそれぞれの装置に対して内部的でも外部的でもよい。記憶資源は、とりわけ揮発性メモリ又は不揮発性メモリ、ハードドライブ、フラッシュ記憶装置、及び/又は光学記憶装置(例えばCD、DVD等)のうちの何れか1つ又は複数を含み得る。本明細書で使用するとき、「コンピュータ可読媒体」という用語は信号を含み得る。対照的に「コンピュータ可読記憶媒体」という用語は信号を除外する。コンピュータ可読記憶媒体は「コンピュータ可読記憶装置」を含む。コンピュータ可読記憶装置の例は、とりわけRAM等の揮発性記憶媒体、並びにハードドライブ、光学ディスク、及びフラッシュメモリ等の不揮発性記憶媒体を含む。
[00112] 一部の事例では、装置が汎用ハードウェアプロセッサ及び記憶資源と共に構成される。他の事例では、装置がシステムオンチップ(SOC)型の設計を含み得る。SOC設計の実装では、装置によって提供される機能が単一のSOC又は複数の結合されたSOC上で統合され得る。関連する1つ又は複数のプロセッサが、メモリ、記憶域等の共有資源、及び/又は或る特定の機能を実行するように構成されるハードウェアブロック等の1つ若しくは複数の専用資源と連係するように構成され得る。従って、本明細書で使用するとき「プロセッサ」、「ハードウェアプロセッサ」、又は「ハードウェア処理ユニット」という用語は、従来の計算アーキテクチャ並びにSOC設計の両方の実装に適した中央処理装置(「CPU」)、グラフィカル処理ユニット(「GPU」)、コントローラ、マイクロコントローラ、プロセッサコア、又は他の種類の処理装置も指すことができる。
[00113] 或いは又は加えて、本明細書に記載の機能は1つ又は複数のハードウェア論理コンポーネントによって少なくとも部分的に実行され得る。例えば及び制限なしに、使用可能なハードウェア論理コンポーネントの例示的な種類は書換可能ゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップシステム(SOC)、結合プログラム可能論理装置(CPLD)等を含む。
[00114] 一部の構成では、本明細書で論じたモジュール/コードの何れかをソフトウェア、ハードウェア、及び/又はファームウェアによって実装することができる。何れにせよ、モジュール/コードは装置の製造中に又はエンドユーザに販売するために装置を準備する媒介者によって提供され得る。他の例では、実行可能コードをダウンロードし、実行可能コードを対応する装置上にインストールすること等によってエンドユーザがそれらのモジュール/コードを後でインストールすることができる。
[00115] 装置は入力及び/又は出力機能を概して有し得ることにも留意されたい。例えば計算装置は、キーボード、マウス、タッチパッド、ボイス認識、(例えば立体又は飛行時間カメラシステム、赤外線カメラシステム、RGBカメラシステム等のデプスカメラを使用する、又は加速度計/ジャイロスコープ、顔認識等を使用する)ジェスチャ認識等の様々な入力機構を有し得る。装置はプリンタ、モニタ等の様々な出力機構も有し得る。
[00116] 本明細書に記載の装置は、記載した技法を実装するために独立的なやり方で又は協同的なやり方で機能し得ることにも留意されたい。例えば本明細書に記載の方法及び機能は単一の計算装置上で実行することができ、及び/又はネットワーク1050上で通信する複数の計算装置にわたって分散され得る。制限なしに、ネットワーク1050は1つ又は複数のローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、インターネット等を含み得る。
更なる例
[00117] 上記では様々な装置の例を記載した。更なる例を以下に記載する。一例は計算装置上で実行される方法を含み、この方法は反復的モデル成長プロセスの2回以上の反復を実行することを含み得る。反復的モデル成長プロセスは、1つ又は複数の親モデルの親モデルプールから特定の親モデルを選択すること、複数の候補層を生成し、特定の親モデルの学習済みパラメータを再利用しながら複数の候補層を初期化することを含み得る。反復的モデル成長プロセスは、訓練のために子モデルに含めるための特定の候補層を選択することも含むことができ、それぞれの子モデルは特定の親モデル及び特定の候補層の1つ又は複数を含み得る。反復的モデル成長プロセスは、複数の子モデルを訓練して訓練済みの子モデルを得ること、1つ又は複数の基準を使用して訓練済みの子モデルを評価すること、及び評価することに少なくとも基づき、個々の訓練済みの子モデルを新たな親モデルとして指定し、新たな親モデルを親モデルプールに追加することも含み得る。この方法は、2回以上の反復後に少なくとも1つの訓練済みの子モデルを最終モデルとして選択し、その最終モデルを出力することも含み得る。
[00118] 別の例は上記の及び/又は下記の例の何れかを含むことができ、この方法は、子モデルを訓練し又は試験する計算コストを求めること、及び訓練済みの子モデルを評価するとき計算コストを第1の基準として使用することを更に含む。
[00119] 別の例は上記の及び/又は下記の例の何れかを含むことができ、この方法は、訓練済みの子モデルに関連する損失を求めること、及び訓練済みの子モデルを評価するとき損失を第2の基準として使用することを更に含む。
[00120] 別の例は上記の及び/又は下記の例の何れかを含むことができ、この方法は、計算コストを反映する第1の軸及び損失を反映する第2の軸を有するグラフ上に子モデルをプロットすること、及びグラフ上の新たな親モデルの対応する位置に少なくとも基づいて新たな親モデルを選択することを更に含む。
[00121] 別の例は上記の及び/又は下記の例の何れかを含むことができ、この方法は、グラフ上の下側凸包又はパレートフロンティアの少なくとも1つを求めること、及び下側凸包又はパレートフロンティアに対する新たな親モデルの近接度に少なくとも基づいて新たな親モデルを選択することを更に含む。
[00122] 別の例は上記の及び/又は下記の例の何れかを含むことができ、選択することは、下側凸包又はパレートフロンティアの所定の近傍に含まれる訓練済みの子モデルのサブセットを識別すること、訓練済みの子モデルのサブセットについて個々の確率を求めること、及び個々の確率に少なくとも基づいて新たな親モデルを選択することを含む。
[00123] 別の例は上記の及び/又は下記の例の何れかを含むことができ、それぞれの候補層を生成することは、それぞれの候補層の出力を受信するために特定の親モデルからターゲット層を選択すること、それぞれの候補層に入力を与えるために特定の親モデルから1つ又は複数の入力層を選択すること、及びそれぞれの候補層が入力に対して実行すべき特定の演算を選択することを含む。
[00124] 別の例は上記の及び/又は下記の例の何れかを含むことができ、特定の演算を選択することは、演算群を定めること、及びその演算群から特定の演算をランダムに選択することを含む。
[00125] 別の例は上記の及び/又は下記の例の何れかを含むことができ、この方法は、特定の親モデルからターゲット層及び少なくとも1つの入力層をランダムに選択することを更に含む。
[00126] 別の例は上記の及び/又は下記の例の何れかを含むことができ、最終モデルはニューラルネットワークである。
[00127] 別の例は、ハードウェア処理ユニットと、ハードウェア処理ユニットによって実行されるとき、親モデルを修正して子モデルを得ることを含む反復的モデル成長プロセスをハードウェア処理ユニットに実行させるコンピュータ可読命令を記憶する記憶資源とを含む、システムを含む。反復的モデル成長プロセスは、候補層の初期化プロセス内で学習される重みに少なくとも基づいて子モデルに含めるための候補層を選択することを含み得る。コンピュータ可読命令は、子モデルから選択される最終モデルを出力することをハードウェア処理ユニットに更に行わせることもできる。
[00128] 別の例は上記の及び/又は下記の例の何れかを含むことができ、コンピュータ可読命令はハードウェア処理ユニットによって実行されるとき、親モデルへの接続性を共有し様々な演算を実行する様々な候補層を生成すること、及び様々な候補層を一緒に初期化して様々な候補層の様々な重みを得ることをハードウェア処理ユニットに行わせる。
[00129] 別の例は上記の及び/又は下記の例の何れかを含むことができ、コンピュータ可読命令はハードウェア処理ユニットによって実行されるとき、様々な候補層の様々な重みに少なくとも基づいて子モデルに含めるためのそれぞれの候補層を選択することをハードウェア処理ユニットに行わせる。
[00130] 別の例は上記の及び/又は下記の例の何れかを含むことができ、コンピュータ可読命令はハードウェア処理ユニットによって実行されるとき、子モデルに含めるためのそれぞれの候補層を選択するために、様々な候補層の様々な重みに対して特徴選択技法を実行することをハードウェア処理ユニットに行わせる。
[00131] 別の例は上記の及び/又は下記の例の何れかを含むことができ、特徴選択技法がラッソ回帰(LASSO)を含む。
[00132] 別の例は上記の及び/又は下記の例の何れかを含むことができ、様々な演算が畳み込み演算及びプーリング演算を含む。
[00133] 別の例は上記の及び/又は下記の例の何れかを含むことができ、コンピュータ可読命令はハードウェア処理ユニットによって実行されるとき、少なくとも1つの分類、機械翻訳、又はパターン認識タスク用の訓練データを使用して最終モデルを訓練すること、及び最終モデルを実行のために提供することであって、最終モデルは少なくとも1つの分類、機械翻訳、又はパターン認識タスクを実行するように適応されている、提供することをハードウェア処理ユニットに行わせる。
[00134] 別の例は、処理装置によって実行されるとき、反復的モデル成長プロセスの2回以上の反復を実行することを含む動作を処理装置に実行させる命令を記憶するコンピュータ可読記憶媒体を含む。反復的モデル成長プロセスは、1つ又は複数の親モデルの親モデルプールから特定の親モデルを選択すること、複数の候補層を初期化すること、複数の子モデルを訓練のために選択することであって、それぞれの子モデルは特定の親モデルの構造を継承しており候補層の少なくとも1つを含む、選択すること、複数の子モデルを訓練して訓練済みの子モデルを得ること、及び1つ又は複数の基準に少なくとも部分的に基づいて個々の訓練済みの子モデルを新たな親モデルとして指定し、新たな親モデルを親モデルプールに追加することを含み得る。この動作は、2回以上の反復後に少なくとも1つの訓練済みの子モデルを最終モデルとして選択し、その最終モデルを出力することを更に含み得る。
[00135] 別の例は上記の及び/又は下記の例の何れかを含むことができ、動作は、複数の候補層を同時に初期化して初期化パラメータを得ること、及び初期化パラメータに少なくとも基づいてそれぞれの子モデルに含めるためのそれぞれの候補層を選択することを更に含む。
[00136] 別の例は上記の及び/又は下記の例の何れかを含むことができ、動作は、複数の候補層に含めるために列挙した演算群から演算をランダムに選択することを更に含む。
結論
[00137] 本内容は構造上の特徴及び/又は方法論的な動作に固有の言語で記載してきたが、添付の特許請求の範囲において定める内容は上記の特定の特徴又は動作に必ずしも限定されないことを理解すべきである。むしろ、上記の特定の特徴及び動作は特許請求の範囲を実装する形態の例として開示しており、当業者によって認識される他の特徴及び動作も特許請求の範囲に含まれることを意図する。

Claims (15)

  1. 計算装置上で実行される方法であって、
    反復的モデル成長プロセスの2回以上の反復を実行することであって、前記反復的モデル成長プロセスは、
    1つ又は複数の親モデルの親モデルプールから特定の親モデルを選択すること、
    複数の候補層を生成し、前記特定の親モデルの学習済みパラメータを再利用しながら前記複数の候補層を初期化すること、
    訓練のために子モデルに含めるための特定の候補層を選択することであって、それぞれの子モデルは前記特定の親モデル及び前記特定の候補層の1つ又は複数を含む、選択すること、
    前記複数の子モデルを訓練して訓練済みの子モデルを得ること、
    1つ又は複数の基準を使用して前記訓練済みの子モデルを評価すること、及び
    前記評価することに少なくとも基づき、個々の訓練済みの子モデルを新たな親モデルとして指定し、前記新たな親モデルを前記親モデルプールに追加すること
    を含む、実行すること、並びに
    前記2回以上の反復後に少なくとも1つの訓練済みの子モデルを最終モデルとして選択し、前記最終モデルを出力すること
    を含む、方法。
  2. 前記子モデルを訓練し又は試験する計算コストを求めること、及び
    前記訓練済みの子モデルを評価するとき前記計算コストを第1の基準として使用すること
    を更に含む、請求項1に記載の方法。
  3. 前記訓練済みの子モデルに関連する損失を求めること、及び
    前記訓練済みの子モデルを評価するとき前記損失を第2の基準として使用すること
    を更に含む、請求項2に記載の方法。
  4. 前記計算コストを反映する第1の軸及び前記損失を反映する第2の軸を有するグラフ上に前記子モデルをプロットすること、及び
    前記グラフ上の前記新たな親モデルの対応する位置に少なくとも基づいて前記新たな親モデルを選択すること
    を更に含む、請求項3に記載の方法。
  5. 前記グラフ上の下側凸包又はパレートフロンティアの少なくとも1つを求めること、及び
    前記下側凸包又は前記パレートフロンティアに対する前記新たな親モデルの近接度に少なくとも基づいて前記新たな親モデルを選択すること
    を更に含む、請求項4に記載の方法。
  6. 前記選択することが、
    前記下側凸包又は前記パレートフロンティアの所定の近傍に含まれる前記訓練済みの子モデルのサブセットを識別すること、
    前記訓練済みの子モデルの前記サブセットについて個々の確率を求めること、及び
    前記個々の確率に少なくとも基づいて前記新たな親モデルを選択すること
    を含む、請求項5に記載の方法。
  7. それぞれの候補層を生成することが、
    前記それぞれの候補層の出力を受信するために前記特定の親モデルからターゲット層を選択すること、
    前記それぞれの候補層に入力を与えるために前記特定の親モデルから1つ又は複数の入力層を選択すること、及び
    前記それぞれの候補層が前記入力に対して実行すべき特定の演算を選択すること
    を含む、請求項1に記載の方法。
  8. 前記特定の演算を前記選択することが、
    演算群を定めること、及び
    前記演算群から前記特定の演算をランダムに選択すること
    を含む、請求項7に記載の方法。
  9. 前記特定の親モデルから前記ターゲット層及び少なくとも1つの入力層をランダムに選択すること
    を更に含む、請求項7に記載の方法。
  10. 前記最終モデルがニューラルネットワークである、請求項1に記載の方法。
  11. ハードウェア処理ユニットと、
    前記ハードウェア処理ユニットによって実行されるとき、
    親モデルを修正して子モデルを得ることを含む反復的モデル成長プロセスを実行することであって、前記反復的モデル成長プロセスは、候補層の初期化プロセス内で学習される重みに少なくとも基づいて前記子モデルに含める前記候補層を選択することを含む、実行すること、及び
    前記子モデルから選択される最終モデルを出力すること
    を前記ハードウェア処理ユニットに行わせるコンピュータ可読命令を記憶する記憶資源と
    を含む、システム。
  12. 前記コンピュータ可読命令は前記ハードウェア処理ユニットによって実行されるとき、
    前記親モデルへの接続性を共有し様々な演算を実行する様々な候補層を生成すること、及び
    前記様々な候補層を一緒に初期化して前記様々な候補層の様々な重みを得ること
    を前記ハードウェア処理ユニットに行わせる、請求項11に記載のシステム。
  13. 前記コンピュータ可読命令は前記ハードウェア処理ユニットによって実行されるとき、
    前記様々な候補層の前記様々な重みに少なくとも基づいて前記子モデルに含めるためのそれぞれの候補層を選択すること
    を前記ハードウェア処理ユニットに行わせる、請求項12に記載のシステム。
  14. 前記コンピュータ可読命令は前記ハードウェア処理ユニットによって実行されるとき、
    少なくとも1つの分類、機械翻訳、又はパターン認識タスク用の訓練データを使用して前記最終モデルを訓練すること、及び
    前記最終モデルを実行のために提供することであって、前記最終モデルは前記少なくとも1つの分類、機械翻訳、又はパターン認識タスクを実行するように適応されている、提供すること
    を前記ハードウェア処理ユニットに行わせる、請求項11に記載のシステム。
  15. 前記コンピュータ可読命令は前記ハードウェア処理ユニットによって実行されるとき、
    前記少なくとも1つの分類、機械翻訳、又はパターン認識タスクを実行するために前記最終モデルを実行すること
    を前記ハードウェア処理ユニットに行わせる、請求項11に記載のシステム。
JP2021525023A 2018-12-07 2019-11-01 機械学習モデルの自動生成 Active JP7478145B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/213,470 2018-12-07
US16/213,470 US11556778B2 (en) 2018-12-07 2018-12-07 Automated generation of machine learning models
PCT/US2019/059353 WO2020117411A1 (en) 2018-12-07 2019-11-01 Automated generation of machine learning models

Publications (2)

Publication Number Publication Date
JP2022510782A true JP2022510782A (ja) 2022-01-28
JP7478145B2 JP7478145B2 (ja) 2024-05-02

Family

ID=68655703

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021525023A Active JP7478145B2 (ja) 2018-12-07 2019-11-01 機械学習モデルの自動生成

Country Status (14)

Country Link
US (2) US11556778B2 (ja)
EP (1) EP3891662A1 (ja)
JP (1) JP7478145B2 (ja)
KR (1) KR20210093931A (ja)
CN (1) CN113168559A (ja)
AU (1) AU2019394750A1 (ja)
BR (1) BR112021009042A2 (ja)
CA (1) CA3119027A1 (ja)
IL (1) IL283463A (ja)
MX (1) MX2021006555A (ja)
PH (1) PH12021551336A1 (ja)
SG (1) SG11202105300TA (ja)
WO (1) WO2020117411A1 (ja)
ZA (1) ZA202103317B (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11797876B1 (en) * 2019-06-26 2023-10-24 Amazon Technologies, Inc Unified optimization for convolutional neural network model inference on integrated graphics processing units
CA3155096A1 (en) * 2019-09-25 2021-04-01 Deepmind Technologies Limited Augmenting attention-based neural networks to selectively attend to past inputs
CN110826344B (zh) * 2019-10-24 2022-03-01 北京小米智能科技有限公司 神经网络模型压缩方法、语料翻译方法及其装置
US20210125065A1 (en) * 2019-10-25 2021-04-29 Affectiva, Inc. Deep learning in situ retraining
US11688111B2 (en) * 2020-07-29 2023-06-27 International Business Machines Corporation Visualization of a model selection process in an automated model selection system
US11620582B2 (en) 2020-07-29 2023-04-04 International Business Machines Corporation Automated machine learning pipeline generation
US20220058449A1 (en) * 2020-08-20 2022-02-24 Capital One Services, Llc Systems and methods for classifying data using hierarchical classification model
US20220121922A1 (en) * 2020-10-20 2022-04-21 Deci.Ai Ltd. System and method for automated optimazation of a neural network model
CN114936631B (zh) * 2021-04-26 2023-06-09 华为技术有限公司 一种模型处理方法及装置
US20230115321A1 (en) * 2021-10-12 2023-04-13 Oracle International Corporation Fine-tuning multi-head network from a single transformer layer of pre-trained language model
KR102508886B1 (ko) * 2022-03-07 2023-03-13 주식회사 에너자이(ENERZAi) 신경망 모델 경량화 방법, 및 신경망 모델 경량화 장치
CN115293276A (zh) * 2022-08-15 2022-11-04 国网智能电网研究院有限公司 一种电网设备缺陷识别方法、装置、电子设备和存储介质
WO2024085342A1 (en) * 2022-10-21 2024-04-25 Samsung Electronics Co., Ltd. A device and a method for building a tree-form artificial intelligence model
CN116502679B (zh) * 2023-05-15 2023-09-05 之江实验室 一种模型构建方法、装置、存储介质及电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018167885A1 (ja) * 2017-03-15 2018-09-20 楽天株式会社 情報処理装置、情報処理方法、および情報処理プログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7502763B2 (en) * 2005-07-29 2009-03-10 The Florida International University Board Of Trustees Artificial neural network design and evaluation tool
EP3428856A4 (en) * 2016-03-09 2019-04-10 Sony Corporation INFORMATION PROCESSING METHOD AND INFORMATION PROCESSING DEVICE
US20180018555A1 (en) * 2016-07-15 2018-01-18 Alexander Sheung Lai Wong System and method for building artificial neural network architectures
JP6603182B2 (ja) * 2016-07-22 2019-11-06 ファナック株式会社 機械学習モデル構築装置、数値制御装置、機械学習モデル構築方法、機械学習モデル構築プログラム、及び記録媒体
DE102017125256A1 (de) * 2016-10-28 2018-05-03 Google Llc Suche nach einer neuronalen Architektur
US12014257B2 (en) * 2017-05-19 2024-06-18 Salesforce, Inc. Domain specific language for generation of recurrent neural network architectures
US10387777B2 (en) * 2017-06-28 2019-08-20 Liquid Biosciences, Inc. Iterative feature selection methods
CN111587436A (zh) * 2018-01-17 2020-08-25 昕诺飞控股有限公司 用于使用神经网络进行对象辨识的系统和方法
US10282864B1 (en) * 2018-09-17 2019-05-07 StradVision, Inc. Method and device for encoding image and testing method and testing device using the same
US20200097847A1 (en) * 2018-09-21 2020-03-26 Gloudera, lnc. Hyperparameter tuning using visual analytics in a data science platform

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018167885A1 (ja) * 2017-03-15 2018-09-20 楽天株式会社 情報処理装置、情報処理方法、および情報処理プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PRELLBERG, JONAS ほか: "Lamarckian Evolution of Convolutional Neural Networks", ARXIV[ONLINE], JPN6023040778, 21 June 2018 (2018-06-21), ISSN: 0005163402 *

Also Published As

Publication number Publication date
WO2020117411A1 (en) 2020-06-11
AU2019394750A1 (en) 2021-06-03
MX2021006555A (es) 2021-07-07
PH12021551336A1 (en) 2021-12-06
CN113168559A (zh) 2021-07-23
CA3119027A1 (en) 2020-06-11
US11556778B2 (en) 2023-01-17
US20200184327A1 (en) 2020-06-11
SG11202105300TA (en) 2021-06-29
KR20210093931A (ko) 2021-07-28
BR112021009042A2 (pt) 2021-08-10
IL283463A (en) 2021-07-29
US20230115700A1 (en) 2023-04-13
ZA202103317B (en) 2022-08-31
JP7478145B2 (ja) 2024-05-02
EP3891662A1 (en) 2021-10-13

Similar Documents

Publication Publication Date Title
JP7478145B2 (ja) 機械学習モデルの自動生成
US10909455B2 (en) Information processing apparatus using multi-layer neural network and method therefor
US20230185844A1 (en) Visually Guided Machine-learning Language Model
US11604822B2 (en) Multi-modal differential search with real-time focus adaptation
US10552737B2 (en) Artificial neural network class-based pruning
US11836610B2 (en) Concurrent training of functional subnetworks of a neural network
US20200226458A1 (en) Optimizing artificial neural network computations based on automatic determination of a batch size
JP7150651B2 (ja) ニューラルネットワークのモデル縮約装置
WO2022059024A1 (en) Methods and systems for unstructured pruning of a neural network
WO2019180314A1 (en) Artificial neural networks
US20220043681A1 (en) Memory usage prediction for machine learning and deep learning models
KR20210111677A (ko) 뉴럴 네트워크의 클리핑 방법, 뉴럴 네트워크의 컨벌루션 계산 방법 및 그 방법을 수행하기 위한 전자 장치
US10990525B2 (en) Caching data in artificial neural network computations
US11625605B2 (en) Selecting computational kernel variants using neural networks
US20240144051A1 (en) Hardware-aware generation of machine learning models
CN115461754A (zh) 深度过参数化
EP4300361A1 (en) Methods and systems for optimizing a peak memory usage of an artificial neural network graph
US20230325671A1 (en) Information processing apparatus, information processing method, and storage medium
US20210117800A1 (en) Multiple locally stored artificial neural network computations
WO2021079168A1 (en) Multiple locally stored artificial neural network computations
TW202321904A (zh) 用於人工智慧操作的分解加速之系統及方法
KR20240022957A (ko) Gnn 기반으로 그래프 데이터를 군집화하는 전자 장치 및 그의 제어 방법
EP4136584A1 (en) Modifying structure of artificial neural networks by collocating parameters
Neshatpour Acceleration of Machine Learning Algorithms for Big Data Applications
CN116868205A (zh) 经层式分析的神经网络剪枝方法和系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220921

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230809

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231002

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240325

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240419

R150 Certificate of patent or registration of utility model

Ref document number: 7478145

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150