Googleがより効率的にモデルを探索できる「Model Search」を公開!

Googleがより効率的にモデルを探索できる「Model Search」を公開!

はじめに
 Googleがより効率的にモデルの探索ができるModel Searchを公開しました。ニューラルネットワークの適切な構造をすばやく探索することができます。

概要

 ニューラルネットワークモデルは有用ですが、タスクに応じた一般化が難しいとされています。加えて、機械学習分野を検討する場合、さらに適切なモデルの構築が困難になります。ニューラルアーキテクチャ検索(NAS)や、組み合わせ探索などの与えられた探索空間から適切なアーキテクチャを見つける手法はある程度有効に機能しまが、計算量が多いこと、また個人が保有するドメイン固有の知識を利用しているという問題があります。
 今回、Googleはより広範に利用できるAutoMLへのオープンソース「Model Search」を発表しました。

Model Search

 Model Search システムは、複数のトレーナー、検索アルゴリズム、転移学習アルゴリズム、およびさまざまな評価済みモデルを格納するためのデータベースで構成されています。このシステムは、さまざまなMLモデル(さまざまなアーキテクチャとトレーニング手法)のトレーニングと評価の両方を、適応的でありながら非同期的に実行します。各トレーナーは独立して実験を行いますが、すべてのトレーナーは実験から得た知識を共有します。すべてのサイクルの開始時に、検索アルゴリズムは完了したすべての試行を検索し、ビーム検索を使用して次に何を試行するかを決定します。次に、これまでに見つかった最高のアーキテクチャの1つでミューテーションを呼び出し、結果のモデルをトレーナーに割り当てます。

ブロック

 システムは、事前定義されたブロックのセットからニューラルネットワークモデルを構築します。(各ブロックは、 LSTM、ResNet、Transformerレイヤーなどの既知のマイクロアーキテクチャを表します。)既存のアーキテクチャコンポーネントのブロックを使用することで、ドメイン全体のNAS研究から得られた既存の最高の知識を活用できます。このアプローチは、基本的な構造を探索するため、効率的に探索空間を削減することができます。

実装 

 Model Search フレームワークはTensorflowに基づいて構築されているため、ブロックはテンソルを入力として受け取る任意の関数を実装できます。たとえば、マイクロアーキテクチャの選択で構築された新しい検索スペースを導入したいとします。フレームワークは、新しく定義されたブロックを取得して検索プロセスに組み込み、アルゴリズムが提供されたコンポーネントから可能な限り最高のニューラルネットワークを構築できるようにします。提供されるブロックは、対象の問題に対して機能することがすでに知られている完全に定義されたニューラルネットワークにすることもできます。その場合、Model Searchは、強力なアンサンブルマシンとして機能するように構成できます。

検索アルゴリズム

 Model Searchに実装されている検索アルゴリズムは、RLアルゴリズムよりも速く収束します。ただし、適切な候補の検索を分離し(探索ステップ)、発見された優れた候補をアンサンブルすることで精度を高めることで(探索ステップ)、RLアルゴリズムの「探索と活用」の性質を模倣します。メインの検索アルゴリズムは、アーキテクチャまたはトレーニング手法にランダムな変更を適用した後(たとえば、アーキテクチャをより深くする)、実行中の上位k個の実験(kはユーザーが指定できます)の1つを適応的に変更します。


 

転移学習

 効率と精度をさらに向上させるために、さまざまな内部実験間で転移学習が有効になっています。モデル検索は、知識の蒸留または重みの共有という2つの方法でこれを行います。知識の蒸留により、グラウンドトゥルースに加えて、高性能モデルの予測に一致する損失項を追加することにより、候補者の精度を向上させることができます。一方、重み共有は、以前にトレーニングされたモデルから適切な重みをコピーし、残りのモデルをランダムに初期化することにより、以前にトレーニングされた候補からネットワーク内のパラメーターの一部を(突然変異を適用した後)ブートストラップします。これにより、より迅速なトレーニングが可能になり、より多くの(そしてより良い)アーキテクチャを発見する機会が得られます。

実験結果

 Model Searchは、最小限の反復で本番モデルを改善できることが示されました。

 また、Model Searchを適用して、徹底的に調査されたCIFAR-10画像データセットの画像分類に適したアーキテクチャを見つけました。畳み込み、resnetブロック(つまり、2つの畳み込みとスキップ接続)、NAS-Aセル、完全に接続されたレイヤーなどを含む一連の既知の畳み込みブロックを使用して、91.83のベンチマーク精度にすばやく到達できることが確認されました。

まとめ
 タスクに応じて有効なモデルの構造を予想するのは、現在ある程度経験に基づいた知識となっています。Model Searchのようなものが普及し、有効性がますことでAIの民主化が促進されるきっかけになることが期待されます。