オプティマイザーを選択するにはどうすればいいですか?この記事では、さまざまなMLプロジェクトに適したオプティマイザーを選択する方法を説明します。

オプティマイザーを選択するにはどうすればいいですか?この記事では、さまざまなMLプロジェクトに適したオプティマイザーを選択する方法を説明します。

機械学習プロジェクトに適したオプティマイザーを選択するのは簡単な作業ではありません。

オプティマイザーは、ディープラーニングの分野における重要なコンポーネントの 1 つです。ディープラーニング タスクを実行するときに異なるオプティマイザーを使用すると、まったく異なる結果が生成されます。これが、研究者たちが「不老不死の薬を精製する」ために努力を惜しまない理由の一つです。一般的な最適化アルゴリズムには、勾配降下法(BGD、SGD、MBGD のバリエーション)、Adagrad、Adam、Momentum などがあります。このような多種多様なオプティマイザーからどのように選択すればよいのでしょうか?

[[373866]]

少し前に、Lightly-ai の機械学習エンジニアである Philipp Wirth 氏が、コンピューター ビジョン、自然言語処理、機械学習でよく使用される一般的なオプティマイザーをまとめたガイドを書き、適切なオプティマイザーを選択する方法についてアドバイスしました。

具体的には、この記事では、次の 3 つの質問に基づいてオプティマイザーを選択することを提案しています。

  • 関連する研究論文を見つけて、同じオプティマイザーから始めます。
  • 表 1 を確認し、データセットの特性とさまざまなオプティマイザーの長所と短所を比較します。
  • 利用可能なリソースに応じてオプティマイザーを調整します。

導入

機械学習プロジェクトに適したオプティマイザーを選択するのは簡単な作業ではありません。 PyTorch や TensorFlow などの人気のディープラーニング ライブラリでは、さまざまなオプティマイザーの選択肢が提供されており、それぞれに長所と短所があります。さらに、不適切なオプティマイザーを選択すると、機械学習プロジェクトに重大な悪影響を与える可能性があります。このため、機械学習モデルの構築、テスト、展開のプロセスにおいて、オプティマイザーの選択は重要なステップとなります。

上の図は、モデルのパフォーマンスがオプティマイザーによって大きく異なる可能性があることを示しています。

オプティマイザーを選択する際の問題は、すべての問題を解決する単一のオプティマイザーが存在しないことです。実際には、オプティマイザーのパフォーマンスは設定に大きく依存します。したがって、基本的な質問は、「どのオプティマイザーがプロジェクトの特性に最も適しているか」です。

以下の記事は、この問題について 2 つの部分に分かれています。最初の部分では、よく使用されるオプティマイザーを簡単に紹介し、2 番目の部分では、ユーザーが機械学習プロジェクトに最適なオプティマイザーを選択できるようにするための「3 段階の選択方法」について説明します。

よく使われるオプティマイザー

ディープラーニングにおける一般的なオプティマイザーのほぼすべては、勾配降下法に基づいています。これは、与えられた損失関数 L の傾きを繰り返し推定し、パラメータを反対方向に移動する(したがって、想定されるグローバル最小値に向かって移動する)ことを意味します。このような最適化の最も単純な例は、1950 年代から使用されている確率的勾配降下法 (SGD) アルゴリズムです。 2000 年代には、AdaGrad や Adam などの適応勾配法がますます普及しました。

しかし、最近の傾向では、一部の研究では適応勾配法ではなく、以前の SGD の使用に移行していることがわかります。さらに、ディープラーニングにおける現在の課題により、LARSやLAMB[6][7]などの新しいSGDの変種が生まれています。例えば、Google Researchは最近の論文[8]でLARSを使用して強力な自己教師ありモデルをトレーニングしました。

この論文では、w はパラメータ、g は勾配、α は各オプティマイザのグローバル学習率、t は時間ステップを表します。

確率的勾配降下法(SGD)アルゴリズム

確率的勾配降下アルゴリズム (SGD) では、オプティマイザーはミニバッチに基づいて最速の勾配降下法の方向を推定し、その方向に進みます。ステップ サイズは固定されているため、SGD はすぐにプラトーまたは極小値で停滞する可能性があります。

勢いのあるSGD

ここでβ<1。運動量が与えられると、SGD は連続的に減少する方向に加速します (このため、この方法は「ヘビー ボール メソッド」と呼ばれます)。この加速により、モデルはプラトーから脱出し、局所的最小値に陥る可能性が低くなります。

アダグラッド

AdaGrad は、適応学習率をうまく活用した最初の方法の 1 つでした。 AdaGrad は、二乗勾配の合計の逆数の平方根に基づいて各パラメータの学習率をスケーリングします。このプロセスは、スパースな勾配方向を増幅し、それらの方向でのより大きな調整を可能にします。その結果、AdaGrad はスパースな特徴を持つシナリオでより速く収束します。

RMSプロップ

RMSprop は、近年過剰に使用されている未リリースのオプティマイザーです。考え方は AdaGrad に似ていますが、勾配はそれほど積極的に再スケーリングされません。つまり、勾配の二乗を合計するのではなく、勾配の二乗の移動平均が使用されます。 RMSprop はしばしばモメンタムと一緒に使用され、Rprop をミニバッチ設定に適応させたものとして理解できます。

アダム

Adam は、AdaGrad、RMSprop、および運動量法を組み合わせます。次のステップの方向は勾配の移動平均によって決定され、ステップ サイズはグローバル ステップ サイズによって制限されます。さらに、RMSprop と同様に、Adam は勾配の各次元を再スケールします。 Adam と RMSprop (または AdaGrad) の主な違いは、瞬間推定値 m と v がゼロバイアスに対して補正されることです。 Adam は、わずかなハイパーパラメータ調整だけで優れたパフォーマンスを実現できることで知られています。

アダムW

Loshchilov と Hutter は、適応勾配法における L2 正則化と重み低下の不等式を特定し、この不等式が Adam のパフォーマンスを制限するという仮説を立てました。その後、彼らは重みの減衰を学習率から切り離すことを提案しました。実験結果によると、AdamW は Adam よりも一般化性能が優れており (モメンタムを使用して SGD とのギャップを狭めている)、AdamW の場合、最適なハイパーパラメータの範囲が広くなっています。

ラース

LARS は、各レイヤーの学習率を適応させることができる SGD のモメンタム拡張です。 LARS は最近、研究コミュニティで注目を集めています。これは利用可能なデータが着実に増加しているためであり、機械学習の分散トレーニングがますます普及しつつあります。これによりバッチ サイズは大きくなり始めましたが、トレーニングが不安定になりました。一部の研究者 (Yang ら) は、これらの不安定性は、一部のレイヤーにおける勾配メトリックと重みメトリックの不均衡から生じると考えています。そこで彼らは、「信頼」パラメータ η<1 とその層の勾配の逆ノルムに基づいて各層の学習率を再調整する最適化装置を提案しました。

適切なオプティマイザーを選択するにはどうすればよいでしょうか?

前述のように、機械学習の問題に対して適切なオプティマイザーを選択することは非常に困難です。より具体的に言えば、万能のソリューションは存在せず、特定の問題に基づいて適切なオプティマイザーを選択することしかできません。しかし、最適化を選択する前に、次の3 つの質問を自問する必要があります。

  • 同様のデータセットとタスクの SOTA 結果は何ですか?
  • どのオプティマイザーが使用されていますか?
  • これらのオプティマイザーを使用する理由は何ですか?

新しいタイプの機械学習手法を使用している場合は、おそらく同様の問題を扱っていたり、同様のデータで作業したりする優れた論文が 1 つ以上あるはずです。通常、論文の著者は広範囲にわたる相互検証を実行し、最も成功した構成を提示します。読者は、なぜそれらのオプティマイザーが選択されたのかを理解しようとすることができます。

たとえば、画像セットに対して超解像処理を実行するために、生成的敵対的ネットワーク (GAN) をトレーニングするとします。少し調べてみると、研究者がAdamオプティマイザーを使ってまったく同じ問題を解決した論文[12]に偶然出会いました。 Wilsonら[2]は、GANのトレーニングは最適化問題に焦点を当てるべきではなく、Adamはこの目的に適している可能性があると主張しています。したがって、この場合は Adam が適切なオプティマイザーの選択肢となります。

また、データセットには、特定のオプティマイザーの利点を活用できる特性がありますか?もしそうなら、オプティマイザーの選択を考慮する必要があります。

以下の表 1 は、いくつかのオプティマイザーの利点と欠点をまとめたものです。読者は、データセット、トレーニング設定、およびプロジェクト目標の特性に一致するオプティマイザーを見つけるために実験を行うことができます。一部のオプティマイザーは、スパースな特徴を持つデータに対して優れたパフォーマンスを発揮しますが、他のオプティマイザーは、モデルをこれまでに見たことのないデータに適用すると、より優れたパフォーマンスを発揮する場合があります。一部のオプティマイザーは大きな数値でうまく機能しますが、他のオプティマイザーはうまく一般化せずに小さな最小値に収束します。

たとえば、ユーザーからのフィードバックを肯定的なフィードバックと否定的なフィードバックに分類する必要がある場合は、機械学習モデルの入力機能として bag-of-words を使用することを検討してください。これらの特徴は非常にまばらである可能性があるため、適応勾配アプローチを使用することが決定されました。しかし、どのオプティマイザーを選択すればよいのでしょうか?上記の表 1 を参照すると、AdaGrad は適応勾配法の中で調整可能なパラメータが最も少ないことがわかります。プロジェクトの時間が限られている場合は、AdaGrad をオプティマイザーとして選択できます。

検討すべき最後の質問:このプロジェクトに利用できるリソースは何ですか?プロジェクトで利用可能なリソースも、オプティマイザーの選択に影響します。コンピューティングやメモリの制限、プロジェクトの時間枠は、オプティマイザーの選択に影響を与える可能性があります。

上記の表 1 に示すように、各オプティマイザーには異なるメモリ要件と調整可能なパラメータの数があることがわかります。この情報は、プロジェクト設定がオプティマイザーに必要なリソースをサポートできるかどうかを見積もるのに役立ちます。

たとえば、空き時間にプロジェクトに取り組んでいて、自宅のコンピューター上の画像データセットで自己教師ありモデル (SimCLR など) をトレーニングしたいとします。 SimCLR のようなモデルの場合、バッチ サイズが大きくなるにつれてパフォーマンスが向上します。したがって、大きなバッチでトレーニングできるように、できるだけ多くのメモリを節約する必要があります。他のオプティマイザーと比較して状態を保存するために必要な追加メモリが最小限であるため、モメンタムのない単純な確率的勾配降下法がオプティマイザーとして選択されました。

<<:  人工知能への恐怖現象を探る

>>:  2020 年の最後の 1 か月間に発生した 1,694 件の AI インシデントを包括的にレビューします。ハイライトは何ですか?

ブログ    

推薦する

...

避けるべきよくあるコーディングミス

人は誰でも間違いを犯す。しかし、開発者が犯す間違いの多くは回避可能です。この記事で説明した一般的な間...

悪いことを学ぶのは簡単ですが、良いことを学ぶのは難しいです!人工知能は人間の人種や性別の偏見を継承する

編集者注: サンスティーンは『インターネット共和国』でアルゴリズムが私たちの認知世界に影響を与えると...

...

北京地下鉄は顔認識技術を使用して機密のセキュリティチェックを実施する予定

[[280913]] Jiwei.comニュース(文/Jimmy)によると、北京軌道交通指揮センター...

...

...

iQIYI CTO 唐星氏:AIはビデオプロセス全体にわたって実行され、理解と意思決定を開発する必要がある

[51CTO.com からのオリジナル記事] 歴史が示しているように、コンテンツの各形態は多数のイン...

人工知能における非構造化データの役割

人工知能 (AI) システムは人間に似た方法でやり取りするため、一部の人は不安に思うかもしれませんが...

大規模モデルの推論速度が 3.6 倍に向上しました。「Medusa」の論文はこちらです。Jia Yangqing: 最もエレガントな加速推論ソリューションの 1 つ

ご存知のとおり、大規模言語モデル (LLM) の動作ロジックでは、サイズが大きくなるにつれて言語生成...

GPT-4 抽象推論 PK 人間のギャップは大きいです!マルチモーダル性はプレーンテキストに比べてはるかに劣っており、AGIの火花を単独で燃やすことは困難である

GPT-4 はおそらく現在利用可能な最も強力な一般言語モデルです。リリースされると、さまざまなタスク...

オペレーティング システムに関して、一般的に使用されているスケジューリング アルゴリズムをいくつ知っていますか?

オペレーティング システムには多くのスケジューリング アルゴリズムがあり、ジョブ スケジューリングに...

さまざまな分野とフレームワーク、これはディープラーニングモデルの超完全なGitHubコレクションです

研究者や開発者は常に GitHub リポジトリで興味深いプロジェクトや実装を検索してきましたが、特定...

注釈付きビデオの 1 フレームでセグメント機能を学習し、完全な監視パフォーマンスを実現できます。 Huake、時系列行動検出における新たなSOTAを達成

ビデオ内の興味深い部分を見つけるにはどうすればいいですか?時間的アクションローカリゼーション (TA...