確率的勾配降下の汎用モジュールを実装しています。引数を取ります: トレーニング データセット、損失(x,y)、dw(x,y) - サンプルごとの損失とサンプル勾配の変化。
さて、収束基準について、私は次のことを考えました:-
a) 一部のウィンドウで平均化された、dataset.size の 10% ごとに損失関数をチェックする
b) データセット サイズの 10 ~ 20% ごとに、重みベクトル間の差のノルムを確認する
c) トレーニング セットのエラーの安定化。
d) 勾配の符号の変化 (繰り返しますが、一定の間隔ごとにチェックされます) -
これらのチェック (チェックの精度など) は、ステップ サイズ、学習率などの他の要素にも依存し、その効果はトレーニングの問題ごとに異なることに気付きました。
SGDモジュールでスローされたトレーニングセット、fx、df/dwに関係なく、一般的な停止基準はどうあるべきか、私は気にしていないようです。あなたたちは何をしますか?
また、(d) について、n 次元ベクトルの「符号の変化」とはどういう意味ですか? in - 与えられた dw_i, dw_i+1 で、符号の変化を検出するにはどうすればよいですか?
PS非数学/ラテックス記号の謝罪..まだ物事に慣れています。