上篇 01 机器(深度)学习介绍-学习笔记-李宏毅深度学习2021年度
下篇 03 梯度(Gradient)很小怎么办(Local Minima与Saddle Point)-学习笔记-李宏毅深度学习2021年度
本节内容及相关链接
模型训练的一些指导意见
课程笔记
训练数据集,符号表示: { ( x 1 , y ^ 1 ) , ( x 2 , y ^ 2 ) , … , ( x N , y ^ N ) } \left\{\left(x^{1}, \hat{y}^{1}\right),\left(x^{2}, \hat{y}^{2}\right), \ldots,\left(x^{N}, \hat{y}^{N}\right)\right\} { (x1,y^1),(x2,y^2),…,(xN,y^N)}
测试数据集,符号表示: { x N + 1 , x N + 2 , … , x N + M } \left\{x^{N+1}, x^{N+2}, \ldots, x^{N+M}\right\} { xN+1,xN+2,…,xN+M}
train 不起来的排查思路:
各文字的含义:
- loss on traing data: 检查train data的loss
- loss on traing data -> large:train data的loss比较大
- model bias:模型欠拟合了,即不够复杂
- optimization:考虑优化optimization
- loss on traing data -> small:train data的loss比较小
- loss on testing data:检查testing data的loss
- loss on testing data -> large:testing data的loss比较大
- overfitting:发生了overfitting
- mismatch:发生了mismatch
- loss on testing data -> small: testing data的loss比较小,模型训练没问题
总结:
模型在train data上的loss很大,说明模型发生了 model bias,解决方案为:
- 增加模型复杂度
- 优化Optimization,请参考下篇
模型在train data上的loss小,但在testing data的loss大,说明模型发生了overfitting 或 mismatch。
overfitting含义:模型过度拟合了train data,即过度遵循了train data的规律,导致泛化能力变差
overfitting解决方案为:
- 收集更多数据
- 进行数据增强
- 简化模型(减少模型参数,使用共享参数,减少features数量,early stopping提前终止,Regularization正则化,Dropout 等)
mismatch的含义:train data的分布与testing data 不一致。例如:train data都是黑白图片,testing data却都是彩色图片
交叉验证:将traing set 多次分组,分为训练集和验证集,最终取平均loss最好的那个模型
交叉验证实用场景:在train data 和 validation data上表现都不错,但在testing data(可以理解为真实环境)上表现较差