前馈神经网络中的交叉熵损失函数与随机梯度下降
1. 多类感知机与神经网络层
多类感知机返回的答案是返回值最高的线性单元的编号。所有感知机都独立于其他感知机进行训练,使用与之前相同的算法。给定一个图像和标签,我们对 10 个感知机运行 10 次感知机算法步骤。例如,如果标签是 5,但返回值最高的感知机是 6,那么 0 到 4 的感知机不会改变其参数,因为它们正确地判断“我不是 0”或“我不是 1”等。同样,6 到 9 的感知机也不会改变参数。而 5 和 6 的感知机则会修改其参数,因为它们做出了错误的决策。
早期讨论神经网络时,会强调单个计算元素(线性单元),如今我们更关注以层为单位的计算。层是一组存储或计算单元,可以并行工作并将值传递给下一层。多层堆叠正是“深度学习”中“深度”的含义。然而,多层结构与感知机配合效果不佳,因此我们需要另一种学习如何改变权重的方法,即使用前馈神经网络和梯度下降这种相对简单的学习技术。
2. 损失函数
在讨论梯度下降之前,我们需要先了解损失函数。损失函数是将结果映射到其对我们而言“糟糕程度”的函数。在学习模型参数时,我们的目标是最小化损失。感知机的损失函数在训练示例正确时取值为 0,错误时取值为 1,这被称为 0 - 1 损失。0 - 1 损失的优点是直观,但它也有缺点,特别是在梯度下降学习中效果不佳。梯度下降的基本思想是根据规则 $\Delta\varphi_i = -L \frac{\partial L}{\partial \varphi_i}$ 修改参数,其中 $L$ 是学习率,$\frac{\partial L}{\partial \varphi_i}$ 是损失 $L$ 关于要调整参数的偏导数。为了使该规则生效,损失必须