ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

机器学习-吴恩达-学习自用笔记3

机器学习-吴恩达-学习自用笔记3 梯度下降梯度下降是更系统的一种找到让j(w,b)最小的w,b的方法j(w,b)最小的w,b的方法j(w,b)最小的w,b的方法也适用与更一般的函数包括两个或两个以上参数的函数如下。min⁡w1,w2,...,wn,bJ(w1,w2,...,wn,b)\min_{w_1,w_2,...,w_n,b}J(w_1,w_2,...,w_n,b)w1​,w2​,...,wn​,bmin​J(w1​,w2​,...,wn​,b)梯度下降算法满足“局部最小值”的条件什么意思可看下图当小人选择不同的方向往下走时可能会出现达到不同最小值的情况此时小人走到不同的两侧之后并不会再继续往另外的那个“坑”里继续走了这就是局部最小。梯度下降公式tmpww−aδδwJ(w,b)tmp_w w - a\frac{\delta}{\delta w}J(w,b)tmpw​w−aδwδ​J(w,b)tmpbb−aδδbJ(w,b)tmp_b b - a\frac{\delta}{\delta b}J(w,b)tmpb​b−aδbδ​J(w,b)wtmpww tmp_wwtmpw​btmpbb tmp_bbtmpb​上述公式表示梯度下降在不断更新www和bbb的值在上述公式中aaa为学习率(learning rate)(控制每次下降的步长)aaa为一个成本函数的一个导数项(偏导项)重复上述算法直到算法收敛(即www和bbb不会再有显著变化)。假设我们设b0b0b0仅考虑www对于梯度下降时的反应如下图像对于图片中的上方图像已知中点(最小值) 假设我们起始点从右侧开始记算右侧该点的导数可以得到斜率此时因为在该点处 “单调增” 即k0k0k0此时w−akw-akw−ak为正数即w在向左移动J(w)在 “ 变小 ”对于图片中的下方图像假设我们起始点从左侧开始记算左侧该点的导数可以得到斜率此时因为在该点处 “单调减” 即k0k0k0此时w−akw-akw−ak为负数即w在向右移动J(w)也在 “ 变小 ”学习率学习率决定梯度下降一次改变的量不同学习率对梯度下降的影响如图当学习率aaa很小时梯度下降算法的速度会很慢当aaa很大时梯度下降算法可能会发散或者永远无法找到最小值。已经在局部最小值了怎么办如上图当w此刻已经在局部最小值的位置时当前位置的斜率为0此时δδwJ(w)\frac{\delta}{\delta w}J(w)δwδ​J(w)为0即w不再改变斜率跟每次下降有什么关系如上图距离越远的点斜率也就越大此时每次下降的步骤也会越大当距离局部最小值点逐渐逼近时斜率会自动变小也就意味着更新步骤也自动变小 (即使学习率aaa保持不变 )使用成本函数和梯度下降来训练线性回归模型在之前的内容里面已经包含了线性回归模型成本函数代价函数以及梯度这节结合在一起。线性回归模型fw,b(x)wxbf_{w,b}(x)wxbfw,b​(x)wxb成本函数代价函数J(w,b)12m∑i1m(fw,b(x(i))−y(i))2J(w,b)\frac{1}{2m}\sum_{i1}^m(f_{w,b}(x^{(i)})-y^{(i)})^2J(w,b)2m1​i1∑m​(fw,b​(x(i))−y(i))2梯度下降算法:ww−aδδwJ(w,b)bb−aδδbJ(w,b) \begin{aligned} ww-a\frac{\delta}{\delta w}J(w,b)\\ bb-a\frac{\delta}{\delta b}J(w,b)\\ \end{aligned}wb​w−aδwδ​J(w,b)b−aδbδ​J(w,b)​其中(证明步骤略过感兴趣可以去原视频查看)δδwJ(w,b)1m∑i1m(fw,b(x(i))−y(i))x(i)δδbJ(w,b)1m∑i1m(fw,b(x(i))−y(i))\begin{aligned} \frac{\delta}{\delta w}J(w,b) \frac{1}{m}\sum_{i1}^m(f_{w,b}(x^{(i)})-y^{(i)})x^{(i)}\\ \frac{\delta}{\delta b}J(w,b) \frac{1}{m}\sum_{i1}^m(f_{w,b}(x^{(i)})-y^{(i)}) \end{aligned}δwδ​J(w,b)δbδ​J(w,b)​m1​i1∑m​(fw,b​(x(i))−y(i))x(i)m1​i1∑m​(fw,b​(x(i))−y(i))​公式如下我们需要每一步同时更新w和bw和bw和b_____________________________我们在用梯度下降算法求解时会遇到多个局部最小值的情况但是在实际求解时使用线性回归的平方误差代价函数时代价函数也不会有多个局部最小值如上图代价函数是一个凸函数在凸函数上实现梯度下降存在一个很好的特性就是局部最小值就是全局最小值
返回列表