用Python学习吴恩达机器学习——梯度下降算法理论篇
开篇词:(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的结果,
这是梯度下降算法的公式,之后会解释其含义。
事实证明,您可以使用一种称为梯度下降的算法来做到这一点。
梯度下降算法在机器学习中无处不在,不仅用于线性回归的训练,还用于一些最先进的神经网络模型,也称深度学习模型,深度学习是您在第二门课程中学习到的,学习这两种梯度下降算法将使您拥有机器学习的重要组成部分。
梯度下降算法可以用来尝试最小化任何函数,而不仅仅是线性回归模型的代价函数。
首先,你要做的只是开始对参数w,参数b进行预测,在线性回归中,初始值是多少并不重要,所以一个常见的选择是将所有参数都设置为0(set w=0,b=0)。
然后,您将一直更改参数w和参数b的值,以尝试降低代价函数的参数w和参数b的值。
直到代价函数J达到或接近最小值。
下面直接给出梯度下降算法思想的直观解释图(新版课程的)
Implementing Gradient Descent 实现梯度下降(对应视频P16)
让我们看看如何在实际中实现梯度下降算法,让我写一下梯度下降算法
注意:这里的“=”不是数学意义上的“等于号”,而是之前我们学过的赋值的意思,即将“=”号右边的计算结果赋值给“=”左边。式子中“α”是希腊字母Alpha代表学习率(Learning Rate)
如果学习率alpha非常大,那您下山会非常激进,你会试图下坡时迈太大的步子(容易扯到egg)
如果学习率alpha非常小,那您下山会非常“淑女”,你将迈小步下坡。下篇我们会回来解释如何选择一个较好的学习率,让您安稳下山。
最后,关于标红的这一坨东西,是代价函数J的导数项
现在,我想提下,导数来自微积分,即使你不熟悉微积分,也不用担心。接下来给出参数b的算法
最后给出梯度下降算法的全公式
对于梯度下降算法,您将重复这两个更新步骤,直到算法收敛(指到达一个局部最小值的点),参数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数值正在减少
稍微总结一下就是以下式子
这篇的目的是能让你理解为什么梯度下降中的导数是有意义的,梯度下降算法中的另一个关键因素是学习率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学习吴恩达机器学习——梯度下降算法理论篇相关推荐
- 用懊悔法学习吴恩达机器学习【2】-----线性回归的梯度下降
以下英文文档皆出自课程配套笔记 课9 代价函数二 这一课时考虑使用两个参数来描述代价函数.此时等价函数是一个碗形,碗底点为最小值,将碗形用等高线表示,等高线中心就是代价函数的最小值.所以距离等高线中心 ...
- 用懊悔法学习吴恩达机器学习【1】
我比较适合这个 以下英文文档皆出自课程配套笔记 章节一 课3 Supervised Learning Supervised Learning In supervised learning, we ar ...
- 逻辑回归python sigmoid(z)_python实现吴恩达机器学习练习2(逻辑回归)-data1
python实现吴恩达机器学习练习2(逻辑回归)-data1 这篇是第一个数据集:这部分练习中,你将建立一个预测学生是否被大学录取的逻辑回归模型. 假如一所大学会每个报名学生进行两项入学考试,根据两项 ...
- 吴恩达机器学习--单变量线性回归【学习笔记】
说明:本文是本人用于记录学习吴恩达机器学习的学习笔记,如有不对之处请多多包涵. 作者:爱做梦的90后 一.模型的描述: 下面的这张图片是对于课程中一些符号的基本的定义: 吴老师列举的最简单的单变量线性 ...
- 反向传播算法推导(交叉熵代价函数-吴恩达机器学习)
0. 前言 第一次看吴恩达老师机器学习视频时, 在9.29.29.2节卡住.看到评论区别人解答(Arch725 的解答)发现有一些疏漏,而且缺少一些铺垫,所以进行了一些修改补充. 本文的反向传播算法的 ...
- 吴恩达|机器学习作业目录
一个多月除了上课自习,就是在coursera和网易云课堂上学习吴恩达机器学习的课程,现在学完了,以下是一个多月来完成的作业目录,整理一下以便使用: 1.0 单变量线性回归 1.1 多变量线性回归 2. ...
- 下载量过百万的吴恩达机器学习和深度学习笔记更新了!(附PDF下载)
今天,我把吴恩达机器学习和深度学习课程笔记都更新了,并提供下载,这两本笔记非常适合机器学习和深度学习入门.(作者:黄海广) 0.导语 我和同学将吴恩达老师机器学习和深度学习课程笔记做成了打印版,放在g ...
- 吴恩达机器学习作业Python实现(二):logistic回归
吴恩达机器学习系列作业目录 1 Logistic regression 在这部分的练习中,你将建立一个逻辑回归模型来预测一个学生是否能进入大学.假设你是一所大学的行政管理人员,你想根据两门考试的结果, ...
- 吴恩达机器学习视频学习笔记
吴恩达机器学习视频笔记 介绍 Introduction 线性回归 Linear Regression 单变量 One Variable 多变量 Multiple Variables 多项式回归 Pol ...
最新文章
- 重磅!MaxCompute助力阿里开源自研语音识别模型DFSMN,准确率高达96.04%
- TestInside640-801 v11(神州testv11)题库视频讲解(全部上传完毕)
- Scala入门到精通——第三十节 Scala脚本编程与结束语
- .NET5即至,你准备好了吗?
- Java 进阶—— super 和 this 的用法
- Hive小文件问题:如何产生、造成影响、解放办法
- 【clickhouse】clickhouse时区
- 阿里云智能开放平台团队何登成:解码云计算的 2B 服务基因 | 问底中国 IT 技术演进...
- C++ 复制一个文件夹下的所有文件到另一个文件夹
- [WCF编程]10.操作:请求/应答操作
- sql未保存文档找回
- 陈强教授《机器学习及R应用》课程 第十五章作业
- 视频:这不是科幻,厉害了,用人工智能修长城
- 2020年网络安全国赛解析(仅个人想法)
- android 快速关闭键盘的方法,安卓永久关闭键盘灯的方法
- 破解无线网络密码-BT3如何使用1
- 目标检测 YOLOv5 - ncnn模型的加密 C++实现封装库和Android调用库示例
- vue axios请求成功却进入catch的原因分析
- pythonipo模型包括_python ipo模型是指什么?_Python教程,python,ipo,模型
- 太原网络营销师揭秘每个老板最头疼的百度竞价(SEM)如何提供转化率?