Python 深度学习日志8

4.5添加权重正则化

  1. 简单模型比复杂模型更不容易过拟合
  2. 简单模型指参数值的熵更小的模型或者参数更少的模型,因此一种常见的降低过拟合的方法就是强制让模型权重只能取较小的值,从而限制模型的复杂度
  3. L1正则化:添加的成本与权重系数的绝对值成正比
  4. L2正则化:添加的成本与权重系数的平方成正比,也称权重衰减

向模型添加L2权重正则化

from keras import regularizers

model = models.Sequential()
model.add(layers.Dense(16,kernel_regularizer=regularizers.12(0.001),  #12(0.001)指该层权重矩阵的每个系数都会是网络总损失增加0.001*weight_coefficient_value 由于这个惩罚项旨在训练时添加,所以这个网络的训练损失会比测试损失大很多
                       activation='relu',input_shape=(10000,)))
model.add(layers.Dense(16,kernel_regularizer=regularizers.12(0.001),
                       activation='relu'))
model.add(layers.Dense(1,activation='sigmoid'))

也可以用keras 中以下这些权重正则化来代替L2正则化

Keras 中不同的权重正则化项

from keras import regularizers

regularizers.11(0.001) #L1正则化

regularizers.11_12(11=0.001,12=0.001) #同时做L1和L2正则化

4.6添加dropout 正则化

  1. 对某一层使用dropout,就是在训练过程中随机将该层的一些输出特征舍弃(设置为0)
  2. dropout比率 是被设为0的特征所占的比例,通常在0.2~0.5范围内
  3. 测试时没有单元被舍弃,而该层的输出值需要按dropout比率缩小,因为这时比训练时有更多的单元被激活,需要加以平衡

向IMDB网络中添加dropout

model = models.Sequential
model.add(layers.Dense(16,activation='relu',input_shape=(10000,)))
model.add(layers.Dropout(0.5))
model.add(layers.Dense(16,activation='relu')
model.add(layers.Dropout(0.5))
model.add(layers.Dense(1,activation='sigmoid')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值