【深度学习】【PaddlePaddle】DAY 7 - Week1课程集中答疑

训练集 、测试集、验证集

(1)训练集 、测试集、验证集的区别和联系 【Chatper 2 2.2 (1) 3)数据集划分

训练集和验证集用于参数的确定或参数模型的选择,
训练集:用于训练模型的参数。
验证集:训练模型的超参数,或者验证多个模型哪个更优。
两者的参数层次不一样。如线性回归模型和卷积神经网络,训练集分别确定的是回归方程的系数和卷积核参数,而验证集可以观测哪个模型更有效。例如手写数字识别任务,只看线性回归模型训练后的结果可能不错,但是验证集运行后模型无法得出预测数字,因此在训练集之外的验证集,才能够证明模型有效性。实际情况可能没有验证集。

测试集:评价最终模型上线后的最终效果。
只要模型在训练集和验证集运行过,样本就相当于被污染了,样本表现就不能代表模型真实的表现。测试集不参与模型参数或超参数的确定,一般模型最终在测试集的表现可认为是在上线后实践的效果。

在这里插入图片描述(5)训练集、验证集和测试集是来自用一个抽样总体的吗?

是的,否则数据结构会出现问题。

数据处理的问题

1 归一化

(2)线性回归模型中,归一化只使用训练集的均值、最大值、最小值,为什么不适用全体数据集作为指标呢?【Chatper 2.2 (1) 4)数据归一化处理】【Chatper 2.2 (4) 4)确定损失函数更小的点】.

在这里插入图片描述
目的是为了统一步长。如右图,对于宽一点的步长应该大,窄的步长应该小,不好将步长设置为同一个数值。通常将训练数据标准化固定在一个区间范围内,使参数规整,有利于训练稳定。
如果分子为真实值-最小值,结果为[0,1]区间范围内,而不是我们期望特征输入经归一化后的中值为0(此时梯度变化最为明显)。分子为真实值-均值,结果为[-0.5,0.5]区间范围内,可以实现下降到0。

(3)前向计算forward输出的值需要进行归一化吗?没有归一化计算的loss值会很大吗?【Chatper 2.2 (4) 4)确定损失函数更小的点

前向计算输出为预测结果值,归一化的目的是为了参数规整,因此为输出结果做归一化没有意义。线性回归输出的是实数值,没有必要做归一化。

(4)线性回归模型中,归一化的对象为训练集,而后面归一化处理的是整个数据集,会不会导致不一致?【Chatper 2.2 (4) 4)确定损失函数更小的点

取决于场景的不同。
一般情况,在参数确定或模型择优的情况下,归一化对象都是训练集。测试集用于模拟真实世界的情况,数据情况未知,最好不要归一。
但是在已知最优的模型的情况下,为了用更多数据量使模型更加稳定,可以将训练集和测试集合在一起计算,但使用要谨慎,可能出现浪费测试集的情况。

2 样本乱序

(12)调用paddle.dataset.mnist.train()读取完训练集后,调用fluid.io.shuffle()函数进行乱序时,发现buf_size设置不合理。【

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值