天天看点

机器学习笔记5:机器学习策略之方差和偏差

本文主要参考吴恩达的机器学习课程。

一、机器学习中的各种策略:

      开发 一个完整的机器学习项目要经历:使用训练集训练模型--->开发集调整模型参数--->测试集测试模型效果--->上线实际使用。

  1. 如果模型在训练集上表现不好,可采取的策略有:

        选择更大的神经网络(即更复杂的模型),使用AdamOptimizer等替代随机梯度下降法来优化,等等。

   2. 如果模型在开发集上表现不好,可采取的策略有:

          正则化,dropout(作用相当于正则化), 使用更多的数据作为训练集,等等

   3.  如果模型在在测试集上表现不好,可采取的策略有:

          使用更多的数据作为开发集,等等

   4. 如果模型在现实应用中表现不好,可采取的策略有:

           改变开发集或者损失函数,等等

      注:不太建议使用early stopping.

二、 评估指标

       1. 常用的评估指标有准确率,F-socre等

       2. 实际中,可考虑运行时间等其他指标。

三、 指南

        选择未来期望会用到的、模型表现较好的数据来作为开发集和测试集,即开发集、测试集应和项目上线后实际应用中的数据来自同一个分布(数据源一致)。反例:不能使用高清图片作为开发集和测试集,然后实际应用大多是识别有很多噪声的图片,这样应用效果可能会不好。

四、训练集、开发集和测试集的划分

   1. 传统方式:70%的训练集、30%的测试集(实际应叫开发集);或者60%的训练集,20%的开发集,20%测试集

    2. 数据量很大(达到百万以上的级别)时,可考虑98%作为训练集,1%作为开发集,1%作为测试集。

    3. 不建议省略测试集

五、 和人类的水平进行比较:  

      人类在模型任务上特别擅长, 如果你的模型表现不如人类水平,可以做如下工作:

     1. 获取人工打过标签的数据

     2. 人工分析错误原因:为什么人类作对了?

     3.  更好地进行偏差和方差分析:

(1)计算人类的水平和模型在训练集上的错误率和之差deta1,计算模型在训练集上的错误率和开发集上的错误率之差deta2;

(2)如果deta1较大,则说明偏差过大(模型可能欠拟合),可考虑的措施有:

       训练更复杂的模型,使用更好的优化算法(Momentum, RMSProp, Adam等), 超参搜索等。

  (3)  如果deta2较大,则说明方差过大(模型可能过拟合),可考虑的措施有:

        使用更多的数据;正则化,包括L2,dropout, 数据增强(如图片的裁剪/缩放/彩色变换/翻转), 超参搜索等。

     4. 机器学习在某些领域已经超越了人类的表现

继续阅读