ex4 大坑
题目: 神经网络的cost function
写代码时,每一层的a1,a2,z1,z2什么的要写清楚,最最重要的是
注意维度!!!
求大theta乘X的时候,将X转置。
直接贴代码
a1=Theta1*X';
z1=[ones(m,1),sigmoid(a1)'];
a2=Theta2*z1';
h=sigmoid(a2);
yk=zeros(m,num_labels);
for i=1:m
yk(i,y(i))=1;
end
J = (1/m)* sum(sum(((-yk) .* log(h') - (1 - yk) .* log(1 - h'))));
J = J +(sum(sum(Theta1(:, 2:end) .* Theta1(:, 2:end))) + sum(sum(Theta2(:, 2:end) .* Theta2(:, 2:end)))) * lambda / (2 * m);