开篇词:(CSDN专供)

欢迎阅读我的文章,本文起先是在B站上进行投稿,一开始是采用吴恩达机器学习2012年版的,目前已经出了十二期了。现在我决定将我摸索出来的学习笔记在各个平台上进行连载,保证同时更新。

半年已过,谁知道AI领域已发生很大的变数,近期热门的AI绘画也加剧了AI学习的需求和浪潮,现在正值吴恩达老师推出吴恩达机器学习10周年之际推出的最新版机器学习2022课程,我在观望了新旧两版课程后。果断决定跳上新版课程的列车,因为新版终于使用Python了,其开放、开源的jupyter实验室资源终于解开了我半年以来的疑惑和思路。所以让我们继续

用Python学习机器学习吧!

print('Python YYDS!!!')


目录

Gradient Descent 梯度下降(对应视频P15)

Implementing Gradient Descent 实现梯度下降(对应视频P16)

Gradient Descent Intution 梯度下降的直觉(对应视频P17)

Learning Rate 学习率(对应视频P18)


本文对应以下课程视频内容“P15-P20”整编而成

4.1 梯度下降


Gradient Descent 梯度下降(对应视频P15)

欢迎回来!在上一个视频中我们看到了成本函数J以及如何尝试选择不同的参数w和参数b并查看他们为您带来的代价函数值,如果我们有更系统的方法来找到参数w和参数b的值,那就好了,这将得到参数w,b的最小代价函数值J的结果,

\begin{aligned} &w=w-\alpha\frac{\partial}{\partial w}J(w,b)\\ \\ &b=b-\alpha\frac{\partial}{\partial b}J(w,b)\\ \end{aligned}这是梯度下降算法的公式,之后会解释其含义。

事实证明,您可以使用一种称为梯度下降的算法来做到这一点。

梯度下降算法在机器学习中无处不在,不仅用于线性回归的训练,还用于一些最先进的神经网络模型,也称深度学习模型,深度学习是您在第二门课程中学习到的,学习这两种梯度下降算法将使您拥有机器学习的重要组成部分。

梯度下降算法可以用来尝试最小化任何函数,而不仅仅是线性回归模型的代价函数。

首先,你要做的只是开始对参数w,参数b进行预测,在线性回归中,初始值是多少并不重要,所以一个常见的选择是将所有参数都设置为0(set w=0,b=0)。

然后,您将一直更改参数w和参数b的值,以尝试降低代价函数的参数w和参数b的值。

直到代价函数J达到或接近最小值

下面直接给出梯度下降算法思想的直观解释图(新版课程的)


Implementing Gradient Descent 实现梯度下降(对应视频P16)

让我们看看如何在实际中实现梯度下降算法,让我写一下梯度下降算法

w:w=w-\alpha\frac{\partial}{\partial w}J(w,b)

注意:这里的“=”不是数学意义上的“等于号”,而是之前我们学过的赋值的意思,即将“=”号右边的计算结果赋值给“=”左边。式子中“α”是希腊字母Alpha代表学习率(Learning Rate)

如果学习率alpha非常大,那您下山会非常激进,你会试图下坡时迈太大的步子(容易扯到egg)

如果学习率alpha非常小,那您下山会非常“淑女”,你将迈小步下坡。下篇我们会回来解释如何选择一个较好的学习率,让您安稳下山。

最后,关于标红的这一坨东西,是代价函数J的导数项

w=w-\alpha{\color{Red} \frac{d}{dw}J(w,b)}

现在,我想提下,导数来自微积分,即使你不熟悉微积分,也不用担心。接下来给出参数b的算法

b:b=b-\alpha\frac{\partial}{\partial b}J(w,b)

最后给出梯度下降算法的全公式

\begin{aligned} w=w-\alpha\frac{\partial}{\partial w}J(w,b)\qquad(1)\\ b=b-\alpha\frac{\partial}{\partial b}J(w,b)\qquad\quad(2) \end{aligned}

对于梯度下降算法,您将重复这两个更新步骤,直到算法收敛(指到达一个局部最小值的点),参数w和参数b不在随着您采取每个额外步骤而发生很大的变化。

一个重要的细节是,对于梯度下降,您要同时更新参数w和参数b

左边的做法是正确的,要同时更新参数w,b


Gradient Descent Intution 梯度下降的直觉(对应视频P17)

现在让我们更深入地研究梯度下降以获得更好的直觉,这是上一篇你看到的梯度下降算法

按照数学惯例,这里的d是用这种有趣的字体写的,如果你有一定的数学基础,你应该知道这不是导数,是偏导数。但是为了实现机器学习算法,这里将其称为导数。我们现在要关心的是这套公式是什么意思,怎么来的?为什么要这样相乘,它导致了参数w和参数b的更新。

假设你现在有这个代价函数J,你也使用这种算法试图通过调整参数w来最小化代价函数值

现在我们把难度降低点,只考虑一个参数的情况,先暂时将参数b的值设成0,这样就是个二维图像,而不是三维图像了,让我们看看梯度下降中代价函数J对参数w的作用

这里是斜率,代入到上文提到的(1)式中,因为看图像,这个导数是一个正数所以大于0,所以最新更新的参数w值是参数w值-学习率乘以某个正数。那你会得到一个更小的参数w值,在图像上的体现就是,点正在向左移动,参数w数值正在减少

稍微总结一下就是以下式子

\begin{aligned} &J(w)\\ &w=w-\alpha\frac{\partial}{\partial w}J(w)>0\\ &w=w-\alpha(positive \,\,number)\\ &w=w-\alpha\frac{\partial}{\partial w}J(w)<0\\ &w=w-\alpha(negative \,\,number)\\ \end{aligned}

这篇的目的是能让你理解为什么梯度下降中的导数是有意义的,梯度下降算法中的另一个关键因素是学习率Alpha,你如何选择Alpha,你如何选择Alpha?如果它太大会发生什么?


Learning Rate 学习率(对应视频P18)

学习率alpha的选择将对您实现梯度下降的效率产生巨大影响,学习率alpha的选择至关重要。在本篇中,让我们更深入地了解学习率,这也将帮助您实现梯度下降算法。

上图可以看到学习率的选取对梯度下降算法的效率有很大的影响,稍微总结一下吧

if α is too small…
如果学习率α太小的话
Gradient        descent may be slow.
梯度下降过程会很慢

if α is too large…
如果学习率α太大的话
Gradient        descent may:
Overshoot,never reach minimum,Fail to converge,diverge
梯度下降过程会很冲,并从不到达最小值,无法收敛,甚至发散

现在我们就可以用J函数进行梯度下降了,如图,一开始第一步到第二步迈的很大,不断进行的过程中,每一步的间隔越来越小直至接近局部最小值。

在下一篇笔记中,我们将采用函数J并将使用线性回归模型的代价函数中,这就是第一个学习的算法——线性回归算法。

之所以没在这里使用Python解释是因为上面吴老师所列举的J函数还没有具体的式子,不好编写,只能说写伪代码,所以在下一篇笔记中,我们会重新定义之前实现的线性函数代码!

在下一篇笔记里,我们将会用Python带入到线性函数中,这样才便于理解,敬请期待吧!

Author: Andrew Ng

Editor:  Phoenix fight!

Date:2022 Oct 14th


免责声明!!!

关于封面图是由AI生成,以下是AI生成的图片的服务免责声明,望周知!

如有疏漏欢迎前往评论区提出并指正!

一起学习,一起进步,一起分享,一起成长!

最后欢迎各位前往我的B站专栏阅读往期文章,

https://www.bilibili.com/read/cv19090716

顺便吐槽一下,CSDN你们的Latex编辑器居然不支持中文?

用Python学习吴恩达机器学习——梯度下降算法理论篇相关推荐

  1. 用懊悔法学习吴恩达机器学习【2】-----线性回归的梯度下降

    以下英文文档皆出自课程配套笔记 课9 代价函数二 这一课时考虑使用两个参数来描述代价函数.此时等价函数是一个碗形,碗底点为最小值,将碗形用等高线表示,等高线中心就是代价函数的最小值.所以距离等高线中心 ...

  2. 用懊悔法学习吴恩达机器学习【1】

    我比较适合这个 以下英文文档皆出自课程配套笔记 章节一 课3 Supervised Learning Supervised Learning In supervised learning, we ar ...

  3. 逻辑回归python sigmoid(z)_python实现吴恩达机器学习练习2(逻辑回归)-data1

    python实现吴恩达机器学习练习2(逻辑回归)-data1 这篇是第一个数据集:这部分练习中,你将建立一个预测学生是否被大学录取的逻辑回归模型. 假如一所大学会每个报名学生进行两项入学考试,根据两项 ...

  4. 吴恩达机器学习--单变量线性回归【学习笔记】

    说明:本文是本人用于记录学习吴恩达机器学习的学习笔记,如有不对之处请多多包涵. 作者:爱做梦的90后 一.模型的描述: 下面的这张图片是对于课程中一些符号的基本的定义: 吴老师列举的最简单的单变量线性 ...

  5. 反向传播算法推导(交叉熵代价函数-吴恩达机器学习)

    0. 前言 第一次看吴恩达老师机器学习视频时, 在9.29.29.2节卡住.看到评论区别人解答(Arch725 的解答)发现有一些疏漏,而且缺少一些铺垫,所以进行了一些修改补充. 本文的反向传播算法的 ...

  6. 吴恩达|机器学习作业目录

    一个多月除了上课自习,就是在coursera和网易云课堂上学习吴恩达机器学习的课程,现在学完了,以下是一个多月来完成的作业目录,整理一下以便使用: 1.0 单变量线性回归 1.1 多变量线性回归 2. ...

  7. 下载量过百万的吴恩达机器学习和深度学习笔记更新了!(附PDF下载)

    今天,我把吴恩达机器学习和深度学习课程笔记都更新了,并提供下载,这两本笔记非常适合机器学习和深度学习入门.(作者:黄海广) 0.导语 我和同学将吴恩达老师机器学习和深度学习课程笔记做成了打印版,放在g ...

  8. 吴恩达机器学习作业Python实现(二):logistic回归

    吴恩达机器学习系列作业目录 1 Logistic regression 在这部分的练习中,你将建立一个逻辑回归模型来预测一个学生是否能进入大学.假设你是一所大学的行政管理人员,你想根据两门考试的结果, ...

  9. 吴恩达机器学习视频学习笔记

    吴恩达机器学习视频笔记 介绍 Introduction 线性回归 Linear Regression 单变量 One Variable 多变量 Multiple Variables 多项式回归 Pol ...

最新文章

  1. 重磅!MaxCompute助力阿里开源自研语音识别模型DFSMN,准确率高达96.04%
  2. TestInside640-801 v11(神州testv11)题库视频讲解(全部上传完毕)
  3. Scala入门到精通——第三十节 Scala脚本编程与结束语
  4. .NET5即至,你准备好了吗?
  5. Java 进阶—— super 和 this 的用法
  6. Hive小文件问题:如何产生、造成影响、解放办法
  7. 【clickhouse】clickhouse时区
  8. 阿里云智能开放平台团队何登成:解码云计算的 2B 服务基因 | 问底中国 IT 技术演进...
  9. C++ 复制一个文件夹下的所有文件到另一个文件夹
  10. [WCF编程]10.操作:请求/应答操作
  11. sql未保存文档找回
  12. 陈强教授《机器学习及R应用》课程 第十五章作业
  13. 视频:这不是科幻,厉害了,用人工智能修长城
  14. 2020年网络安全国赛解析(仅个人想法)
  15. android 快速关闭键盘的方法,安卓永久关闭键盘灯的方法
  16. 破解无线网络密码-BT3如何使用1
  17. 目标检测 YOLOv5 - ncnn模型的加密 C++实现封装库和Android调用库示例
  18. vue axios请求成功却进入catch的原因分析
  19. pythonipo模型包括_python ipo模型是指什么?_Python教程,python,ipo,模型
  20. 太原网络营销师揭秘每个老板最头疼的百度竞价(SEM)如何提供转化率?

热门文章

  1. LuaBox积木编程开发手册-精编版
  2. 郑刚答王峰十问:Telegram只是过渡性产品,区块链可能给社交产品带来让人兴奋的巨大改变...
  3. 最新大数据产业生态地图:十大爆发点,百大公司起底
  4. Mace-micro引擎编译与测试
  5. 脱离.Net Framework运行doNet程序的简单方法
  6. 【Nginx】Nginx主机域名配置
  7. idea 汉化版 自定义类注释与方法注释 解决自定义注解出现红线
  8. 算法(并查集--合并集合)
  9. el-input 密码输入框 显示隐藏优化
  10. linux下的lib文件知识