1

コーディング内容:重み行列 w とスコアの 2 番目のパラメーター u を使用して、簡単なニューラル ネットワークを構築します。入力ベクトルに w を掛けた後、結果にベクトル u を掛けて 1 つの図として結果を取得し、それが私のスコアです。

現在の場所:損失関数に関して、2 つのパラメーターの両方の勾配を計算しました。

私の問題:そして今、次に何をすべきか立ち往生していますか?

私の解決策の提案:パラメータを w = w + learingrate * w_grad (および u = u learning rate *u_grad) で更新し、コスト/損失値が減少するまでこの手順を実行できますか? これは機能しますか? これは正しいです?これは、確率的勾配降下の簡単な実装ですか?

私は Java でコーディングしています。簡単な方法でニューラル ネットワークを最適化する方法の簡単で優れた文書化された例があれば、それを私と共有してください。

前もって感謝します!

4

1 に答える 1

1

w_grad は偏微分だと思います。あなたのソリューション提案について言えば、それは最適化の反復的な方法と呼ばれるものです。1つだけ明確にします。w = w + learingrate * w_grad の代わりに、w = w - learingrate * w_grad を使用する必要があります。問題なく動作しますが、マルチコア マシンを使用している場合は、1 つのコアしか使用しません。パフォーマンスの向上が必要な場合は、バッチ アルゴリズムを試すことができます。w = w - 学習率 * Summ(w_grad)。w_grad の計算中にパフォーマンスが向上

于 2015-04-22T09:11:00.780 に答える