线性回归与梯度下降(linear regression and gradient descent)

一直都在学习机器学习的知识,虽然学的不好,总想记下来自己学习的感想,便于自己复习晚上,也希望贴出来大家交流交流。个人觉得只有写出来的东西,才能加入自己的思考过程,以及思考的结果一直都在学习机器学习的知识,虽然学的不好,总想记下来自己学习的感想,便于自己复习,也希望贴出来大家交流交流。这里直接上主题,没有太多的墨迹,直接讲问题。

个人觉得只有写出来的东西,才能加入自己的思考过程,以及思考的结果一直都在学习机器学习的知识,虽然学的不好,总想记下来自己学习的感想,便于自己复习晚上,也希望贴出来大家交流交流。个人觉得只有写出来的东西,才能加入自己的思考过程,以及思考的结果。想了一想,还是先写梯度下降算法吧。


梯度下降

梯度下降算法就是沿着变化最快的方向往下走,一直走到很平坦很平坦的地方,我们就认为已经到目的地了。为什么要沿着变化最快的方向走呢,因为,这样走快啊,越快走下去,越快吃到饭。那么这个变化最快的方向和大小就是梯度。很明显可以看到,这个最快的方向并不是唯一的,也就是可以有多条路走下去。那么就出现问题了。每条路都可以走到很平坦的地方,那么这些很平坦的地方是同一个地方吗,肯定不是的。下面用一个简单的下楼梯来说明(这个可以参考下山的那个例子,但是这里只用下山的一个方向来说明)

线性回归与梯度下降(linear regression and gradient descent)_第1张图片

在上图中,有几个关键的参数,

1、梯度:就相当于是两个台阶之间的高度

2、步长:相当于是一次可以跨几个台阶

3、梯度乘以步长就是一次可以跨多远

4、在途中red区域,很明显,grad已经很小了,就算一次可以跨好几个台阶,任然不会下去多少,所以,如果满足grad*step小于某个值,就认为已经下到最底层了。


线性回归

线性回归问题可以用下面的公式(1)和公式(2)来说明,

(1)

 (2)

上面两个公式中,x1,x2,x3,等是样本,例如如下的样本值

线性回归就是在这么多的样本下,求得一组参数,使得在这组参数下,公式(1)得到的值,与样本中y1,y2,....ym的

值的差的平方和最小(为什么用平方呢,因为每一项相减后有可能是负值,平方之后就全部为正的值了。)这样就有了公式(3)。公式(3)也就是最小二乘法的原理。

(3)

那么,有了公式(3)后,就需要求解公式(3),就是求这些参数。这里就采用梯度下降的算法来求解。

第一步:公式(3)对每个参数求偏导,得到的就是梯度grad;


第二步:用步长step乘以梯度grad就是下降的距离,这里要判断这个距离是否在规定的迭代范围内,如果所有参数的这个距离都小于迭代范围,那么,这时所有的参数的值,就是要求的值,否则,继续第三步;

第三步:更新所有的参数,用公式(4)来更新

(4)


之后继续一二三步。


有错误的地方请指出。






你可能感兴趣的:(machine,learning,机器学习)