問題タブ [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.
java - 線形回帰における勾配降下
Javaで線形回帰を実装しようとしています。私の仮説は theta0 + theta1 * x[i] です。コスト関数が最小になるように、theta0 と theta1 の値を把握しようとしています。勾配降下法を使用して値を見つけています-
の中に
この収束までの繰り返しは何ですか?これが局所的な最小値であることは理解しましたが、while ループに入れる正確なコードは何ですか?
私は機械学習の初心者で、理解を深めるために基本的なアルゴリズムのコーディングを始めたばかりです。どんな助けでも大歓迎です。
machine-learning - 特徴スケーリング後の再スケーリング、線形回帰
基本的な質問のように思えますが、勾配降下法を使用した線形回帰の実装では、機能スケーリング (各機能値を取得し、平均を減算してから標準偏差で割る) を使用する必要があります。作業が終わったら、重みと回帰直線を元のデータに再スケーリングしたいと思います。私は 1 つの機能と y 切片の項のみを使用しています。スケーリングされたデータを使用して重みを取得した後、元のスケーリングされていないデータに適用されるように、重みを変更するにはどうすればよいですか?
matlab - 確率的勾配降下法の実装は正しいですか?
確率的勾配降下法を開発しようとしていますが、100% 正しいかどうかはわかりません。
- 私の確率的勾配降下法アルゴリズムによって生成されたコストは、FMINUC またはバッチ勾配降下法によって生成されたものとはかけ離れていることがあります。
- 学習率アルファを 0.2 に設定するとバッチ勾配降下コストが収束しますが、発散しないように、確率的実装では学習率アルファを 0.0001 に設定する必要があります。これは正常ですか?
以下は、10,000 要素のトレーニング セットと num_iter = 100 または 500 で得た結果の一部です。
ロジスティック回帰の勾配降下の実装
ロジスティック回帰のための確率的勾配降下の実装
参考までに、私の例で使用したロジスティック回帰コスト関数を次に示します。
arrays - 最急降下アルゴリズムの問題
最急降下アルゴリズムを使用して、2 次元の 400 原子系の総エネルギーを最小化するプログラムを作成しようとしています。私のプログラムの一般的な考え方は次のとおりです。
- 原子座標 (x, y) を取得する
- ランダムに原子を選ぶ
- その原子にかかる力の x 成分と y 成分を計算します
- x と y の位置の変化、dx と dy を計算します。
- 新しい座標 (x+dx、y+dy) を生成し、配列を更新します
- 各原子にかかる力が ~0 になるまで、手順 2 ~ 5 を繰り返します。
原子 210 にかかる初期の力の大きさは大きいため、系がどれだけ収束に近づいているかを示す良い指標となります。力が許容範囲内にあるときに反復が停止するように、コードをまだ修正していません。そうは言っても、私のコードは原子 210 に対する力の x 成分を出力して、力が 0 に向かっているかどうかを確認できるようにします。
コードを実行すると、座標配列が更新されていないようです (上記の手順 5)。質問をこの Web サイトに投稿するか、物理学の Web サイトに投稿するかは正確にはわかりませんでしたが、Fortran 77 で配列を更新するための技術的な問題が含まれていると思います。これがこの Web サイトの範囲外である場合は申し訳ありません。どこを向いたらいいのかわからなかった。皆様のご協力に感謝いたします。私の注釈が明確でない場合、または誰かがより多くの情報を必要とする場合はお知らせください。これがコードです。
matlab - Matlab でのロジスティック回帰勾配降下
ここにコードがあります
私が抱えている問題は、対数尤度比が最初に減少し、次に増加し始めることです。これは勾配降下アルゴリズムの問題ですか、それともコードの問題ですか。
r - R での確率的勾配降下によるロジスティック回帰のプログラミング
Rで確率的下降勾配を使用してロジスティック回帰をプログラムしようとしています。たとえば、「ex2data1.txt」という名前のAndrew Ngの例に従いました。
要点は、アルゴリズムが適切に機能するということですが、thetas の推定は私が期待したものとまったく同じではありません。そこで、この問題を解決するためにアルゴリズム全体を変更しようとしました。しかし、それは私にはほとんど不可能でした。この問題の原因となっているエラーを検出できませんでした。したがって、誰かが例をチェックして、シータが正しく計算されない理由を教えてくれると非常に便利です。ほんとうにありがとう。
プログラミングに関しては、Rや行列計算で実装されている関数は使用していません。Hadoopでコードを使用したいため、ループで合計と減算を使用しているだけで、行列計算や、「sum」、「sqrt」などのRですでにプログラムされている関数さえ使用できません
確率的勾配降下法は次のとおりです。
そしてロジスティック回帰:
私のコードは次のとおりです。
私のシータ
matlab - minFunc パッケージの使用法
最適化問題を解決するために MATLAB fminunc 関数を使用しています。minFunc パッケージを試してみたい:
http://www.di.ens.fr/~mschmidt/Software/minFunc.html
fminunc を使用するとき、関数 funObj.m を定義しました。この関数は、任意の点 'x' での目的値と勾配を提供します。また、マトリックスである{a、b、c}などのいくつかの外部入力も受け取ります。したがって、関数プロトタイプは次のようになります。
minFunc パッケージで同じセットアップを使用したい。例から、私はこれがうまくいくはずだと考えました:
しかし、この方法で呼び出すと、次のようなエラーが発生します。
私の場合、minFunc を呼び出す正しい方法は何ですか?
* *EDIT : よし、minFunc で使用したいサンプル関数を次に示します。a*(bx)^2 の最小値を見つけたいとしましょう。ここで、a、b はスカラー パラメーターであり、x もスカラーです。MATLAB 目的関数は次のようになります。
(MATLAB で) fminunc を使用してこれを最小化する関数呼び出しは次のとおりです。
これにより、x = 10 の最小値が得られます。次に、minFunc を使用して同じことを行うにはどうすればよいでしょうか。
r - R で TRUE/FALSE が必要な場合の欠損値
コメントせずに次のコードを実行すると、gr.ascent(MMSE, 0.5, verbose=TRUE)
このエラーError in b1 * x : 'b1' is missing
が表示されますが、その行にコメントを付けると、これらの引数で MMSE をテストするときに次のエラーが表示されますMMSE(2,1,farmland$farm,farmland$area)
。私の問題がどこにあるのか知っていますか?
これが私のコードです:
FarmLand の csv データは次のようになります。
dput(farmland) の結果は次のとおりです。