1. 向量化

神经网络的所有输入和目标都必须是浮点数张量(在特定情况下可以是整数张量)。无论处理什么数据(声音、图像还是文本),都必须首先将其转换为张量,这一步叫作数据向量化(data vectorization)。

2. 值标准化

输入数据应该具有以下特征。
‰ 取值较小:大部分值都应该在 0~1 范围内。
‰ 同质性(homogenous):所有特征的取值都应该在大致相同的范围内。
此外,下面这种更严格的标准化方法也很常见,而且很有用,虽然不一定总是必需的(例如,对于数字分类问题就不需要这么做)。
‰ 将每个特征分别标准化,使其平均值为 0。
‰ 将每个特征分别标准化,使其标准差为 1。
这对于 Numpy 数组很容易实现。

x -= x.mean(axis=0)
x /= x.std(axis=0)

3. 处理缺失值

一般来说,对于神经网络,将缺失值设置为 0 是安全的,只要 0 不是一个有意义的值。网络能够从数据中学到 0 意味着缺失数据,并且会忽略这个值。