深度学习调试网络时常用的优化算法总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Andy123321aa/article/details/84143163

自己的小项目在实际调试中出现过的优化模型的算法,这里做一个总结。

1、 学习率调整(避免欠拟合)
2、 正则化(避免过拟合)
3、 Dropout(避免过拟合)
4、 提前终止(避免过拟合)

学习率调整:
在训练网络的时候,已不变的学习率学习往往不能找到最优解,从而使loss值不在下降,可以使用动态学习率调整的方法,也就是说每次训练完一个batch或者一轮epoch,学习率就下降一点。下降的多少可以是固定值,也可以由公式算出,具体情况具体分析。

正则化:
正则化就是在神经网络反向传播的时候,不直接使用损失函数的计算值,而是使用损失函数计算值和模型复杂度的加权。也就是说,随着模型复杂度的变化,学习程度也会发生变化,这样就有效的防止了过拟合的问题。

Dropout:
Dropout的原理是每次反向传播的时候,只更新一定比例的参数。也就是说,如何在某一层有100个可训练的参数,那么可能一次反向传播只随机选出其中的50个进行更新,剩余的保持原来的值不变。

提前终止:
在训练网络时,由于存在过拟合现象,往往训练到一定程度,测试集的loss就不在下降,反而略有上升。所以在恰当的时刻提前终止训练也许可以在测试集上得到较好的成功率。

猜你喜欢

转载自blog.csdn.net/Andy123321aa/article/details/84143163