| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 机器学习(三)——梯度下降 -> 正文阅读 |
|
[人工智能]机器学习(三)——梯度下降 |
1. 对梯度的理解借用百度上对梯度的定义:梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。 2.对梯度下降的理解借用吴恩达老师的话,把下降比作下山,那么梯度下降就是找一个方向,沿着该方向能最快下山。 3. 模拟梯度下降过程说明:代码编写和测试均在notebook中实现 3.1 绘制测试函数先绘制出测试用的函数y=(x-2.5)^2 - 1: 3.2 模拟梯度下降的过程
最终得到的theta值和其对应的函数值如下: 3.3 下降过程将这一过程绘制出来,直观的看一下下降的过程: 3.4 不同alpha对下降的影响上文说到alpha的大小决定了每次下降的步长,也就是每次下山要迈多大的步子,那就采用不同的alpha值测试一下,看看不同alpha值对应的下降过程是怎样的。 从测试结果来看,学习率alpha的选择对梯度下降是很重要的,若alpha太小,会导致收敛速度太慢;若alpha太大,会导致结果不收敛甚至发散。 3.5 初始值的选取我们在3.4看到了不同的学习率值对下降过程的影响,那初始值对下降过程是否有影响呢?答案是肯定的。 在之前的测试中,我们选择的初始值都是0, 0在函数y = (x - 2.5)^2 - 1最低点的附近,但是如果一开始就将初始值选在函数的最低点会怎样?
也就是说此时梯度下降根本没有更新theta的值,也就是开始即结束,此处再引用吴恩达老师的话:“这也解释了为什么即使 4. 线性回归中的梯度下降4.1 准备工作假设样本数据和线性函数为: 我们的目标就是寻找参数theta,使得损失函数最小: 那么在更新theta时就是: 4.2 代码实现
4.3 测试4.3.1 只有一个特征的测试数据
随机数在二维平面上是这样的:
4.3.2 有两个特征的测试数据
随机数在三维空间中是这样滴:
5.总结到这儿就把梯度下降的一些内容整理的差不多了,由于我也是初学者,如果有错误或不足,欢迎大家指正! 梯度下降在一般用来寻找函数的最小值,但有可能找到的不是全局最小值而使局部最小值。 以下为废话: 这里再多说一句,吴恩达老师的机器学习真的是经典,B站上也有各大up主上传的视频课,视频地址:地址 还有一个大佬整理的学习笔记:地址 我还想啰嗦一句,每个人的学习方法不同,所以学习资料啊大家都看情况使用,比如视频课,有的人觉得看视频学习效果好,有的人觉得看书学习效果好,这都是因人而异,大家在学习的时候一定要根据自身情况制定适合自己的学习方法。 我之前也是随大流,大家怎么学我就怎么学,大二上机器学习的课(我们学校的机器学习课程很水)我就是看大家都看吴恩达老师的视频课,我也跟着大家看视频课,但后来发现我看完之后并没有把知识学到脑子里,效果并不理想,但当时并没有想着要调整学习方法,也没有想着要好好学,后来就把machine learning的课程放下了。 时隔一年,脑子终于灵光了,也对机器学习越来越感兴趣了,因此又重新拾起这门课程。就我个人而言,我不是很适合一直看视频学,我反而适合看看书看看别人整理的文字笔记什么的,看视频总让我觉得知识都没进脑子。当然最最最最重要的是:敲代码练习!!!!! 一定一定要练习,练习可以检验你知识的掌握程度,帮你查漏补缺,反正就是一定要练习! 然后就是我自己也准备考研,我之前总觉得要考研就要用大量的时间去学要考的知识,但我现在觉得每天花点时间学点自己感兴趣的知识内容,敲敲代码写写项目整理博客会让我很开心,虽然复习的时间少了,但很值得。 好啦!废话结束!希望看到这篇博客的朋友都能对机器学习越来越感兴趣,都能把machine learning学得特别棒! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 10:38:59- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |