梯度下降法

我们已将知道代价函数的概念:

J(b,k) = \frac{1}{2m}\sum_{i=1}^{m}(h_{b,k}(x_{i})-y_{i})^{2}

h_{b,k}(x_{i}) = kx_{i}+b

J(b, k) =\frac{1}{2m}\sum_{i=1}^{m}( kx_{i} + b_{i} - y)^{2}                                                

 

我们需要求解代价函数的最小值那么,我们就需要找到一个合适的 k和b 的值来满足我们的要求。

梯度下降法的步骤是:

1. 赋予初值 k, b;

2.对J(b,k)函数中分别对k,b 求偏导得到i = b - \alpha \frac{\partial }{\partial b}J(b_{0},k_{0}) 和 j = k - \alpha \frac{\partial }{\partial k}J(b_{0},k_{0})

3.然后我们将i和j分别再赋值给 b0和k0 然后反复计算。

4.我们是根据\alpha的值的取值来调节我们的代价函数的大小的。

上面就是我们梯度下降法的步骤了,最后得到我们想要的回归方程。

在不考虑梯度下降法的优劣性,接下来谈谈个人对梯度下降步骤的理解,因为我在学的时候能听懂,自己看的时候就搞不懂了,所以简单讲解希望对大家有帮助,也便于自己复习:

首先我先梳理下我们在用这个方法的时候我们知道哪些条件,和我们需要求解什么。

那么:已知条件:数据(特征x,标签y),求解回归方程y = kx + b;符合条件是的代价函数

J(b,k) = \frac{1}{2m}\sum_{i=1}^{m}(h_{b,k}(x_{i})-y_{i})^{2},这个时候我们经过换算可以得到J(b, k) =\frac{1}{2m}\sum_{i=1}^{m}( kx_{i} + b_{i} - y)^{2} ,那么我们求出J(b,k)的最小值,因为x和y都是已知的,那么我们就需要根据k和b的值来求解。

接下来就是数学问题了,我们先给定一组k和b,这里我们是赋予初值,然后这个时候J(b, k) =\frac{1}{2m}\sum_{i=1}^{m}( kx_{i} + b_{i} - y)^{2}函数中的自变量是k和b,因变量是J,其他字母则为常数。

这个时候就是求解二元二次方程的最小值,(在不考虑最值多个的情况下,就是说我们只有一个极小值的情况下),我们分别对k和b进行求偏导,(对k求偏导,就是将k和J构建一个二维平面,然后求得变化率(即导数),来看变化情况。对b求偏导,就是将b和J构建一个二维平面,然后求得变化率(即导数),来看变化情况。)。如果J随着k的增大而增大(即偏导值大于零),那么我们就用j = k - \alpha \frac{\partial }{\partial k}J(b_{0},k_{0}) (\alpha>0)这里得到的j值是比k值要小的值,就是在k和J构建的二维平面里向左偏移,再次带入k值时J的取值是变小的,就达到了我们的目的。对于J随着K的增大而减小时(即偏导值小于零),我们可以同理可得,我们想要的目的。对于b求偏导也是同理。

那么我们这里还有一个应该注意的点,我们对于一组k和b,是要进行完k的偏导和b的偏导,才可以进行赋值给新的k和b,然后在进行下一组的偏导值求解。这里是因为求偏导时,另外的值则为常数,我们需要同步更新,而不能异步更新。配图:这里是截的覃秉丰老师的课程的图,方便大家理解:

 

 

 

这是个人对于梯度下降法的理解。如有错误,请大佬们指出。

希望看见的评论讲解,我多学习,谢谢^_^

                                                                                                        【未完待续.........】

 

 

 

 

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值