吴恩达deep learning ai 笔记总结(3-1) 构建机器学习项目-机器学习策略(上)

构建机器学习项目-机器学习策略(上)

机器学习策略

当我们最初得到一个深度神经网络模型时,我们可能希望从很多方面来对它进行优化,例如:

  • Collect more data
  • Collect more diverse training set
  • Train algorithm longer with gradient descent
  • Try Adam instead of gradient descent
  • Try bigger network
  • Try smaller network
  • Try dropout
  • Add L2 regularization
  • Network architecture: Activation functions, #hidden units…
    可选择的方法很多,也很复杂、繁琐。盲目选择、尝试不仅耗费时间而且可能收效甚微。因此,使用快速、有效的策略来优化机器学习模型是非常必要的。

正交化方法(Orthogonalization)

机器学习中有许多参数、超参数需要调试。通过每次只调试一个参数,保持其它参数不变,而得到的模型某一性能改变是一种最常用的调参策略,我们称之为正交化方法(Orthogonalization)。

Orthogonalization的核心在于每次调试一个参数只会影响模型的某一个性能。例如老式电视机旋钮,每个旋钮就对应一个功能,调整旋钮会调整对应的功能,而不会影响其它功能。也就是说彼此旋钮之间是互不影响的,是正交的,这也是Orthogonalization名称的由来。这种方法能够让我们更快更有效地进行机器学习模型的调试和优化。

对应到机器学习监督式学习模型中,可以大致分成四个独立的“功能”,每个“功能”对应一些可调节的唯一的旋钮。四个“功能”如下:

  1. Fit training set well on cost function
    Biggner network;
    Better optimization algorithm(Adam)
  2. Fit dev set well on cost function
    Bigger traning set;
    Regularization
  3. Fit test set well on cost function
    Bigger dev set
  4. Performs well in real world
    Change dev set distribution and cost function

Single number evaluation metric

构建、优化机器学习模型时,单值评价指标非常必要。有了量化的单值评价指标后,我们就能根据这一指标比较不同超参数对应的模型的优劣,从而选择最优的那个模型。

举个例子,比如有A和B两个模型,它们的**准确率(Precision)召回率(Recall)**分别如下:
在这里插入图片描述
如果只看Precision的话,B模型更好。如果只看Recall的话,A模型更好。实际应用中,我们通常使用单值评价指标F1 Score来评价模型的好坏。F1 Score综合了Precision和Recall的大小,计算方法如下:
在这里插入图片描述
然后得到了A和B模型各自的F1 Score:

在这里插入图片描述
从F1 Score来看,A模型比B模型更好一些。通过引入单值评价指标F1 Score,很方便对不同模型进行比较。

除了F1 Score之外,我们还可以使用平均值作为单值评价指标来对模型进行评估。如下图所示,A, B, C, D, E, F六个模型对不同国家样本的错误率不同,可以计算其平均性能,然后选择平均错误率最小的那个模型(C模型)。
在这里插入图片描述

Satisficing and Optimizing metic

有时候,要把所有的性能指标都综合在一起,构成单值评价指标是比较困难的。解决办法是,我们可以把某些性能作为优化指标(Optimizing metic),寻求最优化值;而某些性能作为满意指标(Satisficing metic),只要满足阈值就行了。
假设有三个不同的分类器性能表现如下:
在这里插入图片描述
Accuracy和Running time这两个性能不太合适综合成单值评价指标。因此,可以将Accuracy作为优化指标(Optimizing metic),将Running time作为满意指标(Satisficing metic)。也就是说,给Running time设定一个阈值,在其满足阈值的情况下,选择Accuracy最大的模型。
如果设定Running time必须在100ms以内,那么很明显,模型C不满足阈值条件,首先剔除;模型B相比较模型A而言,Accuracy更高,性能更好。

概括来说,性能指标(Optimizing metic)是需要优化的,越优越好;而满意指标(Satisficing metic)只要满足设定的阈值就好了。

Train/dev/test distributions

Size of the dev and test sets

Train/dev/test sets如何设置对机器学习的模型训练非常重要,合理设置能够大大提高模型训练效率和模型质量。
训练、开发、测试集选择设置的一些规则和意见:

训练、开发、测试集的设置会对产品带来非常大的影响;

  • 在选择开dev sets和test sets时要使二者来自同一分布,且从所有数据中随机选取;
  • 所选择的dev sets和test sets中的数据,要与未来想要或者能够得到的数据类似,即模型数据和未来数据要具有相似性;
  • 对于test sets数量的设置,应该遵循的准则是通过test sets能够反映出模型在实际中的表现。
  • 对于dev sets数量的设置,应该遵循的准则是通过dev sets能够检测不同算法或模型的区别,以便选择出更好的模型。

When to change dev/test sets and metrics

算法模型的评价标准有时候需要根据实际情况进行动态调整,目的是让算法模型在实际应用中有更好的效果。

example1
初始的评价标准是错误率,算法A错误率为3%,算法B错误率为5%。显然,A更好一些。但是,实际使用时发现算法A会通过一些色情图片,但是B没有出现这种情况。从用户的角度来说,他们可能更倾向选择B模型,虽然B的错误率高一些。这时候,我们就需要改变之前单纯只是使用错误率作为评价标准,而考虑新的情况进行改变。例如增加色情图片的权重,增加其代价。
原来的cost function:
在这里插入图片描述
更改评价标准后的cost function:

在这里插入图片描述
example2
需要动态改变评价标准的情况是dev/test sets与实际使用的样本分布不一致。比如猫类识别样本图像分辨率差异。
在这里插入图片描述
概括来说,机器学习可分为两个过程:

1. Define a metric to evaluate classifiers
2. How to do well on this metric

Why human-level performance

机器学习模型的表现通常会跟人类水平表现作比较,如下图所示:
在这里插入图片描述
横坐标是训练时间,纵坐标是准确性。机器学习模型经过训练会不断接近human-level performance甚至超过它。但是,超过human-level performance之后,准确性会上升得比较缓慢,最终不断接近理想的最优情况,我们称之为bayes optimal error。理论上任何模型都不能超过它,bayes optimal error代表了最佳表现。

实际上,human-level performance在某些方面有不俗的表现。例如图像识别、语音识别等领域,人类是很擅长的。所以,让机器学习模型性能不断接近human-level performance非常必要也做出很多努力:

Avoidable bias

通常,把training error与human-level error之间的差值称为bias,也称作avoidable bias;把dev error与training error之间的差值称为variance。根据bias和variance值的相对大小,可以知道算法模型是否发生了欠拟合或者过拟合。

Surpassing human-level performance

对于自然感知类问题,例如视觉、听觉等,机器学习的表现不及人类。但是在很多其它方面,机器学习模型的表现已经超过人类了。

实际上,机器学习模型超过human-level performance是比较困难的。但是只要提供足够多的样本数据,训练复杂的神经网络,模型预测准确性会大大提高,很有可能接近甚至超过human-level performance。值得一提的是当算法模型的表现超过human-level performance时,很难再通过人的直觉来解决如何继续提高算法模型性能的问题。

Improving your model performance

提高机器学习模型性能主要要解决两个问题:avoidable bias和variance。training error与human-level error之间的差值反映的是avoidable bias,dev error与training error之间的差值反映的是variance。

减少avoidable bias

- Train bigger model
- Train longer/better optimization algorithms:
->momentum, RMSprop, Adam…
- NN architecture/hyperparameters search
->CNN,RNN…

减少variance

- More data
- Regularization:
->L2, Dropout, Data augmentation…
- NN architecture/hyperparameters search
->CNN,RNN…

发布了45 篇原创文章 · 获赞 4 · 访问量 2518

猜你喜欢

转载自blog.csdn.net/keke_Memory/article/details/102762546