李宏毅机器学习笔记4 -- DNN训练

李宏毅课程中关于 Tips of deep learning这部分讲的知识点比较多而且很细节。其中的dropout、ReLU等等很早就使用了,但是其中的细节却一直没有注意,这里总结一下课程中的知识,趁机巩固一下基础。

开篇

李宏毅机器学习笔记4 -- DNN训练_第1张图片
作者主要介绍了五部分,针对的是训练集表现不好即以测试集(验证集)表现不好(过拟合)两个问题。

训练集表现不好

当模型在训练集表现不好时,有可能是模型复杂度不够,但是在Deep Learning中这种情况并不多见,所以问题更多集中在激活函数、learning rate不合适等Network本身结构问题。

测试集表现不好

训练集表现良好测试集表现不好,这是明显的过拟合现象,说明模型过于复杂,便要想办法降低模型的复杂度。
无论是dropout、regularization还是早停机制都是降低模型的复杂度,从而克服过拟合问题。

New Activation Function

Sigmoid的局限

因为Sigmoid函数本身特征,其会将差距很大的多个input映射到取值为0~1的output中。
李宏毅机器学习笔记4 -- DNN训练_第2张图片

这一特征会使得很多在input上很明显的变化在output上可以忽略不记,而深层神经网络更加加剧了这一问题,这一问题被称为Vanishing Gradient Problem。李宏毅机器学习笔记4 -- DNN训练_第3张图片

ReLU激活函数

为克服Sigmoid的这一问题,引入了ReLU激活函数。李宏毅机器学习笔记4 -- DNN训练_第4张图片
这里还有其变形:李宏毅机器学习笔记4 -- DNN训练_第5张图片
最后作者介绍了Maxout,ReLU可以算作它的特殊化。李宏毅机器学习笔记4 -- DNN训练_第6张图片
在原论文 Maxout Network 中作者证明Maxout可以拟合任意一个convex function(凸函数?):
李宏毅机器学习笔记4 -- DNN训练_第7张图片
在网上查找Maxout时很多人都提到虽然Maxout表现好但参数较多……我总觉得和Max Pooling有点神似……
附一篇对于激活函数的总结文章。

Adaptive Learning Rate

训练的效率和 learning rate 的设置密切相关,learning rate过大过小都不好,所以最好的方式就是使learning rate根据当前梯度变化趋势调整大小。

现在用的比较多的是Adam:
李宏毅机器学习笔记4 -- DNN训练_第8张图片
其中 momentum变量是应用动量原理,使得在梯度下降到局部最优时有惯性尝试去跳出局部最优点;RMSprop使得learning rate大小根据梯度的变化缓急进行调整(和之前总结过的Adgrad相类似)。

至于作者在 compute bias-corrected first/second estimate时除以定值,作者也有相应的解释,以first moment extimate为例:

m t m_t mt可表示为:
m t = ( 1 − β 1 ) ∑ i = 1 t β 1 t − i ⋅ g t m_t = (1-\beta_1)\sum_{i=1}^t \beta_1^{t-i} \cdot g_t mt=(1β1)i=1tβ1tigt
在该值训练开始时,因为初始值 m 0 m_0 m0初始为0,故在训练前期 m t m_t mt会偏向于0。
因为这是一个累加过程,开始过小会导致整个过程中 m t m_t mt偏小,故除以 1 − β 1 1-\beta_1 1β1来消除初始值带来的影响。

同理 v t v_t vt也是如此。

Early Stopping

李宏毅机器学习笔记4 -- DNN训练_第9张图片
这个很简单,迭代次数过多时,较复杂的模型可能会学习训练集中的噪音信息,从而导致过拟合。

所以在有过拟合趋势时停止训练便可以避免过拟合。

Regularization

关于正则化其实也比较简单吧,很直觉的东西:
李宏毅机器学习笔记4 -- DNN训练_第10张图片
根据上面PPT中 w t + 1 = ( 1 − η λ ) w t − η ∂ L ∂ w w^{t+1}=(1-\eta \lambda) w^t - \eta\frac{\partial L}{\partial w} wt+1=(1ηλ)wtηwL,L2正则化使得 w w w较原来减小。
李宏毅机器学习笔记4 -- DNN训练_第11张图片
上面PPT为L1正则化,对比L2正则化,其参数值在更新中因为需要减掉常数,值更小甚至趋向于零。
故可以总结:

  • L1正则化使得参数矩阵稀疏化,部分参数归零
  • L2正则化使得参数相较于未正则化减小

Dropout

李宏毅机器学习笔记4 -- DNN训练_第12张图片
训练比较简单,关键的是测试的时候:李宏毅机器学习笔记4 -- DNN训练_第13张图片
作者以及之前Maxout那篇论文中都有讲过,Dropout有点类似于使用集合学习,每一次Dropout剩下来的神经元便是一个子学习器,最后乘以一定参数构成最终的学习器。

你可能感兴趣的:(#,李宏毅课程笔记,神经网络,深度学习,机器学习,人工智能)