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

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

时间:2024-04-03 19:31:58浏览次数:27  
标签:吴恩达 函数 迭代 梯度 下降 课程 计算 训练样本

问题预览/关键词

  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。通过二维关系图和等高线图,我们看到梯度下降一开始可以大幅度降低成本函数,随着迭代次数提升,更新的幅度慢慢减少。而如果学习率设置过大,梯度下降会导致成本函数的值上升。

标签:吴恩达,函数,迭代,梯度,下降,课程,计算,训练样本
From: https://blog.csdn.net/AIGC_xuexishe/article/details/137264667

相关文章

  • Java课程设计:基于Javaweb的图书管理系统(内附源码)
    一、项目介绍本系统由读者端和管理员端,读者端主要有主要有三大功能,借阅图书、归还图书和查看自己的借阅信息,管理员端主要有四个大的功能,对图书进行管理,对用户进行管理、对借阅信息进行管理、对图书分类进行管理。整体功能模块图,如图所示:借还图书:读者对图书进行借阅与归......
  • iPad手绘+Ai二合一课程,Procreate+Mj+SD零基础到精通(10节视频课)
    课程内容:1系统课AI辅助设计流-从零进阶轻松驾驭AI设计,mp42商务沟通阶段ChatGPTMidjourney-聊天机器人项目调研资料收集,mp43_商务沟通阶段ChatGPT_Midjourney-Midjourney基础界面初识初步设置.mp44_商务沟通阶段ChatGPT_Midjourney-Midjourney基础Prompt结......
  • 书生·浦语大模型趣味Demo课程笔记
    第二节书生·浦语大模型趣味Demo实践环境准备浦语大模型的开发机器支持了cuda11.7的基础环境和一些自动迁移conda配置脚本迁移conda环境命令:studio-conda-ointernlm-base-tdemo如果自己安装软件环境:condacreate-ndemopython==3.10-ycondaactivatedemoconda......
  • ZCMU操作系统课程实验 - 实验1-Linux的使用
    登录1.打开这个东西2. 在  文件->打开    中打卡机房里VMOS文件里的这个东东 3.然后依次操作下去好了,有红色的选项,我都是选的"Donothing"。完成后就会出现这样一个黑框框。4.让你登录。输入:root。密码:superuser    。注意输入密码的时候,密......
  • 【包远程安装运行】:SpringBoot+Mysql在线课程学习教育系统源码+运行视频教程+开发文档
    今天发布的是由【猿来入此】的优秀学员独立做的一个基于springboot脚手架的在线课程学习平台系统,该系统除脚手架功能外又添加了一个前台,具体的功能如下:用户(未认证):学习课程、提交课程试题、上传分享资料、下载其他人的资料、收藏课程、个人中心、课程评价、资料讨论等。作......
  • 用梯度下降法实现线性回归
    sklearn的SGDRegressor()函数用于实现梯度下降法的回归分析。#coding=utf-8#导入必要的库importnumpyasnpimportmatplotlib.pyplotaspltfromsklearnimportlinear_model#设置文字plt.rcParams['font.sans-serif']='SimHei'#创建数据矩阵X,y=[],[......
  • 神经网络与深度学习课程总结一
    线性回归定义与基本概念:线性回归用于确定变量间相互依赖的定量关系,是一种统计分析方法。以房屋面积与销售价格的关系为例,通过拟合一条直线(模型)来预测未知面积的房屋价格。数学模型:模型表示为\(y=h_{\theta}(x)=\theta^Tx+\theta_0\),其中\(x\)和\(y\)分别是输入和输......
  • 【课程设计/实训作业】python学生成绩管理系统源码
    项目介绍一直想做一款学生成绩管理系统,看了很多优秀的开源项目但是发现没有合适的。于是利用空闲休息时间开始自己写了一套管理系统。学习过程中遇到问题可以咨询评论。在线体验http://score.gitapp.cn/(账号:admin123密码:admin123)源码地址https://github.com/geeeeeee......
  • L1 和 L2 正则的区别,从梯度的角度来解释
    ......
  • 南京理工最新突破!基于梯度和频率域的深度超分辨率新方法
    论文一作:Zhengxue Wang(授权) |编辑:3DCV 添加微信:dddvision,备注:立体视觉,拉你入群。文末附行业细分群由南京理工PCALab开发的深度图超分辨率方法SGNet(SGNet:StructureGuidedNetworkviaGradient-FrequencyAwarenessforDepthMapSuper-Resolution),针对仅通过空间域......