优化算法--李沐

news2024/12/28 10:38:04

目录

1.1梯度下降

1.2随机梯度下降

1.3小批量随机梯度下降

1.4冲量法

1.5 Adam


损失值也就是预测值与真实值之间的差值是f(x),x是所有超参数组成的一条向量,c是可以限制的,比如说权重大于等于0。

使用迭代优化算法求解一般只能保证找到局部最小值,因为一到局部最小的地方,用梯度下降算法的话此时的梯度就已经等于0了。

凸集的意思就是在一个区域里面找一根线,这条线的任意一个点都在这个区域里面。

凸函数最简单的理解就是,在函数上画两个点,这两个点连起来,保证整个函数都在连线的下面。

1.1梯度下降

1.2随机梯度下降

随机梯度下降就是随机选取单个样本上的损失来近似全局的损失。单个样本损失梯度的期望等于全局损失梯度的均值,虽然有噪音,但是整体的方向是差不多的。

1.3小批量随机梯度下降

减小了方差就是减小了抖动,蓝色就是梯度下降,一开始就很好,紫色是随机梯度下降,随机梯度下降比梯度下降要慢的原因是,每次算一个样本用不了硬件的并行度,加批量。批量大小在一个合适的区间是比较好的。

1.4冲量法

也就是更平滑的改变方向,不要让方向变得过于大。原理就是不只是看当前时刻的梯度,也看过去时刻的梯度。如果g_{t}g_{t-1}特别不一样的话,就会抵消掉一些,让变化不那么剧烈。如果取\beta等于0.99的话,大概可以看过去几十个梯度的平均。如果样本比较大娶个0.99也是比较正常的。0.5就是看过去的两三个梯度。

1.5 Adam

Adam可以认为是非常平滑的SGD,非常平滑的话对学习率就不太敏感了。如果想去调参的话用sgd加其他的算法会比用Adam效果好一丁点。当t比较小的时候有用,修正t较小的时候偏零的趋势。t比较大的时候无所谓,因为\beta是大于0小于1的,在t时刻很大的时候,就变成0了。所以修正是针对比较小的t做的。

重新调整的梯度是对每一个权重的维度除以梯度的平方的和(过去的所有梯度加起来),就把所有的特征都拉到一个比较平均的地方,这样好调学习率。,使得过去的梯度方向比较平滑,是使得每个维度的值都在合适的范围里面,做维度的调整。

Adam对学习率比较稳定,调参容易一点。

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

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

相关文章

web开发学习笔记(12.mysql数据库进阶)

1.多表查询 2.内连接 3.外连接,分为左外连接和右外连接 左外连接完全包含左表的数据和两个表的交集 右外连接完全包含右表的数据和两个表的交集 4.子查询,又成为嵌套查询 分为标量子查询和列子查询和行子查询 首先是标量子查询 列子查询 in, not in…

sqlilabs第六十一六十二关

Less-61(GET - challenge - Double Query- 5 queries allowed -Variation 4) 手工注入 报错注入 Less-62(GET - challenge - Bilnd- 130 queries allowed -Variation 1) 手工注入 过于复杂简单写写 这个应该是用不了只能用延时 自动注入 写个脚本就可以

Mysql-全局锁、表锁、行锁

本文已收录于专栏 《数据库》 目录 全局锁概述说明开启方式应用场景 表锁概念说明实现方式意向锁 开启方式 行锁概念说明实现方式记录锁:间隙锁临键锁 总结提升 全局锁 概述说明 全局锁是是对整个数据库实例加锁,加锁后整个实例就处于只读状态&#xff…

bat批处理基础教学

bat批处理基础教学 titleset命令模式-算数运算重定向运算多命令运算| 管道符--左边的结果作为右边的输入接受外部参数 -%1注释 rem命令公共介绍- /?时间命令 date time启动 start调用其他bat文件 call计划任务查看环境变量 settelnet是远程端口命令,不加密判断ifpause>null…

Vue中$watch()方法和watch属性的区别

vue中$watch()和watch属性都是监听值的变化的,是同一个作用,但是有两个不同写法。 用法一: //注意:这种方法是监听不到对象的变化的。 this.$watch((newVal,oldVal)>{ }) 用法二: watch:{xxx:(newVal,oldVal)>…

66 C++对象模型探索。C++编译器在什么时候给我们创建默认的构造函数?

一 前提,关于C编译器给我们生成 默认构造函数 的错误认知 传统知识认为:如果在一个类中,我们没有定义任何的构造函数,那么编译器会为我们隐式自动定义一个默认的构造函数,我们称这种构造函数为 "合成的默认构造函…

ElasticSearch 7.x现网运行问题汇集3

问题描述 某现网ElasticSearch 故障,很长时间unassgined_shards的数量都不减少。 原因分析与解决方案: 先了解整体状态,使用Postman请求,如下几个请求命令: GET /_cat/indicesGET /_cat/shardsGET /_cluster/health…

Minio搭建和使用

目前可用于文件存储的网络服务选择也有不少,比如阿里云OSS、七牛云、腾讯云等等,可是收费都有点小贵。为了节约成本,很多公司使用MinIO做为文件服务器。 MinIO是一个开源的分布式对象存储服务器,支持S3协议并且可以在多节点上实现…

Conmi的正确答案——使用eclipse进行ESP32C3的debug

eclipse IDE 版本:2023-12 1、安装debug环境 参考大神的教程:【图文】手把手教你使用 Eclipse IDE 开发 ESP32 (这里是为了我下次回来速通才写的部分) 1.1、安装插件(plug-in,新的软件已经写成software了…

Docker安装启动、常用命令、应用部署、迁移备份、Dockerfile、Docker私有仓库

目录 1.Docker安装与启动 1.1 安装Docker 1.2 设置ustc的镜像 1.3 Docker的启动与停止 2.常用命令 2.1 镜像相关命令 2.1.1 查看镜像 2.1.2 搜索镜像 2.1.3 拉取镜像 2.1.4 删除镜像 2.2 容器相关命令 2.2.1 查看容器 2.2.2 创建与启动容器 2.2.3 停止与启动容器 2.…

仿真机器人-深度学习CV和激光雷达感知(项目2)day5【作业1与答案1】

文章目录 前言作业1答案1 前言 💫你好,我是辰chen,本文旨在准备考研复试或就业 💫本文内容是我为复试准备的第二个项目 💫欢迎大家的关注,我的博客主要关注于考研408以及AIoT的内容 🌟 预置知识…

Java - 单元测试及Junit的使用讲解及练习

目录 🐶2.1 什么是单元测试 🐶2.2 测试分类: 1. 🥙黑盒测试 2. 🥙白盒测试 🐶2.3 Junit介绍 🐶2.4 Junit的基本使用步骤:(默认使用maven创建项目) 1. 🥙pom.xml中引入依赖: 2…

考试查分场景重保背后,我们如何进行可用性测试

作者:暮角 随着通过互联网音视频与知识建立连接的新学习方式在全国范围内迅速普及,在线教育/认证考试的用户规模呈井喷式增长。但教育容不得半点马虎与妥协,伴随用户规模不断增长,保证系统稳定性、有效避免千万考生考试时遭遇故障…

14 STM32 - IIC (时序图+软件源码)

14.1 IIC简介 IIC(Inter-Integrated Circuit),中文集成电路总线,是一种串行通信总线,使用多主从架构。I2C串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。所有接到I2C总线…

目标检测 - 绘制bounding box

工具类 from PIL.Image import Image, fromarray import PIL.ImageDraw as ImageDraw import PIL.ImageFont as ImageFont from PIL import ImageColor import numpy as npSTANDARD_COLORS [AliceBlue, Chartreuse, Aqua, Aquamarine, Azure, Beige, Bisque,BlanchedAlmond, …

C++提高编程---模板---类模板

目录 一、类模板 1.模板 2.类模板的作用 3.语法 4.声明 二、类模板和函数模板的区别 三、类模板中成员函数的创建时机 四、类模板对象做函数参数 五、类模板与继承 六、类模板成员函数类外实现 七、类模板分文件编写 八、类模板与友元 九、类模板案例 一、类模板 …

SpringBoot - SpringBoot手写模拟SpringBoot启动过程

依赖 建一个工程,两个Module: 1. springboot模块,表示springboot框架的源码实现 2. user包,表示用户业务系统,用来写业务代码来测试我们所模拟出来的SpringBoot 首先,SpringBoot是基于的Spring,所以我…

3DMAX初级小白班第一课:菜单栏介绍

基本介绍 这里不可能一个一个选项全部教给大家(毕竟之后靠实操慢慢就记住了),只说一些相对需要注意的设置。 自定义-热键编辑器-热键设置 这里有你所需要的全部快捷键 自定义-自定义UI启动布局 将UI布局还原到启动的位置 自定义-通用单…

使用Go发送HTTP GET请求

在Go语言中,我们可以使用net/http包来发送HTTP GET请求。以下是一个简单的示例,展示了如何使用Go发送HTTP GET请求并获取响应。 go复制代码 package main import ( "fmt" "io/ioutil" "net/http" …

HCIP网络的类型

一.网络类型: 点到点 BMA:广播型多路访问 -- 在一个MA网络中同时存在广播(泛洪)机制 NBMA:非广播型多路访问 -- 在一个MA网络中,没有泛洪机制-----不怎么使用了 MA:多路访问 -- 在一个…