李宏毅深度学习-梯度下降和Normalization归一化

news2024/11/16 4:55:23

Gradient Descent梯度下降

在这里插入图片描述
▽ -> 梯度gradient -> vector向量 -> 下图中的红色箭头(loss等高线的法线方向)
在这里插入图片描述

Tip1: Tuning your learning rates

在这里插入图片描述

Adaptive Learning Rates自适应

在这里插入图片描述

通常lr会越来越小
Adaptive Learning Rates中每个参数都给它不同的lr

Adagrad

Adagrad也是Adaptive Learning Rates,因此每个参数都给它不同的lr
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Tip2: Stochastic Gradient Descent随机

在这里插入图片描述
在这里插入图片描述
左边走一步,右边已经二十步
天下武功唯快不破

Tip3: Feature Scaling特征缩放

为什么要做归一化处理

在这里插入图片描述

如果要predict宝可梦进化以后CP值,有两个input feature:x1是进化前CP值,x2是它的生命值
如果x1和x2分布的range很不一样,建议把它们做scaling,也就是把它们的range分布变成是一样的
希望不同的feature,它们的scale是一样的
在这里插入图片描述

左边这种情况下会发现,w1的变化对y的变化而言是比较小的,而w2的变化对y的变化而言是比较大的
如果画error surface会是长椭圆形状的:因此,w1对loss是有比较小的微分的,因此w1方向上比较平滑。此时,在不同方向上,就会需要非常不同的lr,除非Adagrad等adaptive lr否则很难搞定它,很难update参数
正圆形update参数就比较容易,而且注意到梯度方向就是指向最低点的,效率就比较高,而椭圆形开始时不是指向最低点

常见的Feature Scaling方式:

深度学习中典型的特征归一化代表就是Batch Normalization批归一化,具体的计算方法也是较简单即计算批中均值和方差,通过均值和方差对原数据进行归一化操作:
在这里插入图片描述
另外,需要注意的是在训练过程中由于大量数据总是可以有batch从而进行归一化,但是在测试集中并不一定都会有batch,这时候参考Pytorch源码中的做法,计算训练过程中均值和方差的move average
在这里插入图片描述

Batch Normalization的表现

BN归一化的表现没有说特别突出,因为Normalization不仅仅只有BN,还有其他Layer Normalization,Instance Normalization等等,但是BN所使用最为广泛,并且如图实验数据可以看出BN的加入能够使得模型收敛速度更快并且随着batch的增大表现出更大的优势,特别是在使用sigmoid的时候,由于sigmoid函数曲线的特殊性,使得BN后输入sigmoid激活函数中能够表现出更好的梯度。
在这里插入图片描述

Gradient Descent Theory

在这里插入图片描述

update参数后,loss不一定会下降

此时,人物往前和往右都会变低,因此会往右前方走,但是却变高了

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

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

相关文章

110.WEB渗透测试-信息收集-ARL(1)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:109.WEB渗透测试-信息收集-FOFA语法(9) 信息收集自动化工具-灯塔…

黑马头条day6-kafka及异步通知文章上下架

今天任务比较水 主要是kafka入门和 文章上下架 以及异步通知article同步到app的前端数据 需要重新看一下(使用步骤并不是很复杂 kafka主要解决高并发) 1 kafka的入门 和 使用异步 需要重新看一下了流程和 详细信息 2 bug 打开app页面的时候出现503 服…

从0到1深入浅出构建Nest.Js项目

Nest (NestJS) 是一个用于构建高效、可扩展的 Node.js 服务器端应用程序的开发框架。它利用JavaScript 的渐进增强的能力,使用并完全支持 TypeScript (仍然允许开发者使用纯 JavaScript 进行开发),并结合了 OOP (面向对…

动手学运动规划: 2.2.c 3次样条曲线代码解析

学习? 学个P!☺ — 亮剑 李云龙 🏰代码及环境配置:请参考 环境配置和代码运行! 本节提供了3次样条曲线的代码测试 python3 tests/curves/cubic_spline.py2.2.c.1 3次样条曲线代码实现 CubicSpline1D实现了1维的3次样条曲线, 需要输入一组离散点. Cub…

现在别买理想L7/L8,问界M8要来暴揍友商了

文 | AUTO芯球 作者 | 雷慢 问界又一重磅炸弹要来了, 它就是问界M8, 来看,M8刚又曝光了大量谍照。 现在我打听的消息是这样的, 11月广州车展亮相预售, 12月底正式上市,25年春节前后开始交付&#xff…

计算机网络:计算机网络体系结构 —— 专用术语总结

文章目录 专用术语实体协议服务服务访问点 SAP 服务原语 SP 协议数据单元 PDU服务数据单元 SDU 专用术语 实体 实体是指任何可以发送或接收信息的硬件或软件进程 对等实体是指通信双方处于相同层次中的实体,如通信双方应用层的浏览器进程和 Web 服务器进程。 协…

Java组件化开发:jar包

我在java基础:原始数据类型,包的创建与导入-CSDN博客一文中记录了包的使用,此文就详细讲解一下IDEA中如何进行组件化开发。 介绍 现在的软件系统功能越来越复杂,规模也越来越大,为了应对这种挑战,人们将“…

深入解析Python错误消息及解决方法

深入解析Python错误消息及解决方法 Python是开发者广泛使用的语言,因其简洁的语法和强大的标准库而深受欢迎。然而,Python程序在运行过程中,错误不可避免。理解Python的错误消息并正确处理这些错误,是提升代码质量和调试效率的重…

3.点位管理改造-列表查询——帝可得管理系统

目录 前言一、与页面原型差距1.现在:2.目标:3. 存在问题:所在区域和合作商ID展示的都是ID,而不是名称;同时合作商ID应改为合作商 二、修改1.重新设计SQL语句2.修改mapper层,使用Mybatis中的嵌套查询3.修改s…

AI人工智能人像修饰中文面板PS插件 Retouch Pro 3.2.0 中文汉化版

AI人工智能人像修饰PS扩展插件 Retouch Pro 3.2.0 中文汉化版 支持软件:PS 2018 – PS 2025或更高版本 系统要求:Windows系统 或 MacOS系统 出处:https://www.aeown.com/thread-3061-1-1.html Retouch Pro Panel 有一个非常强大和先进的人工…

Python Tips6 基于数据库和钉钉机器人的通知

说明 起因是我第一版quant程序的短信通知失效了。最初认为短信是比较即时且比较醒目的通知方式,现在看来完全不行。 列举三个主要问题: 1 延时。在早先还能收到消息的时候,迟滞就很严重,几分钟都算短的。2 完全丢失。我手机没有…

ACP科普:SoSM和CPO

在Scrum of Scrums(SoS)框架中,SoSM(Scrum of Scrums Master)和CPO(Chief Product Owner)是两个关键角色,负责协调多个Scrum团队的工作,确保项目的顺利进行。以下是对这两…

Android AMS介绍

注:本文为作者学习笔记,如有误,请各位大佬指点 系统进程运行环境的初始化 Context是一个抽象类,它可以访问application环境的全局信息和各种资源信息和类 context功能: 对Activity、Service生命周期的管理通过Intent发…

c++进阶之多态讲解

这篇文章和大家一起学习一下c中的多态 多态的概念 多态的概念:通俗来讲,就是多种形态。多态分为编译时多态(静态多态)和运⾏时多态(动态多态)。 什么是静态多态 前⾯讲的函数重载和函数模板,它们传不同类型的参数就可以调用不同的函数&…

深入理解 C 语言中的内存操作函数:memcpy、memmove、memset 和 memcmp

目录: 前言一、 memcpy 函数二、 memmove 函数三、 memset 函数四、 memcmp 函数总结 前言 在 C 语言中,内存操作函数是非常重要的工具,它们允许我们对内存进行直接操作,从而实现高效的数据处理。本文将深入探讨四个常用的内存操…

zabbix7.0web页面删除主机操作实现过程

前言 服务端配置 链接: rocky9.2部署zabbix服务端的详细过程 被监控端配置 链接: zabbix7.0监控linux主机案例详解 环境 主机ip应用zabbix-server192.168.10.11zabbix本体zabbix-client192.168.10.12zabbix-agent zabbix-server(服务端已配置) zabbix-client(被监控端已配置…

Bruno:拥有 11.2k star 的免费开源 API 测试工具

Github 开源地址: https://github.com/usebruno/bruno 官网地址: https://www.usebruno.com/ 下载地址: https://www.usebruno.com/downloads 使用文档: https://docs.usebruno.com/ Bruno 是一款全新且创新的 API 客户端&…

微调学习记录

目前看到的市面上的微调文章,想大体上给他们分个类,方便后续进行重点学习 参数高效微调 1. LoRA 不用多说含金量 2. Rein https://github.com/w1oves/rein 把它也算进来了,类似。 Adapter adapter类的我感觉都大差不差,具体…

VisionTS:基于时间序列的图形构建高性能时间序列预测模型,利用图像信息进行时间序列预测

构建预训练时间序列模型时面临的主要挑战是什么?获取高质量、多样化的时间序列数据。目前构建基础预测模型主要有两种方法: 迁移学习LLM:通过针对时间序列任务定制的微调或分词策略,重新利用预训练的大型语言模型(LLM…

餐饮重点企业在AI领域的布局,看方大的AI实践

大家好,我是Shelly,一个专注于输出AI工具和科技前沿内容的AI应用教练,体验过300款以上的AI应用工具。关注科技及大模型领域对社会的影响10年。关注我一起驾驭AI工具,拥抱AI时代的到来。 AI已经被应用在餐饮餐厨行业的哪些方面&am…