基于梯度下降神经网络训练整体流程

news2024/11/22 9:53:29

文章目录

  • 基于梯度下降神经网络训练整体流程
  • 梯度下降优化算法
    • 一、简介
    • 二、梯度下降方法
      • 2.1 批量梯度下降法BGD
      • 2.2 随机梯度下降法SGD
    • 三、传统梯度下降法面临的挑战
    • 四、优化器
      • 4.1 Momentum
      • 4.2 Adagrad
      • 4.3 Adam
      • 4.4 对比与选择
  • 过拟合、拟合和欠拟合
    • 一、防止过拟合方法
      • 1.1 早停

基于梯度下降神经网络训练整体流程

基于梯度下降神经网络训练整体流程

梯度下降优化算法

一、简介

在这里插入图片描述

二、梯度下降方法

2.1 批量梯度下降法BGD

批量梯度下降法(Batch Gradient Descent,简称BGD)是梯度下降法最原始的形式,它的具体思路是在更新每一参数时都使用所有的样本来进行更新,其数学形式如下:

在这里插入图片描述

  • 优缺点:

    在凸优化(Convex Optimization)的情况下,一定会找到最优解
    在非凸优化的情况下,一定能找到局部最优解
    由于批量梯度下降法在更新每一个参数时,都需要所有的训练样本,所以训练过程会随着样本数量的加大而变得异常的缓慢,单次参数调整计算量大
    不适合在线(Online)的情况

2.2 随机梯度下降法SGD

随机梯度下降法(Stochastic Gradient Descent,简称SGD)正是为了解决批量梯度下降法这一弊端而提出的。
在这里插入图片描述

  • 优缺点:

    训练速度快,适合Online的情况
    通常比批处理梯度下降法快(在批处理的情况下,有可能许多的数据点产生的梯度是相似的,这些计算是冗余的,并不会有实际的帮助) .
    通常目标函数震荡严重.在神经网络优化情况下(没有全局最优解),这种震荡反而有可能让它避免被套牢在一个局部最小值,而找到更好的局部最优解
    通过调节学习率,能够找到和批处理相似的局部或者全局最优解

三、传统梯度下降法面临的挑战

传统迷你批处理不能保证能够收敛,当学习率太小,收敛会很慢,学习率太高容易震荡,甚至无法收敛。

可以按照某个公式随着训练逐渐减小学习率,但是不同的数据集需要不同的学习率变化曲线,不容易估计所有的参数使用同样的学习率并不合适容易被套牢在马鞍点

四、优化器

4.1 Momentum

原理:

不同dimension的变化率不一样
动量增强梯度在某一维度上的投影,使其指向同一方向上,在维度的指向上抵消不断变化的方向

在这里插入图片描述
在这里插入图片描述

4.2 Adagrad

在这里插入图片描述

对频繁出现的参数,采用小的步长
对不频繁出现的参数,采用大的步长
对稀疏数据集非常有用(文本数据). Google在训练从Youtube视频自动识别猫用到了. Pennington et al训练词嵌入的GloVe也用到了

  • 优势:

无需手动调整learning rate步长
设置初始步长为0.01即可

  • 劣势:

随着训练,分母总是增大,步长会越来越小,算法无法收敛

  • 实现:

只是累积过去的一段时间的梯度平方值
完全无需设置步长
为了便于实现,采用类使用动量的策略:

4.3 Adam

记录过去一段时间的梯度平方和(类似Adadelta和RMSprop),以及梯度的和(类似Momentum动量)把优化看作铁球滚下山坡, Adam定义了一个带动量和摩擦的铁球
在这里插入图片描述

4.4 对比与选择

1.如果数据集是稀疏的,选择自适应学习率的方法会更快收敛,而且免去了需要调试学习率的烦恼
2.RMSprop, Adadelta, Adam的效果非常相似,大多数情况下Adam略好

过拟合、拟合和欠拟合

在这里插入图片描述

一、防止过拟合方法

1.1 早停

在这里插入图片描述

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

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

相关文章

FFMPEG Vcl Player 7.0 For Delphi Crack

FFMPEG Vcl Player For Delphi 7.0【www_flashavconverter_com】是一个基于 directshow 和 ffmpeg 的 vcl 播放器,用于解码和播放视频/音频。 新增:升级到最新的FFMPEG Runtime(5.1.x)并支持Delphi 11.2 支持 Dash 回放 支持播放AES加密网络流 Nvidia 卡…

一文搞懂MD5、SHA-1、SHA-2、SHA-3,哪个算法比较安全

MD5、SHA-1、SHA-2、SHA-3都是比较常见的单向散列函数,这几种单向散列函数都有自己的特性。下面,给大家介绍一下它们的区别,以及MD5、SHA-1、SHA-2、SHA-3的安全性如何,哪种算法比较安全?一、简介单向散列函数是指对不…

JavaWeb:过滤器与监听器

一、过滤器Filter 1.1 过滤器Filter概述 Filter表示过滤器,是JavaWeb三大组件(Servlet、Filter、Listener)之一。Servlet我们之前都已经介绍过了,Filter和Listener我们今天都会进行介绍。 过滤器可以把对资源的请求 拦截 下来&…

Python的判断语句

进行逻辑判断,是生活中常见的行为。 同样,在程序中,进行逻辑判断也是最为基础的功能。 布尔类型和比较运算符 布尔类型的字面量: true 表示真(是、肯定)false 表示假(否、否定) …

【tkinter】用不到50行Python代码,写一个扫雷小游戏

文章目录定制按钮生成雷区主流程基础知识:StringVartkinter布局 定制按钮 学会了布局和绑定事件,就可以开发一些简单的应用,比如扫雷小游戏。从外观来看,扫雷就是一个按钮矩阵,左键点击按钮,如果按钮里埋…

myBaits Target Capture Kits;myBaits 靶向捕获试剂盒,快速捕获富集目标序列

myBaits Target Capture Kits可以快速捕获富集目标序列,提高NGS研究效率,兼容Illumina,PacBio 和 Nanopore等多种测序平台。Arbor Biosciences使用oligo合成专利技术,为您提供高质量、高性价比的捕获试剂盒。适用于各种基因组类型…

pytest简介

介绍pytest是一个非常成熟的全功能的Python测试框架,主要有以下几个特点:简单灵活,容易上手支持参数化能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytestrequ…

我写了一个脚本,实现了图片分类问题模型训练的全自动化训练

众所周知,图片分类问题属于计算机视觉中比较容易解决的问题之一 但 这几天被数据集的问题搞得焦头烂额, 照理说分类问题的数据集应该比较好制作 但 如果之前没有现成的数据集 也会变得比较麻烦 直到我偶然发现了一个HuggingFace的图片搜索API 无限次调用 而且不需要身份验证 真…

如何实现报表集成?(五)——集成案例分享

在前面几篇,我们分别给大家介绍了报表工具的系统集成架构、用户同步/单点登录、资源集成和权限集成,从整体上对报表工具实现系统集成的各个方面都作了针对性的阐述。那别的用户实际上是如何做报表集成的呢? 这一篇,我们来看一下某…

408—二叉树与树

二叉树的一些概念://二叉树有严格的左右子树之分,度数为2的树则没有对此进行要求。常见的两种二叉树://如上E为满二叉树,每一层的结点个数都达到了当层能达到的最大结点数//满二叉树自上而下,从左到右依次进行编号&…

易于理解的完全立方体计算的多路数组聚集方法

自己琢磨半天终于搞懂了,可能是自己悟性不够吧-_-|| 多路数组聚集其实就是对维度(dimension)进行选择,保留一些常用的可以很方便地生成别的子立方体的立方体(cube)。对一个维做聚集(aggregation)其实就是按照这个维度的方向做加法,把这个维度…

Linux下的动静态库及链接

目录 常识 动态链接 静态链接 两者的比较 动态库与静态库 常识 我们平时写的代码和标准库是两回事,像C标准库提供给我们一些函数方便使用,降低程序员工作成本。比如写个printf("hello world"); 我们只是调用了库里的函数,并没…

字节跳动“技穷”,火山引擎“啃老”

文丨智能相对论作者丨沈浪「云」的赛道正在细化,是显而易见的趋势,诸如汽车云、营销云、视频云、零售云等等,大致可以理解为通过云计算等技术推动特定行业场景实现数字化转型的解决方案。之所以出现这种情况,存在多个层面的原因&a…

Kubernetes部署Postgresql

环境:Postgresql的Docker镜像 ->参考Docker安装部署PostgresqlCentos7.x kubernetes1.23.7 docker1.13.1 postgres12.7pg的docker镜像已经上传到云平台。Kubernetes参考:https://kubernetes.io/zh-cn/docs/concepts/configuration/configmap基本命…

Youngter-drive 题解

1.查壳 32bit,加了UPX壳 2.虚拟机脱壳 Youngter-drive脱壳3.静态分析寻找思路 跟进main_0函数 线程控制的知识不懂,去搜一下函数 createMutexW 函数 创建或打开命名或未命名的互斥对象。 HANDLE CreateMutexW( [in, optional] LPSECURITY_ATTRIBUTES lp…

通信原理笔记—部分响应基带传输系统

目录 基本设计思想: 问题的引入与考虑: 第一类部分响应系统: 定义奈奎斯特脉冲: 定义第一类部分响应系统的冲激响应: 第一类部分响应系统冲激响应与频率特性波形图: 第一类部分响应系统信号波形示例: 编码发送与接收解码过程示例: 第…

Biome-BGC生态系统模型与Python融合技术实践应用

查看原文>>> Biome-BGC生态系统模型与Python融合技术实践应用 Biome-BGC是利用站点描述数据、气象数据和植被生理生态参数,模拟日尺度碳、水和氮通量的有效模型,其研究的空间尺度可以从点尺度扩展到陆地生态系统。 在Biome-BGC模型中&#xf…

Tomcat 源码启动

要想学习 Tomcat 原理,看源码是最直接的方式,而想要理解源码,我们要想把它在本地跑起来。 下载源码 到 Tomcat 的官网 http://tomcat.apache.org 上下载 Tomcat 的源码 下载下来是一个压缩包文件 解压之后目录结构如下 用IDEA打开 在…

redis集群管理工具HHDBCS

参考地址: HHDBCS下载地址 Redis教程 1 快速介绍 1.1 什么是HHDBCS? HHDBCS是恒辉信达公司推出的通用数据库管理桌面工具,专为简化数据库的管理及数据管理成本而设计,让用户通过统一的桌面视图管理成千上万的异构数据库实例。 它采用了…

【Feign】Spring框架集成Feign

Spring框架集成Feign1、Feign-简介2、spring-cloud快速整合OpenFeign3、Feign日志4、Feign契约配置5、Feign配置超时时间6、Feign拦截器7、Feign断路器1、Feign-简介 Feign是Neflix开发的声明式、模块化的HTTP客户端,集成了Ribbon、RestTemplate实现了负载均衡的执…