深度学习基础—超参数调试

news2024/12/29 13:51:41

1.超参数调试顺序


        在训练深度网络最难的事情之一是超参数的选择,如何选择合适的超参数取值?下面我将谈谈,如下是我所理解的超参数调试顺序:

重要性排序

超参数

Top1梯队

学习率a

Top2梯队

min-batch大小,隐层神经元个数,动量梯度下降法参数b

Top3梯队

隐层层数,学习衰减率,Adam优化的参数b1、b2

        实际上,Adam优化的参数b1、b2、ℇ通常不进行调试,选择默认值就能有很好的效果,即b1=0.9、b2=0.999、ℇ=10^(-8)。

2.核心思想


        如何选择合适超参数值?与其说是选择,不如说是实验。核心思想是:由粗到细,随机取值+精准搜索。

        以模型只含有两个参数为例:

        随机取值就是在上图这样的平面中,随机选择一定数量的点,这些点的值作为超参数的值进行训练,选择其中表现较好的几个参数值。

        为什么要随机,而不是均匀的取值?因为对于超参数,我们并不知道超参数之间相对的重要程度,比如学习率a和Adam算法的ℇ,经过试验发现的值实际对模型影响不大,也就是说均匀的选择了部分点,我们发现模型的效果差别都不大,这就影响到我们对其他参数选择的判断,从而错过最优的参数值选择。

        随机取值选择出来比较好的参数值后,我们需要进行精确搜索。假如我们发现右下角的点效果都比较好,那么我们需要对右下角进行方法,重新随机取值,进行更加精确的搜索。

        注意:上述我举的例子是两个参数的例子,实际上神经网络的参数有很多,那么随机取值的空间就是高维空间,比如3个参数就是正方体空间,4个参数就是4维空间......

3.搜索范围


        搜索参数的方法已经知道了,那搜索范围呢?也就是我们应该如何选择参数的范围进行随机取值?答案是根据不同的参数选择合适的标尺。

        上图是标准的数轴(刻度随便画的,能理解就行),比如现在这是学习率a的搜索范围,如果沿数轴随机取值,那么90%的数落在[0.1,1]之间,对于[0.001,0.1]之间只有10%的搜索范围,这显然是不合理的,因为经验主义告诉我们,学习率一般不会特别高,[0.1,1]的区间搜索结果不是最理想的学习率,反而最理想的在更小的区间。因此我们需要放大[0.001,0.1]这一区间的搜索,就需要采用对数标尺。

        上图是对数标尺的数轴,即log10(x),则在对数标尺的数轴上,前面我们讨论的学习率就会均匀分布,这样的话[0.001,0.1]区间的搜索概率就会大大增加,从而加快寻找合适参数的速度。

        在Python中,可以使用下面的方式生成[0.001,1]之间的数:

r=-3*np.random.rand()
a=10**(r)

        选择合理标尺的本质是因为超参数对不同区间的数值敏感度不一样。比如在指数加权移动平均值中的超参数b,b在[0.9,0.9005]和[0.9,0.999]的效果就有很大差别,在[0.9,0.9005]中b变化一点,实际平均值变化不大(0.9相当于大约10个数的平均值,0.9005相当于大约10.05个数的平均值),而在[0.9,0.999]中b变化一点,实际平均值就变化很大(0.999相当于大约1000个数的平均值)。因此对于区间的搜索,就需要加大[0.9,0.999]的搜索概率(范围)。

        注意:在运用指数加权移动平均值的优化算法中,对于b的常见取值0.9、0.999取对数不好求,因此可以计算(1-b),此时就转化成0.1、0.001了,方便运用对数标尺进行搜索。

        其实,即使不选择合理的标尺,在参数数量多的模型上利用随机取值+精准搜索,也可以达到不错的效果,因为精准搜索的过程也是放大了超参数敏感区间的范围,从而也能寻找到比较合理的超参数取值。

4.超参数训练模式


        超参数训练的两种模式:在训练模型的时候,一部分人会选择下图所示的训练模型,即只训练一个模型,对这个模型进行精细化管理,每天随时监督模型的训练情况,根据模型的效果随时调整超参数的值,以便让模型达到很好的效果。这种模式可以比喻成panda模式,即熊猫的孩子很少,且极难成活,于是一胎只养一个,悉心照顾,确保小熊猫的健康成长。这种模式适用于计算资源不多的情况下,没有多余的算力支撑同时训练其他模型。

        如下图是第二种模式,根据不同的超参数设置,同时训练多种模型,比较哪一种模型更加好,从而选择性能较好的模型。这种模式可以比喻成caviar模式,即鱼子酱模式,鱼类每次排除多个卵,对于每个卵进行相同的照顾方式,在相同的环境条件下进行生长,表现不良的逐渐淘汰,选择表现良好的幼苗。这种模式适用于计算资源富余的情况下,需要大量算力支撑同时训练多种模型。

        但是有时候,某些领域需要实验多种模型,但是数据量太大,同时训练多种模型计算机可能无法实现,那么就需要将两种方式结合起来,即一次训练一种模型,每种模型训练一段时间观察效果,表现差劲的模型就会淘汰,每隔一段时间选择其他超参数训练新的模型。就像熊猫虽然一胎的数量少,但是选择悉心照顾其中一只,如果无法成活,那就再生一胎,用一生的时间繁衍后代,从而哺育多只小熊猫。

        最后想说的一点是,对与超参数的值的设定,故步自封是不可取的,我们不应该局限于深度学习领域,而是应该跨专业、跨领域去寻找新的灵感。同时,对于训练的模型,应该每隔一段时间重新测试参数的值是否适用。

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

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

相关文章

10 VS Code 调试技巧之逐断点、逐过程、单步调试与单步跳出

目录 1 断点调试 1.1 断点调试介绍 1.2 如何设置断点 1.3 如何开启调试 2 调试类型 2.1 逐断点调试 2.2 逐过程调试 2.3 单步调试 2.4 单步跳出 1 断点调试 遇到难以捉摸的软件错误时,老练的程序员会推荐断点调试。通过设置断点,逐步跟踪…

nvidia jetson 系列开发板交叉编译方法,CUDA依赖程序

资源 Toolchain Information jetson-linux jetpack 文章目录 资源1 方案1 qemu-aarch64-static和docker 容器编译jetson2 方案2 模拟器交叉编译器2.1 应对库缺失的情况,进行环境准备2.1.1 模拟器(方案1)2.1.2 在jetson上面进行安装(方案2)2.…

如何有效清理宝塔控制面板中的垃圾文件与优化系统性能

宝塔控制面板(BT-Panel)作为一款流行的服务器管理软件,极大地简化了Linux服务器的管理任务,包括网站部署、数据库管理、文件操作等。然而,随着服务器运行时间的增长,系统中会积累各种临时文件、日志文件、缓…

STM32G474按钮输入和点灯

在获取到工程模板后,学习某个CPU的第一步通常都是IO口操作。因此按钮输入和点灯,就是本次学习的第一个程序。先从简单入手。 和GPIO操作有关的函数如下: __HAL_RCC_GPIOA_CLK_ENABLE();//使能GPIOA时钟 __HAL_RCC_GPIOB_CLK_ENABLE();//使能GPIOB时钟 _…

Redis7基础篇(四)

Redis管道 引入 set k1 v1.......需要往返三次 这是一个比较消耗性能的一件事情 怎么就可以一次性的将这些命令执行 就是使用mset这个方法 这个mset就相当于一个管道 把这些命令做成一个流水线的形式进行处理 解决思路 案例 两个set类型的三个哈希类型的一个list类型的 我们要…

知乎信息流广告效果如何?与其他信息流广告平台有何区别?

广告的有效触达与高效转化成为了品牌营销的核心挑战,知乎作为国内最大的知识分享平台,其信息流广告以其独特的优势脱颖而出,成为众多企业首选的营销工具,云衔科技助力企业实现高效知乎广告投放与代运营服务。 一、知乎信息流广告…

基于STM32+手机APP设计的智能停车场系统——程序源码原理图设计原理设计文档演示视频框图等(文末工程资料下载)

基于STM32手机APP设计的智能停车场系统 演示视频 基于STM32手机APP设计的智能停车场系统 元器件:DHT11、MQ2、STM32F103C8T6、SG90舵机、RC522频射模块、HC-SR04超声波模块、OLED、wifi模块、LED灯、蜂鸣器 功能简介 1、进出停车场时需要刷卡,进行一个…

深度学习-----------------------含并行连结的网络GoogLeNet

目录 含并行连结的网络GoogLeNet最好的卷积层超参数inception块inception 结构inception原始结构inception 降维11卷积核的降维功能GoogLeNet段1&2段3段4&5 Inception 的各种变种Inception V3块,段3Inception V3块,段4Inception V3块&#xff0…

突破FPGA限制:TS-M4i系列数字化仪利用GPU加速实现高效块平均处理

一、应用背景 块或分段内存平均模式常用于在不同应用当中,移除信号中不相干的噪声。不管是哪家的数字化仪制造商,几乎所有基于FPGA实现的块平均模式都会受到块或者段内存大小的限。该限制一般取决于FPGA的容量,最大样品量通常在32k到500k之间…

RS232(旧协议)与RS485(新协议)

RS232: RS485: RS485和RS232是两种常见的串行通信标准,它们在通信距离、速度、拓扑结构等方面存在显著差异。以下是它们的主要区别: 1. 物理层接口 RS232: 使用单端信号传输,即信号通过一根信号线和一根公共地线(GND&#xff09…

外呼触发通知发送闪信(mod_cti基于FreeSWITCH)

文章目录 前言联系我们手动外呼配置方法例子一:接收到180或183时触发闪信发送例子二:挂断后触发闪信发送 自动外呼配置方法例子:接收到180或183时触发闪信发送 前言 在呼叫中心中间件中,自动外呼触发闪信发送,我们可以…

电销机器人引领电销变革

以前电销都是都是通过盲打,现在有了电话机器人的出现,为电销公司带来新的篇章。 我们都知道外呼中心的人员离职率始终居高不下,人员的培训频繁成本很高,外部电话水平参差不齐,服务态度不够稳定等问题,都是难…

【硬件模块】震动传感器模块

震动传感器模块实物图 DO:数字信号量输出,接单片机管脚; AO:模拟输出,无效,一般不接。 无震动,DO输出高电平,信号指示灯灭; 有震动,DO输出低电平,…

50道深度NLP和人工智能领域面试题+答案

编者按:分享一个很硬核的免费人工智能学习网站,通俗易懂,风趣幽默, 可以当故事来看,轻松学习。 什么是自然语言处理(NLP)?自然语言处理是一种人工智能领域,致力于使计算机…

letcode 分类练习 BST 530.二叉搜索树的最小绝对差 501.二叉搜索树中的众数 236. 二叉树的最近公共祖先(自底向上的典型例子)

letcode 分类练习 BST 530.二叉搜索树的最小绝对差 501.二叉搜索树中的众数 236. 二叉树的最近公共祖先 BST530.二叉搜索树的最小绝对差501.二叉搜索树中的众数236. 二叉树的最近公共祖先 BST 重要性质:它的中序遍历是一个有序数组 530.二叉搜索树的最小绝对差 BS…

linux 远程访问及控制 (SSH)

目录 一、SSH远程管理 1.1 配置OpenSSH服务端 1.1.1 SSH协议介绍 1.1.2 服务监听选项 1.1.3 用户登录控制 1.1.4 登录验证方式 1.2 使用SSH客户端程序 1.3 密钥对验证的SSH体系 二、TCP Wrapppers访问控制 2.1 TCP Wrappers概述 2.1.1 TCP Wrappers简介 2.1.2 TCP…

会声会影2023安装好后运行显示乱码的解决方法

会声会影2019安装好了之后,打开软件之后,会有个乱码弹窗错误,其实这个乱码提示只有简体中文版本上才会是乱码, 英文版上显示的是″You do not appear to be a register user. Please re-install the application or call custome…

如何像演示PPT幻灯片一样演示PDF文件 - PDF幻灯片使用说明

PDF幻灯片是一款Windows平台下可以让您像演示PPT幻灯片一样全屏演示PDF文件的放映工具软件。 在我们日常工作中,许多幻灯片文件被转换成了PDF格式。这些由幻灯片生成的PDF文件只能被打开查看内容,但是却不能像原始PPT或PPTX文件一样直接用PowerPoint等软…

常量池梳理

参考资料: 参考视频 参考demo 参考博客 说明: 详情见参考demo的文件夹:

JS逆向高阶补充

文章目录 JS逆向高阶补充eval函数Hook函数案例1: Hook eval案例2: Hook JSON.stringify案例3: Hook JSON.parse案例4: Hook Cookie Promise对象(1)回调函数(2)基本语法(3)then函数(4&#xff09…