深度模型训练方法

2017-10-10  本文已影响646人  RobertY

深度模型拥有很多超参:

超参优化的优先级

  1. 学习步长alpha最重要
  2. momentum参数beta,默认=0.9; mini-batch; hidden units;
  3. layers; learning rate decay;
  4. beta1, 默认=0.9; bera2, 默认=0.999; epsilon, 默认=pow(10, -8)

train/dev/test sets

所有的数据将被划分为 training set/development set/test set

首先在training set上训练很多模型,然后在dev set上验证(可以cross validation)一个最好的模型,最后在test set上测试模型的性能。

数据集划分

在传统的机器学习算法中,数据集通常划分为70%的training set和30%的test set,或者60% training set, 20%dev set, 20%test set。当数据集的总量在10000量级以内,这种划分方法最合适不过了。

当如果数据总量很大,比如在百万集的量级时,我们也许需要重新思考数据的划分策略了。通常,我们会倾向与划分更小比例的数据到dev set和test set。划分dev set的目标是校验模型并且调整以及选择一个最佳的模型,同样,划分test set的目标是评估最优模型的性能。

所以,不必要划分太多的数据到这两个数据集上。如果,拥有一百万量级的数据,那么,分别划分10000条数据到dev set和test set就足够了。

此外,为了让模型拥有更好的泛化能力,training set/dev set/test set的数据分布比例必须大致相同。

Bias & Variance

Bias和Variance代表训练出来的模型往往是偏执的,为了更好地解释这个概念,本人认为偏执一般与泛化相对。其中,Bias指的是训练偏执,Variance是测试偏执。如何降低模型的偏执,增强泛化能力呢?

首先,如果模型在训练数据上拟合不足,我们认为模型已经Bias了;相反,如果模型在训练集上过度拟合,认为模型Variance,并且出现了overfitting。这两种情况都不是理想的训练结果。
下面解释Bias和Variance的判断依据:

偏执类型 Bayes optimal error Training set error Dev set error
High Bias 0.01% 12.00% 12.10%
High Variance 0.01% 0.50% 12.10%
High Bias & High Variance 0.01% 12.00% 20.10%
Low Bias & Low Variance 0.1% 0.50% 0.80%

Bayes optimal error 指的是由于数据本身的规律性和合理性的限制(数据质量不够),理论上最理想的最小识别误差值的大小。这个值往往是由相关专业人士识别数据所推导出来的误差极限(计算机算法很难达到)。Training set error指的是算法在训练集上训练出来的识别误差。Dev set error指验证集上的识别误差。

优化high Bias & high Variance

优化策略如下:

High Bias

High Variance

好的模型判断方法

机器学习模型算法训练的好或是不好,可以通过以下两个方面判断:

此外,还有一些情况,模型在测试集上拟合的很好,性能表现优越,但在现实使用情况下表现幷不尽人意,此时需要考虑的是数据集的选择出现了偏差,需要根据现实情况合理调整数据的分布了。

正所谓,模型好坏的极限是由数据的质量决定的,而算法的性能只能让模型无限逼近这个极限。由此,数据质量的重要性可见一斑。

上一篇 下一篇

猜你喜欢

热点阅读