对最小二乘法和梯度下降法的理解
所谓“最小二乘法”,从字面上看就是一个优化问题的体现,所以最小二乘法就是一个优化问题。
我的理解:当自变量和因变量之间存在可以近似描述的函数关系时,我们称这种行为回归。而这个函数叫做回归函数。
回归可以帮助我们预测因变量。根据前面的数据和回归函数,可以大致预测下一个因变量的趋势。这在股票市场和一些时间序列问题中被广泛使用。
假设我们有一组数字,
生成一组随机数,然后我们想用一个函数来描述横轴X和纵轴y的关系,假设它是线性的,假设函数是H (x) = \ theta _ 0+\ theta _ 1 * X。
如果我们得到\ theta _ 0和\ theta _ 1,那么我们的回归函数就可以确定了。对应的y可以通过x计算出来。
如何得到H(x)
让我们的假设函数更能描述真实数据,也就是假设函数更接近真实数据的分布。那么它们之间的误差应该被最小化。
所以,我们得到了成本函数,
J(\theta_0,\theta_1)=\frac{1}{2m}\sum_{i=1}^m(h(x^{(i)})-y^{(i)})^2
将每个离散值和计算值的误差平方,然后求和,计算总误差。
这时,我们的目标是计算:
最小化J(\theta_0,\theta_1)
以上是最小二乘法的概念。
最小二乘法是一种优化问题的思想,梯度下降法是实现这种优化思想的具体方法。
在求解最小二乘问题中最小化J (\ theta _ 0,\ theta _ 1)的过程中,如果是线性问题,可以尝试使用矩阵,也就是正规方程。只要确保(x tx) {-1}存在于此即可。当然,这也是矩阵计算的一个局限。
正常万能的方法就是梯度下降法(别说他慢)。
梯度下降法的本质是迭代。通过迭代更新\theta的值,逐渐找到J的最小值(\theta_0,\theta_1)。
从上图可以看出,随着横轴迭代次数的增加,纵轴的j值逐渐减小。
我们知道代价函数j (\ theta _ 0,\ theta _ 1)= \ frac { 1 } { 2m } \ sum _ { I = 1 } m(h(x {(I)})-y。
我们的目标函数是最小化j (\ theta _ 0,\ theta _ 1)。
因此,设J(\theta_0,\theta_1)分别求\theta_0和\ theta _ 1的偏导数。
得到,
\frac{\partial J(\theta_0,\ theta _ 1)} { \ partial \ theta _ 0 } = \frac{1}{m}\sum_{i=1}^m(x^{(i)})-y^{(i)})
\ frac { \ partial j(\θ_ 0,\θ_ 1)} { \ partial \θ_ 1 } = \frac{1}{m}\sum_{i=1}^m(x^{(i)})-y^{(i)})x_i
更新\theta:
\ theta _ 0:\ theta _ 0-\ alpha \ frac { \ partial J(\ theta _ 0)} { \ partial \ theta _ 0 }
\ theta _ 1:\ theta _ 1-\ alpha \ frac { \ partial J(\ theta _ 1)} { \ partial \ theta _ 1 }
这里,五彩线是渐变线。我们可以看到,我们的初始\theta是零,然后\theta逐渐逼近最小代价,最后到达[1.6,1.6]的位置。
在梯度下降法中,我们还会有增量梯度下降法等等,但都是为了更快地实现逼近而设计的,具体需要具体分析。