机器学习项目优化-第一周-吴恩达 Deep Learning Specialization 学习笔记

机器学习策略

在机器学习算法训练过程中,提高算法准确率的方法可以有很多种,例如:

  • 收集更多数据或者将数据集的内涵更加多样化

  • 采用更小的梯度下降来延长算法的训练时间

  • 采用 Adam 优化算法

  • 使用更大的神经网络

  • 采用L2 正则化或随机失活正则化

  • 更改网络的基础架构:如更换激活函数、修改隐藏单元的数量等等

如果对于如何选择合适的策略没有一个清晰的概念,很可能在一个方向上花了很长时间但最终对于算法的改进有限,因此 Andrew 在这里希望教给大家如何针对自己算法中存在的问题在这些策略中进行选择。

正交化(orthogonalization)

正交化就是将系统中一个系列的功能调整和另一个系列的功能调整尽可能的分开,最典型的例子就是老式电视机中调节画面上下和水平位置的按钮是独立的两个。

在机器学习系统构建过程中,对于系统的调整可以遵照如下的过程:

  1. 针对选定的成本函数系统在训练集中表现良好,否则此时可以考虑采用更大的神经网络,或者采用更好的优化算法如 Adam 等

  2. 针对选定的成本函数算法在调整集上的表现良好,否则此时可以考虑 L2 正则化、dropout 正则化,或者采用更大的训练数据集

  3. 针对选定的成本函数算法在测试集上的表现良好,否则这种情况很可能算法针对调整集做了过拟合,所以可以考虑采用更大的调整数据集

  4. 算法在真实世界的表现良好,否则可以考虑更换调整数据集或者干脆更换成本函数

再一次,由于其非正交化特性,建议有保留的使用 early stoping 方法。

设定单一的衡量指标

在实际训练中,有多个指标可以用来衡量算法的准确程度,例如:

  • 查准率(precision, P):通过系统识别出来的结果中,正确取得目标值所占的比例。例如猫的识别分类中,被判定为猫图片确实是猫的比例

  • 查全率(recall, R):通过系统识别出来的结果中被正确识别的目标数量与样本中所包含的目标数量的比值。继续猫分类器的例子,所有被正确识别为猫的图片数量与所有真正是猫的图片数量的比值

如果同时选择这两个指标作为衡量尺度,则很可能其中一个分类器在查准率上表现较好,而另一个分类器在查全率上表现较好,这样就很难决定该如何选择。为了免于陷入这一困境,一个聪明的做法是采用一个将二者结合起来的参数来作为衡量指标——机器学习中常用 F1 score 这一参数,其数学表达式为:

F1 = 2 / (1 / P + 1 / R)

类似的均值计算形式被称为调和平均(harmonic average),在某些情况下也可以采用算数平均的方式来判断优劣。

同时,如果对于算法的衡量指标不只一个,且不能找到类似于 F1 score 这样的参数,最好的办法就是选择其中的一个最为重要的指标作为优化指标(Optimizing metric),最大限度的优化算法在这一指标上的表现,而其他指标则可以作为满足指标(satisficing metrics),只需要算法能够满足相应的阈值要求即可。

更进一步的地,在开发过程中也很可能遇到当前衡量指标表现优越的分类器同时带来其他的意想不到的副作用,例如猫分类器的结果中混杂了色情图片,这个时候就需要及时考虑是否修改衡量指标,但指标的定义和优化依然需要尽量正交化的进行。

数据集的划分和选择

这一部分可以参照改善深层神经网络第一周的内容。

最优误差和可避免偏差

理论上的最优误差称为 Bayersian optimal error,但这个值在不过拟合的情况下是不可能达到的,只能无限的接近。同时,在很多机器学习的工作中,我们都把人的表现来近似代替最优误差来衡量系统的准确率,并且可以把系统在训练集上的表现和人类的表现的差距称为可避免偏差(avoidable bias)。

当人的表现非常好的时候,例如识别误差 1% ,而系统的误差在训练集为 8%,在验证集为 10%,此时我们可以认为系统突出的问题是表现欠拟合,我们应该继续朝减少偏差的方向努力,例如采用更大的神经网络,或者更长的训练时间。

而当人的表现也存在很大的误差时,如识别误差达 7.5%,而此时若系统的误差在训练集为 8%,在验证集为 10%,则可以认为系统的可避免偏差已经相对较小,此时努力的方向应该是减少系统的方差,即采用正则化或更大的训练数据集。

你可能感兴趣的:(机器学习项目优化-第一周-吴恩达 Deep Learning Specialization 学习笔记)