Deep Learning Note: 3-1 正交化
构建机器学习应用的一大挑战是有众多的方案和选项可以选择和调整,例如在训练过程中就有很多超参数需要调优。在调优的过程中,需要明确进行什么样的调整,可以达到什么样的目的,将各个问题独立开来,在互不影响的情况下分别进行调优,逐个击破,正交化(Orthogonalization)地解决各个问题。
例如对于监督学习系统,通常需要通过调优,确保模型:
- 能够在代价函数上很好地拟合训练集
- 能够在代价函数上很好地拟合开发集
- 能够在代价函数上很好地拟合测试集
- 能够在现实世界的实际问题中也具有很好的性能
当模型不能很好地拟合训练集,存在高偏差问题时,解决方法有使用更大的网络、调整优化算法(如使用 Adam)等;当模型能够很好地拟合训练集,但不能很好地拟合开发集时,说明可能存在过拟合,解决方法有使用正则化、使用更大的训练集等;当模型能够很好地拟合开发集,但不能很好地拟合测试集时,说明模型可能过调于开发集,可以尝试使用更大的开发集;当模型能够很好地拟合测试集,但在实际问题上性能不佳时,说明开发集和测试集的分布不一致,或者使用的代价函数不能准确地衡量实际问题,需要调整开发集或者代价函数。
在进行调优或出现问题时,我们首先应当定位系统性能的瓶颈或问题的原因,然后选择合适的方式,尽量独立地解决这个问题,避免在解决一个问题的同时影响到另一个问题,由此可以降低调优过程的复杂度。而如前面提到的提前终止则尝试同时解决拟合训练集和避免过拟合两个问题,会带来额外的复杂度。