問題タブ [regularized]
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.
python - ミニバッチ更新で L1 正則化を実行する
現在、ニューラル ネットワークとディープ ラーニングを読んでいますが、問題が発生しています。問題は、L2 正則化の代わりに L1 正則化を使用するように彼が提供するコードを更新することです。
L2 正則化を使用する元のコードは次のとおりです。
self.weights
L2正則化項を使用して更新されていることがわかります。L1正規化については、同じ行を更新して反映するだけでよいと思います
推定できると本に書いてある
ミニバッチ平均を使用した用語。これは私にとって紛らわしい発言でしたが、各ミニバッチがnabla_w
各レイヤーの平均を使用することを意味すると思いました。これにより、コードに次の編集を加える必要がありました。
しかし、私が得た結果は、約 10% の精度を持つノイズにすぎません。ステートメントを間違って解釈していますか、それともコードが間違っていますか? ヒントをいただければ幸いです。
performance - 正則化を追加すると、パフォーマンスが遅くなり、パフォーマンスが低下します
より強力な正則化を追加すると (たとえば、L2 正則化パラメータを 1 から 10 に、またはドロップアウト パラメータを 0.75 から 0.5 に)、パフォーマンスが低下し、パフォーマンスが低下しました (たとえば、3000 ~ 4000 回の反復で 97 ~ 98% のテスト精度がわずか 94 ~ 95% になりました)。 3000 ~ 4000 回の繰り返しで精度をテストします)。これが発生する理由はありますか?すべてが正しく実装されていることを確認できます。ありがとうございました!
編集: 私のプログラムにはオーバーフィッティング (約 1%) があることに注意したいだけです。また、ドロップアウトの有無にかかわらず、トレーニングとテストの精度の違いはほぼ同じであるようです。
python - scikit-learn は Ridge モジュールで一般的な Tikhonov 正則化をサポートしていますか?
Wikipediaの表記法を使用すると、scikit-learn Ridgeモジュールは単位行列の倍数をチホノフ行列ガンマとして使用しているようです。したがって、Tikhonov 行列は、単一の値 alpha によって指定されます。これを行うと、すべての係数が一様にペナルティを受けます。ソリューションがどのように見えるべきかについての事前知識があり、特定の係数を非常に小さくしたいと考えています。縮小したい係数の対角線に沿ってガンマ行列に大きなエントリがあれば、これを達成できると思います。
私が説明しているような不均一なペナルティをサポートする scikit-learn モジュールはありますか?
r - Rで正則化/重み減衰を実装する方法
正則化/ラムダ/重み減衰のパラメーターを持たないように見える R ニューラル ネットワーク パッケージの数に驚いています。明らかな何かが欠けていると思います。MLR のようなパッケージを使用して統合された学習者を見ると、正則化のパラメーターが表示されません。
例: deepnet パッケージの nnTrain:
list of params
ほぼすべてのパラメーターが表示されます-ドロップアウトも含まれますが、ラムダやその他の正規化のように見えるものは表示されません。
caret
との両方についての私の理解はmlr
、基本的に他の ML パッケージを整理し、それらと対話するための一貫した方法を提供しようとしているということです。それらのいずれにも L1/L2 正則化が見つかりません。
また、正規化された R パッケージを探して 20 回の Google 検索を行いましたが、何も見つかりませんでした。私は何が欠けていますか?ありがとう!