下面进行线性缩放,即将输入标准化,以使其位于(-1,1)范围内,这可能是一种良好的标准做法。这样一来,SGD在一个维度中采用很大步长(或者在另一个维度中采用很小步长)时不会受阻。这种做法与使用预调节器(Preconditioner)的想法是有联系的。其代码如下:
下面我们使用线性缩放将特征标准化,即将输入标准化到(-1.1)范围内。一般来说,当输入特征大致位于相同范围时,神经网络的训练效果最好。由于标准化会使用最小值和最大值,我们必须确保在整个数据集中一次性完成该操作。我们之所以可以这样做,是因为所有的数据都在一个DataFrame中。如果我们有多个数据集,那么最好从训练集中导出标准化参数,然后以相同的方式将其应用于测试集。其代码如下:
工智能与大数据技术导论
332