すべてのAIエンジニアが知っておくべきディープラーニングのオプティマイザーの種類
公開: 2020-12-01目次
序章
ディープラーニングは、柔軟性、高精度、および業界アプリケーションでの幅広い可能性の点で、機械学習を大幅に上回っています。 チャットアプリケーション、文法の自動修正、さまざまな言語間の翻訳、フェイクニュースの検出、初期の文言に基づく自動ストーリー作成など、ディープラーニングはほぼすべての分野で使用されています。
これだけ多くの使用法があるため、これらのアルゴリズムを最小限のリソースで実行することが重要になります。これにより、繰り返し発生するコストを削減し、より短い時間で効率的な結果を提供できます。 オプティマイザーは、さまざまなパラメーターを更新するための方法またはアルゴリズムであり、はるかに少ない労力で損失を減らすことができます。 許容できる結果をもたらす人気のあるディープラーニングオプティマイザーを見てみましょう。
世界のトップ大学からAIMLコースを学びましょう。 マスター、エグゼクティブPGP、または高度な証明書プログラムを取得して、キャリアを迅速に追跡します。
最急降下法(GD)
これは、損失関数と学習率の導関数を直接使用して損失を減らし、最小値を達成する最も基本的なオプティマイザーです。 このアプローチは、最小損失がいつ達成されるかに応じて、更新されたパラメータが異なるレイヤ間で共有されるニューラルネットワークのバックプロパゲーションでも採用されます。 結果の実装と解釈は簡単ですが、さまざまな問題があります。
データセットの勾配全体が計算されると重みが更新されるため、プロセスが遅くなります。 また、この一時データを格納するために大量のメモリが必要になるため、リソースを大量に消費するプロセスになります。 このアルゴリズムの背後にある考え方は非常に適していますが、微調整する必要があります。
確率的勾配降下法
これはGDメソッドの変更バージョンであり、モデルパラメータは反復ごとに更新されます。 これは、すべてのトレーニングサンプルの後に、損失関数がテストされ、モデルが更新されることを意味します。 これらの頻繁な更新により、短時間で最小値に収束しますが、分散が増加するという犠牲を払って、モデルが必要な位置をオーバーシュートする可能性があります。

ただし、この手法の利点は、損失関数の以前の値を保存する必要がないため、以前の手法と比較してメモリ要件が低いことです。
ミニバッチ最急降下法
このGDアプローチのもう1つのバリエーションは、ミニバッチです。この場合、モデルパラメーターは小さなバッチサイズで更新されます。 これは、nバッチごとにモデルパラメータが更新されることを意味します。これにより、モデルが頻繁に脱線することなく、より少ないステップで最小値に向かって進むことが保証されます。 これにより、メモリ使用量が少なくなり、モデルの分散が少なくなります。
読む:機械学習プロジェクトのアイデア
運動量ベースの最急降下法
パラメータを更新するために使用している方法をもう一度見てみましょう。 損失関数の一次導関数に基づいて、勾配を逆伝播します。 更新の頻度は、すべての反復後、バッチ後、または最後の場合がありますが、パラメーターに更新がいくつあるかは考慮していません。
この履歴要素が次の更新に含まれている場合、プロセス全体を高速化できます。これが、このオプティマイザーでの勢いの意味です。 この歴史的要素は、私たちの心が物事を記憶する方法のようなものです。 あなたが通りを歩いていて、あなたがかなり長い距離をカバーしているなら、あなたはあなたの目的地がある程度先にあることを確信するでしょう、そしてあなたはあなたの速度を上げるでしょう。
この要素は、以前の値、学習率、およびこの履歴の更新を制御するガンマと呼ばれる新しいパラメーターに依存します。 更新ルールは、w = w – vのようになります。ここで、vは履歴要素です。
Nesterov Accelerated Gradient(NAG)
運動量ベースのGDは、最短で最小値に収束することにより、現在使用されているオプティマイザーを後押ししましたが、新しい問題が発生しました。 この方法では、多くのUターンが必要であり、最小の谷で振動して出入りし、合計時間が長くなります。 所要時間はまだ通常のGDよりもはるかに短いですが、この問題も修正が必要であり、これはNAGで行われます。

ここで従ったアプローチは、最初に履歴要素を使用してパラメーターの更新が行われ、次にそれを順方向または逆方向に移動できる導関数のみが計算されるというものでした。 これは先読みアプローチと呼ばれ、曲線が最小値に近づくと、導関数がゆっくりと移動するため、振動が少なくなり、時間を節約できるため、より理にかなっています。
また読む:知っておくべきディープラーニングのテクニック
アダグラード
これまでは、モデルパラメータがトレーニングにどのように影響するかにのみ焦点を当てていますが、トレーニング全体で一定の値が割り当てられるハイパーパラメータについては説明していません。 そのような重要なハイパーパラメータの1つは学習率であり、これを変えるとトレーニングのペースが変わる可能性があります。
ほとんどの値がゼロであるスパースフィーチャ入力の場合、これらのスパースフィーチャから生じる死にかけている勾配を後押しする、より高い学習率を提供できます。 データが密集していると、学習が遅くなる可能性があります。
これに対する解決策は、提供された入力に応じて変化する可能性のある適応学習率を持つことです。 Adagradオプティマイザーは、勾配の更新された履歴に比例して学習率を減衰させることにより、この適応性を提供しようとします。
これは、より大きな更新がある場合、履歴要素が蓄積されるため、学習率が低下し、その逆も同様であることを意味します。 このアプローチの欠点の1つは、学習率が急激に低下し、しばらくするとゼロに近づくことです。
RMSProp
これは、Adagradオプティマイザーの改善です。 これは、勾配の二乗の累積合計ではなく、勾配の指数平均を取ることにより、学習率の攻撃性を減らすことを目的としています。 更新が少ない条件では指数平均がより大きな学習率を罰し、より多くの更新でより小さな率を罰するため、適応学習率はそのまま残ります。
アダム
適応モーメント推定は、RMSProp(二乗平均平方根プロップ)と運動量ベースのGDの能力を組み合わせたものです。 Adamオプティマイザーでは、更新の履歴を保持する勢いGDの能力と、RMSPropによって提供される適応学習率により、Adamオプティマイザーは強力な方法になります。 また、2つの新しいハイパーパラメータbeta1とbeta2が導入されています。これらは通常、約0.9と0.99に保たれていますが、ユースケースに応じて変更できます。

必読:ディープラーニングの正則化
結論
この記事では、8つのディープラーニングオプティマイザーを使いやすさの順に見ていき、あるオプティマイザーの制限が次のオプティマイザーによってどのように克服されるかなどを説明しました。 ここで説明したオプティマイザーにはさらに多くの変更がありますが、これらは複雑なソリューションを選択する前に検討する必要がある基本的なものです。
これらの中から勝者を選ぶことは、ユースケースとあなたが扱っている問題に非常に主観的ですが、モデルパラメータの更新方法を変更した勢いの概念との組み合わせと変更の適応により、AdamOptimizerを確実にトップにランク付けできますさまざまなシナリオの学習率により、あらゆるタイプの入力の効率的な処理が可能になります。
一般的な傾向は、同じ損失に対して、これらのオプティマイザーが異なる極小値に収束することを示しています。 アダプティブラーニングオプティマイザーはより鋭い最小値に収束しますが、他のタイプの手法はより平坦な最小値に収束します。これは一般化に適しています。 ディープニューラルネットワークが大きくなるにつれて、良好な結果を得るにはより効率的な方法が必要になるため、これらの手法はある程度しか役立ちません。
機械学習とAIをマスターしたい場合は、IIIT-Bとリバプールジョンムーア大学の機械学習とAIの科学のマスターでキャリアを向上させてください。
オプティマイザーはどのようにディープラーニングを機能させますか?
現時点ではニューラルネットワークはすべて誇大宣伝ですが、オプティマイザーはニューラルネットワークの学習にとってはるかに基本的なものです。 ニューラルネットワークは、事前の知識がなくても自分で学習できますが、オプティマイザーはニューラルネットワークで実行されるプログラムであり、はるかに高速に学習できます。 つまり、ニューラルネットワークのパラメータを変更して、そのニューラルネットワークを使用したトレーニングをはるかに迅速かつ簡単にすることでこれを実現します。 これらのオプティマイザーは、ニューラルネットワークがリアルタイムで機能することを可能にするものであり、トレーニングは数分しかかかりません。 それらがなければ、トレーニングは簡単に数日かかります。
深層学習アルゴリズムを最適化するのが難しいのはなぜですか?
深層学習システムは、大きくて複雑であり、多くの場合、複数の層と非線形性を伴うため、一般的に最適化が難しいと考えられています。 オプティマイザーは、理解しにくい巨大なシステムを処理する必要があります。 一部の深層学習ツールは、調整できるパラメーターの数が限られているため、その有用性が制限されます。 ただし、深層学習モデルを最適化し、その一般化を改善するための効果的な方法がいくつかあります。
ディープラーニングのさまざまなオプティマイザーとは何ですか?
深層学習では、オプティマイザーを使用してモデルのパラメーターを調整します。 オプティマイザーの目的は、損失関数を最大化するようにモデルの重みを調整することです。 損失関数は、モデルのパフォーマンスを測定する方法として使用されます。 ニューラルネットワークモデルをトレーニングするときは、オプティマイザーを使用する必要があります。 深層学習モデルで使用できるさまざまなオプティマイザーがあります。 最も人気のあるオプティマイザーには、RMSprop、momentum、Adamがあります。