タグ付けされた質問 「gradient-descent」

勾配降下法は、1次の反復最適化アルゴリズムです。勾配降下法を使用して関数の極小値を見つけるには、現在の点での関数の勾配(または近似勾配)の負に比例するステップを実行します。確率的勾配降下法には、[sgd]タグもあります。

8
ニュートンの方法が機械学習で広く使用されていないのはなぜですか?
これはしばらくの間私を悩ませてきたものであり、満足のいく答えをオンラインで見つけることができなかったので、ここに行きます: 凸最適化に関する一連の講義をレビューした後、Newtonの方法は、勾配降下よりもはるかに優れたアルゴリズムであり、グローバルに最適なソリューションを見つけることができます。これは、Newtonの方法は、はるかに少ないステップ。ニュートン法などの2次最適化アルゴリズムが、機械学習問題で確率的勾配降下ほど広く使用されないのはなぜですか?

3
バッチ勾配降下と確率的勾配降下
トレーニングセットがます。また、トレーニングセットで何らかのタイプの教師あり学習アルゴリズムを実行するとします。仮説はます。と間の「距離」を最小化するパラメーターを見つける必要があります。ましょう(x(i),y(i))(x(i),y(i))(x_{(i)}, y_{(i)})i=1,…,mi=1,…,mi = 1, \dots, mhθ(x(i))=θ0+θ1x(i)1+⋯+θnx(i)nhθ(x(i))=θ0+θ1x(i)1+⋯+θnx(i)nh_{\theta}(x_{(i)}) = \theta_0+\theta_{1}x_{(i)1} + \cdots +\theta_{n}x_{(i)n}θθ\mathbf{\theta}y(i)y(i)y_{(i)}hθ(x(i))hθ(x(i))h_{\theta}(x_{(i)})J(θ)=12∑i=1m(y(i)−hθ(x(i))2J(θ)=12∑i=1m(y(i)−hθ(x(i))2J(\theta) = \frac{1}{2} \sum_{i=1}^{m} (y_{(i)}-h_{\theta}(x_{(i)})^{2} 次に、を最小化するを見つけます。勾配降下では、各パラメーターを初期化し、次の更新を実行します。θθ\thetaJ(θ)J(θ)J(\theta)θj:=θj−α∂∂θjJ(θ)θj:=θj−α∂∂θjJ(θ)\theta_j := \theta_j-\alpha \frac{\partial}{\partial \theta_{j}} J(\theta) バッチ勾配降下と確率的勾配降下の主な違いは何ですか? 両方とも上記の更新ルールを使用します。しかし、一方が他方より優れていますか?

6
閉形式の数学ソリューションが利用可能な場合、線形回帰に勾配降下法を使用する理由は何ですか?
私はオンラインで機械学習コースを受講しており、仮説の最適値を計算するための勾配降下について学びました。 h(x) = B0 + B1X 以下の式で値を簡単に見つけることができる場合、なぜ勾配降下を使用する必要があるのですか?これも簡単で簡単です。しかし、GDは値を取得するために複数の反復を必要とします。 B1 = Correlation * (Std. Dev. of y/ Std. Dev. of x) B0 = Mean(Y) – B1 * Mean(X) 注:https : //www.dezyre.com/data-science-in-r-programming-tutorial/linear-regression-tutorialのように撮影 私は以下の質問をチェックしましたが、私にとっては理解するのが明確ではありませんでした。 なぜ勾配降下が必要なのですか? 最適化が分析ソリューションではなく勾配降下で解決されるのはなぜですか? 上記の回答では、GDと派生物の使用を比較しています。

2
閉形式と勾配降下の回帰パラメータの解決
Andrew Ngの機械学習コースでは、線形回帰とロジスティック回帰を紹介し、勾配降下法とニュートン法を使用してモデルパラメーターを近似する方法を示しています。 勾配降下は、機械学習の一部のアプリケーション(逆プロパゲーションなど)で役立つことがありますが、より一般的なケースでは、閉形式のパラメーターを解かない理由があります。コスト関数と微積分による解? 一般に、閉じた形式のソリューションに対して勾配降下法などの反復アルゴリズムを使用する場合、使用できる場合、その利点は何ですか?

3
ニューラルネットワークの研究者がエポックに関心があるのはなぜですか?
確率的勾配降下のエポックは、データの単一パスとして定義されます。SGDミニバッチごとに、kkkサンプルが描画され、勾配が計算され、パラメーターが更新されます。エポック設定では、サンプルは置換なしで描画されます。 しかし、これは不要なようです。各反復でデータセット全体からランダムに描画されるので、各SGDミニバッチを描画しないのはなぜkkkですか?多数のエポックで、サンプルが多少の頻度で見られる小さな偏差は重要ではないように思われます。

7
コスト関数の評価が遅い場合の最適化
勾配降下法や他の多くの方法は、コスト関数で局所的な最小値を見つけるのに役立ちます。それらは、数値的であろうと分析的であろうと、コスト関数が各ポイントで迅速に評価できる場合に効率的です。 異常な状況に見えるものがあります。私のコスト関数の評価はそれぞれ高価です。グラウンドトゥルースサーフェスに対して3Dサーフェスを最小化する一連のパラメーターを見つけようとしています。パラメーターを変更するたびに、サンプルコホート全体に対してアルゴリズムを実行して、その効果を測定する必要があります。勾配を計算するには、15個すべてのパラメーターを個別に変更する必要があります。つまり、すべてのサーフェスを再生成し、勾配ごとにサンプルコホート方法と比較する回数が多すぎます。 私はこの問題を回避する方法を開発し、現在評価していますが、高価なコスト関数の評価に関する文献にあまり見当たらないことに驚いています。これは、私が問題をそれよりも難しくしているのか、そしてすでに利用可能なより良い方法があるかもしれないのではないかと思うようになります。 だから私の質問は基本的にこれです:評価が遅いときに、凸関数であるかどうかにかかわらず、誰もがコスト関数を最適化する方法を知っていますか?または、アルゴリズムを再実行してサンプルコホートと何度も比較することで、そもそもばかげたことをしていますか?

6
指数関数的減衰を伴うAdamオプティマイザー
ほとんどのTensorflowコードで、Adam Optimizerが一定の学習率1e-4(つまり0.0001)で使用されているのを見ました。通常、コードは次のようになります。 ...build the model... # Add the optimizer train_op = tf.train.AdamOptimizer(1e-4).minimize(cross_entropy) # Add the ops to initialize variables. These will include # the optimizer slots added by AdamOptimizer(). init_op = tf.initialize_all_variables() # launch the graph in a session sess = tf.Session() # Actually intialize the variables sess.run(init_op) # now …

1
確率的勾配降下の場合、バッチサイズはどれくらいの大きさにすべきですか?
確率的勾配降下法を使用して、トレーニングデータセットの異なるサンプルで各反復を更新することにより、バックプロパゲーションを使用してニューラルネットワークを最適化できることを理解しています。 バッチサイズはどれくらいの大きさにすべきですか?

4
運動量ベースの勾配降下とNesterovの加速勾配降下の違いは何ですか?
したがって、運動量ベースの勾配降下は次のように機能します。 v=self.momentum∗m−lr∗gv=self.momentum∗m−lr∗gv=self.momentum*m-lr*g ここで、は以前の重みの更新、はパラメーターに関する現在の勾配、は学習率、は定数です。g p l r s e l f 。M O のM E N T U Mmmmgggppplrlrlrself.momentumself.momentumself.momentum pnew=p+v=p+self.momentum∗m−lr∗gpnew=p+v=p+self.momentum∗m−lr∗gp_{new} = p + v = p + self.momentum * m - lr * g また、Nesterovの加速勾配降下は次のように機能します。 pnew=p+self.momentum∗v−lr∗gpnew=p+self.momentum∗v−lr∗gp_{new} = p + self.momentum * v - lr * g 次と同等です: pnew=p+self.momentum∗(self.momentum∗m−lr∗g)−lr∗gpnew=p+self.momentum∗(self.momentum∗m−lr∗g)−lr∗gp_{new} = p + …

1
GradientDescentOptimizerとAdamOptimizer(TensorFlow)の違いは?
XOR-GateをモデリングしているTensorFlowで簡単なMLPを作成しました。 だから: input_data = [[0., 0.], [0., 1.], [1., 0.], [1., 1.]] 次のものが生成されます。 output_data = [[0.], [1.], [1.], [0.]] このネットワークには、入力層、隠れ層、出力層があり、それぞれ2、5、1個のニューロンがあります。 現在、私は次のクロスエントロピーを持っています: cross_entropy = -(n_output * tf.log(output) + (1 - n_output) * tf.log(1 - output)) 私はこの簡単な代替手段も試しました: cross_entropy = tf.square(n_output - output) 他のいくつかの試みと一緒に。 ただし、私の設定が何であっても、のエラーはのエラーよりもはるかに遅くGradientDescentOptimizer減少していましたAdamOptimizer。 実際tf.train.AdamOptimizer(0.01)、どのクロスエントロピー計算または学習率が使用されたとして0.01も、tf.train.GradientDescentOptimizer常に2000を超える学習ステップが必要でしたが、(最高の結果が得られた学習率に応じて)400から800の学習ステップ後に本当に良い結果が得られました。 これはなぜですか?そうですAdamOptimizer、常により良い選択です!

1
確率的勾配降下のAdamメソッドはどのように機能しますか?
ニューラルネットワークをトレーニングするための基本的な勾配降下アルゴリズムに精通しています。Adam:ADAM:A METHOD for SCHOCASTIC OPTIMIZATIONを提案している論文を読みました。 (少なくとも)確かにいくつかの洞察を持っていますが、この論文は私にとって全体的に高すぎるようです。たとえば、コスト関数は多くの異なる関数の合計であることが多いため、その値を最適化するには膨大な量の計算が必要です。確率的勾配降下-トピックを理解している限り-これらの関数のサブセットについてのみ最適化を計算します。私には、Adamがこれをどのように行い、これにより全体のトレーニングエラーが減少する理由は不明です。J(θ)J(θ)J(\theta)J(θ)J(θ)J(\theta) Adamは以前の勾配を考慮して勾配を更新すると思います。彼らはそれを勢いを利用するようなものと呼んでいますか?この勢いは正確に何ですか?論文の2ページ目のアルゴリズムによると、「通常の」勾配の1次モーメントと2次モーメントの推定値のような、ある種の移動平均ですか? 実際には、Adamを使用すると、勾配を小さくするために大きな有効ステップサイズを使用できるため、確率的近似と組み合わせてトレーニングエラーが発生すると考えられます。したがって、結果として得られる更新ベクトルは、通常の勾配降下アルゴリズムのように曲線を記述するのではなく、空間次元でさらに「ジャンプ」する必要があります。 誰かがアダムの仕組みを分かりやすく説明できますか?特にそれがどのように収束するのか、特にアダムの方法が機能する理由と正確な利点は何ですか?

1
ニューラルネットワーク:重量変化の運動量と重量減衰
Momentumは、連続した反復での重量変化の変動を小さくするために使用されます。αα\alpha Δωi(t+1)=−η∂E∂wi+αΔωi(t),Δωi(t+1)=−η∂E∂wi+αΔωi(t),\Delta\omega_i(t+1) = - \eta\frac{\partial E}{\partial w_i} + \alpha \Delta \omega_i(t), ここではエラー関数、 -重みのベクトル学習率。E(w)E(w)E({\bf w})ww{\bf w}ηη\eta 重量減衰は、重量の変化にペナルティを与えます。λλ\lambda Δωi(t+1)=−η∂E∂wi−ληωiΔωi(t+1)=−η∂E∂wi−ληωi\Delta\omega_i(t+1) =- \eta\frac{\partial E}{\partial w_i} - \lambda\eta\omega_i 問題は、逆伝播中に両方のトリックを組み合わせることが理にかなっているか、そしてそれがどのような効果をもたらすのか? Δωi(t+1)=−η∂E∂wi+αΔωi(t)−ληωiΔωi(t+1)=−η∂E∂wi+αΔωi(t)−ληωi\Delta\omega_i(t+1) = - \eta\frac{\partial E}{\partial w_i} + \alpha \Delta \omega_i(t) - \lambda\eta\omega_i

4
線形活性化関数は、ニューラルネットワークの消失勾配問題をどのように解決しますか?
ニューラルネットワークの消失勾配問題の解決策として、いくつかの場所で称賛された整流線形ユニット(ReLU)が見つかりました。つまり、アクティベーション関数としてmax(0、x)を使用します。活性化が正の場合、その派生は大きなxの任意の小さな値ではなく常に1であるため、これがたとえばシグモイド活性化関数よりも優れていることは明らかです。一方、xが0より小さい場合、導出は正確に0です。最悪の場合、ユニットがアクティブ化されない場合、このユニットの重みも変更されず、ユニットは永久に使用できなくなります。消失するほど小さい勾配よりもはるかに悪い。ReLUを使用する場合、学習アルゴリズムはその問題にどのように対処しますか?

2
確率的勾配降下法を発明したのは誰ですか?
勾配降下法と確率勾配降下法の歴史を理解しようとしています。グラディエントディセントは1847年にコーシーで発明されました。システムエクイテーションシステムの同時解法により作成されました。pp。536–538詳細については、こちらを参照してください。 それ以来、勾配降下法は開発を続け、私はそれらの歴史に精通していません。特に、確率的勾配降下法の発明に興味があります。 学術論文で歓迎される以上に使用できるリファレンス。

2
線形回帰モデルの係数を見つけるために勾配降下が必要ですか?
Coursera教材を使用して機械学習を学習しようとしていました。この講義では、Andrew Ngは勾配降下アルゴリズムを使用して、誤差関数(コスト関数)を最小化する線形回帰モデルの係数を見つけます。 線形回帰の場合、勾配降下が必要ですか?誤差関数を分析的に微分し、係数を解くためにゼロに設定できるようです。そうですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.