回答:
いいえ。勾配降下は、ステップ移動の基礎として勾配を使用する最適化アルゴリズムで使用されます。Adam
、Adagrad
、およびRMSProp
すべてしかし、彼らは構成しない、勾配降下のいくつかのフォームを使用するすべてのオプティマイザを。Particle Swarm OptimizationやGenetic Algorithmsなどの進化的アルゴリズムは、勾配を使用しない自然現象に触発されています。Bayesian Optimizationなどの他のアルゴリズムは、統計からインスピレーションを得ます。
進化的最適化と勾配ベースの最適化の概念を組み合わせたアルゴリズムもいくつかあります。
非導関数ベースの最適化アルゴリズムは、不規則な非凸コスト関数、微分不可能なコスト関数、または異なる左または右導関数を持つコスト関数で特に役立ちます。
非導関数ベースの最適化アルゴリズムを選択する理由を理解するため。Rastriginベンチマーク関数を見てください。勾配ベースの最適化は、極小値が非常に多い関数の最適化にはあまり適していません。
タイトルによると:
いいえ。特定のタイプのオプティマイザーのみがGradient Descentに基づいています。簡単な反例は、最適化が勾配が定義されていない離散空間に対して行われる場合です。
体によると:
はい。Adam、Adagrad、RMSProp、およびその他の同様のオプティマイザー(Nesterov 、Nadam など)はすべて、パフォーマンスを犠牲にすることなく収束速度を改善するために、勾配降下の適応ステップサイズ(学習率)を提案しようとしています最大)。
また、損失関数の2次導関数で機能するニュートン法、および同様の準ニュートン法があります(勾配降下は1次導関数で機能します)。これらの方法では、実際の問題におけるモデルパラメーターの数が多いため、勾配降下に対する速度とスケーラビリティのトレードオフが失われています。
いくつかの追加のメモ
損失関数の形状はモデルパラメーターとデータの両方に依存するため、最適な方法を選択することは常にタスクに依存し、試行錯誤が必要です。
勾配降下の確率的部分は、完全なデータではなくデータのバッチを使用して実現されます。この手法は、前述のすべての方法と並行しています。つまり、それらはすべて確率的(データのバッチを使用)または決定論的(データ全体を使用)にすることができます。
質問に対する答えはノーかもしれません。その理由は、使用可能な多数の最適化アルゴリズムによるものですが、最適化アルゴリズムの選択は、コンテキストと最適化の時間に大きく依存します。たとえば、遺伝的アルゴリズムはよく知られた最適化アプローチであり、内部に勾配降下はありません。コンテキストによっては、バックトラックのような他のアプローチもあります。勾配降下を段階的に活用しないすべてを使用できます。
一方、回帰のようなタスクの場合、極値を見つけるために問題を解くための近似形式を見つけることができますが、ポイントは特徴空間と入力の数に応じて、近似形式の方程式または勾配を選択できることです計算数を減らすために降下します。
最適化アルゴリズムは非常に多くありますが、ニューラルネットワークでは、複数の理由により勾配降下ベースのアプローチがより多く使用されます。まず第一に、彼らは非常に高速です。深層学習では、メモリに同時にロードできないほど多くのデータを提供する必要があります。したがって、最適化のためにバッチ勾配法を適用する必要があります。それは少し統計的なものですが、ネットワークに持ち込む各サンプルは実際のデータとほぼ同様の分布を持つことができ、コスト関数の実際の勾配に近い勾配を見つけるのに十分な代表であると考えることができます手元のすべてのデータを使用して構築されます。
第三に、必ずしも厳密な形式の解決策とは限らない最適化の問題があります。ロジスティック回帰はその1つです。
ニューラルネットワークで使用されるオプティマイザーを選択しましたが、これらのオプティマイザーは勾配ベースのアルゴリズムを使用します。ほとんどの場合、勾配ベースのアルゴリズムはニューラルネットワークで使用されます。何故ですか?さて、あなたは曲線の傾きを知っているか、それを知らずに最小値を見つけようとすることを好むでしょうか?勾配を計算できない場合は、微分なしの最適化に戻ります。そうは言っても、勾配についての情報を持っている場合でも、勾配のない方法を使用した方が良い場合があります。これは通常、極小値が多い関数の場合です。ここでは、進化戦略や遺伝的アルゴリズムなどの人口ベースのアルゴリズムが優勢です。また、まったく異なるツールセットが使用される組み合わせ最適化のブランチもあります。