欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

第一周:和平之城中的鸟类识别(案例研究)

发布时间:2024/1/8 编程问答 42 豆豆
生活随笔 收集整理的这篇文章主要介绍了 第一周:和平之城中的鸟类识别(案例研究) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

第一周:和平之城中的鸟类识别 案例研究

  • 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个目标

  • 训练集上好
  • Dev集上好
  • Test集上好
  • 现实情况下好
  • 因此我们的目的是为这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 runningTime100ms

    • 问题:“准确率”+“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 FalsePositive1/

    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以适应目的
  • 改变Dev/Test数据集,以确保两者为相同的分布。
    • 如果发现选出来的算法存在缺陷,则需要及时改变Metric的定义。
    • 例子:
    算法错误率其他
    A3%会有一定几率传递不良图片
    B5%

    此时,为了避免传递不良信息这个巨大的错误,我们需要及时修改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=1mdevw(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预测错误

    步骤:

  • 确定Metric(放靶)
  • 达到目标(放箭),可以通过微调Cost Function的定义。我们总是可以适时地观察我们已经训练的模型,从而根据我们的需要修改模型,从而达到我们的预期目的。
  • 1.8 为什么是人的表现

    • 贝叶斯最优误差(Bayes Optimal Error):准确率的上限。( x → y x\to y xy映射的最优上限)
    • 我们观察到当准确率超过人类时,准确率上升速率就变慢了
    • 可能的解释:
      • 人的表现已经贝叶斯最优误差很接近了。
      • 只要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 改善模型表现

  • 对Train Set拟合很好 -> Bias
  • 在dev/test Set上也很好 -> Variance
  • 改进方向

    • Avoidable Bias改善方法:
  • 训练一个更大的模型
  • 多训练一会
  • 改善网络结构
    • Variance改善方法:
  • 输入更多的数据
  • 正则化(L2,Dropout)
  • 改善网络结构
  • 第一周测试总结:

  • 我们需要确定一个评估指标,否则会降低工作效率。我们可以通过优化指标满足指标将多个指标缩小为一个指标。例如 m a x ( 准 确 率 ) and  内 存 ≤ 10 M b max(准确率) \text{ and } 内存\leq10Mb max() and 10Mb
    这里准确率就是优化指标,内存就是满足指标。
  • 深度学习领域一般数据集的划分为
  • 训练集开发集测试集
    95%2.5%2.5%
  • 应该用人类最高水平来估计贝叶斯最优误差。但这里有一个前提,即统计的人数足够多,这样的百分数才比较准确。
  • 学习算法的性能可以优于人类表现,但它永远不会优于贝叶斯错误的基准线。
  • 总结

    以上是生活随笔为你收集整理的第一周:和平之城中的鸟类识别(案例研究)的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。