問題タブ [gradient-descent]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
166 参照

machine-learning - 確率的勾配降下法において、仮説を更新するこれら 2 つの方法の違いは何ですか?

確率的 GD 中のシータの更新について質問があります。theta を更新するには 2 つの方法があります。

1) 前のシータを使用して、すべてのサンプルのすべての仮説を取得し、サンプルごとにシータを更新します。お気に入り:

2) 別の方法: サンプルのスキャン中に、最新のシータを使用して仮説 [i] を更新します。お気に入り:

SGD コードを確認したところ、2 番目の方法が正しいようです。しかし、私のコーディングでは、最初の方が収束が速く、結果は 2 番目よりも優れています。間違った方法が正しい方法よりも優れたパフォーマンスを発揮するのはなぜですか?

また、完成したコードを次のように添付しました。


0 投票する
1 に答える
6576 参照

python - 多変数勾配降下法

gradient descent係数の計算について学習しています。以下は私がやっていることです:

今、私の上記のコードは正常に動作します。複数の変数を試して、次のように置き換えXた場合X1:

私のコードは失敗し、次のエラーが表示されます。

gradient descentを使用する方法を教えてもらえますX1か? を使用して期待される出力X1は次のとおりです。

私は他の Python 実装にもオープンです。coefficients (also called thetas)forX1とが欲しいだけですy

0 投票する
1 に答える
1371 参照

machine-learning - ミニバッチ勾配はオンライン勾配の合計ですか?

ミニバッチで動作するようにオンライン トレーニングを行うニューラル ネットワークをトレーニングするためのコードを調整しています。重みのミニバッチ勾配 (de/dw) は、ミニバッチのサンプルの勾配の合計ですか? または、シグモイド出力関数のため、非線形関数ですか? それとも、それは合計ですが、それを小さくするために何らかの数で割ったものですか?

明確化:この質問をより具体的に提起し、フルバッチ勾配とオンライン勾配の関係について質問することをお勧めします。したがって、次の段落を参照してください。

シグモイド活性化関数を持つニューロンを使用して、2 次元空間の点を分類しています。アーキテクチャは 2 x 10 x 10 x 1 です。2 つの出力クラスがあります。1 のポイントと 0 のポイントがあります。誤差は (ターゲット - 出力) の 2 乗の半分です。私の質問は、完全なバッチ勾配は各サンプルの勾配の合計に等しいですか (バッチ全体で重みを一定に保つ) ですか?

0 投票する
1 に答える
8220 参照

machine-learning - OCTAVE による勾配降下法を使用したロジスティック回帰

アンドリュー教授の機械学習コースをいくつか受講し、ニュートン法を使用したロジスティック回帰のトランスクリプトを見ました。ただし、勾配降下法を使用してロジスティック回帰を実装する場合、特定の問題に直面します。

生成されたグラフは凸ではありません。

私のコードは次のようになります。

方程式のベクトル化された実装を使用しています。

コードごとにエラーは発生しませんが、適切な凸グラフは生成されません。

誰かが間違いを指摘したり、問題の原因についての洞察を共有したりできれば幸いです.

ありがとう ここに画像の説明を入力

0 投票する
0 に答える
1071 参照

python - ニューラル ネットワークのトレーニング エラーの確率的勾配降下法

Pythonで確率的勾配降下を使用したフィードフォワードニューラルネットワークのこの実装があります。xor ゲートを使用して NN インスタンスをトレーニングすると、正常にトレーニングされます。しかし、在庫変動データを使用してインスタンスをトレーニングすると、次のエラーがスローされます。

XOR ゲート データと株式データは次のようになります (株式データは大幅に切り捨てられていることに注意してください)。

次に、XOR ゲート用に 2 つの入力、2 つの非表示、1 つの出力を持つネットワークを作成します。Stock データの 3 つの入力、15 の非表示、1 つの出力。

どちらのトレーニング セットもまったく同じ構造を持っているのに、なぜこのエラーが発生するのでしょうか?

network.py:

編集: 隠しレイヤーの値と関係があると思います。XOR ゲートの非表示レイヤー番号を変更したところ、同じエラーがスローされました。隠れ層の値は、入力層の量とまったく同じでなければならないようです。

0 投票する
1 に答える
2778 参照

machine-learning - 多項式回帰のバッチ勾配降下

単純な線形単一変数勾配降下法から、より高度なもの、つまり一連の点に最適な多項式フィットに移行しようとしています。私は簡単なオクターブ テスト スクリプトを作成しました。これにより、2D 空間でポイントを視覚的に設定し、勾配降下アルゴリズムを開始して、最適なフィットに徐々に近づいていく様子を確認できます。

残念ながら、単純な単一変数の線形回帰ほどうまく機能しません。取得した結果 (取得したとき) は、期待する多項式と一致しません!

コードは次のとおりです。

J が正しく最小化されているように見えても、常に間違った結果が得られます。私はプロッティング関数を正規方程式でチェックしました (これはもちろん正しく機能します。エラーはシータ方程式のどこかにあると思いますが、それが何であるかを理解することはできません.