1.Model Search:最適なMLモデルを見つけるためのオープンソースプラットフォーム(1/2)まとめ
・うまく一般化できるニューラルネットワークを設計することは現在も困難な課題
・AutoMLアルゴリズムはこの課題の助力となるが計算量が多く転移が難しい
・Model Searchは基本的なコンポーネントではなく構造を探索するためより効率的
2.Model Searchとは?
以下、ai.googleblog.comより「Introducing Model Search: An Open Source Platform for Finding Optimal ML Models」の意訳です。元記事の投稿は2021年2月19日、Hanna MazzawiさんとXavi Gonzalvoさんによる投稿です。
自環境で動かせるAutoMLのオープンソース版のようなものでしょうか?動かしてみたいなと思ったのですが、AutoMLはCPU500基で動かしていたと思ったので必要スペックが書かれていないとちょっと躊躇してしまいますね。
アイキャッチ画像のクレジットはPhoto by Fred Moon on Unsplash
ニューラルネットワーク(NN:Neural Network)の成功は、多くの場合、様々なタスクにどれだけうまく一般化できるかにかかっています。ただし、ニューラルネットワークがどのように一般化されるかについての研究コミュニティの理解は現在いくらか制限されているため、うまく一般化できるNNを設計することは困難です。
特定の問題に対して適切なニューラルネットワークはどのようなものなのでしょうか?
どれくらいネットワークを深くするべきでしょうか?
どのタイプのレイヤーを使用する必要がありますか?
LSTMで十分でしょうか?
それともTransformerレイヤーの方が優れているでしょうか?
それとも2つを組み合わせるべきですか?
アンサンブル(Ensemble、複数のニューラルネットワークの出力をまとめて1つのニューラルネットワークのように扱う手法)または蒸留(distillation、巨大で複雑なニューラルネットワークの入出力を使ってより小さくシンプルなニューラルネットワークを学習させる事)はパフォーマンスを向上させますか?
これらの扱いにくい質問は、他の研究領域よりも優れた直感と深い理解が存在する可能性のある機械学習(ML)領域で検討する場合、更に困難になります。
近年、AutoMLアルゴリズムが登場しました。これは、研究者が手動で試行錯誤せずとも適切なニューラルネットワークを自動的に見つけるのに役立ちます。
ニューラルアーキテクチャ探索(NAS:Neural Architecture Search)などの手法では、強化学習(RL:Reinforcement Learning)、進化的アルゴリズム(evolutionary algorithms)、組み合わせ検索(combinatorial search)などのアルゴリズムを使用して、特定の探索空間からニューラルネットワークを構築します。
適切な設定により、これらの手法は、手動で設計された手法よりも優れた結果を提供できる事が実証されています。しかし、多くの場合、これらのアルゴリズムは計算量が多く、最終的な結果を得る前に何千ものモデルをトレーニングする事が必要です。更に、彼らは研究領域に固有であったり、実質的に従来からある人間の知識を組み込んだ探索スペースを探索するために他の領域にうまく転移できない場合があります。
例として、画像分類では、従来のNASは2つの優れたビルディングブロック(畳み込みブロックとダウンサンプリングブロック)を用いて、従来の規則に従って完全なネットワークを作成します。
これらの欠点を克服し、AutoMLソリューションへのアクセスをより広範な研究コミュニティに拡大するために、研究者が最高のMLモデルを効率的かつ自動的に開発するのに役立つプラットフォームであるModel Searchのオープンソースリリースを発表できることを嬉しく思います。
Model Searchは、特定の研究領域に焦点を合わせる代わりに、研究領域にとらわれず、柔軟性があり、コーディングの時間、労力、および計算リソースを最小限に抑えながら、特定のデータセットと問題に最適な適切なアーキテクチャを見つける事ができます。Tensorflowに基づいて構築されており、単一のマシンまたは分散環境で実行できます。
Model Searchの概要
Model Searchシステムは、複数のトレーナー、探索アルゴリズム、転移学習アルゴリズム、および様々な評価済みモデルを格納するためのデータベースで構成されています。
このシステムは、さまざまなMLモデル(様々なアーキテクチャとトレーニング手法)のトレーニングと評価の両方の実験を、適応的(adaptive:途中で計画の一部を変更できるような設計)でありながら非同期的に実行できます。
各トレーナーは独立して実験を行いますが、全てのトレーナーは実験から得た知識を共有します。全てのサイクルの開始時に、探索アルゴリズムは完了したすべての試行を検索し、ビーム検索を使用して次に何を試行するかを決定します。次に、これまでに見つかった最高のアーキテクチャの1つを変異させ、そのモデルをトレーナーに割り当てます。
分散検索とアンサンブルで説明するModel Searcの概略図
各トレーナーは独立して実行され、特定のモデルをトレーニングおよび評価します。結果は保存され、検索アルゴリズムと共有されます。次に、検索アルゴリズムは、最良のアーキテクチャの1つを変異させ、次の反復のために新しいモデルをトレーナーに送り返します。Sはトレーニングと検証の例のセットであり、Aはトレーニングと検索中に使用されるすべての候補です。
システムは、事前定義されたブロックのセットからニューラルネットワークモデルを構築します。各ブロックは、LSTM、ResNet、Transformerレイヤーなどの既知のマイクロアーキテクチャを表します。Model Searchは、既存のアーキテクチャコンポーネントのブロックを使用することで、研究領域全体に関するNAS研究から得られた既存の最高の知識を活用できます。このアプローチは、より基本的で詳細なコンポーネントではなく構造を探索するため、より効率的であり、したがって検索スペースの規模が縮小されます。
うまく機能するニューラルネットワークマイクロアーキテクチャブロック(ResNetブロックなど)
3.Model Search:最適なMLモデルを見つけるためのオープンソースプラットフォーム(1/2)関連リンク
1)ai.googleblog.com
Introducing Model Search: An Open Source Platform for Finding Optimal ML Models
2)github.com
google / model_search