当前位置:网站首页>PyTorch 11.正则化
PyTorch 11.正则化
2022-04-23 06:11:00 【DCGJ666】
PyTorch 11.正则化
正则化
正则化即表示减少数据方差的策略
- 误差可分解为:偏差,方差与噪声之和。即
误差=偏差+方差+噪声
偏差:度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力。
方差:度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响。
噪声:表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界。 - nn.Dropout
减轻神经元对某个特征的过度依赖,减少过拟合。
随机:dropout probability
失活:weight=0
注意:测试时,所有权重应乘以1-drop_prob - Batch Normalization(一个batch中单个通道归一化)
批:一批数据,通常为一个batch的大小
标准化:均值为0,方差为1
优点:
可以用更大学习率,加速模型收敛
可以不用精心设计权重初始化
可以不用dropout或较小的dropout
可以不用L2或者较小的weight decay
可以不用LRN(local response normalization)
__init__(self,num_features,eps=1e-5,momentum=0.1,affine=True,tracking_running_stats=True)
参数:
num_features:样本特征数量
eps:分母修正项
momentum:指数加权平均估计当前mean/var
affine:是否需要affine transform
track running stats: 是训练状态,还是测试状态
在训练时,均值和方差是计算的一个batch的数量的样本,测试时,我们要逐一处理样本,方法是根据你的训练集估算均值和方差。
估算的方式:理论上可以在最终的网络中运行整个训练集得到均值和方差,但是在实际操作中,通常运用指数加权平均来追踪在训练过程中看到的均值和方差的值,然后用网络训练过程中得到的 β \beta β和 γ \gamma γ参数来计算测试样本
4. Layer Normalization (单个样本的归一化)
BN实际使用时需要计算并且保存某一层神经网络batch的均值和方差等统计信息,对于一个固定深度的前向神经网络使用BN,很方便;但是对于RNN来说,sequence长度是不一致的,换句话说RNN的深度是不固定的,不同的time-step需要保存不同的statics特征,可能存在一个特殊sequence比其他sequence长得多
nn.LayerNorm(
normalized_shape,
eps=1e-05,
elementwise_affine=True
)
主要参数:
normalized_shape:该层特征形状
eps:分母修正项
elementwise_affine:是否需要affine transform
LN中同层神经元输入拥有相同的均值的方差,不同的输入样本有不同的均值和方差;
BN中则针对不同神经元输入计算均值和方差,同一个batch中的输入拥有相同的均值和方差。
- Instance Normalization(W,H 归一化)
常见于图像生成,因为BN注重对每个batch进行归一化,保证数据分布一致,因为判别模型中结果取决于数据整体分布,但是图像风格化总,生成结果主要依赖于某个图像实例,所以对整个batch归一化不适合图像风格化中,因而对HW做归一化,可以加速模型收敛,并且保持每个图像实例之间的独立。
nn.InstanceNorm2d(
num_features,
eps=1e-05,
momentum=0.1,
affine-False,
tracking_running_stats=False
)
主要参数:
num_features:一个样本特征数量
eps:分母修正项
momentum:指数加权平均估计当前mean/var
affine: 是否需要affine transform
track_running_stats: 是训练状态,还是测试状态
- Group Normalization(G,W,H归一化)
起因:小batch样本中,BN估计的值不准
思路:数量不够,通道来凑
注意事项:
1 不再有running_mean和running_var
2 γ \gamma γ和 β \beta β为逐通道(channel)
主要是针对BN对小batchsize效果差,GN将channel方向分组,然后每个组内做归一化
nn.GroupNorm(
num_groups,
num_channels,
eps=1e-05,
affine=True)
版权声明
本文为[DCGJ666]所创,转载请带上原文链接,感谢
https://blog.csdn.net/DCGJ666/article/details/121619452
边栏推荐
- What did you do during the internship
- Google AdMob advertising learning
- [recommendation of new books in 2021] enterprise application development with C 9 and NET 5
- Chapter 2 pytoch foundation 1
- 第5 章 机器学习基础
- Cancel remote dependency and use local dependency
- Summary of image classification white box anti attack technology
- 【点云系列】SG-GAN: Adversarial Self-Attention GCN for Point Cloud Topological Parts Generation
- 三子棋小游戏
- ArcGIS License Server Administrator 无法启动解决方法
猜你喜欢
SSL/TLS应用示例
1.2 初试PyTorch神经网络
face_recognition人脸检测
【2021年新书推荐】Kubernetes in Production Best Practices
Summary of image classification white box anti attack technology
Chapter 8 generative deep learning
Component based learning (3) path and group annotations in arouter
第1章 NumPy基础
Chapter 2 pytoch foundation 1
【点云系列】SO-Net:Self-Organizing Network for Point Cloud Analysis
随机推荐
【点云系列】Neural Opacity Point Cloud(NOPC)
机器学习 三: 基于逻辑回归的分类预测
MySQL notes 2_ data sheet
torch.mm() torch.sparse.mm() torch.bmm() torch.mul() torch.matmul()的区别
5种方法获取Torch网络模型参数量计算量等信息
Easyui combobox 判断输入项是否存在于下拉列表中
Exploration of SendMessage principle of advanced handler
Gephi tutorial [1] installation
扫雷小游戏
WebRTC ICE candidate里面的raddr和rport表示什么?
Pymysql connection database
第8章 生成式深度学习
Component based learning (1) idea and Implementation
Five methods are used to obtain the parameters and calculation of torch network model
C# EF mysql更新datetime字段报错Modifying a column with the ‘Identity‘ pattern is not supported
Chapter 3 pytoch neural network toolbox
Pytoch model saving and loading (example)
PyTorch中的一些常见数据类型转换方法,与list和np.ndarray的转换方法
torch_geometric学习一,MessagePassing
【点云系列】Relationship-based Point Cloud Completion