【机器学习 笔记2】Tips for Deep Learning

课程链接

李宏毅2020机器学习深度学习(完整版)国语-Tips for Deep Learning
课程学习网站 链接

1.深度学习基本流程

【机器学习 笔记2】Tips for Deep Learning
1.检查在training data的performance,KNN,DT等方法在训练数据上一般表现很好,有时候会接近1。相比较而言,DL反而比较不容易overfitting。

2.对症下药优化方法

【机器学习 笔记2】Tips for Deep Learning

2.1. Bad Results on Training Data

梯度消失与**函数:

最初,sigmoid函数是最常用的**函数。
当DNN层数很多时候,靠近输出层的微分值大,更新快,然而,远离输出层的微分值小,更新慢。当前者收敛时,后者还几乎是初始值。

原因:sigmoid**函数将input不断衰减,层数越多,衰减越严重。
【机器学习 笔记2】Tips for Deep Learning【机器学习 笔记2】Tips for Deep Learning
解决方式:
修改**函数,如:ReLU,Maxout

收敛速度与学习率:

面对不同种类的问题,优化学习率更新方法可以提高模型收敛速度、避免未收敛或陷入局部最优值等问题。

1.Adagrad在学习率处 除以 之前所有梯度和的平方,使之在梯度变化大的地方,学习率更小,反之亦然。可以提高更新效率和收敛速度。
然而,当面对更加复杂的误差平面时,这种方法无法动态调节学习率。
RMSProp引入更新权重α,使之将 之前所有梯度 与 当前梯度 综合考虑,更加动态的调节学习率。
【机器学习 笔记2】Tips for Deep Learning【机器学习 笔记2】Tips for Deep Learning【机器学习 笔记2】Tips for Deep Learning
2.模型训练过程中,可能无法收敛的各种情况:平坦地区更新很慢,卡在鞍点…,或者陷入局部最小值。
解决方式:引入真实世界中的惯性理论,采用 Vanilla Gradient Descent、Momentum、adam等学习率更新方式。
【机器学习 笔记2】Tips for Deep Learning【机器学习 笔记2】Tips for Deep Learning

2.1.Good Results on Trainging Data 【BUT】 Bad Results on Testing Data(Overfitting)

【注】此处testing data指带有label的

Early Stopping

Regularization和Loss Function

通过重新定义损失函数,找到使损失最小并且权重接近0的权重组成。
目前有L1 Regularization和L2 Regularization两种方式。

Dropout

训练模型时,每次更新权重时,随机使固定比例部分神经元失活。
应用在测试数据时,不需要dropout,而且要使每个神经元的权重,乘以dropout的比例。
dropout可以看作是一种ensemble。
【机器学习 笔记2】Tips for Deep Learning【机器学习 笔记2】Tips for Deep Learning