深度学习--通过正则化regularization防止overfitting

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/akadiao/article/details/78274142

通过正则化regularization防止overfitting

增加训练数据集的量和减小神经网络的规模是减小overfitting的途径之一.但更深层更大的网络潜在有更强的学习能力,即使对于固定的神经网络和固定的训练集仍可以减小overfitting.
常用的正则化形式有
L1 regularization:

 C=Co+λnw|w|

L2 regularization:

 C=Co+λ2nww2

以L2 Regularization为例:

对于二次损失函数加L2正则化项为:

 C=12nyaL2+λ2nww2

对于交叉熵损失函数加L2正则化项为:

 C=12nj[yjlnajL+(1yj))ln(1aLj))]+λ2nww2

以上两种都可表示为:

 C=Co+λ2nww2

可以看出,regularization的cost偏向于让神经网络学习比较小的权重w,除非 Co明显减少.
λ: 调整两项的相对重要程度,较小的λ项倾向于让第一项 Co最小化,较大的λ项倾向于最小化权重之和.

求偏导:

 Cw=Cow+λ2nw

 Cb=Cob

则梯度下降法的更新法则为:

 wwη(Cow+λnw)wηCowηλnw

 bbηCob

即:

 w1ηλnwηCow

 bbηCob

对于随机梯度下降法SGD为:
 w1ηλnwηmxCxw

 bbηmxCxb

 x即SGD在小批量样本x上进行的)
通过一个因子 1ηλn重新调整了权重,使权重变小.

实现:code2中函数total_cost()中在cost上加上L2-regularization项.

展开阅读全文

没有更多推荐了,返回首页