type
Post
status
Published
slug
2021/03/22/1616381410484
summary
深度学习的通用工作流程
tags
文字
思考
AI
category
学习思考
icon
password
new update day
Property
Oct 22, 2023 01:31 PM
created days
Last edited time
Oct 22, 2023 01:31 PM
定义问题,收集数据集
- 输入数据是什么,要预测什么
- 面对的是什么问题
- 二分类
- 多分类
- 标量回归
- 向量回归
- 多分类,多标签
- 聚类、生成或强化学习
选择衡量成功的指标
- 损失函数的选择
- 平衡分类
- 精度
- 接收者操作特征特征曲线面积(ROC AUC)
- 类比不平衡
- 准确率
- 召回率
- 排序问题或多标签分类
- 平均准确率均值
- 自定义衡量成功指标
确定评估方法
- 留出验证集
- 数据量很大时
- K折交叉验证
- 留出验证的样本量太少,无法保证可靠性
- 重复的K折交叉验证
- 可用数据很少,同时模型评估又需要非常准确
准备数据
- 数据格式化为张量(输入与目标数据)
- 张量取值缩放为较小的值[-1,1]或[0,1]区间
- 若不同的特征具有不同的取值范围(异质数据),应该做数据标准化。
- 可能需要特征工程,尤其是小数据问题
开发比基准更好的模型
- 目标是获得统计功效(开发一个小型模型,它能够打败纯随机的基准)
- 两个假设
- 假设输出是可以根据输入进行预测的
- 假设可用的数据包含足够多的信息,足以学习输入和输出之间的关系
- 构建一个工作模型的三个关键参数
- 最后一层的激活
- 二分类问题
- 最后一层激活
- sigmoid
- 损失函数
- binary_crossentopy
- 多分类、单标签
- 最后一次激活
- 损失函数
- 损失函数
- 优化配置
- 哪种优化器
- 学习率
- rmsprop默认学习率是稳妥的
扩大模型规模:开发过拟合的模型
(无处不在的对立是优化与泛化的对立,理想的模型是刚好在欠拟合与过拟合的界限上,在容量不足与容量过大的界限上)1. 添加更多的层
- 让每一层更大
- 训练更多的轮次
(要始终监控训练与验证损失,或者其他你关心的指标,如果模型在验证集的性能开始下降,那么就出现了过拟合)
模型正则化与调节超参数
(最费时间,不断调节模型训练、训练、在验证数据集上进行评估(不是测试数据)然后再次调节。
- 添加dropout
- 尝试不同的架构:增加或者减少层数
- 添加L1和/或L2正则化
- 尝试不同的超参数(每层的单元个数或优化器的学习率)
- (可选)反复做特征工程:添加新特性或删除没有信息量的特征
一旦开发出了令人满意的模型配置,在所有可用数据(训练+验证)上训练最终的生产模型,然后在测试集上评估一次
- 可能出现的问题
- 如果测试集的性能比验证集上的差很多,那么可能意味着验证流程不可靠
- 或在调节模型超参数时在验证数据上出现了过拟合
- 解决方式
- 换用更加可靠的评估方法,如重复的K折验证。
小节
- 定义问题与要训练的数据
- 收集这些数据,有需要的话用标签标注数据
- 选择衡量问题成功的指标
- 要在验证数据集上监控哪些指标
- 确定评估方法
- 留出验证
- K折验证
- 应该将哪部分数据用于验证
- 开发第一个比基准更好的模型
- 一个具有统计功效的模型
- 开发过拟合的模型
- 基于模型在验证数据上的性能来进行模型正则化与调节超参数。
欢迎加入“喵星计算机技术研究院”,原创技术文章第一时间推送。
- 作者:tangcuyu
- 链接:https://expoli.tech/articles/2021/03/22/1616381410484
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章