コンテンツに移動
AI & 機械学習

Vertex Vizier のハイパーパラメータ調整が ML モデルを改善する 5 つの方法

2021年6月17日
https://storage.googleapis.com/gweb-cloudblog-publish/images/networking_nedNYmJ.max-2600x2600.jpg
Google Cloud Japan Team

※この投稿は米国時間 2021 年 6 月 4 日に、Google Cloud blog に投稿されたものの抄訳です。

Google が最近公開した Vertex AI を使用すると、機械学習(ML)をテストから本番環境へ迅速に移行し、モデルを確実に管理できるようになり、組織がより良い成果を上げるスピードが加速します。

しかし、多くの方は ML に取り組み始めたばかりで、実際に取り組むにはさまざまな知識が必要なのではないでしょうか。当チームは、Vertex AI プラットフォームの構築と並行して、ベスト プラクティスを紹介するコンテンツをできるだけ公開し、皆様に最新の情報をお伝えしています。また、6 月 10 日には ML に特化したイベント、Applied ML Summit を開催いたします。イベントでは、ML 技術をプロジェクトに応用する方法や、ML 分野のスキルアップを図る方法に関するセッションを行います。

同時に、ハイパーパラメータ調整に関する簡単なアドバイスを公開してきました。ハイパーパラメータ調整は(a)きわめて効果的な機能で(b)自信を持ってチームに取り入れることができ(c)この分野で培った Google Cloud 独自の技術により(d)良質の ML モデルを本番環境に迅速に移行できるため作業時間を短縮できます。Vertex Vizier は、従来の方法に比べて平均して 80% 以上少ないトライアル数で、複雑な関数に対して最適なパラメータを見つけます。

その効果的な機能とは

機械学習モデルはデータを自動的に学習しますが、学習プロセスの指針を示す、ユーザー定義のノブを引き続き必要とします。一般的にハイパーパラメータと呼ばれるこうしたノブは、たとえばトレーニングの精度と汎用度との間のトレードオフを制御します。ハイパーパラメータの例としては、使用するオプティマイザー学習率正則化パラメータDNN の隠れ層の数とサイズなどがあります。

特定のデータセットでハイパーパラメータに適切な値を設定すると、モデルの品質が大きく向上します。通常、ハイパーパラメータの最適値を見つけるには、少数の組み合わせをグリッド検索するか、かなりの時間をかけて手動で設定を調整します。ハイパーパラメータ調整はこの作業を引き受けて自動化し、最適なモデル性能を得るために適切なハイパーパラメータの構成を探し出します。

Vertex Vizier がハイパーパラメータ調整を自動化する方法

  1. 「従来の」ハイパーパラメータ調整: この方法では、単一の目的指標である ML モデルの出力を比較して、ハイパーパラメータの最適値を見つけます。たとえば、Vizier はモデルの精度を最大限に引き出せるように、隠れ層の数とサイズ、オプティマイザーと学習率を選択します。

  2. ハイパーパラメータを評価したら、データセットを分割したサブセットをもとにモデルのトレーニングと評価を行います。モデルのトレーニング時に評価指標が Vizier にストリーミングされる場合(例: エポックの関数として)、Vizier の早期停止アルゴリズムが最終の目標値を予測し、成功の見込みがないため早めに終了するべきトライアルを返します。早期停止によってコンピューティング リソースを節約し、収束が早くなります。

  3. 異なるデータセットで連続してモデルを調整することがよくあります。Vizier に組み込まれた転移学習により、過去のハイパーパラメータ調整のスタディから得た学習済みモデルを利用し、その後に行うハイパーパラメータ調整のスタディで迅速に収束させることができます。

  4. AutoML は 1 つ目の方法の一種で、Vertex Vizier は両方のモデル選択を行うのに加え、アーキテクチャまたはそれ以外を変更するハイパーパラメータを調整します。データをインジェストする場合など、AutoML では通常 Vertex Vizier に加えてより多くのコードを必要としますが、ほとんどの場合において Vizier がプロセスの「中心的な役割」を果たします。AutoML を実装するには、1 つ目の方法のように「階層構造でない」検索スペースではなく、ツリー構造の検索スペース(DAG)を定義します。その他の目的でも、階層化されたスペースの検索が適切と考えられる場合は、DAG の検索スペースを使用できます。

  5. 複数の指標を最適化したいこともあります。たとえば、モデルのレイテンシを最小限に抑えながら、モデルの精度を最適化したいとします。Vizier は複数の指標間のトレードオフを示すパレート最適解を見つけ、ユーザーが適切なトレードオフを選べるようにします。簡単な例としては、精度の高いモデルを作成したいが、処理のレイテンシは最小限に抑えたい場合があります。この 2 つの指標間のトレードオフの状況は前もってわかりません。Vizier を使用するとトレードオフ曲線を調査して表示できるため、ユーザーは最適なトレードオフを選択できます。たとえば、「レイテンシが 200 ミリ秒減少すると精度が 0.5% だけ下がる」といった選択が可能です。

Vertex AI で Google Vizier をフル活用

Google は、2017 年に発表した Vizier に関する研究論文で、ブラックボックス最適化サービスについての研究成果とユースケースを紹介しました。ブラックボックス最適化とは、システム内部のパラメータつまりノブの動作状態を確認できない状況で、多数のノブの最適な設定を見つけるプロセスのことです。この論文では、要求仕様、インフラストラクチャの設計、基盤となるアルゴリズム、サービスで利用できる転移学習などの高度な機能について説明しています。Vizier は、Google における機械学習の推進において重要な存在となっています。そのため、皆様に Vertex AI 上で Vizier をご利用いただけることを大変うれしく思います。

Google 社内では、Vizier によってすでに数百万もの ML モデルがチューニングされています。そのアルゴリズムは、収束を高速化し、現実のエッジケースに対処できるように絶えず改良が重ねられています。Vertex Vizier のモデルは効果的に調整され、自己調整(ユーザーデータへの適合)を行います。また、階層化された検索スペースや複数の目標の最適化など、独自の強力な機能を備えています。Vertex Vizier の一連の機能は Google Cloud ならではの特長であると自負しています。自動化されたハイパーパラメータ調整によるモデル品質の最適化をぜひお試しください。

Vertex Vizier について詳しくは、こちらのドキュメントをご覧ください。また、今後 5 年間の機械学習の動向について詳しく知りたい方は、6 月 10 日に開催される Applied ML Summit をご覧ください。セッションはお時間のあるときにオンデマンドでもご視聴いただけます。

-ML リサーチ エンジニア Sagi Perel

投稿先