第一周:和平之城中的鸟类识别(案例研究)
第一周:和平之城中的鸟类识别 案例研究
- 1.1 为什么是ML策略?
- 1.2 正交化(Orthogonalization)
- 1.3 单一数字评估指标
- 1.4 满足和优化指标
- 1.5 训练 / 开发 / 测试集划分
- 设立Dev/Test的方法
- 1.6 开发集和测试集的大小
- 1.7 ⚠️ 什么时候改变开发/测试集和指标
- 步骤:
- 1.8 为什么是人的表现
- 1.9 可避免偏差
- 1.10 理解人的表现
- 1.11 超过人的表现
- 1.12 改善模型表现
- 改进方向
- 第一周测试总结:
本文是结构化机器学习的笔记。
1.1 为什么是ML策略?
- 快速判断那些方向比较适合继续研究,以免浪费时间。
1.2 正交化(Orthogonalization)
- 正交化的含义:各个分量互不影响。所以可以分开来考虑。
我们需要达到4个目标
因此我们的目的是为这4种情况,设计4个独立的按钮,从而可以在降低训练集准确率的前提下,提升Dev集的准确率。
1.3 单一数字评估指标
-
问题:如果一个分类器在Precision里面比较好,另一个在Recall里面比较好,该怎么选?
-
Sol:
- F1 Score: F 1 S c o r e = 2 1 P r e c i s i o n + 1 R e c a l l F1\text{ }Score=\frac{2}{\frac{1}{Precision}+\frac{1}{Recall}} F1 Score=Precision1+Recall12
-
例子2:
- 不同地区的错误率不同
-
Sol: 计算平均错误率
1.4 满足和优化指标
-
问题:准确率+时间的指标
-
设优化指标"Accuracy"(需要最值的指标),满足指标"Running Time"(不等式的指标)
-
Sol:
m a x ( A c c u r a c y ) and r u n n i n g T i m e ≤ 100 m s max(Accuracy) \text{ and } runningTime\leq100ms max(Accuracy) and runningTime≤100ms -
问题:“准确率”+“False Positive”
-
Sol:
m a x ( A c c u r a c y ) and F a l s e P o s i t i v e ≤ 1 次 / 天 max(Accuracy) \text{ and } False Positive\leq1次/天 max(Accuracy) and FalsePositive≤1次/天
1.5 训练 / 开发 / 测试集划分
如何设立Dev Set和Test Set?
-
Dev Set: hold out cross validation set
-
例子:
假设哦我们有以下地区的数据:- US
- UK
- India
- China
一种划分开发/测试数据的方法是US/UK作为开发数据,另外的两个国家作为测试集。
-
这是一个糟糕的想法,因为我们可能根据Dev Set的数据设计了一效果很好的模型,但是因为开发集和测试集并没有同样的分布,所有会有问题。
-
这就好比是一个人训练射中50m的靶,然后真正使用的时候是100m的靶。
设立Dev/Test的方法
关键⚠️ :确保开发集和训练集来自同一个分布。(在上面例子中,各个数据集里都需要有这4个地区的数据)
所以我们可以将所有数据随机洗牌,放入开发集和测试集。
1.6 开发集和测试集的大小
可以只有Train+Dev集,而没有Test集合。
1.7 ⚠️ 什么时候改变开发/测试集和指标
当没有达到预期目的的常见解决思路:
- 如果发现选出来的算法存在缺陷,则需要及时改变Metric的定义。
- 例子:
| A | 3% | 会有一定几率传递不良图片 |
| B | 5% | 无 |
此时,为了避免传递不良信息这个巨大的错误,我们需要及时修改metric。
E r r o r = 1 ∑ i w ( i ) ∑ i = 1 m d e v w ( i ) I ( y p r e d ( i ) ≠ y ( i ) ) Error=\frac{1}{\sum_iw^{(i)}}\sum_{i=1}^{m_{dev}}w^{(i)} I(y_{pred}^{(i)} \neq y^{(i)}) Error=∑iw(i)1i=1∑mdevw(i)I(ypred(i)=y(i))
其中
- m d e v m_{dev} mdev表示dev集的样本数量
- w ( i ) = { 1 如果x不是不良信息 100 如果x是不良信息 w^{(i)}=\left\{\begin{matrix} 1 \text{ 如果x不是不良信息}\\ 100 \text{ 如果x是不良信息} \end{matrix}\right. w(i)={1 如果x不是不良信息100 如果x是不良信息相当于一个乘法项目
- I ( y p r e d ( i ) ≠ y ( i ) ) = 1 I(y_{pred}^{(i)} \neq y^{(i)})=1 I(ypred(i)=y(i))=1 如果 y p r e d y_{pred} ypred预测错误
步骤:
1.8 为什么是人的表现
- 贝叶斯最优误差(Bayes Optimal Error):准确率的上限。( x → y x\to y x→y映射的最优上限)
- 我们观察到当准确率超过人类时,准确率上升速率就变慢了
- 可能的解释:
- 人的表现已经贝叶斯最优误差很接近了。
- 只要Algs比人类能力强,一些方法就不再有效了。
- 当Algs不比人类强,有一些可能有效的方法:
- 获得更多有标签的数据
- 人工对算法误差进行分析
- 对Bias和Variance方差进行分析
1.9 可避免偏差
- 用人类水平的误差估计来代替贝叶斯最优误差,这在计算机视觉里面比较常见。
- Avoidable Bias= Human-level error
- Variance= Training error
- 例子:
1.10 理解人的表现
- Recap:
用人类水平的误差估计来代替贝叶斯最优误差
-
问题:怎么定义人类水平?
-
例子:医疗影响分析
-
Hyp:
我们看的是最高水平,因为人类(或者任何系统)都只能趋近于(小于等于)贝叶斯最优误差。如果能超过人类水平,则可以部署我们训练的模型了。
当算法水平很高的时候,我们不太确定是否要继续改善模型(减小Bias)还是减小方差。因为我们不知道怎么估计贝叶斯最优误差。
1.11 超过人的表现
例如:
- 人的表现 0.5%
- Train Error 0.3%
这时候我们不知道贝叶斯最优误差是否小于0.3%,因为有过拟合的风险。
目前算法比人类强的地方:
这些都是从Structed Data中得到的结果,并不是自然感知任务(如计算机视觉)。
- 开车路线的时间
- 贷款
- 广告投放
1.12 改善模型表现
改进方向
- Avoidable Bias改善方法:
- Variance改善方法:
第一周测试总结:
这里准确率就是优化指标,内存就是满足指标。
| 95% | 2.5% | 2.5% |
总结
以上是生活随笔为你收集整理的第一周:和平之城中的鸟类识别(案例研究)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 软技能之基本沟通技巧
- 下一篇: 饭谈:盘点六种错误的技术问题提问