1. 定义问题,收集数据集
定义问题
- 输入数据是什么,要预测什么,只有拥有可用的训练数据,才能学习预测某件事情。
- 面对的是什么类型的问题?是二分类问题、多分类问题、回归问题还是多分类、多标签问题。确定问题类型有助于你选择模型架构、损失函数等。
只有明确了输入、输出及所用的数据才能进入下一阶段。
- 假设输出是可以根据输入进行预测的
- 假设可用数据包含足够多的信息,足以学习输入和输出之间的关系
2. 选择衡量成功的指标
3. 确定评估方法
4. 准备数据
5. 开发比基准更好的模型
这一阶段的目标是获得统计功效,即开发一个小型模型,能够打败纯随机的基准。
需要三个参数来构建模型:
- 最后一层的激活函数:它对网络输出进行有效的限制
- 损失函数:它应该匹配你要解决的问题的类型
- 优化配置:要使用哪种优化器、学习率,大多情况下使用rmsprop
6. 扩大模型规模:开发过拟合的模型
机器学习中无处不在的对立是优化和泛化的对立,理想的模型是刚好在欠拟合和过拟合的界线上,在容量不足和容量过大的界线上。
要搞清楚你需要多大的模型,就必须开发一个过拟合的模型。
- 添加更多的层
- 让每一层变得更大
- 训练更多的轮次
要始终监控训练损失和验证损失,及所关心指标的训练值和验证值。如果发现模型在验证数据上的性能开始下降,那么就出现了过拟合。
下个阶段将开始正则化和调节模型,以便尽可能地接近理想模型,既不过拟合也不欠拟合。
7. 模型正则化与调节超参数
你将不断地调节模型、训练、在验证数据上评估、再次调节模型,然后重复这一过程,直到模型达到最佳性能。应该尝试以下几项:
- 添加dropout
- 尝试不同的架构:增加或减少层数
- 添加L1或L2正则化
- 尝试不同的超参数,以找到最佳配置
- (可选)反复做特征工程:添加新特征或删除没有信息量的特征