深度学习(4):训练集、验证集、测试集 以及偏差和方差

在进行神经网络(以及各种机器学习模型)的训练中,我们需要对数据进行划分,以便于我们选择合适的超参数、评价模型的泛化能力。

训练集

我们利用训练集来进行参数训练(即前面提到的前向传播、反向传播、参数更新的过程)。

验证集

我们选取不同的超参数通过训练集训练出不同的模型。将这些模型应用在验证集上以选择最合适的超参数。

测试集

在确定好合适的超参数后,我们将模型应用在测试集上以判断模型的泛化能力。
要注意的是,在训练过程中验证集和测试集的数据一定不能参与训练,否则会导致评估的结果超出真实值。

划分方式

传统的机器学习中,由于数据量小,我们往往采用 训练集:验证集=7:3 或者 训练集:验证集:测试集 = 6:2:2 的划分方式。但由于深度学习的数据量较大,验证集和测试集的比例可以缩小。例如对于100万组数据,我们可能只需要1万验证集+1万测试集。

在实际操作中,有时我们不需要进行无偏评估,所以可能只需要验证集而不需要测试集。(然而人们却总是说此时的划分是训练集/测试集)

偏差和方差

直观理解之前,先来说一下偏差和方差在西瓜书当中的数学定义:
定义:
y代表样本的真实值
yD代表样本在数据集中的标记(在这里我们认为我们的数据集不完全准群,具有噪音,即yD不等于y)
f(x, D)代表模型经过训练集D训练后对x的预测输出。

为了直观理解,在这里我们假设一共有10个训练集D,每个D都有1万个数据
偏差:
在这里插入图片描述
对与10个D,我们能整出10个模型,也能获得10个预测值,对这些预测值取平均值就是公式的第一项。偏差能够代表咱们的模型的期望预测和真实值的偏差,也就是模型的拟合能力。

方差:
在这里插入图片描述
这里的E代表期望
对于10个D获得的模型,求其方差。它代表了训练集的变动对于我们模型学习性能的影响。

噪声:
在这里插入图片描述
这个值表明,我们现在利用各种手段能获得的yD都是不准确的,它表述问题的固有难度(甚至找不到准确解)。

西瓜书的推导告诉我们:
深度学习(4):训练集、验证集、测试集 以及偏差和方差_第1张图片
即泛化误差=偏差+方差+噪声
理解了数学定义能帮助我们理解泛化性能和偏差误差的关系。

直观体现,偏差表现为训练集的准确率,方差表现为训练集和测试集(或验证集)准确率的差值。

我们需要偏差足够小,来证明我们的模型不会欠拟合。我们也需要方差足够小,来证明我们的模型没有过拟合,对于未知数据也能表现得不错。

传统机器学习中,方差误差往往鱼和熊掌不可兼得。然而借助现在的正则化等手段,可以在两方面都取得不错的结果。

你可能感兴趣的:(深度学习笔记,机器学习,深度学习,人工智能,神经网络)