吴恩达机器学习笔记——梯度下降算法(2)
引言
在梯度下降算法(1)中我们了解了梯度下降算法的执行过程,但是还存在很多问题,诸如代价函数收敛速度或者代价函数是否能够收敛等问题,这节我们主要解决收敛速度问题,其解决方案就是应用特征缩放(Feature Scaling)。
特征缩放的定义
特征缩放是用来标准化数据特征的范围。
为什么使用特征缩放?
在梯度下降算法中,由于使用了迭代的方法,即迭代执行:
θj := θj - α * (1/m)Σ(hθ(x(i)) - y(i)) * xj(i)
如果有多个特征值之间差别很大,比如x1的范围是1-2000,x2的范围是1-5,这时候的梯度下降算法效果就很不好,x1收敛的很慢,导致算法效率较低,因此我们采取把各个特征值缩放的方法统一特征值的数量级,使梯度下降更为顺畅。
等值线的数学意义:平面“等值线”可以看成二元函数 F( x,y) 取相同值时( x,y) 构成的点集,即{ ( x,y) | F( x,y) = c}
特征缩放的方法
(1)调节比例(Rescaling)
-1 <= x1<=1
x <- (x−min(x))/(max(x)−min(x))
(2)均值归一化(Mean Normalization)
x <- (x-u)/s
其中u为平均值,s为标准差(max-min)