softmax分类器的成本函数和梯度

时间:2013-06-23 05:07:20

标签: machine-learning softmax

在训练softmax分类器时,我在 Matlab 中使用了minFunc函数,但是它不起作用,步长会快速达到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));%这是成本函数,target是期望的输出,它是m * n矩阵。 l是权重衰减参数。

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

可以找到公式here。谁能指出我的错误在哪里?

1 个答案:

答案 0 :(得分:0)

我发现错误,我不应该使用sigmoid函数,它应该只是exp