当前位置:网站首页>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
边栏推荐
- 多个一维数组拆分合并为二维数组
- Linear sieve method (prime sieve)
- 创建线程的三种方式
- Total score of [Huawei machine test] (how to deal with the wrong answer? Go back once to represent one wrong answer)
- 橙单微服务之批量导入
- Dwsurvey is an open source questionnaire system. Solve the problem that cannot be run and modify the bug.
- delete和truncate
- 实操—Nacos安装与配置
- No.1.#_ 6 Navicat shortcuts
- Common protocols of OSI layer
猜你喜欢
类的加载与ClassLoader的理解
Pilotage growth · ingenuity empowerment -- yonmaster developer training and pilotage plan is fully launched
MySQL realizes master-slave replication / master-slave synchronization
SQL注入
Duplicate key update in MySQL
2-软件设计原则
Transposed convolution
2 - software design principles
深入源码分析Servlet第一个程序
多线程与高并发(3)——synchronized原理
随机推荐
freemark中插入图片
POI generates excel and inserts pictures
excel获取两列数据的差异数据
容器
Batch import of orange single micro service
类的加载与ClassLoader的理解
2-軟件設計原則
Conda 虚拟环境管理(创建、删除、克隆、重命名、导出和导入)
Common protocols of OSI layer
基于thymeleaf实现数据库图片展示到浏览器表格
Flutter 新一代圖形渲染器 Impeller
MySQL lock mechanism
软件架构设计——软件架构风格
Package mall system based on SSM
XXL job pit guide XXL RPC remoting error (connect timed out)
2 - software design principles
Deconstruction function of ES6
RedHat6之smb服务访问速度慢解决办法记录
Getting started with JDBC \ getting a database connection \ using Preparedstatement
mysql如何将存储的秒转换为日期