我们已将知道代价函数的概念:
我们需要求解代价函数的最小值那么,我们就需要找到一个合适的 k和b 的值来满足我们的要求。
梯度下降法的步骤是:
1. 赋予初值 k, b;
2.对函数中分别对k,b 求偏导得到 和
3.然后我们将i和j分别再赋值给 b0和k0 然后反复计算。
4.我们是根据的值的取值来调节我们的代价函数的大小的。
上面就是我们梯度下降法的步骤了,最后得到我们想要的回归方程。
在不考虑梯度下降法的优劣性,接下来谈谈个人对梯度下降步骤的理解,因为我在学的时候能听懂,自己看的时候就搞不懂了,所以简单讲解希望对大家有帮助,也便于自己复习:
首先我先梳理下我们在用这个方法的时候我们知道哪些条件,和我们需要求解什么。
那么:已知条件:数据(特征x,标签y),求解回归方程y = kx + b;符合条件是的代价函数
,这个时候我们经过换算可以得到 ,那么我们求出的最小值,因为x和y都是已知的,那么我们就需要根据k和b的值来求解。
接下来就是数学问题了,我们先给定一组k和b,这里我们是赋予初值,然后这个时候函数中的自变量是k和b,因变量是J,其他字母则为常数。
这个时候就是求解二元二次方程的最小值,(在不考虑最值多个的情况下,就是说我们只有一个极小值的情况下),我们分别对k和b进行求偏导,(对k求偏导,就是将k和J构建一个二维平面,然后求得变化率(即导数),来看变化情况。对b求偏导,就是将b和J构建一个二维平面,然后求得变化率(即导数),来看变化情况。)。如果J随着k的增大而增大(即偏导值大于零),那么我们就用 (>0)这里得到的j值是比k值要小的值,就是在k和J构建的二维平面里向左偏移,再次带入k值时J的取值是变小的,就达到了我们的目的。对于J随着K的增大而减小时(即偏导值小于零),我们可以同理可得,我们想要的目的。对于b求偏导也是同理。
那么我们这里还有一个应该注意的点,我们对于一组k和b,是要进行完k的偏导和b的偏导,才可以进行赋值给新的k和b,然后在进行下一组的偏导值求解。这里是因为求偏导时,另外的值则为常数,我们需要同步更新,而不能异步更新。配图:这里是截的覃秉丰老师的课程的图,方便大家理解:
这是个人对于梯度下降法的理解。如有错误,请大佬们指出。
希望看见的评论讲解,我多学习,谢谢^_^
【未完待续.........】