Tips of Deep Learning课程笔记

本文是关于李宏毅老师的机器学习课程笔记,有些部分稍有改动。本文主要介绍Deep Learning(DL)调参技巧,下图表示了DL的一般流程,在这个过程中,我们会着重关注overfitting的问题。

当我们发现模型overfitting时,不要总以为是参数太多导致overfitting,我们应该首先去看模型在training data上效果如何。

同时,我们在修正overfitting时,要注意不同的方法针对不同的问题。有的方法是针对训练误差,而有的方法是针对测试误差的,比如:Dropout

下面就是一些经常用到策略:

我们发现当深度越深,会造成浅层梯度更新慢,深层梯度更新快,深层会快速收敛。这样的话,学习到参数是不好的,因为浅层的参数是随机初始化的,并且无法更新到浅层参数。

另外当我们使用的激活函数是sigmoid的时,会造成梯度更新越来越小,梯度消失。因此,我们平时经常使用ReLU。ReLU在使用过程在小范围内是线性的,不会是梯度太小。

不同的激活函数,有不同的效果;因此,提出了可学习激活函数—Maxout。

在测试集上调整overfitting时,我们一般通过三种方法进行调整early stoppingregularizationDropout,现在主要介绍一下Dropout:

Dropout其实是一种集成方法,因为每次mini-batch进行一次dropout操作,产生不同的网络。