神经网络与深度学习笔记(四)训练集
前言
接下来的更新是第二课的内容了:
Improving Deep Neural Networks: Hyperparameter Tuning, Regularization and Optimization
主要的内容是提升深度神经网络的效率
设计前准备
设计实现一个神经网络之前,我们需要考虑什么问题?
- layers 层数
- hidden units 隐藏单元
- learning rates 学习率
- activation functions 激活函数
然而现实是,你想要一开始就确定以上参数的最优解,基本是不可能的。
哪怕你是经验无比丰富也要慢慢调参。
所以深度学习模型的构建其实一个高度的反复迭代的过程。
训练集,开发集,测试集
train 训练集,用于训练模型
dev 开发集(交叉训练集),用于测试模型
test 测试集,用于评估模型
上个时代的机器学习
上个时代的机器学习,由于数据量不多,所以对三个集的数据划分一般是:
train | dev | test |
---|---|---|
70% | — | 30% |
60% | 20% | 20% |
第一行的train 70%,test 30%,又称为 70/30 训练测试分割
大数据时代
在如今的大数据时代,数据的量级已经不是当年的那点点了,动则上万,上十万,上百万的数据。
这样规模的数据训练过程中,我们可以把更多的数据用于训练集训练模型,仅仅将少量的数据用于开发集与测试集即可
train | dev | test |
---|---|---|
98% | 1% | 1% |
99.5% | 0.25% | 0.25% |
99.5% | 0.4% | 0.1% |
数据集不匹配
在设计的过程中,数据集的来源可能不相同
比如在网站上使用爬虫爬取的高清图片和在app上获取到压缩图片。两种数据集就存在分布不匹配的问题
一般来讲:
训练集 train 与 测试集 test 不匹配是可以的
但是要保证开发集 dev 和测试集 test 的分布相同
没有测试集的情况
没有测试集也是可以的
实际上,测试集给的是无偏估计来评估模型的性能
如果不需要无偏估计,没有测试集也是没有问题的
在没有测试集的情况下,
我们用训练集来尝试不同的模型结构
用开发集评估它们的性能,根据评估的结果对模型进行迭代。
文章来源: blog.csdn.net,作者:沧夜2021,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/CANGYE0504/article/details/118424893
- 点赞
- 收藏
- 关注作者
评论(0)