热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

吴恩达机器学习(六)梯度下降

梯度下降算法可以用在更一般的问题上,比如计算minimizeJ(θ0…θn),用以优化代价函数。不断地改变θ0和θ1的值,直到代价函数J达

梯度下降算法可以用在更一般的问题上,比如计算minimize J(θ0…θn),用以优化代价函数
不断地改变θ0和θ1的值,直到代价函数J达到最小值。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
梯度下降法的一大特点就是,不同位置出发,得到的可能是局部最优解,而非整体最优解。

在这里插入图片描述
repeat until convergence -> 重复执行,直到收敛

:=代表赋值,=代表真假判断
α称为学习率,控制以多大的幅度更新参数θj,即控制我们每次走一步步数的大小。
α越大,梯度下降越快。
会用到偏导数和导数的知识。
梯度下降中,θ0, θ1…θn都是同步更新的,不能将刚更新的值用来计算下一个参数。



单参数简单实例

假设我们想最小化的函数只有一个参数θ1

1.偏导数的作用

在这里插入图片描述

初始值不同的两种情况,粉色框对应的值为J(θ1)点的斜率。
θ1 在运算过程中一直在减小(下降)。
初始值在左侧时,斜率从负数增加到0;
初始值在右侧是,斜率从正数减小到0;

2.α学习率的作用

α学习率肯定是正数
在这里插入图片描述
如果学习率太小,梯度下降的过程会很慢。
如果学习率太大,很有可能会越过最优解点,并使得结果愈发远离理想结果,甚至发散。
在这里插入图片描述

当θ1相对上一次θ1没有改变,则到达局部最优解(因为局部最优解处斜率为0)
在这里插入图片描述
当结果接近局部最优解时,梯度下降会逐渐减小速度 / 步伐,因为斜率是主键趋于0的。
因此,在执行过程中不需要再修改α学习率。


推荐阅读
  • 机器学习算法:SVM(支持向量机)
    SVM算法(SupportVectorMachine,支持向量机)的核心思想有2点:1、如果数据线性可分,那么基于最大间隔的方式来确定超平面,以确保全局最优, ... [详细]
  • 【转】强大的矩阵奇异值分解(SVD)及其应用
    在工程实践中,经常要对大矩阵进行计算,除了使用分布式处理方法以外,就是通过理论方法,对矩阵降维。一下文章,我在 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • 非计算机专业的朋友如何拿下多个Offer
    大家好,我是归辰。秋招结束后,我已顺利入职,并应公子龙的邀请,分享一些秋招面试的心得体会,希望能帮助到学弟学妹们,让他们在未来的面试中更加顺利。 ... [详细]
  • 本文介绍如何使用OpenCV和线性支持向量机(SVM)模型来开发一个简单的人脸识别系统,特别关注在只有一个用户数据集时的处理方法。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 如何撰写数据分析师(包括转行者)的面试简历?
    CDA数据分析师团队出品,作者:徐杨老师,编辑:Mika。本文将帮助您了解如何撰写一份高质量的数据分析师简历,特别是对于转行者。 ... [详细]
  • 在2019中国国际智能产业博览会上,百度董事长兼CEO李彦宏强调,人工智能应务实推进其在各行业的应用。随后,在“ABC SUMMIT 2019百度云智峰会”上,百度展示了通过“云+AI”推动AI工业化和产业智能化的最新成果。 ... [详细]
  • 非线性门控感知器算法的实现与应用分析 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • Redis 是一个高性能的开源键值存储系统,支持多种数据结构。本文将详细介绍 Redis 中的六种底层数据结构及其在对象系统中的应用,包括字符串对象、列表对象、哈希对象、集合对象和有序集合对象。通过12张图解,帮助读者全面理解 Redis 的数据结构和对象系统。 ... [详细]
  • 本文探讨了SSD购买后是否需要进行4K对齐的问题,并详细解释了4K对齐的原理及其重要性。通过对比机械硬盘与固态硬盘的结构,文章深入分析了4K对齐对SSD性能的影响,并提供了具体的对齐方法。 ... [详细]
  • 本文介绍了在Java中遍历HashMap的三种常见方法:使用entrySet()、keySet()以及Java 8引入的forEach。每种方法都有其特点和适用场景。 ... [详细]
  • Python环境中字体放大的解决方法
    在使用Python开发环境时,有时会遇到无法通过Ctrl+鼠标滚轮放大字体的问题。本文将介绍如何在不同环境下解决这一问题,包括在没有Settings选项的情况下的替代方案。 ... [详细]
  • 优先队列是一种特殊的队列,不遵循先进先出原则。它分为最大优先队列和最小优先队列。最大优先队列总是将当前最大的元素优先出队,而最小优先队列则总是将当前最小的元素优先出队。本文将详细介绍如何使用二叉堆在C#中实现这两种优先队列。 ... [详细]
author-avatar
乌鸦晕倒_767
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有