机器学习[2] 梯度下降算法

2021/11/28 22:11:27

本文主要是介绍机器学习[2] 梯度下降算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

梯度下降算法

    • 2.多个参数时多项式回归
    • 2.正态方程

2.多个参数时多项式回归

在这里插入图片描述

在这里插入图片描述
我们可以通过将每个输入值都设置在大致相同的范围内来加快梯度下降的速度。这是因为θ在小范围内会迅速下降,而在大范围内会缓慢下降,因此当变量非常不均匀时,会无效率地振荡到最佳状态。

防止这种情况的方法是修改输入变量的范围,以使它们都大致相同。理想情况下:
− 1 ≤ x ( i ) ≤ 1 -1 \leq x(i) \leq 1 −1≤x(i)≤1
− 0.5 ≤ x ( i ) ≤ 0.5 -0.5 \leq x_{(i)} \leq 0.5 −0.5≤x(i)​≤0.5

这些不是确切的要求;我们只是试图加快速度。目标是使所有输入变量大致进入这些范围之一,给出或取几个。

有助于此的两种技术是特征缩放和均值归一化。特征缩放涉及将输入值除以输入变量的范围(即最大值减去最小值),从而得到的新范围仅为1。平均归一化涉及从输入值的平均值中减去输入变量的平均值。输入变量导致输入变量的新平均值仅为零。要实现这两种技术,请按照以下公式调整输入值:
x i : = x i − μ i s i x_{i}:=\frac{x_{i}-\mu_{i}}{s_{i}} xi​:=si​xi​−μi​​

例如,代表房价范围为100至2000,平均值为1000,那么,
x i : =  price  − 1000 1900  .  x_{i}:=\frac{\text { price }-1000}{1900} \text { . } xi​:=1900 price −1000​ . 
*
在这里插入图片描述

2.正态方程

梯度下降提供了一种最小化J的方法。让我们讨论这样做的第二种方法,这一次显式地执行最小化,而不求助于迭代算法。在“正态方程”方法中,我们将通过明确地针对θj取导数并将其设置为零来最小化J。这使我们无需迭代即可找到最佳theta。正态方程公式如下:
θ = ( X ⊤ ˘ X ) − 1 X ⊤ ¨ y ¨ \theta=\left(X^{\breve{\top}} X\right)^{-1} X^{\ddot{\top}} \ddot{y} θ=(X⊤˘X)−1X⊤¨y¨​

以下是梯度下降与正太方程方程的比较:
在这里插入图片描述
利用正态方程,计算反演具有复杂性。因此,如果我们具有大量特征,则正常方程将变慢。实际上,当n超过10,000时,可能是从正常解转到迭代过程的好时机。



这篇关于机器学习[2] 梯度下降算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程