特征归一化

我们可以通过让每个输入值在大致相同的范围内,以此来加速梯度下降。
这是因为θ在小范围内能迅速下降,相反在大范围内则下降缓慢.
因此当变量非常不均匀时,θ下降到最优值会十分低效。

为了防止这种低效的情况,我们需要修改输入变量的范围,使它们大致相同。
理想情况下:
$−1 ≤ x_{(i)} ≤ 1$
或者
$−0.5 ≤ x_{(i)} ≤ 0.5$

当然这些不是确切的要求,我们只是想加快速度,
使得所有输入变量大致在这些范围中的一个范围内。

有两种技术可以帮助我们进行特征归一化:

  • 特征缩放:其中一种方法是将输入值除以输入变量的范围(即最大值减去最小值),导致新的范围仅为1。
  • 平均归一化:其中一种方法是从输入变量的值中减去输入变量的平均值,使得输入变量的新平均值为零。

要实现这两种技术,需要按照以下公式所示调整输入值:

$x_i:=\frac{x_i - μ_i}{s_i}$

其中$μ_i$是输入变量的平均值,$s_i$是输入变量的范围(即最大值减去最小值),$s_i$也可以是输入变量的标准偏差。(注意,除以范围和除以标准偏差得出的结果有所不同。)

举个例子:$x_i$是房子的价格(在100-2000的范围内),平均价格为1000,那么,经过调整之后,$x_i=\frac {price-1000}{1900}$

分享到