设置开发和测试集
- 开发集和测试集的定义
- 开发集和测试集应该服从同一分布
- 开发集和测试集应该有多大?
- 使用单值评估指标进行优化
- 优化指标和满意度指标
- 通过开发集和度量指标加速迭代
- 何时修改开发集、测试集和指标
- 小结:建立开发集和测试集
基本误差分析
- 快速构建并迭代你的第一个系统
- 误差分析:根据开发集样本评估想法
- 在误差分析时并行评估多个想法
- 清洗误标注的开发集和测试集样本
- 将大型开发集拆分为两个子集,专注其一
- Eyeball 和 Blackbox 开发集该设置多大?
- 小结:基础误差分析
偏差和方差
学习曲线
与人类水平的表现相比
不同发行版的培训和测试
调试推理算法
端到端学习
按零件进行误差分析
总结
优化验证测试的一般形式
你可以在如下情况运用优化验证测试,给定输入 $x$ ,且知道如何计算 $\text{Score}_x (y)$ 来表示 $y$ 对输入 $x$ 的响应好坏。此外,你正在使用一种近似算法来尽可能地找到 $ \arg \max_y \text{Score}_x(y)$ ,但却怀疑该搜索算法有时候并不能找到最大值。在我们先前提到的语音识别的例子中,$x=A$ 代表某个音频片段, $y=S$ 代表输出的转录。
假设 $y^*$ 是 “正确的” 输出,可算法输出了 $y_{out}$ . 此时的关键在于测量是否有 $\text{Score}\x(y^*) \ge \text{Score}\_x(y\{out})$ . 如果该不等式成立,我们便可以将误差归咎于优化算法。(请参考前一章的内容,以确保你理解这背后的逻辑。)否则,我们将误差归咎于 $\text{Score}_x (y)$ 的计算方式。
让我们再看一个例子:假设你正在构建一个中译英的机器翻译系统,输入一个中文句子$C$ ,并计算出每一个可能的翻译句子 $E$ 的得分 $\text{Score}_C(E)$,例如,你可以使用 $\text{Score}_C(E)=P(E|C)$,表示给定输入句子 $C$ ,对应翻译句子为 $E$ 的概率。
你的算法将通过计算下面的公式来进行句子的翻译:
$$ \text{Output}=\arg \max_E \text{Score}_C(E)
$$ 然而所有可能的英语句子构成的集合太大了,所以你将依赖于启发式搜索算法。
假设你的算法输出了一个错误的翻译 $E_{out}$,而不是正确的翻译 $E^*$ . 优化验证测试会要求你计算是否有 $\text{Score}_C (E^) \gt \text{Score}_C (E)_{out}$ . 如果这个不等式成立,表明 $\text{Score}_C(.)$ 正确地辨认 $E^\$ 是一个更好的输出;因此你可以将把这个误差归咎于近似搜索算法。否则,你可以将这个误差归咎于 $\text{Score}_C(.)$ 的计算方式。
在人工智能领域,这是一种非常常见的 “设计模式”,首先要学习一个近似的得分函数 $\text{Score}_X(.)$ ,然后使用近似最大化算法。如果你能够发现这种模式,就能够使用优化验证测试来理解造成误差的来源。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论