吴恩达新书-机器学习学习笔记-(七)调试推理算法

书籍资料可以在以下链接中找到:中文版,英文版

1.优化验证测试

假设你正在构建一个语音识别系统,该系统通过输入一个音频片段A,并为每一个可能的输出句子S计算得分 ScoreA
(S) 。例如,你可以试着估计 ScoreA(S) = P(S|A) ,表示句子 S 是正确输出的转录的概率,其中 A 是给定的输入音频。

给定某种方法能够计算 ScoreA(S) 后,你仍然需要找到一个英文句子 S 来使之最大化:

那么我们如何来计算上面的argmax呢?假设在英文中共有 5000 个词汇,对于长度为 N 的句子,则有 (50,000)N 种搭配,多到根本无法一一列举。因此,你需要使用一种近似搜索算法,努力去找到能够优化(最大化)ScoreA(S) 的那个 S . 有一种叫做 “定向搜索” 的搜索算法,在搜索过程中仅保留最优的 K 个候选项(在本章中你并不需要了解该算法的细节)。类似这样的算法并不足以保证能够找到满足条件的 S 来最大化 ScoreA(S).

对于上述问题。造成该误差的可能原因有两种:

1.搜索算法存在问题。 近似搜索算法没能够找到最大化 ScoreA(S) 的那个 S 。

2.目标(得分函数)存在问题。 我们对 ScoreA(S) = P(S|A) 的估计并不准确。

这个时候我们可以采取优化验证测试集的方法:首先计算算 ScoreA(S*) 和 ScoreA(Sout) ,看他们两的分数,以及搜索算法是否选择了最大的那个值,和这个分数给的合不合理来判断是搜索算法存在问题还是目标(得分函数)存在问题。

2.优化验证测试的一般形式

假设 y* 是 “正确的” 输出,可算法输出了 yout . 此时的关键在于测量是否有 Scorex(y*) >Scorex(yout). 如果该不等式成立,我们便可以将误差归咎于优化算法。(请参考前一章的内容,以确保你理解这背后的逻辑。)否则,我们将误差归咎于 Scorex(y) 的计算方式。

3.强化学习举例

为了应用优化验证测试,让 Thuman 表示人类飞行员所选择的轨迹,并让 Tout 代表算法所选择的轨迹。根据我们上面的描述,Thuman是优于 Tout 的发展轨迹。因此,关键的测试点在于:不等式 R(Thuman) > R(Tout) 是否成立?

情况1:如果不等式成立,奖励函数 R(.) 正确地使 Thuman优于 Tout ,但这表明我们的强化学习算法找到的 Tout 仍不够好,花时间去改进算法是很值得的。

情况2:如果上面不等式不成立,而是 R(Thuman) ≤ R(Tout). 这表明 R(.) 的设计使得理应是更优策略的 Thuman 得到了一个更糟的评分。你应当致力于改进 R(.) ,以更好地获得与良好着陆情况相对应的权衡。

猜你喜欢

转载自blog.csdn.net/weixin_39059031/article/details/83721795