将数据输入神经网络之前,需要通过数据预处理、特征工程技术等准备输入数据和目标。
数据预处理的目的是使原始数据更适于用神经网络处理,包括向量化、标准化、处理缺失值和特征提取。
1. 向量化
神经网络的所有输入和目标都必须是浮点数张量。所以无论处理什么数据,都要先将数据转换为向量,即数据向量化。
2. 值标准化
将取值相对较大的数据或异质数据输入到神经网络中是不安全的。这么做可能导致较大的梯度更新,进而导致网络无法收敛。为了让网络的学习变得更容易,应使得输入数据取值较小,即大部分值都应该在 0~1 范围内;还要使得数据同质性,即所有特征的取值都应该在大致相同的范围内。常用方法有两种,一是将每个特征分别标准化,使其平均值为0,另外一种方法也可将将每个特征分别标准化,使其标准差为1。
3. 处理缺失值