基于 Keras 的神经网络在 MNIST 和 CIFAR - 10 数据集上的实践
1. 神经网络基础与反向传播算法
在神经网络训练中,反向传播算法是核心。它包含两个主要阶段:
- 前向传播 :信息从输入层流向输出层,计算预测值。
- 反向传播(权重更新阶段) :计算损失函数的梯度,并利用链式法则迭代更新网络中的权重。
无论使用简单的前馈神经网络还是复杂的深度卷积神经网络,反向传播算法都用于训练这些模型。这要求网络内的激活函数可微,以便应用链式法则。同时,网络中需要更新权重/参数的其他层也必须与反向传播算法兼容。
我们使用 Python 实现了反向传播算法,并设计了一个多层前馈神经网络类。通过在 XOR 数据集上进行训练,证明了该神经网络能够通过至少一个隐藏层学习非线性函数。随后,我们将相同的反向传播算法应用于 MNIST 数据集的一个子集,展示了该算法在处理图像数据方面的能力。
然而,在实践中,反向传播算法的实现不仅具有挑战性(由于计算梯度时可能出现的错误),而且在没有特殊优化库的情况下很难实现高效性。因此,我们通常使用 Keras、TensorFlow 和 mxnet 等库,这些库已经使用优化策略正确实现了反向传播算法。
2. 使用 Keras 构建多层神经网络
现在,我们将转向使用专门的(高度优化的)神经网络库 Keras 来实现前馈多层网络,并将其应用于 MNIST 和 CIFAR - 10 数据集。虽然这些结果可能达不到“最先进”水平,但它们有两个目的:
- 演示如何使用 Keras 库实现简单的神经
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



