1-1 正交化

正交化(Orthogonalization

搭建建立机器学习系统的挑战之一是,你可以尝试和改变的东西太多太多了。比如说,有那么多的超参数可以调。我留意到,那些效率很高的机器学习专家有个特点,他们思维清晰,对于要调整什么来达到某个效果,非常清楚,这个步骤我们称之为正交化。

正交化的概念是指,你可以想出一个维度,这个维度你想做的是控制单一的目标方向。

要弄好一个监督学习系统,你通常需要调你的系统的旋钮:

确保四件事情:

首先,你通常必须确保至少系统在训练集上得到的结果不错,所以训练集上的表现必须通过某种评估,达到能接受的程度,对于某些应用,这可能意味着达到人类水平的表现。

在训练集上表现不错之后,你就希望系统也能在开发集上有好的表现。

然后你希望系统在测试集上也有好的表现。

在最后,你希望系统在测试集上系统的成本函数在实际使用中表现令人满意。

如果算法在成本函数上不能很好地拟合训练集,你想要一个旋钮,或者一组特定的旋钮,这样你可以用来确保你的可以调整你的算法,让它很好地拟合训练集,所以你用来调试的旋钮是你可能可以训练更大的网络,或者可以切换到更好的优化算法,比如 Adam 优化算法。

如果发现算法对开发集的拟合很差,也需要有一组独立的旋钮去调试。比如说,你的算法在开发集上做的不好,它在训练集上做得很好,增大训练集可以是一个可用的旋钮,它可以帮助你的学习算法更好地归纳开发集的规律。

如果系统在开发集上做的很好,但测试集上做得不好。那么你需要调的旋钮,可能是更大的开发集。因为如果它在开发集上做的不错,但测试集不行这可能意味着你对开发集过拟合了,你需要往回退一步,使用更大的开发集。

最后,如果它在测试集上做得很好,但无法给你的猫图片应用用户提供良好的体验,这意味着你需要回去,改变开发集或成本函数。因为如果根据某个成本函数,系统在测试集上做的很好,但它无法反映你的算法在现实世界中的表现,这意味着要么你的开发集分布设置不正确,要么你的成本函数测量的指标不对。

训练神经网络时,一般不用 early stopping,这个技巧也还不错,很多人都这么干。但个人而言,我觉得早期停止有点难以分析,因为这个旋钮会同时影响你对训练集的拟合,因为如果你用 early stopping,那么对训练集的拟合就不太好,但它同时也用来改善开发集的表现,所以这个旋钮没那么正交化。因为它同时影响两件事情。

posted @ 2018-10-23 08:21  刘-皇叔  阅读(1541)  评论(0编辑  收藏  举报