多变量的梯度下降(Gradient descent for multiple variables)

其实就是把多变量假设函数带入梯度下降算法之中:

多变量的梯度下降(Gradient descent for multiple variables)_第1张图片
多变量的梯度下降(Gradient descent for multiple variables)_第2张图片

梯度运算的使用技巧1:特征缩放(feature scaling)

使特征值在一个相近的范围,这样的话更容易收敛从而更快的找到全局最优解。

多变量的梯度下降(Gradient descent for multiple variables)_第3张图片

Once again,使特征值在一个相近的范围,从而使梯度下降更快。只要范围相近就OK。

多变量的梯度下降(Gradient descent for multiple variables)_第4张图片

归一化(mean normalization):

多变量的梯度下降(Gradient descent for multiple variables)_第5张图片

特征值的范围的标准差做分母(也可以是最大值减去最小值),然后每个特征值减去它们的的平均值做分子。(因为只要使得特征值范围相近就OK)

目的是使特征在一个相近的范围,更快的收敛。

上图中的bedrooms特征那里的分母应该是4。但是就算是5,对梯度下降计算来说影响也不大,因为特征缩放并不需要非常精确,只要范围相近就OK。


梯度运算的使用技巧2:学习率(learning rate)α

其实就是选择合适的学习率α。

查看代价函数曲线,选择合适的α。

通常选择合适的阈值ε是相当困难的,为了检查梯度下降算法是否收敛,常选择查看代价函数曲线,而不依靠自动收敛测试。

多变量的梯度下降(Gradient descent for multiple variables)_第6张图片

α过大会导致代价函数振荡或者发散,α过小会导致代价函数收敛太慢。

多变量的梯度下降(Gradient descent for multiple variables)_第7张图片

为了选择更好的学习率α,所以通常选择相差10倍的值来测试,然后查看代价函数图,从而找到合理的值。(下图中选择还有3倍的数字)

多变量的梯度下降(Gradient descent for multiple variables)_第8张图片

你可能感兴趣的:(多变量的梯度下降(Gradient descent for multiple variables))