吴恩达2022机器学习专项课程(一) 4.6 运行梯度下降第一周课程实验:线性回归的梯度下降算法

问题预览/关键词

  1. 更新梯度下降对模型拟合,等高线图,3d空间图的变化。
  2. 什么是批量梯度下降。
  3. 实验目标
  4. 计算梯度
  5. 运行梯度下降
  6. 梯度下降迭代次数和成本函数的关系可视化
  7. 模型预测
  8. 在等高线图上的梯度下降
  9. 学习率过大
  10. 报错问题

笔记

1.模型拟合,等高线图,3d空间图的变化

3.5课节有一样的图,不断运行梯度下降,成本函数越靠近等高线图的中心圈,w,b越接近最优解。在这里插入图片描述

2.批量梯度下降

批量梯度下降:每一步梯度下降都会考虑所有训练样本。在计算导数项的求和时,我们会计算所有训练样本求和而不是计算部分训练样本求和。在这里插入图片描述

  • 梯度下降还有其它方法,只会看部分训练样本。

3.实验目标

使用梯度下降算法自动优化w,b。

4.计算梯度(导数项)

  • 调用一次该函数,视为计算一次梯度。
  • for循环m次,m为训练样本总数,这里体现了批量梯度下降(计算所有训练样本)。
    在这里插入图片描述

5.运行梯度下降

  • for循环表示迭代次数,每次迭代都要计算梯度然后更新w,b。
  • 在迭代次数内,每次都要计算并保存成本函数的值。
  • 打印部分成本函数的值。
    在这里插入图片描述
  • 给定w,b初始值为1,学习率设置为0.01,梯度下降次数设置为10000。
  • 随着梯度下降不断计算并更新,成本函数,w,b三者的值趋近于稳定,表示找到了w,b最优解。
    在这里插入图片描述

6.梯度下降迭代次数和成本函数的关系

  • 第一张图,前100次迭代,成本函数的值快速下降到10000以下,也就是最初阶段变化迅速。
  • 第二张图,第1000次迭代开始到第10000次,成本函数值变化范围从3.5无限趋近于0,变化较小。
    在这里插入图片描述

7.使用模型预测

  • 找到了最优的w,b,代入线性回归的函数进行房价预测。
    在这里插入图片描述

8.在等高线图上的梯度下降

  • 红色箭头表示梯度下降过程,越靠近中心圈,幅度越小。课节4.4提到过,是因为导数项越来越小。
    在这里插入图片描述
  • 缩小范围进行更细致的观察,幅度更小了。
    在这里插入图片描述

9.学习率过大

  • 成本在增加,w,b的绝对值也在增加,没有靠近成本函数最小值。
    在这里插入图片描述

  • 可视化,可以看到w,b在正负之间震荡,成本在增加。
    在这里插入图片描述

10.报错问题

  • 学习率过大的可视化的代码会报错OverflowError,
    在这里插入图片描述
  • 需要在lab_utils_uni.py文件中修改为:
    • cost = np.zeros_like(w_array,dtype=‘float64’)
    • z=np.zeros_like(tmp_b,dtype=‘float64’)
  • 然后ctrl+s保存文件。
    在这里插入图片描述
  • 回到代码页面,重启内核并运行。
    在这里插入图片描述

总结

目前接触到的梯度下降是批量梯度下降,表示每次计算梯度,我们都会包括所有的训练样本。其它类型的梯度下降可能计算部分训练样本。我们需要设置迭代次数来进行梯度下降,先写好计算梯度也就是计算导数项的函数,然后循环迭代次数来不断计算梯度并更新梯度,同时也保存好每次更新的w,b。通过二维关系图和等高线图,我们看到梯度下降一开始可以大幅度降低成本函数,随着迭代次数提升,更新的幅度慢慢减少。而如果学习率设置过大,梯度下降会导致成本函数的值上升。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/797013.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

刷题之Leetcode283题(超级详细)

283.移动零 283. 移动零https://leetcode.cn/problems/move-zeroes/ 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nu…

Qt环形颜色选择控件, 圆环颜色选择器

参考文章Qt编写自定义控件:环形颜色选择控件_qconicalgradient圆环渐变-CSDN博客 感谢作责提供的方法,下面程序的基础思路同参考文章。 为了更方便使用,这个选择器是基于64色表的,会显示选中的索引和色值。颜色选择时计算方式也…

腾讯云优惠券介绍、领券入口及使用教程分享

腾讯云作为国内领先的云服务提供商,为广大用户提供了稳定、高效、安全的云计算服务。为了吸引用户上云,腾讯云推出了优惠券活动。本文将对腾讯云优惠券进行详细介绍,包括优惠券的种类、领券入口以及使用教程,助力大家轻松上云&…

Web APIs简介 Dom

JS的组成 API API 是一些预先定义的函数,目的是提供应用程序与开发人员基于软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节 简单理解:API是给程序员提供的一种工具,以便能更轻松的实现…

感染了后缀为.jayy勒索病毒如何应对?数据能够恢复吗?

导言: 在当今数字化的世界中,网络安全已经成为了每个人都需要关注的重要议题。而勒索病毒作为网络安全领域中的一大威胁,不断地演变和升级,给个人和组织带来了严重的损失和困扰。近期,一种名为.jayy的勒索病毒引起了广…

(十一)RabbitMQ及SpringAMQP

1.初识MQ 1.1.同步和异步通讯 微服务间通讯有同步和异步两种方式: 同步通讯:就像打电话,需要实时响应。 异步通讯:就像发邮件,不需要马上回复。 两种方式各有优劣,打电话可以立即得到响应,…

接口日志表结构

表:ZTALL_IFLOG MANDT MANDT CLNT 3 0 0 客户端 UUID SYSUUID_C32 CHAR 32 0 0 16-byte UID in 32 chars (hexadecimal) IFSNR ZE_IFSNR CHAR 30 0 0 接口编号(系统ID流水号) FUNCNAME RS38L_FNAM CHAR 30 0 0 功能模块的名称 STATUS BAPI_MTYPE CHAR 1 0 0 消息类…

2024年MathorCup妈妈杯数学建模思路D题思路解析+参考成品

1 赛题思路 (赛题出来以后第一时间在群内分享,点击下方群名片即可加群) 2 比赛日期和时间 报名截止时间:2024年4月11日(周四)12:00 比赛开始时间:2024年4月12日(周五)8:00 比赛结束时间&…

MySQL-基本SQL语句编写:运算符练习

运算符练习 1.选择工资不在5000到12000的员工的姓名和工资 SELECT last_name,salary FROM employees #where salary not between 5000 and 12000; WHERE salary < 5000 OR salary > 12000;2.选择在20或50号部门工作的员工姓名和部门号 SELECT last_name,department_id…

Unity与CocosCreator对比学习二

一、锚点与适配 1.在Creator中 适配通过锚点、位置和Widget达到适配目的&#xff1b;锚点是节点在其父节点坐标系中坐标对其点&#xff0c;其x,y范围在[0, 1]之间&#xff1b; 锚点为(0, 0)时在节点自身的左下角&#xff0c;节点坐标指其左下角在父节点中的坐标&#xff1b;锚…

Python项目21:一个简单的记账系统(收入+支出+查询)

------------★Python练手项目源码★------------ Python项目源码20&#xff1a;银行管理系统&#xff08;开户、查询、取款、存款、转账、锁定、解锁、退出&#xff09; Python项目19&#xff1a;学员信息管理系统&#xff08;简易版&#xff09; Python项目18&#xff1a;…

【Linux-运维】查看操作系统的指定端口占用情况确定端口是哪个服务占用

不同的查看端口占用的方法&#xff0c;应用场景有所不同 一、查询某个端口是否被占用&#xff1f;lsof -i:端口号lsof -i:协议 查看某个协议的占用情况netstat -tlnp|grep 端口号ss -tlnp|grep 端口号fuser 端口号/协议ls -l /proc/$(lsof -t -i:端口号)|grep exe 二、确认指定…

C++ 【原型模式】

简单介绍 原型模式是一种创建型设计模式 | 它使你能够复制已有对象&#xff0c;客户端不需要知道要复制的对象是哪个类的实例&#xff0c;只需通过原型工厂获取该对象的副本。 以后需要更改具体的类或添加新的原型类&#xff0c;客户端代码无需改变&#xff0c;只需修改原型工…

[ 云计算 | AWS ] ChatGPT 竞争对手 Claude 3 上线亚马逊云,实测表现超预期

文章目录 一、前言二、Claude 3 介绍以及相关测试细节三、在亚马逊云科技上体验 Claude 33.1 在 Amazon Bedrock 服务中配置 Claude 33.2 为聊天配置使用 Claude 3 模型3.3 Caude 3 Sonet 聊天体验 四、文末总结五、参考文献 一、前言 3月4号&#xff0c;Anthropic 发布了号称…

第十四届蓝桥杯C/C++大学B组题解(一)

1、日期统计 #include <bits/stdc.h> using namespace std; int main() {int array[100] {5, 6, 8, 6, 9, 1, 6, 1, 2, 4, 9, 1, 9, 8, 2, 3, 6, 4, 7, 7,5, 9, 5, 0, 3, 8, 7, 5, 8, 1, 5, 8, 6, 1, 8, 3, 0, 3, 7, 9,2, 7, 0, 5, 8, 8, 5, 7, 0, 9, 9, 1, 9, 4, 4, 6,…

鸿蒙Lottie动画-实现控制动画的播放、暂停、倍速播放、播放顺序

介绍 本示例展示了lottie对动画的操作功能。引入Lottie模块&#xff0c;实现控制动画的播放、暂停、倍速播放、播放顺序、播放到指定帧停止或从指定帧开始播放、侦听事件等功能&#xff0c;动画资源路径必须是json格式。 效果预览 使用说明&#xff1a; 进入页面默认开始201…

Python人工智能应用---中文分词词频统计

目录 1.中文分词 2.循环分别处理列表 &#xff08;1&#xff09;分析 &#xff08;2&#xff09;代码解决 3.词袋模型的构建 &#xff08;1&#xff09;分析需求 &#xff08;2&#xff09;处理分析 1.先实现字符串的连接 2.字符串放到新的列表里面 4.提取高频词语 &…

一些好玩的东西

这里写目录标题 递归1.递归打印数组和链表?代码实现原理讲解二叉树的 前 中 后 序位置 参考文章 递归 1.递归打印数组和链表? 平常我们打印数组和链表都是 迭代 就好了今天学到一个新思路–>不仅可以轻松正着打印数组和链表 , 还能轻松倒着打印(用的是二叉树的前中后序遍…

Linux基础篇:Linux第三方软件仓库——可以让Linux变得有趣的软件仓库

Linux第三方软件仓库——可以让Linux变得有趣的软件仓库 一、epel源介绍 EPEL&#xff08;Extra Packages for Enterprise Linux&#xff09;源是一个由Fedora项目组维护的第三方软件仓库&#xff0c;为企业级Linux发行版&#xff08;如Red Hat Enterprise Linux&#xff08;…

清明作业 c++

1.封装一个类&#xff0c;实现对一个数求累和阶乘质数 #include <iostream>using namespace std; int mproduct(int a){if(a>1){return a*mproduct((a-1));}else{return 1;} } class number{int a; public:number():a(5){};number(int a):a(a){}void set(int a){thi…