机器学习 day04(梯度下降算法,学习率,偏导数)

news2024/12/23 10:12:11
  1. 梯度下降
    在这里插入图片描述
  • 我们可以用一种更系统的方法,来找到一组w,b,使成本函数的值最小。这个方法叫梯度下降算法,它可用于最小化任何函数,不仅仅包括线性回归的成本函数,也包括两个以上参数的其他成本函数
  • 在线性回归中,w和b的初始值是多少并不重要,所以通常将他们的初始值设为0。
  • 成本函数并不总是弓形或吊床行的函数,这代表他可能有两个及以上的最小值
  • 梯度下降算法的步骤:
    a. 初始化w和b的值,通常设为0
    b. 继续更改w和b的值,来降低J函数的值
    c. 直到J函数到达,或接近J函数的最小值
  1. 例如:深度学习模型的成本函数
    在这里插入图片描述
  • 梯度下降算法形象化的步骤:
    a. 选取一组w和b作为初始位置
    b. 站在初始位置上,旋转360°,找到一个最高效下到这些山谷之一的底部的方向,并迈出一小步。从数学上来讲,这个方向是最陡下降方向
    c. 站在迈出一小步后的位置上,并重复上一步的过程
    d. 站在下一个位置上,重复上一步的过程

    e. 直到发现自己站在山谷的底部,而这个J函数的局部最小值就在这
  1. 梯度下降算法
    在这里插入图片描述
  • 梯度下降函数中有两个关键点:学习率和偏导数
  • α:学习率,通常是介于0和1之间的一个很小的正数,如0.001。它控制下坡时迈多大的步子
  • ∂J(w,b)/∂w 和 ∂J(w,b)/∂b:成本函数J对w求偏导,成本函数J对b求偏导。它控制下坡时朝哪个方向迈步子
  • 梯度下降算法的步骤:
    a. 更新w的值为,w - α × ∂J(w,b)/∂w
    b. 更新b的值为,b - α × ∂J(w,b)/∂b
    c. 重复更新w和b的值,直到w和b不随着继续更新而发生很大的变化,即偏导数趋于0,J函数趋于局部最小值,算法收敛
  • 左边的方法是,在程序中正确的,同时更新两个参数的方法,因为他更新完w的值后,没有立即覆盖w,而是继续用旧w来更新b的值
  • 右边的方法是,错误的,非同时更新两个参数的方法,因为他更新完w的值后,立即覆盖w,转而用新w来更新b的值
  • 建议使用左边的正确的,同时更新两个参数的方法
  1. 梯度下降算法中的偏导数
    在这里插入图片描述
  • 为了简化理解,我们将b设为0,J函数就变成一元函数,偏导数也就变成导数,我们可以用二维图来演示
  • 导数的作用是在确定w的初始值后,决定w的变化方向,即确保J函数的值是在往J函数的局部最小值移动
  • J函数上某点的导数为J函数在该点上的切线斜率。当w初始值在J函数最小值的右侧,切线斜率为正,该点导数为正,w减正数,w减小,即J函数值向局部最小值移动。当w初始值在J函数最小值的左侧,切线斜率为负,该点导数为负,w减负数为w加正数,w增加,即J函数值向局部最小值移动
  1. 梯度下降算法中的学习率
    在这里插入图片描述
  • 当学习率α过小时,梯度下降算法会执行的很慢,即要许多步才能到达J函数的局部最小值
  • 当学习率α过大时,梯度下降算法每一步都会迈的很大。在这个例子中,当下一步的w超过了,前一步w关于J函数局部最小值的对称点时,J函数就会持续增大,那么该算法就达不到J函数的局部最小值,即算法不会收敛,反而会发散。
  1. 梯度下降算法的特性
  • 当我们更改w和b的初始值后,会得到一个不同的局部最小值,如图:
    在这里插入图片描述
  • 当w到达某点,使J函数取局部最小值时,导数为0,梯度下降算法会保持w的值,不会让他继续改变,如图:
    在这里插入图片描述
  • 即使学习率固定,梯度下降算法也能让J函数到达局部最小值,如图:
    在这里插入图片描述
  • 越靠近J函数的局部最小值,导数就越小,下一步迈的就越小,w值的变化就越小
  1. 用于线性回归的梯度下降算法
    在这里插入图片描述
  • 注意:f w,b (xⁱ) = w × xⁱ + b 是线性回归模型,且在每一步要同时更新w和b的值
  • 简化公式的过程,如图:
    在这里插入图片描述
  • 成本函数是非凸函数时,J函数会有多个局部最小值。例如深度学习模型的成本函数,如图:
    在这里插入图片描述
  • 成本函数是凸函数时,J函数具有碗型功能,且只有一个全局最小值,除此之外没有其他局部最小值。例如线性回归的平方误差成本函数,如图:
    在这里插入图片描述

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

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

相关文章

2023最新面试题-Java-4

Date相关 1. java8的Date相关API: 常用 api 1、 获取当前日期 LocalDate.now() 2、创建日期 LocalDate date LocalDate.of(2020, 9, 21) 3、获取年份 date.getYear()//通过 TemporalField 接口的实现枚举类 ChronoField.YEAR 获取年份 date.get(ChronoFie…

车载通信——J1939 DM1

诊断故障代码(DTC)由4 个独立域构成: a. 可疑参数的编号(SPN) 19位 b. 故障模式标志(FMI) 5位 c. 发生次数(OC) 7位 d. 可疑参数编号的转化方式(CM) 1 位 Byte1 – Lamp Status Bits1 – 2 Protection Lamp 保护灯状态 …

基于 NIOSII 软核的流水灯实验

文章目录一、硬件部分设计1、进行 Qsys 系统设计二、逻辑连接三、软件设计四、总结一、硬件部分设计 1、进行 Qsys 系统设计 新建kernel.qsys文件: 设置clk时钟: 添加 Nios II 其余选项保持默认 添加 jtag uart 接口 添加片上存储器 On-Chip Memory(R…

【C++高级】手写线程池项目-经典死锁问题分析-简历项目输出指导

作为五大池之一, 线程池的应用非常广 泛,不管是客户端程序,还是后台服务程序,掌握线程池,是提高业务处理能力的必备模块 本课程将带你从零开始,设计一个支持fixed和cached模式的线程池,玩转C11、…

使用FRP(快速反向代理)实现内网穿透——以腾讯云服务器为例

一、FRP简介 FRP,即快速反向代理技术(fast reverse proxy)。本文的FRP程序是基于github开源项目GitHub - fatedier/frp。当前,该程序可实现:“将位于 NAT 或防火墙后面的本地服务器暴露给互联网”。它目前支持 TCP 和…

金山衍生新软件,wps,excel用户已在用,Access用户:以后就它了

我们常会用到微软的办公软件Word、Excel、PPT、Outlook,但在数据处理方面还是得看Access。Access用简短的表述来说就是微软开发的一个关系数据库管理系统。★好用,可门槛高,够不着 为啥说数据处理得看Access呢?举个例子&#xff0…

如何实现视觉识别形状

1. 功能说明 通过摄像头识别圆形及矩形两种形状。 2. 电子硬件 本实验中采用了以下硬件: 主控板 Basra主控板(兼容Arduino Uno) 扩展板 Bigfish2.1 电池7.4V锂电池通信2510通信转接板WiFi路由器 其它 摄像头 配置OpenCV的Visual Studio 2015.…

深入了解网络通信原理

同一个 vlan 同一个网段的 ip 地址能够直接互通,那么同一个 vlan 不同的网段能不能互通呢?海翎光电的小编整理了一篇文章,可以解决大家在网络中遇到的一些奇怪的问题,也是可以加深对网络的理解。 一、同 VLAN 不同网段能否 Ping 通…

Linux基本背景介绍与应用场景,Linux两条版本线,创建删除用户与修改密码的指令

TIPS Linux是一款叫做操作系统的软件,比如说你买了一个笔记本,你以为你只买了一个笔记本,实际上笔记本里面还搭建了一个非常重要的软件:操作系统。正是因为有了操作系统的存在,所以说有一个行为:开机就诞生…

再摘一枚重要奖项!腾讯安全获得云安全联盟CSA 2022安全金盾奖

4月13日,第六届云安全联盟大中华区大会(CSA GCR Congress)在上海举办,大会由联合国数字安全联盟、上海市经济和信息化委员会、上海市委网络安全和信息化委员会办公室、上海市普陀区人民政府指导,云安全联盟大中华区主办…

【开源项目】BallCat 项目脚手架

简介 🎉🎉🎉 基于 React 和 Ant Design 版本的前端 ballcat-ui-react 已发布,欢迎大家尝鲜使用 BallCat 组织旨在为项目快速开发提供一系列的基础能力,方便使用者根据项目需求快速进行功能拓展。 在以前使用其他后台管…

开源协议 GPL、BSD、MIT、Mozilla、Apache和LGPL的区别

一、GPL、BSD、MIT、Mozilla、Apache和LGPL的总体结构图如下: 二、协议详细说明 LGPL开源许可证: LGPL 是GPL的一个为主要为类库使用设计的开源协议。和GPL要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不同。LGPL 允许商业软件通过类库引用…

Python学习笔记--文件操作

(一) 文件的编码 1. 编码 编码是一种规则集合,记录了内容和二进制间进行相互转换的逻辑 编码有许多种,最常用的是utf-8 2. 使用编码的原因 计算机只能识别二进制数,因此要将文件的内容翻译为二进制数,才能保…

【K8S系列】深入解析有状态服务

目录 序言 1 基本介绍 2 使用介绍 2.1 Headless Service 2.2 PersistentVolume 2.3 StatefulSet 2.4 Init Containers 3 问题 4 投票 序言 在你想要放弃的时候,想想是什么让你当初坚持走到了这里。 Kubernetes (k8s) 是一个容器编排平台,允许在…

RISC-V Linux 编译设备树

RISC-V Linux 编译设备树 flyfish 设备树是一种描述硬件资源的数据结构 引入设备树的主要目的 曾经 Linux内核中夹杂着大量的设备信息,影响Linux驱动开发效率,因为外部设备发生任何改动,需要重新编写和编译驱动代码。 现在 设备驱动程…

VSCode使用Remote SSH远程连接Linux服务器【远程开发】

文章目录前言视频教程1、安装OpenSSH2、vscode配置ssh3. 局域网测试连接远程服务器4. 公网远程连接4.1 ubuntu安装cpolar4.2 创建隧道映射4.3 测试公网远程连接5. 配置固定TCP端口地址5.1 保留一个固定TCP端口地址5.2 配置固定TCP端口地址5.3 测试固定公网地址远程转发自CSDN远…

shell一些操作

文章目录【检查脚本目录】示例【时间和时区】修改时间修改时区修改时区查看时区脚本从服务器同步client主动同步client被动同步docker-compose 时区设置kubernetes设置时区【按时间备份】实例date命令【历史命令和快捷键】历史命令快捷键【重定向】相关符号脚本输出到黑洞cat输…

android studio 页面布局(1)

<?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-auto"xmlns:tools"http://schemas.android.com/too…

论文阅读 - ANEMONE: Graph Anomaly Detection with Multi-Scale Contrastive Learning

目录 摘要 1 简介 2 问题陈述 3 PROPOSED ANEMONE FRAMEWORK 3.1 多尺度对比学习模型 3.1.1 增强的自我网络生成 3.1.2 补丁级对比网络 3.1.3 上下文级对比网络 3.1.4 联合训练 3.2 统计异常估计器 4 EXPERIMENTS 4.1 Experimental Setup 4.1.1 Datasets 4.1.2 …

Ethercat学习-QT添加SOEM主站

文章目录简介环境搭建1.QT安装2.VS安装3.Win10 Debuggers4.QT配置SOEM移植&#xff11;.lib库生成2.文件移植1.文件整理2.添加文件至QT工程测试简介 QT版本5.14.2 VS版本2017 系统Win10 环境搭建 环境搭建很简单&#xff0c;就是安装几个软件就好了&#xff0c;没有特殊的…