当前位置:网站首页>Pytorch学习记录(七):处理数据和训练模型的技巧
Pytorch学习记录(七):处理数据和训练模型的技巧
2022-04-23 05:43:00 【左小田^O^】
良好的数据预处理和参数初始化能够很快达到事半功倍的结果。在模型训练中采用一些训练技巧,能够使得模型最后达到state-of-art的效果,这一节我们讲一讲处理数据和训练模型。
数据预处理
1. 中心化
每个特征维度都减去相应的均值实现中心化,这样可以使得数据变成0均值,特别对于一些图像数据,为了方便我们将所有的数据都减去一个相同的值。
什么是零均值
在深度学习中,一般我们会把喂给网络模型的训练图片进行预处理,使用最多的方法就是零均值化(zero-mean) 中心化,即使像素值范围变为[-128,127],以0为中心。
作用
这样做的优点是为了 在反向传播中加快网络中每一层权重参数的收敛。
可以避免Z型更新的情况,这样可以加快神经网络的收敛速度。
2. 标准化
在使得数据都变成0均值之后,还需要使用标准化的做法让数据不同的特征维度都有着相同的规模。
有两种常用的方法:一种是除以标准差,这样可以使得新数据的分布接近标准高斯分布;还有一种做法就是让每个特征维度的最大值和最小值按比例缩放到-1~1之间。


3. PCA主成分分析

详细讲解网站https://blog.csdn.net/program_developer/article/details/80632779
4.白噪声
首先会跟PCA一样将数据投影到一个特征空间,然后每个维度除以特征值来标准化这些数据,直观上就是一个多元高斯分布转化到了一个0均值,协方差矩阵为1的多元高斯分布。

在实际处理数据中,中心化和标准化都特别重要。我们计算训练集的统计量比如均值,然后将这些统计量应用到测试集和验证集当中。但是PCA和白噪声在卷积网络中基本不使用,因为卷积网络可以自动学习如何提取这些特征而不需要人工再去对其进行干预。
权重初始化
初始化方法详解:https://zhuanlan.zhihu.com/p/72374385
对参数进行预处理
1.全0初始化
将参数全部初始化为0。不能采取这种方法
2.随机初始化
目前知道我们希望权重初始化的时候能够尽量靠近0,但是不能全都等于0,所以可以初始化权重为一些靠近0的随机数,通过这个方式可以打破对称性。一般的随机化策略有高斯随机化、均匀随机化等,需要注意的是并不是越小的随机化产生的结果越好,因为权重初始化越小,反向传播中关于权重的梯度也越小,因为梯度与参数的大小是成比例的,所以这会极大地减弱梯度流的信号,成为神经网络训练中的一个隐患。
3.稀疏初始化
稀疏初始化,将权重全部初始化为0,然后为了打破对称性在里面随机挑选一些参数附上一些随机值。这种方法的好处是参数占用的内存较少,因为里面有较多的0,但是实际中使用较少。
4.初始化偏置(bias)
对于**偏置(bias),通常是初始化为0,**因为权重已经打破了对称性,所以使用0来初始化是最简单的。
5.批标准化(Batch Normalization)
批标准化,它的核心想法就是标准化这个过程是可微的,减少了很多不合理初始化的问题,所以我们可以将标准化过程应用到神经网络的每一层中做前向传播和反向传播,通常批标准化应用在全连接层后面、非线性层前面。
防止过拟合
1.正则化

2.Dropout



版权声明
本文为[左小田^O^]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_45802081/article/details/119895557
边栏推荐
猜你喜欢

Radar equipment (greedy)

Multithreading and high concurrency (2) -- detailed explanation of synchronized usage

手动删除eureka上已经注册的服务

Flutter nouvelle génération de rendu graphique Impeller

Pilotage growth · ingenuity empowerment -- yonmaster developer training and pilotage plan is fully launched

Anaconda

基于ssm 包包商城系统

MySQL realizes master-slave replication / master-slave synchronization

Package mall system based on SSM

JVM family (4) -- memory overflow (OOM)
随机推荐
第36期《AtCoder Beginner Contest 248 打比赛总结》
MDN文档里面入参写法中括号‘[]‘的作用
Flutter nouvelle génération de rendu graphique Impeller
Navicate连接oracle(11g)时ORA:28547 Connection to server failed probable Oeacle Net admin error
Range of numbers (dichotomous classic template topic)
多线程与高并发(1)——线程的基本知识(实现,常用方法,状态)
filebrowser实现私有网盘
Differences between sea level anatomy and sea surface height anatomy
Shansi Valley P290 polymorphism exercise
Isosceles triangle - the 9th Lanqiao provincial competition - group C
excel获取两列数据的差异数据
你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问
MySQL lock mechanism
Strategy for improving the conversion rate of independent stations | recovering abandoned users
引航成长·匠心赋能——YonMaster开发者培训领航计划全面开启
基于ssm 包包商城系统
事实最终变量与最终变量
JVM family (4) -- memory overflow (OOM)
The difference between cookie and session
2.devops-sonar安装