其实就是把多变量假设函数带入梯度下降算法之中:
梯度运算的使用技巧1:特征缩放(feature scaling)
使特征值在一个相近的范围,这样的话更容易收敛从而更快的找到全局最优解。
Once again,使特征值在一个相近的范围,从而使梯度下降更快。只要范围相近就OK。
归一化(mean normalization):
特征值的范围的标准差做分母(也可以是最大值减去最小值),然后每个特征值减去它们的的平均值做分子。(因为只要使得特征值范围相近就OK)
目的是使特征在一个相近的范围,更快的收敛。
上图中的bedrooms特征那里的分母应该是4。但是就算是5,对梯度下降计算来说影响也不大,因为特征缩放并不需要非常精确,只要范围相近就OK。
梯度运算的使用技巧2:学习率(learning rate)α
其实就是选择合适的学习率α。
查看代价函数曲线,选择合适的α。
通常选择合适的阈值ε是相当困难的,为了检查梯度下降算法是否收敛,常选择查看代价函数曲线,而不依靠自动收敛测试。
α过大会导致代价函数振荡或者发散,α过小会导致代价函数收敛太慢。
为了选择更好的学习率α,所以通常选择相差10倍的值来测试,然后查看代价函数图,从而找到合理的值。(下图中选择还有3倍的数字)