【pytorch12】什么是梯度
说明
- 导数
- 偏微分
- 梯度
梯度:是一个向量,向量的每一个轴是每一个方向上的偏微分
梯度是有方向也有大小,梯度的方向代表函数在当前点的一个增长的方向,然后这个向量的长度代表了这个点增长的速率

蓝色代表比较小的值,红色代表比较大的值,中间的箭头比较长,方向是由一个极小值指向一个极大值,因此中间这部分梯度反应了函数的增长的方向,说明了从这个方向增长这个方向是最快的
如何搜索到一个极小值?
一般情况下我们搜索的是极小值,如果想要搜索极大值的话,可以把loss变成负号,就可以通过搜索一个极小值解来搜索极大值解

所以这个函数的梯度是(2 θ 1 \theta_{1} θ1,2 θ 2 \theta_{2} θ2),再求(0,0)处的一个梯度情况,因此有时候会陷入到一个局部最小值的情况


红色是最原始版本的梯度下降来搜索会卡在马鞍的点上

对于任何的一个点和另外的一个点,我们拉一条直线,这条直线中间的中点以及中点所对应的函数的值,例如定义为z1,z2且z1>z2,叫做凸函数,对于这种情况可以找到一个全局最优解
存在且不太常见的

存在局部极大和局部极小,存在多个局部极小值
实际的例子:ResNet-56的平面

对于函数的输出可能有无数多个w参数,对于ResNet可以有上千万个W的参数f=(w1,w2,…),把上千万的自变量可视化到一个二维的平面,可能会陷入到无数多的局部极小值中,即使有全局最小值解,因此对于一个深层次的神经网络,取搜索的时候可能找到一个表现不满意的因为此时的解可能是一个局部极小值解,因此网络的精度不会特别高,Resnet加了一个shortcut的模块,在神经网络的旁边加了一条支路,发现神经网络可以变得很深同时也可以优化的很好,可视化后会变成第二个平面
使用梯度来搜索最小值的情况下,除了会遇到局部最小值,还可能遇到鞍点

优化器表现
- 初始状态
- 学习率
- 动量(即如何逃离局部极小值)
初始状态

对于初始状态的不同,会影响找到的是全局解还是局部极小值这样的情况,搜索的路径也可能不一样,因此大家再做深度学习的时候函数的全职一定要初始化,而且初始化的时候如果没有把握就按照目前主流的初始化的方法

上图两种初始化,左边会到全局最小解,右边会到局部极小值,不同的初始化状态会得到不一样的结果
学习率

学习率设置为1的时候(比较大),步长会比较大,但实际上我们需要的情况是左边蓝色的点慢慢下降而不是左边跳到右边再跳到左边,是因为学习率设置的过大,会一步跨的太长直接跨过了最小值,对于比较好的函数还可以慢慢震荡到最小值,但是大部分现实情况是直接不收敛了,一开始要把learning rate设置的小一点,0.01或0.001这样,如果发现收敛了可以试着大一点这样会让收敛的速度会快一点
学习率也会影响收敛的精度,例如到最小值附近learning rate还是很大会一直在附近震动永远到不了最小值,只会得到一个近似比较好的情况,这种时候要慢慢减小learning rate
如何逃出局部最小值

很有可能搜索到局部最小值就停止了,但是还有最小值,这时候可以添加一个动量,这个动量可以直观的理解为惯性,也就是说在局部极小值左边发现梯度呈现右下降的趋势,在右边发现梯度呈左下角的趋势,如果在此时考虑一个惯性的话,在右边的时候梯度会引导你回去到局部最小值,但是本来就是向右去降低梯度的,如果可以考虑到一个惯性的话,假设向右走是v1向量向左走是v2向量,把这两个向量综合一下就会得到一个朝向于偏向v2的方向
常见函数的梯度

简单感知机线性模型的求解

二次模型的梯度

指数求解梯度的方式

线性感知机的输出和真实label之间的均方差

log函数求梯度

相关文章:
【pytorch12】什么是梯度
说明 导数偏微分梯度 梯度:是一个向量,向量的每一个轴是每一个方向上的偏微分 梯度是有方向也有大小,梯度的方向代表函数在当前点的一个增长的方向,然后这个向量的长度代表了这个点增长的速率 蓝色代表比较小的值,红色…...
南京,协同开展“人工智能+”行动
南京,作为江苏省的省会城市,一直以来都是科技创新和产业发展的高地。近日,南京市政府正式印发了《南京市进一步促进人工智能创新发展行动计划(2024—2026 年)》和《南京市促进人工智能创新发展若干政策措施》的“11”文…...
Selenium IDE 的使用指南
Selenium IDE 的使用指南 在自动化测试的领域中,Selenium 是一个广为人知且强大的工具集。而 Selenium IDE 作为其中的一个组件,为测试人员提供了一种便捷且直观的方式来创建和执行自动化测试脚本。 一、Selenium IDE 简介 Selenium IDE 是一个用于录…...
vue配置sql规则
vue配置sql规则 实现效果组件完整代码父组件 前端页面实现动态配置sql条件,将JSON结构给到后端,后端进行sql组装。 这里涉及的分组后端在组装时用括号将这块规则括起来就行,分组的sql连接符(并且/或者)取组里的第一个。…...
面试官:Redis执行lua脚本能保证原子性吗?
核心问题 Redis执行lua脚本是否能确保原子性? 面试经历 面试者在面试中自信回答Redis执行lua脚本能保证原子性,但未能深入解释原因。 原子性概念 原子性:一个事务的所有命令要么全部执行成功,要么全部执行失败。 Redis官方说…...
基于Chrome扩展的浏览器可信事件与网页离线PDF导出
基于Chrome扩展的浏览器可信事件与网页离线PDF导出 Chrome扩展是一种可以在浏览器中添加新功能和修改浏览器行为的软件程序,我们可以基于Manifest规范的API实现对于浏览器和Web页面在一定程度上的修改,例如广告拦截、代理控制等。Chrome DevTools Proto…...
马拉松报名小程序的设计
管理员账户功能包括:系统首页,个人中心,用户管理,赛事信息管理,赛事报名管理,活动商城管理,留言板管理,系统管理 微信端账号功能包括:系统首页,赛事信息&…...
python使用pywebview集成vue3和element-plus开发桌面系统框架
随着web技术越来越成熟,就连QQ的windows客户端都用web技术来开发,所以在未来,web技术来开发windows桌面软件也会越来越多,所以在此发展驱动之下,将最近流程的python与web技术相结合,使用vue3和element-plus…...
C++线程的使用
C11之前,C语言没有对并发编程提供语言级别的支持,这使得我们在编写可移植的并发程序时,存在诸多的不便。现在C11中增加了线程以及线程相关的类,很方便地支持了并发编程,使得编写的多线程程序的可移植性得到了很大的提高…...
算法库应用--寻找最长麦穗
学习贺利坚老师算法库 数据结构例程——串的顺序存储应用_使用顺序串存储身份证号-CSDN博客 本人详细解析博客 串的顺序存储的应用实例二_串的顺序存储应用-CSDN博客 版本更新日志 V1.0: 在原有的基础上, 进行优化名字, 并且有了相应的算法库作为支撑, 我使用了for循环来代替老…...
ython 使用 cx_Freeze 打包,不想要打包文件中能直接看到依赖的代码,如何处理
背景:因为使用 cx_Freeze 打包时,添加需要依赖的文件 cx_Freeze 是一个用于将 Python 程序打包成独立可执行文件的工具,支持多个平台。当你需要打包包含多个 .py 文件的项目时,你可以通过编写一个 setup.py 文件来指定哪些模块应…...
某DingTalk企典 - Token
⚠️前言⚠️ 本文仅用于学术交流。 学习探讨逆向知识,欢迎私信共享学习心得。 如有侵权,联系博主删除。 请勿商用,否则后果自负。 网址 aHR0cHM6Ly9kaW5ndGFsay5jb20vcWlkaWFuLw 浅聊一下 没毛病,就这字段,有效期…...
手写一个类似@RequestParam的注解(用来接收请求体的参数)
一、本文解决的痛点 按照大众认为的开发规范,一般post类型的请求参数应该传在请求body里面。但是我们有些post接口只需要传入一个字段,我们接受这种参数就得像下面这样单独创建一个类,类中再添加要传入的基本类型字段,配合Reques…...
【遇坑笔记】Node.js 开发环境与配置 Visual Studio Code
【遇坑笔记】Node.js 开发环境与配置 Visual Studio Code 前言node.js开发环境配置解决pnpm 不是内部或外部命令的问题(pnpm安装教程)解决 pnpm : 无法加载文件 C:\Program Files\nodejs\pnpm.ps1,因为在此系统上禁止运行脚本。 vscode 插件开…...
【ajax实战07】文章筛选功能
本文章目标:根据筛选条件,获取匹配数据展示 本章**“查询参数对象”指的是,要“获取文章列表”功能**中服务器接口要求配置的对象 实现步骤如下: 一:设置频道列表数据 二:监听筛选条件改变,…...
promise.all和promise.race的区别
Promise.all和Promise.race是JavaScript中Promise API的两个重要方法,它们在处理多个Promise对象时表现出不同的行为。以下是它们之间的主要区别: 1. 功能和行为 Promise.all: 功能:接收一个包含多个Promise的数组&#x…...
Python爬取豆瓣电影+数据可视化,爬虫教程!
1. 爬取数据 1.1 导入以下模块 import os import re import time import requests from bs4 import BeautifulSoup from fake_useragent import UserAgent from openpyxl import Workbook, load_workbook1.2 获取每页电影链接 def getonepagelist(url,headers):try:r reque…...
初阶数据结构二叉树练习系列(1)
这个系列的文章将带大家一起刷题,并且总结思路 温馨提示:本篇文章里的练习题仅适合刚学完二叉树的小白使用 相同的树 思路 情况分析:第一种情况:两棵树都为空 → 返回true 第二种情况&am…...
【selenium 】操作元素
操作元素 元素操作鼠标操作键盘操作 元素操作 元素操作示例清空输入框clear()deiver.find_element_by_id(“username”).clear()输入文字send_keys()deiver.find_element_by_id(“username”).send_keys(‘zs’)元素点击 click()deiver.find_element_by_id(“login”).click()…...
【MySQL】事务实现原理
目录 事务 如何使用 ACID 原子性(Atomicity) 原子性实现原理 持久性(Durability) 持久性实现原理 隔离性 隔离级别 读未提交 读已提交 可重复读 串行化 隔离级别原理 锁 共享锁&独占锁 意向锁 索引记录锁 间隙锁 临键锁 插入意向锁 自增锁 MVCC 实现…...
【架构实战】健康检查与故障转移机制
一、为什么需要健康检查 在分布式系统中,服务实例可能因为各种原因变得不可用,而调用方却毫不知情,继续向故障实例发送请求,导致大量失败。常见的服务不可用场景:- 进程假死:Java进程存在但无法响应请求&am…...
别再写死代码了!用MCP Tool模块5分钟搞定AI与数据库的安全对话
别再写死代码了!用MCP Tool模块5分钟搞定AI与数据库的安全对话 当AI模型需要与数据库交互时,开发者常面临两难选择:要么直接暴露数据库连接信息,要么编写大量胶水代码。这两种方案都存在明显缺陷——前者带来安全隐患,…...
Kafka消费者组避坑指南:从位移提交到重平衡的实战经验
Kafka消费者组实战避坑指南:从位移管理到重平衡优化 在分布式消息系统中,Kafka消费者组的稳定性直接决定了数据处理的可靠性。我曾亲眼见证过一个电商大促场景下,由于消费者组配置不当导致百万级订单积压的故障。本文将分享七个关键场景的深度…...
AI辅助开发:模仿PS创意效果,用快马生成智能艺术风格迁移应用代码
最近在做一个艺术风格迁移的小项目,正好用到了InsCode(快马)平台的AI辅助开发功能,整个过程特别顺畅。这个项目的灵感来源于PS的创意效果,但想用更智能的方式来实现类似功能。下面分享一下我的实现思路和经验。 项目构思 最初是想做一个能让普…...
智能影像雅鉴系统:丹青识画在美术馆导览中的落地实操
智能影像雅鉴系统:丹青识画在美术馆导览中的落地实操 1. 艺术与科技的完美融合 1.1 传统导览的痛点与革新 在美术馆参观时,我们常常面临这样的困境:站在一幅名画前,却无法真正理解其深层意境;面对珍贵文物ÿ…...
需要控制重复点击按钮的通用方法
如图所示 在需要控制重复点击的地方使用通用方法去控制 省时省力 比用传统的分页定时器更方便...
OCRmyPDF技术解构:3大创新点与制造业/法律服务效能优化实践
OCRmyPDF技术解构:3大创新点与制造业/法律服务效能优化实践 【免费下载链接】OCRmyPDF OCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched 项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF 一、技术内核&…...
Phi-4-mini-reasoning部署实操手册:supervisor服务管理与日志排查指南
Phi-4-mini-reasoning部署实操手册:supervisor服务管理与日志排查指南 1. 模型概述 Phi-4-mini-reasoning 是一个专注于推理任务的文本生成模型,特别适合处理数学题、逻辑题、多步分析和简洁结论输出。与通用聊天模型不同,它采用"题目…...
AI浪潮冲击下,前端该何去何从
🌊 初级前端工程师:向“深水区”扎根技能树与学习路径定位:面向初级前端开发工程师,聚焦底层原理、工程化思维与可验证的实战输出,构建 AI 时代不可替代的技术护城河。📐 核心原则(避坑指南&…...
3个创新方法:用Krita AI Diffusion插件实现智能动画制作
3个创新方法:用Krita AI Diffusion插件实现智能动画制作 【免费下载链接】krita-ai-diffusion Streamlined interface for generating images with AI in Krita. Inpaint and outpaint with optional text prompt, no tweaking required. 项目地址: https://gitco…...
