浅谈机器学习中的线性回归和梯度下降

之前一直以为线性回归和梯度下降是一回事,直到今天看了吴恩达老师的课才发现这原来是两个概念,虽然有点接近。
先来谈谈线性回归,线性回归是机器学习中的一大类问题的统称,一般就是预测问题。举个栗子,我手上有某地区的房价信息,我想靠这些信息来预测该地区未来的房价变化趋势。我可以先做一个类似于这样的坐标图,浅谈机器学习中的线性回归和梯度下降
(因为图片是复制来的,所以只看左上角的二维坐标就好了)
这条曲线大致满足一个关系:hθ(xi) = θ0 + θ1*xi (0,1,i 都是下标),先假设它就是一条直线方程,这时候要引出一个损失函数的概念(cost function),在线性回归中loss function一般这样定义浅谈机器学习中的线性回归和梯度下降 其中,m就是batch , 即本次训练所加入的x的数量,线性回归的目的就是找到cost function最小的地方,将 θ0,θ1 和 j(θ0,θ1)之间的关系可视化出来就是这样,浅谈机器学习中的线性回归和梯度下降
可以看出,θ0,和θ1分别是横纵轴,损失函数J(θ0,θ1)是z轴,图中最低的那个点,就是当前的 xi 所对应的损失函数最小的点。
但是我们不希望每次都需要靠人眼来找出这个损失最小的点,并且当参数多了的时候,也不再能轻易地可视化了,所以我们需要一种方法来找出最小的那个点,这时候就需要引入梯度下降算法了。
先把梯度下降的公式给出来浅谈机器学习中的线性回归和梯度下降

先举个简单的例子,设函数 J(θ)=θ^2 - 2θ, 图像大概是这样
浅谈机器学习中的线性回归和梯度下降
当依据上面那个式子对函数梯度下降时,会发现θ在渐渐趋于J(θ)的最小的那个点。
这只是梯度下降在二次函数一个变量的时候的用法,当这个算法用于多变量的线性回归问题时,公式又有所不同了,浅谈机器学习中的线性回归和梯度下降 m就是之前提到过的那个batch,一次所计算的量。
比如说当有两个θ0,θ1时,梯度下降的计算过程就是下面这样
浅谈机器学习中的线性回归和梯度下降
要注意θ0和θ1的计算顺序,要先同时计算出下降以后才能赋值给原来的θ,不然就有可能找不到最小值点了。