评估模型

1. 制定评价模型指标

优化指标(Optimizing metic)

定义

一类越高越好的指标

考虑点

统一计算指标

原因

如果不存在一个单一指标,能全面评价一个模型,就会造成一个模型有这样的优点,另一个模型又有别的优点,不知道选哪个的问题

解决方法

F1-score

因子

  • 准确率(Precision)=实际为1且预测为1/预测为1
  • 召回率(Recall)=召回率=实际为1且预测为1/实际为1

满意指标(Satisficing metic)

2. 基于指标分析模型,并制定优化策略

1. 满意指标

2. 优化指标

分析原则

根据提升准确率的性价比制定优先级

一般优先级

公式计算优先级

1.观察数据(Dev set error),确定可提升准确率

观察错误数据,根据错误情况性价比制定优化日程表

  1. 绘制情况表格,得出相关问题所占百分比
  2. 计算可提升准确率公式
    可提升准确率=错误率*这类错误所占百分比(例如:猫识别模型中,总体错误率为10%,期中模型识别错的如例子表格所示,期中识别错了狗的比例是8%,所以可提升准确率=8%*10%=0.8%)
  3. 如果数据存在错误标示问题,而且这个问题造成的误差(0.6%)与模型选择(A模型2.1%,B模型1.9%)误差差距较小,这时就需先把错误标示问题解决,因为这已经影响了模型选择

2. 估计各个选项工时

3.计算性价比(性价比=可提升准确率/耗时)

例如:猫识别模型中,总体错误率为10%,其中模型识别错的如例子表格所示,其中识别错了狗的比例是8%,所以可提升准确率=8%*10%=0.8%,评估用时10天,那性价比就是0.4

制定策略原则

原则

对某个问题调优时不要影响其他结果

指导思想:正交化方法

  • 单影响方法
    • 更复杂的模型
    • 正则化
    • 收集更多测试数据
    • 替换现实数据到开发集
  • 多影响方法:早停

调试策略

方法

观察误差

观察数据(dev set)和错误之间的关系

定义

达到阈值就好,但一般重要性比优化指标高

例子

  • 预测时间小于0.5s
  • 训练时间小于12h

平衡准确率

背景

某些任务预测错误的成本很高,所以当模型不确定是改为人工录入

例子

辅助录入系统

覆盖

是机器学习系统能够产生相应的样本所占比例

解决办法

在可接受的准确率内通过设置置信度阈值尽量提升覆盖比例

不相等的损失厌恶

概述

一种错误可能呢会比另一种错误更严重

例子

邮件分类中正常邮件分为垃圾邮件比垃圾邮件分为正常邮件更严重

实现

修改代价函数,让代价函数体现不准确的损失厌恶

难点

  • 很难判断效果不好的原因是算法本身,还是算法实现错误
  • 大部分机器学习模型有多个自适应的部分,如果一部分失效,其他部分仍然可以自适应

观察数据(dev set)和错误之间的关系

  • 例子:把狮子识别为猫
  • 表现:在错误率对应的数据中,某项数据站了很大一部分
  • 解决方法:加入对抗数据(如果模型容易把大型猫科动物识别为猫的话,就加入大型猫科动物数据)

可视化

可视化计算中模型的行为

概述

直接观察机器学习模型运行其任务,有助于确定其达到的量化性能的数据是否看上去合理

例子

  • 图像识别中间层的卷积层

可视化最严重的错误

概述

查看训练集中很难正确建模的样本,通常可以发现该数据预处理或者标记方式的问题

例子

  • 图片识别中差别很大的被识别成一类

根据训练和测试误差检测代码

拟合极小的数据集

用一个简单的模型拟合一个极小的数据集

比较反向传播和数值导数

比较自动求导的实现和通过有限差分计算的导数

监控激活函数和特度的直方图

隐藏神经元的预激活值可以告诉我们该单元是否饱和,或者他们的饱和频率如何