C1 - week2 - part3 梯度下降法 Gradient Descent

week2-part3 梯度下降法 Gradient Descent

1.直观解释

在上一节我们指出,
预 测 值   y ^ = σ ( w t x + b ) , σ ( z ) = 1 1 + e − z J ( w , b ) = 1 m ∑ i = 1 m L ( y ^ ( i ) , y ( i ) ) = − 1 m ∑ i = 1 m y ( i ) log ⁡ y ^ ( i ) + ( 1 − y ( i ) ) log ⁡ ( 1 − y ^ ( i ) ) 预测值\ \hat{y} = \sigma(w^t x + b), \sigma(z) = \frac{1}{1 + e^{-z}} \\ J(w, b) = \frac{1}{m}\sum_{i = 1}^{m}L(\hat{y}^{(i)}, y^{(i)}) = -\frac{1}{m}\sum_{i = 1}^{m}y^{(i)}\log\hat{y}^{(i)}+(1 - y^{(i)})\log(1 - \hat{y}^{(i)})  y^=σ(wtx+b),σ(z)=1+ez1J(w,b)=m1i=1mL(y^(i),y(i))=m1i=1my(i)logy^(i)+(1y(i))log(1y^(i))
梯度下降算法,通过你的测试集,通过最小化代价函数 J ( w , b ) J(w, b) J(w,b)来训练学习参数w和b。

我们通过图示来更好地解释梯度下降算法。

纵轴为代价函数 J ( w , b ) J(w, b) J(w,b)形成的曲面,曲面上某一点个高度就是在对应w和b下 J ( w , b ) J(w, b) J(w,b)的函数值。我们所做的就是找到使代价函数 J ( w , b ) J(w, b) J(w,b)函数值最小的参数w和b,也就是图中曲面最低点对应的w和b。

在这个图中,横轴表示你的参数w和b,在实际情况中,w可以是更高的维度,但为了更好地绘图,我们定义w和b都是一维实数。

首先我们需要在图中选定一个点作为我们训练的起点,也就是初始化参数w和b。我们完全可以采用随机初始化的方法,对于逻辑回归几乎所有的初始话方法都有效。(因为函数是凸函数,无论在哪里初始化,几乎最终都会达到同一点)

我们随机选取一点来初始化参数w和b,然后不断朝着最陡的下坡方向走一步,不断迭代,直到走到全局最优解或者接近最优解的地方。演示如下(注意球于黄色中心相对位置的变化,黑色线为最陡方向,蓝色虚线球为更新后位置)

在这里插入图片描述

2.数学解释

接下来,我们用仅有一个参数的情况来细节化说明梯度下降算法。

假定代价函数 J ( w ) J(w) J(w)只有一个参数w,即用一维曲线代替多维曲线,便于更好画图。

我们选取一个起点 w 0 w_0 w0,利用公式 w : = w − α d J ( w ) d w w := w - \alpha\frac{d J(w)}{d w} w:=wαdwdJ(w)不断更新w的取值,直至最终达到最低点位置(或近似)。如下图所示
在这里插入图片描述

公式中, α \alpha α表示学习率,用来控制步长,即向下走一步的长度。 d J ( w ) d w \frac{d J(w)}{d w} dwdJ(w)是函数 J ( w ) J(w) J(w)对w求导,在代码中我们会用 d w d w dw表示这个结果。

对于导数更加形象化的理解就是斜率,如上图右边的红色三角形所示,某点的导数就i是这个点相切于 J ( w ) J(w) J(w)曲线的小三角形的高除宽。假设我们从图中靠右的 w 0 w_0 w0作为起点,该点斜率为正,即 d J ( w ) d w > 0 \frac{d J(w)}{d w} > 0 dwdJ(w)>0,所以 w : = w − α d J ( w ) d w w := w - \alpha\frac{d J(w)}{d w} w:=wαdwdJ(w)更新后会减小,所以接下来向左走一步到达 w 1 w_1 w1处,不断如此。同理,如果我们到达最低点左边,那么斜率就为负数,w更新后增大,向右走,接近最低点。

整个梯度下降算法的迭代过程就是朝着最小值点的方向走

我们现在回归之前有两个参数w和b的情况,同理,我们只需要同时对两个参数进行更新即可。
w : = w − α ∂ J ( w , b ) ∂ w ,   b : = b − α ∂ J ( w , b ) ∂ b w := w - \alpha \frac{\partial J(w, b)}{\partial w},\ b := b - \alpha \frac{\partial J(w, b)}{\partial b} w:=wαwJ(w,b), b:=bαbJ(w,b)

  • 其中 ∂ \partial 表示求偏导符合,可以读作round

  • ∂ J ( w , b ) ∂ w \frac{\partial J(w, b)}{\partial w} wJ(w,b)就是函数 J ( w , b ) J(w,b) J(w,b)对w求偏导, ∂ J ( w , b ) ∂ b \frac{\partial J(w, b)}{\partial b} bJ(w,b)就是函数 J ( w , b ) J(w,b) J(w,b)对b求偏导,在代码中我们分别用 d w dw dw, d b db db来表示这两个结果

  • 小写字母 d d d在对一个参数的函数求导时使用,偏导数符号 ∂ \partial 在对多参数函数求导时使用

    你将训练集中的 x x x输入,随机选取参数 w w w b b b,求出此时的 J ( w , b ) J(w,b) J(w,b),然后通过求导不断更新参数 w w w b b b,再求出对应状态下的 J ( w , b ) J(w, b) J(w,b),不断迭代,直至 J ( w , b ) J(w, b) J(w,b)达到一个令人满意的值,此时对应的w和b就是你训练出来的模型参数。利用此参数,只要你给出输入 x x x,它便可以计算出预测的 y y y值,一个简单的模型便构建完成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值