0

softmax 分類器をトレーニングするときに、minFunc 関数を使用しましたMatlabが、うまくいきませんでした。ステップ サイズがTolXすぐに到達し、精度は 5% にもなりませんでした。何かが間違っているはずですが、私はそれを見つけることができませんでした。

Matlabコスト関数と勾配に関する私のコードは次のとおりです。

z=x*W; %xは入力データ、m*n 行列、m はサンプル数、n は入力層のユニット数です。W は n*o 行列、o は出力層のユニット数です。

a=sigmoid(z)./repmat(sum(sigmoid(z),2),1,o); %a分類器の出力です。

J=-mean(sum(target.*log(a),2))+l/2*sum(sum(W.^2));%これはコスト関数で、ターゲットは目的の出力で、m*n 行列です。l は重量減衰パラメーターです。

Wgrad=-x'*(target-a)/m+l*W;

式はここにあります。誰でも私のエラーがどこにあるのか指摘できますか?

4

1 に答える 1

0

エラーが見つかりました。シグモイド関数は使用しないでください。単純にexp.

于 2013-06-23T08:26:33.647 に答える