第一部分 神经网络
题目介绍:使用反向传播实现手写数字识别
数据集与上一次作业相同
1.数据可视化
与上一次作业相同
2.神经网络模型
这里的内容也与上一次作业相同。
3.前馈和损失函数
神经网络的损失函数公式:
h_θ(x)就是模型中的输出,手写数字分为十类所以K=10,原本的标签维度是(5000,1),需要转化为(5000,10)才能够参与运算,若标签是n,则将第n行置1,其余行置0。
%将y转化为10*5000的矩阵
ylabel = zeros(num_labels, m);
for i = 1:m
ylabel(y(i), i) = 1; %原本的标签是1到10,转化后用第y(i)行置1表示
end
由于需要得到网络模型的输出,所以还是要先完成前向传播。
% 计算假设函数
a1 = [ones(m, 1) X]; % 5000*401
z2 = a1 * Theta1';
a2 = sigmoid(z2);
a2 = [ones(m,