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;
式はここにあります。誰でも私のエラーがどこにあるのか指摘できますか?