吴恩达机器学习练习四
完成练习前要搞明白样本如何组织,训练集是5000x400的矩阵,每一行表示一个样本,也就是20x20的像素值。练习中使用的是3层网络,因此参数集是theta1和theta2.
练习主要完成代价函数及反向传播算法中梯度的计算(nnCostFunction.m)
代码中全部采用向量计算的方式,这样可以提升计算速度
需要技巧的地方:
将标签转为向量
col_v=1:num_labels;
for i=1:m
y_t(i,:)=(col_v==y(i));
end
剩下的就是按照视频的公式做翻译了。
其中sigmoidGradient(z)也是根据公司进行翻译
gz=sigmoid(z);
g=gz.*(1.-gz);