吴恩达机器学习4-2 4-3多元梯度下降法学习收获
- 这一章节主要介绍了如何设定该假设的参数,如何使用梯度下降法来处理多元线性回归问题。
2. 梯度下降运算中的一种技巧叫特征缩放方法。如果我们有一个机器学习的问题,这个问题有多个特征,如果能保证这些特征都处在一个相近的范围,也就是不同的特征取值在相近的范围内。这样梯度下降会更快的收敛。具体来说,假如有一个具有两个特征的问题,其中x_1代表房屋面积大小假设它的取值在0-2000之间,x_2代表卧室的数量,可能的取值在1-5之间,如果画出等价函数的等值线,x_1的范围远远大于x_2的话,会呈现出一种非常歪斜的椭圆形状如左边所示,这样梯度下降速度很慢,而且需要花费很长时间最终才会收敛到全局最小。但如果在之前我们将特征进行缩放的话,可以加快梯度下降地速度,减少迭代地次数。
特征缩放到地范围接近[-1,1]即可,但最好不要像后两个例子一样。还可以用均值归一化来加快收敛,如图将参数减去特征的平均值再除以特征地范围(最大值-最小值或者标准差)。
3. 确保梯度下降正常工作,梯度下降所要做的就是为你找到一个θ值并且希望它能够最小化代价函数J(θ),因此我们通常会在梯度下降算法运行时绘出代价函数J(θ)的值,这里x代表梯度下降算法的迭代次数,随着梯度下降算法的运行,我们可能会得到以下这个图片。如果梯度下降算法正常工作的话,每一步迭代后J(θ)都应该下降。从300-400 过程中J(θ)没有继续下降说明梯度下降算法开始收敛。对于不同的问题函数收敛所需要的迭代次数是不同的,也许30步就能收敛也许3000步也不能收敛。
当图像呈现出以上左图两种情形时,可能是因为学习率过大了,这式可以换一个小一点地学习率。数学家已经证明只要学习率足够小,函数会一直下降,迭代次数会很多,收敛速度会很慢。如果代价函数没有下降可能就是学习率太大了,这时候应该选择一个较小的学习率。
在寻找合适学习率时可以尝试按10的倍数来找,找到合适的再在中间按3的倍数找,直到找到合适的学习率。