设想一个这样的情况
我们要对一个二元的损失函数进行梯度下降,其中两个参数(自变量)的范围分别是[0,2000]和[1, 5]
这是有可能发生的,比如对于预测一个房子的价格时,卧室数量与所在面积(图中是平方尺)就相差很多数量级
这会导致损失函数的图像变得异常苗条
如左图,过于苗条的损失函数图像会导致在梯度下降的过程中,每一步都在一个尺度上跨越了过短距离,却在另一个尺度上跨越过大,从而导致图中红线处连续摇摆的情况,这不利于算法的执行效率
我们希望损失函数的图像是匀称的,如右图那样,来保证梯度下降的每一步都可以匹配两个坐标尺度,从而更快速的走到最低点。
一个很自然的想法便是右图上侧的操作,将两个变量缩放至[0, 1]区间来保证尺度对应
这个操作就可以称作特征缩放(Feature Scaling)
事实上我们可以通过如下的公式来缩放绝大部分向量:
x_i=\frac{x_i-\mu }{s_i}
其中\mu
是向量中所有元素的平均值,s_i
是标准差或者极差 这个方法叫做均值归一化(Mean normalization)
需要注意的是,特征缩放并不是一件很严格的事,他只是为了优化梯度下降效率的一个技巧,换句话说,没有明确的标准来规定每个向量的数据尺度应该是多少,从经验上来讲,[-1, 1]的尺度可以接受1/3到30左右的尺度偏差
学长正则方程怎么算啊?