深度学习中超参数

      深度学习中的超参数(hyperparameters)是决定网络结构的变量(例如隐藏层数量)和决定网络训练方式的变量(例如学习率)。超参数的选择会显著影响训练模型所需的时间,也会影响模型的性能。超参数是在训练开始之前设置的,而不是从数据中学习的参数。超参数是模型训练期间无法学习的参数,需要事先设置。

      在深度学习中,模型由模型参数(如神经网络的权重和偏置)定义或表示。然而,训练模型的过程涉及选择最佳超参数,学习算法将使用这些超参数来学习最佳参数。这些参数正确地将输入特征映射到标签或目标,从而实现某种形式的智能。

      超参数是一些参数,它们控制着学习过程,并决定学习算法最终学习的模型参数的值超参数在模型学习/训练期间无法更改其值。学习算法在学习时使用超参数,但超参数不是结果模型的一部分。在学习过程结束时,我们得到了经过训练的模型参数,实际上这就是我们所说的模型。训练期间使用的超参数不是该模型的一部分。

      基本上,在深度学习中,你在训练开始前决定它们的值或选择它们的配置,并且在训练结束时其值或配置将保持不变的任何内容都是超参数

      深度学习中的参数是学习算法在学习过程中可以独立更改的值,这些值受你提供的超参数选择的影响。因此,你在训练开始之前设置超参数,学习算法使用它们来学习参数。在训练过程中,参数不断更新,训练结束时的最终参数构成了你的模型。

      超参数可以分为两类:与网络结构相关的超参数和与训练算法相关的超参数

      1.与网络结构相关的超参数:

      (1).隐藏层数量:隐藏层是输入层和输出层之间的层,决定模型的深度。层数较少可能会导致欠拟合,而层数过多可能会导致过拟合。

      (2).每层的神经元数量(或节点数):决定模型的宽度,影响其表示数据中复杂关系的能力,神经元数量较少可能会导致拟合不足。

      (3).dropout率:Dropout是一种正则化技术,用于防止过拟合(提高验证准确率),从而提高泛化能力。通常,dropout率使用20%-50%的小dropout值,其中20%是一个很好的起点。概率太低,效果微乎其微,而值太高会导致网络学习不足。在更大的网络上使用dropout可能会获得更好的性能,从而为模型提供更多机会来学习独立的表示。

      (4).网络权重初始化:理想情况下,根据每层使用的激活函数,使用不同的权重初始化方案可能会更好。大多采用均匀分布,如Xavier、Kaimiing等。每次的随机初始化,有时对结果影响很大。

      (5).激活函数:神经网络层中激活函数的选择,将非线性引入模型,使其能够学习复杂的决策边界,如ReLU、Sigmoid等。

      (6).损失函数:模型将使用的成本函数或损失函数的选择,如HuberLoss、CrossEntropyLoss等。

      (7).优化器(Optimizer):优化算法的选择,如Adam、SGD等算法用于在训练阶段更新权重。

      (8).卷积层中kernels或filters size:kernel是一个小的二维矩阵,通过简单的矩阵乘法和加法映射到输入图像上,获得的输出维度较低,因此更易于处理。kernel的形状在很大程度上取决于图像的输入形状和整个网络的架构,kernel的size多为(MxM),即方阵,如1x1, 3x3, 5x5等。kernel的移动始终是从左到右、从上到下。

      (9).pooling size:pooling操作涉及在feature map的每个channel上滑动二维filter,用于减少feature map的尺寸。pooling层的类型包括:max pooling、average pooling、global pooling。pooling size的选择对模型的性能和结果有着重要影响,通常是一个正方形,例如2x2、3x3等,但也可以是矩形或其他形状,不过正方形最为常见。

      2.与训练算法相关的超参数:

      (1).梯度下降中的学习率(Learning rate):控制优化器在每次训练迭代中采用的步长,定义网络更新参数的速度。学习率低会减慢学习过程,但会平稳收敛。学习率高会加快学习速度,但可能不会收敛。典型的值设置小于1但大于10^-6。默认值通常设置为0.01。

      (2).学习率衰减(Learning rate decay):设定了网络学习率随时间下降的速率,可以帮助模型在训练过程中逐渐减小学习率,从而使得模型在训练后期更加稳定,避免在最优解附近震荡。PyTorch的torch.optim.lr_scheduler模块提供了多种学习率调度器。

      (3).动量(Momentum):有助于根据前几步的了解来了解下一步的方向。它有助于减少震荡。动量的典型选择在0.5到0.9之间,一般开始时使用较低的动量值。

      (4).训练周期数(Number of epochs):训练期间将整个训练集通过神经网络进行前向传播和反向传播的次数。增加周期数,直到验证准确率开始下降,即使训练准确率在增加(过拟合)。

      (5).批量大小(Batch size):最小批量大小是提供给网络的子样本数量,超过该数量后将进行参数更新。批量大小的选择会显著影响优化算法的性能。批量大小的默认设置可能为32,也可以尝试64、128、256等。通常,它在1到几百之间。

      (6).训练集--测试集拆分比率(Train-test split ratio):直接影响模型的训练效果和泛化能力。数据集规模在万级别时,常见的拆分比率是训练集和测试集的比例为7:3或8:2。当数据集规模达到百万级时,由于即使取1%的数据作为测试集也足够多,因此可以划分更多的数据用于训练。

      超参数调优(Hyperparameter tuning)的方法:超参数调优也称为超参数优化,超参数调优是选择深度学习模型超参数的最优值的过程。超参数调优的目标是找到在给定任务上获得最佳性能的超参数集,这可以提高模型在未知数据上的性能,防止过拟合,并减少训练时间。调优超参数的顺序取决于具体模型和数据集。不过,一个好的经验法则是从最重要的超参数(例如学习率)开始,然后再调优不太重要的超参数

      (1).手动搜索:手动试验不同的超参数集。

      (2).网格搜索(Grid search):被视为超参数优化的"蛮力"方法。在创建潜在离散超参数值网格后,我们使用所有可能的组合来拟合模型。我们记录每组模型的性能,然后选择产生最佳结果的组合。

      (3).随机搜索(Random search):随机选择值,而网格搜索方法则使用一组预定的数字。每次迭代,随机搜索都会尝试一组不同的超参数并记录模型的性能。经过几次迭代后,它会返回提供最佳结果的组合。

      (4).贝叶斯优化(Bayesian optimization):将寻找最佳超参数视为优化问题。它在选择下一个超参数组合时会考虑之前的评估结果,并应用概率函数来选择可能产生最佳结果的组合。

      注:以上整理的内容主要来自:

      1. https://towardsdatascience.com

      2. https://towardsdatascience.com

      3. https://www.geeksforgeeks.org

      GitHub:https://github.com/fengbingchun/NN_Test

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

重学SpringBoot3-WebClient配置与使用详解

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞??收藏评论 重学SpringBoot3-WebClient配置与使用详解 1. 简介2. 环境准备 2.1 依赖配置 3. WebClient配置 3.1 基础配置3.2 高级配置3.3 retrieve()和exchange()区别 4. 使用示例 4.1 基本请求操…

持续升级《在线写python》小程序的功能,文章页增加一键复制功能,并自动去掉html标签

增加复制按钮后的界面是这样的 代码如下&#xff1a; <template><view><x-header></x-header><view class"" v-if"article_info"><view class"kuai bgf"><view class"ac fs26"><img sr…

今天也是记录小程序进展的一天(破晓时8)

嗨嗨嗨朋友们&#xff0c;今天又来记录一下小程序的进展啦&#xff01;真是太激动了&#xff0c;项目又迈出了重要的一步&#xff0c;231啦&#xff01;感觉每一步的努力都在积累&#xff0c;功能逐渐完善&#xff0c;离最终上线的目标越来越近了。大家一直支持着这个项目&…

启动虚拟机中客户机后导致电脑蓝屏的解决办法

不考虑重新安装虚拟机的解决办法有两种&#xff1a; vmx文件破损时使用 1&#xff09;删除CentOS 64-bit.vmx文件 2&#xff09;打开vmware-0.log文件&#xff0c;找到CONFIGURATION 和 USER DEFAULTS 并把这两个之间的内容拷贝出来 删除框出来的部分&#xff0c;复制框出来的…

Word2Vec中的CBOW模型训练原理详细解析

Word2Vec中的CBOW模型训练原理详细解析 1. CBOW模型概述 CBOW模型的训练目标是利用一个单词周围的上下文单词来预测该单词本身。具体来说&#xff0c;给定当前单词的上下文单词&#xff0c;通过训练神经网络来最大化当前单词出现在这些上下文单词中的概率。 2. 模型结构 CB…

Android Studio打包APK

1.导出APK安装包 如果是首次打包&#xff0c;Create new 单击蓝色对话框右边文件夹&#x1f4c2;图标 &#xff0c;选择密钥保存路径&#xff0c;然后在下方File name对话框中填写您想要名称&#xff0c;再点击OK回到密钥创建对话框。 在此对话框中填写密码&#xff08;Passwo…

MySql字段的值是以逗号隔开的另一个表的主键关联查询

查询sql SELECT s.student_id, s.name, c.name as course_name FROM student s INNER JOIN course c ON FIND_IN_SET(c.course_id, s.course_id) > 0 WHERE 1 1;相似sql -- 翻译&#xff08;需要带条件&#xff0c;可用于字典翻译&#xff0c;但条件需要注意唯一性&#…

windows git bash 使用zsh 并集成 oh my zsh

参考了 这篇文章 进行配置&#xff0c;记录了自己的踩坑过程&#xff0c;并增加了 zsh-autosuggestions 插件的集成。 主要步骤&#xff1a; 1. git bash 这个就不说了&#xff0c;自己去网上下&#xff0c;windows 使用git时候 命令行基本都有它。 主要也是用它不方便&…

QD Laser携“Lantana”激光器参展SPIE光子学西部展2025,聚焦紧凑型设计

据悉&#xff0c;QD Laser公司将在2025年SPIE光子学西部展览会上展出其最新产品——世界最小一体化紧凑型可见光激光器“Lantana”。该展会将于1月28日至30日在旧金山的Moscone中心举行。 在展会期间&#xff0c;QD Laser公司将现场展示这款超小型、轻便设备—— “Lantana”。…

Ubuntu 22.04 TLS 忘记root密码,重启修改的解决办法

1.想办法进入这个界面&#xff0c;我这里是BIOS引导的是按Esc按一下就行&#xff0c;UEFI的貌似是按Shift不得而知&#xff0c;没操作过。下移到Advanced options for Ubuntu&#xff0c;按enter 2.根据使用的内核版本&#xff0c;选择带「recovery mode」字样的内核版本&#…

Proteus-8086调试汇编格式的一点心得

这阵子开始做汇编的微机实验&#xff08;微机原理与接口技术题解及实验指导&#xff0c;吴宁版本13章&#xff09;&#xff0c;中间出了挺多问题&#xff0c;解决后记录下。 先上电路图 用子电路来仿真发现仿真的时候子电路这块根本没有高低电平输出&#xff0c;只好把子电路拿…

外部flash烧写算法学习笔记(一)

一&#xff0c;STM32CubeProgrammer STM32下载编程工具 | STM32CubeProg介绍、下载、安装和使用教程 - 知乎 1.使用速览 2.外部烧写 二&#xff0c;QSPI外部烧写算法制作 STM32H7的花式玩转SPI Flash章节也更新了&#xff0c;含MDK下载算法制作和STM32CubeProg下载算法制作 …

在centos上编译安装opensips【初级-默认安装】

环境&#xff1a;centos9 last opensips3.2 dnf update -y dnf install -y gcc make git automake libtool pcre-devel libxml2-devel \libcurl-devel postgresql-devel \bzip2-devel zlib-devel ncurses-devel libuuid-devel \libpcap-devel # 有报错的直接删除cd /usr/lo…

【Prometheus】PromQL进阶用法

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

Fabric区块链网络搭建:保姆级图文详解

目录 前言1、项目环境部署1.1 基础开发环境1.2 网络部署 2、后台环境2.1、环境配置2.2、运行springboot项目 3、PC端3.1、安装依赖3.2、修改区块链网络连接地址3.3、启动项目 前言 亲爱的家人们&#xff0c;创作很不容易&#xff0c;若对您有帮助的话&#xff0c;请点赞收藏加…

【SpringCloud】黑马微服务学习笔记

目录 1. 关于微服务 ?1.1 微服务与单体架构的区别 ?1.2 SpringCloud 技术 2. 学习前准备 ?2.1 环境搭建 ?2.2 熟悉项目 3. 正式拆分 ?3.1 拆分商品功能模块 ?3.2 拆分购物车功能模块 4. 服务调用 ?4.1 介绍 ?4.2 RustTemplate?的使用 4.3 服务治理-注册中…

RabbitMQ1-消息队列

目录 MQ的相关概念 什么是MQ 为什么要用MQ MQ的分类 MQ的选择 RabbitMQ RabbitMQ的概念 四大核心概念 RabbitMQ的核心部分 各个名词介绍 MQ的相关概念 什么是MQ MQ(message queue)&#xff0c;从字面意思上看&#xff0c;本质是个队列&#xff0c;FIFO 先入先出&am…

鸿蒙参考文档和问题记录

本文用于记录鸿蒙使用过程中的问题和相关参考文档 问题记录 1. 兼容性测试套件问题 ActsStartAbilityForResultNoTargetBundleListStageTest套件测试失败&#xff1a;模块FreeInstall 技术资料 1. HarmonyOS应用如何打包HAP并安装到真机 HarmonyOS应用如何打包HAP并安装到真…

虚幻基础-1:cpu挑选(14600kf)

能帮到你的话&#xff0c;就给个赞吧 &#x1f618; 文章目录 ue非常吃cpu拉满主频打开项目编写蓝图运行原因 时间长 关于压力测试 本文以14600kf为例&#xff0c;双12购入&#xff0c;7月份产。 ue非常吃cpu 经本人测试&#xff0c;ue是非常吃cpu的。 拉满主频 无论任何时间…

css动画水球图

由于echarts水球图动画会导致ios卡顿&#xff0c;所以纯css模拟 展示效果 组件 <template><div class"water-box"><div class"water"><div class"progress" :style"{ --newProgress: newProgress % }"><…