解题思路
这道题要求实现一个多层前馈神经网络的反向传播算法,计算损失函数对每层权重矩阵和偏置向量的梯度。
核心算法是反向传播(Backpropagation),其基本思想是利用链式法则从输出层向输入层逐层计算梯度。具体实现包括以下步骤:
第一步是前向传播。从输入层开始,逐层计算每一层的线性组合结果Z和激活值A。前K-1层使用ReLU激活函数,最后一层使用Softmax激活函数得到类别概率分布。在前向传播过程中,需要保存所有的Z和A值,供反向传播使用。
第二步是计算输出层的梯度。对于交叉熵损失函数配合Softmax激活函数的组合,其对Z[K]的梯度有简化形式:dZ[K] = (output_probabilities - Y_true) / N,其中Y_true是真实标签的one-hot编码。