斯坦福大学公开课机器学习:梯度降低运算的特征缩放(gradient descent in practice 1:feature scaling)

以房屋价格为例,假设有两个特征向量:X1:房子大小(1-2000 feets), X2:卧室数量(1-5)函数

关于这两个特征向量的代价函数以下图所示:orm

从上图能够看出,代价函数是一个又瘦又高的椭圆形轮廓图,若是用这个代价函数来运行梯度降低的话,获得最终的梯度值,可能须要花费很长的时间,甚至可能来回震动,最终才能收敛到全局最小值。为了减小梯度下来花费的时间,最好的办法就是对特征向量进行缩放(feature scaling)。blog

特征向量缩放(feature scaling):具体来讲,仍是以上面的房屋价格为例,假设有两个特征向量:X1:房子大小(1-2000 feets), X2:卧室数量(1-5),如今将它们转化为以下公式:io

即将房子大小除以2000,卧室的数量除以5.变量

这个时候代价函数就会变得比较圆,计算最终梯度值的速度也会随之变快,以下图所示:im

通常状况下,咱们进行特征向量缩放的目的是将特征的取值约束到[-1 ,1]之间,而特征X0恒等于1,[-1,1]这个范围并非很严格的,事实上,假如存在特征向量X1,其缩放之后为[0,3]或者[-2,0.5]之间,这也是容许的。可是若是是在[-100,100]或者[-0.0001,0.0001]之间,则是不容许的,跟[-1,1]差距太大了。d3

将特征向量除以最大值是特征缩放的其中一种方式,还有另外一种方式是均值归一化(mean normalization),其思想以下:db

假设将特征向量Xi用Xii代替,使其均值接近0,假设房子平均大小为1000 feets,平均卧室数量为2,则特征向量能够转化为以下公式:img

 

 通常状况下,能够用X1来代替原来的特征X1,具体公式以下:时间

 

x1,x2指的是原来的特征向量,u1,u2指的是在训练集中,特征向量x1,x2分别的平均值,s1,s2指的是该特征值的范围(即最大值减去最小值),也能够把s1,s2改成变量的标准差

相关文章
相关标签/搜索