目录
第一章、简介
第二章、满足和优化指标
2.1、 比单实数评估指标更好的指标
单实数评估指标(见上一篇文章)并不是万能的,在很多场景并不是适用,所以本文引入别的指标。
2.2、满足指标(即约束条件)与优化指标(即效益函数)的提出
2.3、满足指标(即约束条件)与优化指标(即效益函数)案例之语音唤醒系统
2.4、小结
第一章、简介
- 本文基于吴恩达人工智能课程做学习笔记、并融入自己的见解(若打不开请复制到浏览器中打开)https://study.163.com/courses-search?keyword=吴恩达。
- 本文第二章介绍 满足和优化指标。
第二章、满足和优化指标
2.1、 比单实数评估指标更好的指标
-
单实数评估指标(见上一篇文章)并不是万能的,在很多场景并不是适用,所以本文引入别的指标。
- 要把你顾及到的所有事情,组合成单实数评估指标,有时并不容易。在那些情况里,我发现有时候设立满足和优化指标是很重要有用的。
- 让我告诉你是什么意思吧,如图2-1所示,假设你已经决定你很看重猫分类器的分类准确度,Accuracy可以是 F1 分数或者用其他衡量准确度的指标。
- 但除了准确度之外,我们还需要考虑运行时间,就是需要多长时间来分类一张图,分类器 A 需要 80 毫秒,B 需要 95 毫秒,C 需要 1500 毫秒,就是说需要 1.5 秒来分类图像。
- 你可以这么做,将准确度,和运行时间组合成一个整体评估指标,所以效益函数比如说$$ cost = Accuracy - 0.5 *runing time$$,这种组合方式可能太刻意,只用这样的公式来组合准确度和运行时间,两个数值的线性加权求和。
2.2、满足指标(即约束条件)与优化指标(即效益函数)的提出
图 2.1
- 你还可以做其他事情,就是你可能选择一个分类器,能够最大限度提高准确度。但是必须满足运行时间要求,就是对图像进行分类所需的时间,必须小于等于 100 毫秒。
- 所以在这种情况下 我们就说准确度是一个优化指标,因为你想要准确度最大化,你想做的尽可能准确,但是运行时间 就是我们所说的满足指标(即约束条件),意思是它必须足够好,它只需要小于 100 毫秒。
- 达到满足指标之后,你不需要在乎这满足指标有多好,或者至少你不会那么在乎。所以这是一个相当合理的权衡方式,或者说将准确度和运行时间结合起来的方式。
- 实际情况可能是只要运行时间少于 100 毫秒,你的用户就不会在乎,运行时间是 100 毫秒还是 50 毫秒 甚至更快。
- 通过定义优化和满足指标,就可以给你提供一个明确的方式去选择“最好的”分类器。
- 在这种情况下分类器B最好,因为在所有的运行时间都小于 100 毫秒的分类器中,它的准确度最好。
- 所以更一般地说,如果你要考虑 N 个指标,有时候选择其中一个指标做为优化指标是合理的,所以你想尽量优化那个指标,然后剩下 N-1个指标都是满足指标,意味着只要N-1个满足指标(约束条件)达到一定阈值,例如运行时间快于 100 毫秒,但只要达到一定的阈值,你不在乎它超过那个门槛之后的表现,但它们必须达到这个门槛。
2.3、满足指标(即约束条件)与优化指标(即效益函数)案例之语音唤醒系统
- 这里是另一个例子,假设你正在构建一个系统来检测唤醒语,也叫触发词,这指的是语音控制设备,比如亚马逊 Echo,你会说 Alexa,或者用 Okay Google 来唤醒谷歌设备,或者对于苹果设备你会说 Hey Siri,或者对于某些百度设备,我们用你好百度 唤醒。如果你想知道中文怎么写的话,就是你好百度。对的 这些就是唤醒词,可以唤醒这些语音控制设备,然后监听你想说的话,这些是你好百度的汉字。
- 所以你可能会在乎触发字检测系统的准确性,所以当有人说出其中一个触发词时,有多大概率可以唤醒你的设备,这就是我们常说的真正类(True positive)。
- 你可能也需要顾及假正类的数量——假正类就是没有人在说这个触发词时,它被随机唤醒的概率有多大。
- 所以这种情况下,组合这两种评估指标(真正类与假正类)的合理方式,可能是最大化精确度。所以当某人说出唤醒词时,你的设备被唤醒的概率最大化。
- 然后必须满足,24 小时内最多只能有 1 次假阳性 对吧?,所以你的设备平均每天只会没有人真的在说话时随机唤醒一次。
- 所以在这种情况下,准确度是优化指标,然后每 24 小时发生一次假阳性是满足指标 ,你只要每 24 小时最多有一次假阳性 就满足了。
2.4、小结
- 总结一下,如果你需要顾及多个指标,比如说有一个优化指标,你想尽可能优化的。然后还有一个或多个满足指标需要满足的,需要达到一定的门槛,
- 现在你就有一个全自动的方法,在观察多个算法下效益函数的大小时选出”最好的”那个,现在这些评估指标(包括优化指标、满足指标)必须是在训练集或开发集或测试集上计算或求出来的。
- 所以你还需要做一件事就是设立训练集、开发集、还有测试集,在下一个视频里 我想和大家分享一些,如何设置训练集、开发集、还有测试集的指导方针,我们下一个视频继续。