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

当给定一些输入 $x$ 时,您可以应用优化验证测试,您知道如何计算$Score_x(y)$,通过这个指标来衡量输出 $y$ 对输入 $x$ 的响应有多好。此外,你还正在使用一种近似算法试图找到 $arg\ max_y\ Score_x(y)$,但怀疑近似搜索算法有时并不能找到满足条件的最大值。在我们之前的例子中, $x=A$指代音频剪辑数据,$y=S$ 指代输出转录。

我们还是约定 $y^{ }$ 是“正确的”输出,算法的输出约定为 $y_{out}$。然后,关键的测试是衡量指标之间的关系是否满足 $Score_x(y^{ }) > Scorex(y{out})$,如果这个不等式成立,那么我们将错误归咎于优化算法——请参考前一章,以确保您理解背后的逻辑——否则,我们则将错误归咎于 $Score_x(y)$ 的计算。

让我们再看一个例子。假设您正在构建一个汉英机器翻译系统。你的系统通过输入中文句子 C 并计算出每个可能的英文句子 E 的评分 $Score_C(E)$ 来选出最恰当的翻译句子。例如,你利用公式 $Score_C(E) = P(E|C)$ 来计算出在给定中文句子 C 的前提下,翻译出句子 E 的概率来。

您的算法通过尝试计算下列公式来翻译句子:

Output=arg\ \underset{E}{max}\ Score_C(E)

但是,所有可能的英语句子 E 的集合太大了,所以你需要依赖启发式搜索算法。

假设你的算法输出一个不正确的翻译 $E{out}$ 而不是一些正确的翻译 $E^{ }$。然后,优化验证测试会要求你计算 $Score_C(E^{ }) > Score_C(E{out})$,如果这个不等式成立,也就是说 $ScoreC(.)$ 正确地判断出 $E^{* }$ 是 $E{out}$ 的最优输出,则我们将错误归咎于算法优化不够好。否则,我们则将错误归咎于 $Score_x(y)$ 的计算。

在 AI 中,最常见的“设计模式”是先学习一个近似评分函数 $Score_C(.)$,然后使用近似最大化算法。如果你能够发现这种模式,你将能够使用优化验证测试来了解错误的来源。