1.深度学习应用是一个高度迭代的过程
想要找到一个称心的神经网络结构,是一个循环往复的过程:
idea——>code——>experiment——>idea……
超级参数的选择也是神经网络工程师关注的重要问题:
#layers ?
#hidden units ?
learning rates ?
activation functions ?
因此,创建高质量的训练数据集、验证集和测试集是十分重要的事情。有助于提高循环效率。
2.训练集/验证集/测试集
在布置机器学习任务中,通常将数据分为训练集(train)、验证集(dev)和测试集(test)。
训练集用来run优化算法来拟合数据
验证集用来比较哪个模型或者算法效果更好
测试集用来评估模型效果。
当数据集规模较小时,适用传统的7/3或者6/2/2划分;当数据规模达百万级以上,一般是98/1/1的划分比例。
一个经验的法则:确保dev和test数据集来自相同的分布,而训练集则不要求与dev和test数据集来源相同。
没有测试集也不要紧,有dev数据集就行了。
3.偏差和方差(Bias/Variance)
欠拟合意味着高偏差,过拟合意味着高方差。
假设人眼识别误差Optimal error约等于0%(最优误差也被称为贝叶斯误差)
Training set error:1%
Dev set error:11% 这意味着过度拟合了训练集,但是验证