Pytorch学习日志(6)——处理数据与训练模型

数据预处理

中心化(零均值化)

最常见的处理办法是每个特征维度都减去相应的均值实现中心化,这样可以使得数据变成0均值。
这相当于一个平移操作,让数据的中心在原点。

标准化(归一化)

引入:在图像处理当中,图片中的猫或大或小,但都是同一类别,这时候就需要将标准化操作让其统一。
需要使用标准化的做法让数据不同的特征维度都有着相同的规模。这主要有两种方法:
1.除以标准差,使得新数据的分布接近标准高斯分布。
Z-score标准化(0-1标准化)
包含了中心化操作。
可以得到均值为0,标准差为1的服从正态分布的数据
每个数据的p都是1/n,等可能事件。
x ∗ = x − μ σ x^* = \frac{x-\mu}{\sigma} x=σxμ
其中
μ 是 均 值 , σ 是 标 准 差 \mu是均值,\sigma是标准差 μ,σ
在这里插入图片描述
2.min-max标准化(离差标准化)
x ∗ = x − m i n m a x − m i n x^* = \frac{x - min}{max - min} x=maxminxmin
缺陷是当有新数据加入时,需要重新定义。
在消除数据规模不一的同时也消除了特殊数据的影响。
对原始数据进行线性变换将结果映射到0-1之间。
这就不包含中心化操作了。

为什么要进行这些操作:
在一些实际问题中,我们得到的样本数据都是多个维度的,即一个样本是用多个特征来表征的。比如在预测房价的问题中,影响房价的因素(特征)有房子面积(三位数)、卧室数量(个位数)等,很显然,这些特征的量纲和数值得量级都是不一样的,在预测房价时,如果直接使用原始的数据值,那么他们对房价的影响程度将是不一样的,而通过标准化处理,可以使得不同的特征具有相同的尺度(Scale)。简言之,当原始数据不同维度上的特征的尺度(单位)不一致时,需要标准化步骤对数据进行预处理。
在这里插入图片描述
Z分数的图。
标准化的优点:
1.加快了梯度下降法的速度。
2.有一定几率提高精度。

正态分布(高斯分布)

满足特别的概率密度函数:
在这里插入图片描述
从图形上理解就是中间多,两边少。

数学期望
离散型随机变量的数学期望

设离散型随机变量X的分布律为:
P { X = x i } = p k , k = 1 , 2 , 3... P\{X = x_i\}=p_k,k=1,2,3... P{X=xi}=pk,k=1,2,3...
若级数
∑ k = 1 ∞ x k p k \sum_{k=1}^\infin x_k p_k k=1xkpk
绝对收敛,则称
E ( X ) = ∑ k = 1 ∞ x k p k E(X) = \sum_{k=1}^\infin x_k p_k E(X)=k=1xkpk
为X的数学期望。数学期望也称为平均值、均值。
如果X取有限个值,那么E(X)必定存在。

连续型随机变量的数学期望

概率密度函数相当于每一个随机变量的概率值。
E ( X ) = ∫ − ∞ + ∞ x f ( x ) d x E(X)=\int_{-\infin}^{+\infin}xf(x)dx E(X)=+xf(x)dx

离散型随机变量的方差

D ( X ) = ∑ i [ x i − E ( X ) ] 2 p i = E { [ X − E ( X ) ] 2 } D(X)=\sum_i[x_i-E(X)]^2p_i=E\{[X-E(X)]^2\} D(X)=i[xiE(X)]2pi=E{[XE(X)]2}

连续型随机变量的方差

E ( X ) = ∫ − ∞ + ∞ [ x − E ( X ) ] 2 f ( x ) d x E(X)=\int_{-\infin}^{+\infin}[x-E(X)]^2f(x)dx E(X)=+[xE(X)]2f(x)dx

标准正态分布

E(X)=0,D(X)=1

PCA

是另外一种处理数据的方法。
首先将数据中心化,然后计算数据的协方差矩阵。,用协方差矩阵来进行奇异值分解,最后去相关性。

白噪声

是一种处理数据的方式,会和PCA一样将数据投影到一个特征空间,每个维度除以特征值来标准化这些数据,直观上是一个多元的高斯分布转化为了标准多元高斯分布。在这里插入图片描述
PCA和白噪声在卷积网络中基本不使用,因为卷积网络可以自动学习如何提取特征。

权重初始化(参数预处理)

全0初始化

最直观、但是不应该采用。
将参数全部初始化为0。
如果神经网络中每个权重都被初始化成相同的值,那么每个神经元都会计算出相同的结果。在反向传播的时候也会计算出相同的梯度,最后导致所有权重都会有相同的更新。即权重之间失去了不对称性。

随机初始化

初始化权重为靠近0的一些随机数。

稀疏初始化

将权重全部初始化为0,然后在里面随机挑选一些参数附上一些随机值。这种方法使用较少。

初始化偏置

对于偏置,通常是初始化为0,因为权重已经打破了对称性,所以用0来初始化是最简单的。

批标准化

防止过拟合

正则化

对权重过大的部分进行惩罚。

L2正则化

直接在损失函数中增加权重的二范数量级,也就是 1 2 λ ω 2 \frac{1}{2}\lambda\omega^2 21λω2其中lambda是正则化强度,通常是0.5,加上1/2是为了消除omega导致的梯度系数。使用L2正则化可以看成是权重更新在原来的基础上-lambda*omega这样让权重更新后更接近0。

L1正则化

在损失函数中增加权重的1范数,也就是 λ ∣ ω ∣ \lambda|\omega| λω

补充说明

1.我们也可以把两者结合起来
2.L1比L2的优势是在优化过程中可以让权重变得更加稀疏。
3.L2比L1的优势是最终效果会比L1更加发散,权重也会被限制得更小。

最大范数限制

迫使权重在更新过程中,他的范数会有一个上界,这种方法可以使得学习率设置太高时,网络不会爆炸。

Dropout

核心思想:训练网络的时候依概率P保留每个神经元,也就是说每次训练的时候有些神经元会被设置为0.
在这里插入图片描述
训练时这么操作,预测时不可以。
在预测时,我们会保留网络全部的权重,但在输出上会应用P的缩放。
考虑到一个神经元在用Dropout之前的输出是x,如果保留所有权重,就必须调整x为Px来保证输出与期待相同。
每一次训练Dropout之后可以看作是一个新的模型,然后训练很多次之后就可以看成是这些模型的集成。

一般正则化和Dropout会搭配使用。

遗留问题:
正则化、Dropout、PCA、白噪化的具体应用需进一步探究。
Z-score标准化的均值如何计算?

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

右边是我女神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值