深度学习数据预处理

深度学习数据预处理

1.常见数据预处理方式:(红色的线指出各维度的数值范围)

data_process1

均值减法:对数据中每个独立特征减去均值,集合上理解为:在每个维度上,都将数据云的中心迁移到原点

归一化:将所有维度都做归一化:

第一种做法:先对数据做零中心化处理,然后每个维度都除以标准差
第二种做法:每个维度都做归一化,使得每个维度最大和最小值都是 1 和 -1
PCA 降维:取得数据的主成分,可以对数据去除相关性

白化whitening:先对数据进行旋转(旋转的矩阵就是 SVD 分解中的 U矩阵),然后对每个维度除以特征值(为防止分母为0,通常加一个很小的值作为平滑系数)来对数值范围进行归一化

如果数据服从多变量的高斯分布,则白化之后,数据的分布是一个均值为零,且协方差相等的矩阵
该变换的缺点是:可能会放大数据中的噪声。因为它将所有维度都拉伸到相同的维度,这包括了那些大多数是噪声的维度。这个问题可以采用更强的平滑系数来解决
data_process2

实际在神经网络中,并不会采用 PCA 和白化。

2.任何预处理策略都只能在训练集的数据上进行,然后再应用到验证集或测试集上。

如数据均值:首先分成训练集、验证集、测试集,从训练集中求数据的均值。然后训练集、验证集、测试集中的数据减去这个均值。 而不是减去测试集均值或者验证集均值

3.激活函数:当前推荐使用 ReLU 激活函数

4.Batch Normalization:让数据在通过激活函数之前,添加一个 batch normalization

### 深度学习中的数据预处理 #### 数据预处理的重要性 在深度学习领域,数据预处理是一项关键技术,能够帮助将原始数据转化为有效的特征表示形式,从而提升模型训练效果和推理能力[^1]。 #### 中文NLP任务的数据预处理流程 对于自然语言处理(NLP),特别是针对中文的任务而言,其典型的数据预处理过程涵盖了多个方面: - **数据清洗**:去除无关字符或格式错误的内容; - **分词**:按照语义单位切分句子成词语序列; - **停用词过滤**:移除那些频繁出现但对理解文本意义贡献较小的词汇; - **词性标注**:给每个单词标记上对应的语法角色标签; - **实体识别**:定位并分类特定类型的命名实体(如人名、地点等); - **词向量化**:把文字信息映射到数值空间内便于计算的形式; 这些环节共同作用以优化输入至神经网络结构前后的文本质量[^2]。 #### 预处理及其白化技术的应用 当涉及到计算机视觉应用时,则需特别关注像本身的特性调整工作。其中一项广泛应用的技术叫做“像白化”,即通过执行某种线性的转换操作使得不同通道间像素值分布趋于独立同分布状态,进而减少不必要的关联噪声干扰项影响最终预测准确性[^3]。 ```python import numpy as np from sklearn.preprocessing import StandardScaler def apply_whitening(image_data): scaler = StandardScaler().fit(image_data.reshape(-1, image_data.shape[-1])) whitened_images = scaler.transform(image_data.reshape(-1, image_data.shape[-1])).reshape(image_data.shape) return whitened_images ``` 上述代码展示了如何利用`sklearn`库实现简单的像标准化/白化功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值