Featrue Scaling and Learning Rate of Gradient Descent
特征缩放featrue scaling
特征缩放是用来标准化数据特征的范围。
为什么要特征缩放
这个是两个参数的代价函数轮廓图,中间的那个点是最低点,是目标点。在多特征的梯度下降中如果其中一个或者和几个特征的取值范围特别大,而有些特征的取值范围特别小,那么这些变化范围大的特征向量的参数就会变化的大。从而导致在梯度下降中,使得整个收敛轨迹变得复杂,就像下图一样。
所以我们要把所有的特征向量的变化范围该变到一个标准化范围之内,就能把大范围的特征向量对下降速率的影响降到最低。加快收敛速度。
怎么特征缩放
特征缩放通常可以这样做:
如果有这两个特征:房子的面积,房间个数。面积的取值范围是0-2000,房间的个数的取值范围是1-5。
把每个特征除以他们的取值范围的大小,就像这样
这样每个特征就缩放到了[-1,1]
使用均值归一化特征(mean normalization)进行特征缩放
ui是所有这个特征的所有取值的平均值,si是这个特征的取值范围,也就是max(xi) - min(xi).
这样就可以可以将每个特征标准化到[-0.5,0.5].
特征缩放的范围注意
特征缩放的范围如果收敛的很大或者很小,就不太适合,就不是一个很好的特征缩放。多特征的范围不一定要在相同范围内,只要接近即可。
推荐范围为: 最大在-3~+3之间,最小不能小于-1/3~+1/3之间。
学习速率learning rate
根据梯度下降算法α是下降的步长,learning rate.
If α is too small: slow convergence.
α太小,收敛速度慢。
If α is too large: may not decrease on every iteration and thus may not converge.
α太大,收敛步子太大,参数可能跳过目标参数值,最后不断的远离目标参数值,不会收敛。