您的位置:首页 > 其它

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

2017-10-18 16:09 453 查看

通过正则化regularization防止overfitting

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

常用的正则化形式有

L1 regularization:

C=Co+λn∑w|w|

L2 regularization:

C=Co+λ2n∑ww2

以L2 Regularization为例:

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

C=12n∑∥∥y−aL∥∥2+λ2n∑ww2

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

C=12n∑j[yjlnajL+(1−yj))ln(1−aLj))]+λ2n∑ww2

以上两种都可表示为:

C=Co+λ2n∑ww2

可以看出,regularization的cost偏向于让神经网络学习比较小的权重w,除非 Co明显减少.

λ: 调整两项的相对重要程度,较小的λ项倾向于让第一项 Co最小化,较大的λ项倾向于最小化权重之和.

求偏导:

∂C∂w=∂Co∂w+λ2nw

∂C∂b=∂Co∂b

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

w′=w−η(∂Co∂w+λnw)=w−η∂Co∂w−ηλnw

b′=b−η∂Co∂b

即:

w′=(1−ηλn)w−η∂Co∂w

b′=b−η∂Co∂b

对于随机梯度下降法SGD为:

w′=(1−ηλn)w−ηm∑x∂Cx∂w

b′=b−ηm∑x∂Cx∂b

( ∑x即SGD在小批量样本x上进行的)

通过一个因子 1−ηλn重新调整了权重,使权重变小.

实现:code2中函数total_cost()中在cost上加上L2-regularization项.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐