深度学习:从多层感知机到卷积神经网络
1. 基于Keras的深度学习基础
在处理多分类问题时,我们采用了分类交叉熵损失函数。在一次训练轮次(epoch)中就取得了不错的结果,这得益于数据的干净和高质量。但在实际应用中,数据往往需要清洗和预处理。
MNIST数据集为我们提供了训练和测试数据。在训练模型时,我们还设置了33%的验证集,即仅使用67%的训练数据进行训练,并使用33%的数据进行模型验证。训练结果会显示训练准确率、损失,以及验证准确率和损失。通常,我们会调整超参数,如层数和每层的神经元数量,以提高验证准确率。
测试数据集用于评估模型并建立基准。代码的最后一行对模型在测试数据上进行评估,准确率达到了96.53%。这将成为我们选择新架构或算法时要超越的基准。
2. 训练集、验证集和测试集,以及过拟合与欠拟合
在构建新模型时,应使用独立的训练集和验证集,并评估模型在每个数据集上的准确率,这就是交叉验证。其目的是让模型在一组数据上训练,然后在未见过的数据上评估其指标,以判断其有效性。
行业中流行的K折交叉验证,是将完整数据集划分为K组,每次迭代使用其中一组作为验证集,其余作为训练集。这样可以不断改变模型学习的“未见过”数据,提高模型的有效性。
- 过拟合 :如果训练数据准确率高,但验证数据准确率低,说明模型在训练数据上过拟合。此时,模型学习到的是训练数据特有的较大方差,无法泛化到验证数据集。解决方法包括获取更多训练数据,以及使用正则化和Dropout等技术。
- 正则化 :在反向传播中,
超级会员免费看
订阅专栏 解锁全文

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



