首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
机器学习为什么需要策略
开发集和测试集的定义
开发集和测试集应该服从同一分布
开发集和测试集应该有多大?
使用单值评估指标进行优化
优化指标和满意度指标
通过开发集和度量指标加速迭代
何时修改开发集、测试集和指标
快速构建并迭代你的第一个系统
误差分析:根据开发集样本评估想法
在误差分析时并行评估多个想法
清洗误标注的开发集和测试集样本
将大型开发集拆分为两个子集,专注其一
Eyeball 和 Blackbox 开发集该设置多大?
偏差和方差:误差的两大来源
偏差和方差举例
与最优错误率比较
处理偏差和方差
偏差和方差间的权衡
减少可避免偏差的技术
训练集误差分析
减少方差的技术
诊断偏差与方差:学习曲线
绘制训练误差曲线
解读学习曲线:高偏差
解读学习曲线:其它情况
绘制学习曲线
为何与人类表现水平进行对比
如何定义人类表现水平
超越人类表现水平
何时在不同的分布上训练与测试
如何决定是否使用你所有的数据
如何决定是否添加不一致的数据
给数据加权重
从训练集泛化到开发集
辨别偏差、方差和数据不匹配误差
解决数据不匹配问题
人工合成数据
优化验证测试
优化验证测试的一般形式
强化学习举例
端到端学习的兴起
端到端学习的更多例子
端到端学习的优缺点
流水线组件的选择:数据可用性
流水线组件的选择:任务简单性
直接学习更为丰富的输出
根据组件进行误差分析
误差归因至某个组件
误差归因的一般情况
组件误差分析与人类水平对比
发现有缺陷的机器学习流水线
当前位置:
首页>>
技术小册>>
机器学习训练指南
小册名称:机器学习训练指南
继续分析我们之前提到的猫咪图片的案例:现在你负责运营一个移动端 app,用户会向这个 app 上传许多不同内容的图片。而你希望这个 app 能够从图片中自动地找到含有猫的图片。 你的团队已经在不同的网站下载了含有猫的图片(正样本,又译作正例),以及不含猫的图片(负样本,又译作反例),从而得到了一个巨型的数据集。他们将数据集按照 70% / 30% 的比例划分为训练集(training set)和测试集(test set),并且使用这些数据构建出了一个在训练集和测试集上均表现良好的猫咪检测器。 可当你将这个分类器(classifier)部署到移动应用中时,却发现它的性能相当之差! 这究竟是什么原因导致的呢? 你会发现,从网站上下载下来作为训练集的图片与用户上传的图片有较大的区别——用户上传的图片大部分是使用手机拍摄的,此类图片往往分辨率较低,且模糊不清,采光也不够理想。但由于用来进行训练和测试的数据集图片均取自网站,这就导致了算法不能够很好地泛化(generalize)到我们所关心的手机图片的实际分布(actual distribution)情况上。 在大数据时代来临前,机器学习中的普遍做法是使用 70% / 30% 的比例来随机划分出训练集和测试集。这种做法的确可行,但在越来越多的实际应用中,训练数据集的分布(例如上述案例中的网站图片)与人们最终所关心的分布情况(例如上述案例中的手机图片)往往不同,此时执意采取这样的划分其实是一个坏主意。 我们通常认为: - **训练集(training set)**用于运行你的学习算法。 - **开发集(development set)**用于调整参数,选择特征,以及对学习算法作出其它决定。有时也称为**留出交叉验证集(hold-out cross validation set)**。 - **测试集(test set)**用于评估算法的性能,但不会据此改变学习算法或参数。 在定义了开发集(development set)和测试集(test set)后,你的团队将可以尝试许多的想法,比如调整学习算法的参数来探索哪些参数的使用效果最好。开发集和测试集能够帮助你的团队快速检测算法性能。 换而言之,**开发集和测试集的使命就是引导你的团队对机器学习系统做出最重要的改变。** 所以你应当这样处理: > 合理地选择开发集和测试集,使之能够代表将来实际数据的情况,并期望算法能够运行良好。 也就是说你的测试集不应该仅是简单地将可用的数据划分出 30%,尤其是将来获取的数据(移动端图片)在性质上可能会与训练集(网站图片)有所不同时。 如果你尚未推出移动端 app,那么可能还没有任何的用户,因此也无法获取一些准确的反馈数据来为后续的行动提供依据。但你仍然能够尝试去模拟出这种情况,例如邀请你的朋友用手机拍下照片并发送给你。当你的 app 上线后,就能够使用实际的用户数据对开发集和测试集进行更新。 如果你实在没有途径获取近似未来实际情况的数据,也可以尝试使用已有的网站图片。但你应该意识到这其中的风险,它将导致系统不能够很好地泛化(generalize)。 选择一个理想的开发集和测试集是需要一定投入的,投入多少由你来决定。但请不要武断地认为测试集分布和训练集分布是一致的。尽可能地选择你最终期望算法能够正确处理的样本作为测试集,而不是随便选择一个你恰好拥有的训练集样本。
上一篇:
机器学习为什么需要策略
下一篇:
开发集和测试集应该服从同一分布
该分类下的相关小册推荐:
深度强化学习--算法原理与金融实践(四)
GitHub Copilot 实践
ChatGLM3大模型本地化部署、应用开发与微调(下)
ChatGPT使用指南
区块链权威指南(上)
AI时代架构师:ChatGPT与架构师(下)
AI训练师手册:算法与模型训练从入门到精通
AI Agent 智能体实战课
深度强化学习--算法原理与金融实践(三)
人工智能超入门丛书--数据科学
与AI对话:ChatGPT提示工程揭秘
ChatGPT大模型:技术场景与商业应用(下)