一連の 15 の入力 (信号の統計的内訳) から非常にノイズの多い信号を予測する単純なリカレント ニューラル ネットワークを構築しました。
pybrain ソース (pybrain\supervised\trainers\backprop.py) でわかることから、エラー関数は_calcDerivs
、2 乗エラーの合計を合計ターゲット (MSE) で割った値として関数にハードコーディングされています。除算はtrain
関数内で発生します。
私の場合、ネットワークが信号の変化の方向を正確な変化量で予測することが最も重要です。そのため、NN が下を予測したときに信号が上に移動したり、その逆の場合は、NN にペナルティを課したいと考えています。現在のターゲットだけでなく、ターゲットが方向を正しく推測したかどうかに基づいて重みを計算するために使用する以前のターゲットと出力も渡すことを実験してきました_calcDerivs
が、ネットワークは rprop とバックプロップ。このすべてが私にとって非常にハックです。
私の質問は次のとおりです。デフォルトのパフォーマンス関数を変更する最良の方法はありますか? パフォーマンス関数コードはすべて保持されていますか、_calcDerivs
それとも何か不足していますか?