当前位置: 首页 > news >正文

深度学习中的参数初始化

      深度学习中的参数初始化主要是指初始化神经网络中的权重和偏置。权重和偏置通常分开初始化,偏置通常初始化为零或较小的常数值

      没有一种万能的初始化技术,因为最佳初始化可能因具体架构和要解决的问题而异。因此,尝试不同的初始化技术以了解哪种技术最适合给定任务通常是一个好主意。

      如果没有一个有用的权值初始化,训练网络可能会导致收敛速度非常慢或无法收敛

      梯度消失和梯度爆炸(vanishing and exploding gradients):适当的权重初始化对于防止梯度消失和梯度爆炸至关重要。

      1.梯度消失:梯度变得越来越小,权重更新很小,权重几乎保持不变,导致收敛速度变慢,在最坏的情况下,可能会导致网络完全停止收敛,学习过程停滞。

      2.梯度爆炸:梯度可能会呈指数增长,导致不成比例的大量更新并导致学习过程发散(divergence)。

      参数初始化方法

      1.零初始化:将所有权重和偏置(weights and biases)初始化为0。这在深度学习中通常不使用,因为它会导致梯度对称(symmetry),从而导致所有神经元在训练期间学习相同的特征。所有神经元中的所有激活都是相同的,因此所有计算都是相同的,这使得相关模型成为线性模型(linear model)。当用0初始化时,偏置不会产生任何影响。

      2.常数初始化:用常数值初始化权重和偏置。任何常数初始化方案的性能都会很差,与零初始化类似。如果神经网络中的神经元的权重被初始化为相同的值,它们将在训练期间学习相同的特征。

      3.随机初始化:从均匀或正态分布(uniform or normal distribution)中随机初始化权重和偏置。这是深度学习中最常用的技术。改进了对称性破坏(symmetry-breaking)过程,即如果两个隐藏神经元具有相同的输入和相同的激活函数,则它们必须具有不同的初始参数,并提供了更高的精度。这种方法可以防止对输入参数学习相同的特征。选择适当的初始化值对于高效训练是必要的。初始化过大会导致梯度爆炸(梯度太大)。初始化太小会导致梯度消失(梯度太小)。随机为权重分配值可能会出现过拟合、梯度消失、梯度爆炸等问题。

      4.Xavier/Glorot初始化:使用均值为0、方差为sqrt(1/n)的正态分布或均匀分布初始化权重,其中n是前一层的神经元数量。权重(例如激活的方差)在每一层上都是相同的,缓解梯度爆炸和消失问题。用于Sigmoid、Tanh激活函数

      5.He/Kaiming初始化:使用均值为0、方差为sqrt(2/n)的正态分布或均匀分布初始化权重,其中n是前一层的神经元数量。保留了激活函数(例如ReLU激活)的非线性。防止出现值过小或过大等问题,缓解梯度爆炸和消失问题。用于ReLU激活函数

      6.正交初始化:使用正交矩阵(orthogonal matrix)初始化权重,这在反向传播期间保留梯度范数(gradient norm)。

      7.均匀初始化:使用均匀分布(uniform distribution)初始化权重。

      总结

      1.权重初始化的原则:权重不应相对过小或过大、权重不应相同、权重应具有良好的方差

      2.对复杂数据集使用权重初始化技术非常重要。权重初始化在复杂数据的训练中起着重要作用,尤其是在使用基于启发式(heuristic)的方法时,如Xavier、He,这些方法是通过激活函数的某些属性设计的。在权重初始化较小的情况下,神经元的输入将很小,从而导致激活函数的非线性损失。否则,在权重初始化较大的情况下,神经元的输入将很大,从而导致激活函数饱和。选择合适的权重初始化方法将有助于获得更好的深度学习模型性能。此外,良好的权重初始化有助于基于梯度的方法快速收敛。

      3.选择合适的权重初始化方法是一个悬而未决的问题。Xavier初始化方法在可微激活函数(如Sigmoid)的情况下提供了良好的结果。He初始化方法在ReLU等不可微激活函数的情况下提供了良好的效果。大多数情况下,DNN模型都是基于ReLU激活函数的。因此,在DNN的情况下,最好使用He方法进行权重初始化。

      4.通过迁移学习(transfer learning),你不是从随机初始化的权重开始,而是使用从以前的网络保存的权重作为新实验的初始权重(即微调预先训练的网络)。

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

      1. https://medium.com

      2. https://www.geeksforgeeks.org

      3. https://arxiv.org/pdf/2102.07004

      PyTorch中参数初始化函数的实现在:torch/nn/init.py ,支持的参数初始化函数有:uniform_(uniform distribution)、normal_(normal distribution)、trunc_normal_(truncated normal distribution)、constant_、ones_(scalar value 1)、zeros_(scalar value 0)、eye_(identity matrix)、dirac_(Dirac delta function)、xavier_uniform_(Xavier uniform distribution)、xavier_normal_(Xavier normal distribution)、kaiming_uniform_(Kaiming uniform distribution)、kaiming_normal_(Kaiming normal distribution)、orthogonal_((semi) orthogonal matrix)、sparse_(sparse matrix)。

      PyTorch根据层的类型使用不同的默认权重和偏置初始化方法。

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

相关文章:

深度学习中的参数初始化

深度学习中的参数初始化主要是指初始化神经网络中的权重和偏置。权重和偏置通常分开初始化,偏置通常初始化为零或较小的常数值。 没有一种万能的初始化技术,因为最佳初始化可能因具体架构和要解决的问题而异。因此,尝试不同的初始化技术以了解…...

wpf 基于Behavior库 的行为模块

Microsoft.Xaml.Behaviors 是一个用于WPF(Windows Presentation Foundation)的行为库,它的主要作用是允许开发者在不修改控件源代码的情况下,为控件添加自定义的行为和交互逻辑。行为库的核心思想是通过定义可重用的行为组件&…...

【每日学点鸿蒙知识】导入cardEmulation、自定义装饰器、CallState状态码顺序、kv配置、签名文件配置

1、HarmonyOS 无法导入cardEmulation? 在工程entry mudule里的index.ets文件里导入cardEmulation失败 可以按照下面方式添加SystemCapability;在src/main/syscap.json(此文件需要手动创建)中添加如下内容 {"devices": {"gen…...

【SpringMVC】REST 风格

REST(Representational State Transfer,表现形式状态转换)是一种访问网络资源的格式。传统的资源描述方式通常如下: http://localhost/user/getById?id1http://localhost/user/saveUser 而 REST 风格的描述则更简洁&#xff1a…...

IDEA修改编译版本

目录 一、序言 二、修改maven配置 1.修改 2.代码 三、pom文件配置 1.修改 2.代码 3.问题 一、序言 有两种方法可以帮助大家解决IDEA每次刷新maven的pom配置时,会发生发行源版本不正常的报错。个人推荐第二种,原因:第二种你刷新maven后…...

SkyWalking Agent 配置 Spring Cloud Gateway 插件解决日志错误

SkyWalking Agent 配置 Spring Cloud Gateway 插件解决日志错误 IDEA中启动网管时,需要配置VM启动参数,格式如下: # 配置 SkyWalking Agent 启动参数,以便将网关服务的性能数据上报到 SkyWalking 服务器。 -javaagent:/path/to/sk…...

canvas+fabric实现时间刻度尺(一)

前言 需求:显示一个时间刻度尺,鼠标移动会显示当前时间 技术:我们采用canvasfabric进行实现 效果 实现 1.创建canvas(设置宽高)设为全局变量 2.引入fabric包 3.画时间刻度尺(长方形横线) …...

傲雷亮相2024中国时尚体育季(珠海站),展现户外移动照明风采

2024年12月28-29日,2024中国时尚体育季(珠海站)国家级轮滑比赛在珠海金山体育公园成功举办。作为户外创新型移动照明领域的领导品牌,傲雷受邀参加了本次珠海金湾运动生活嘉年华的展览单元,与众多户外运动品牌同台展示。…...

YOLOv10-1.1部分代码阅读笔记-block.py

block.py ultralytics\nn\modules\block.py 目录 block.py 1.所需的库和模块 2.class DFL(nn.Module): 3.class Proto(nn.Module): 4.class HGStem(nn.Module): 5.class HGBlock(nn.Module): 6.class SPP(nn.Module): 7.class SPPF(nn.Module): 8.class C1(nn…...

@RestControllerAdvice注解

RestControllerAdvice 是 Spring 4 引入的一个组合注解,它结合了 ControllerAdvice 和 ResponseBody,专门用于处理 RestController 类型的控制器中的全局异常、全局数据绑定和全局模型属性等问题。在 Spring Boot 中,RestControllerAdvice 通…...

Enum枚举类与静态变量和静态数组的区别

Enum枚举类与静态变量和静态数组的区别 组成结构Enum枚举类静态变量静态数组 组成结构的区别相同之处不同之处 用法使用相同之处不同之处 组成结构 先来看下Enum枚举类,静态变量,静态数组的初始化过程,以下面为例子: public enu…...

uniapp——微信小程序读取bin文件,解析文件的数据内容(三)

微信小程序读取bin文件内容 读取用户选择bin文件,并解析数据内容,分包发送给蓝牙设备; 文章目录 微信小程序读取bin文件内容读取文件读取内容返回格式 API文档: getFileSystemManager 关于App端读取bin文件,请查看&…...

SpringBoot集成ECDH密钥交换

简介 对称加解密算法都需要一把秘钥,但是很多情况下,互联网环境不适合传输这把对称密码,有密钥泄露的风险,为了解决这个问题ECDH密钥交换应运而生 EC:Elliptic Curve——椭圆曲线,生成密钥的方法 DH&…...

python文件操作相关(excel)

python文件操作相关(excel) 1. openpyxl 库openpyxl其他用法创建与删除操作单元格追加数据格式化单元格合并单元格插入图片公式打印设置保护工作表其他功能 2. pandas 库3. xlrd 和 xlwt 库4. xlsxwriter 库5. pyxlsb 库应用场景参考资料 在 Python 中&a…...

探索React与Microi吾码的完美结合:快速搭建项目,低代码便捷开发教程

一、摘要 在当今的数字化时代,软件开发就像是一场探险,每个开发者都是探险家,探索着代码的奥秘。React作为前端开发的领军框架,其组件化和高效的渲染机制为开发者提供了强大的工具。而Microi吾码低代码平台的出现,则为…...

【面试系列】深入浅出 Spring Boot

熟悉SpringBoot,对常用注解、自动装配原理、Jar启动流程、自定义Starter有一定的理解; 面试题 Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?Spring Boot的自动配置原理是什么?你如何理解 Spring Boot 配置…...

@colyseus/social 模块详解

@colyseus/social 模块介绍 @colyseus/social 是一个适用于 Colyseus 游戏框架的扩展模块,提供了社交功能的支持,帮助开发者在多人游戏中快速实现玩家之间的社交互动。它主要提供了玩家账户管理、好友系统、好友请求、组队和聊天功能等,旨在简化游戏中社交功能的实现。 核心…...

石岩路边理发好去处

周末带娃去罗租公园玩,罗租公园旁边就是百佳华和如意豪庭小区,发现如意豪庭小区对面挺多路边理发摊点 理发摊点聚焦在这里的原因是刚好前面城管来了暂时避避,例如还有一个阿姨剪到一半就跟着过来。这里的城管只是拍了一处没有摊位的地方&…...

ROS 2中的DDS中间件

文章目录 一、简介二、默认支持的 DDS (Data Distribution Service) 实现三、切换DDS实现小结 一、简介 中间件是一个软件层,通常用于连接不同的应用程序、服务或系统,以便它们能够相互通信和交换数据。中间件并不直接向用户暴露,而是在系统…...

「下载」智慧文旅运营综合平台解决方案:整体架构,核心功能设计

智慧文旅运营综合平台,旨在通过集成大数据、云计算、物联网、人工智能等先进技术,为景区、旅游企业及相关管理机构提供一站式的智慧化运营服务。 智慧文旅运营综合平台不仅能够提升游客的游览体验,还能帮助景区管理者实现资源的优化配置和业务…...

用GNU Radio和USRP N310/X310手把手搭建一个雷达通信一体化系统(附完整GRC流程图)

从零构建基于GNU Radio与USRP的雷达通信融合系统实战指南 在软件定义无线电(SDR)技术蓬勃发展的今天,将雷达探测与无线通信功能集成到同一硬件平台已成为可能。这种一体化设计不仅能降低设备成本,还能实现频谱资源共享&#xff0c…...

IS6201A多相PWM控制器:从架构解析到PCB布局的电源设计实战

1. 项目概述:为什么我们需要关注IS6201A?在电源设计领域,尤其是面对高性能计算、数据中心服务器、高端显卡以及工业自动化设备时,工程师们常常面临一个核心挑战:如何为那些“电老虎”级别的核心芯片(比如CP…...

Hercules安全MCU平台:从硬件锁步到软件诊断,构建功能安全系统基座

1. 平台定位与核心价值解析在医疗、工业控制以及轨道交通这些领域,开发产品从来不只是实现功能那么简单。每一次代码的写入、每一次信号的输出,背后都关联着人的生命安全与重大财产保障。我经历过不少项目,在功能开发完成后,团队最…...

百考通AI智能聚类文献,告别碎片化罗列

撰写文献综述,是学术写作中承上启下的关键一步。它不仅要展示你对研究领域的了解程度,更要体现你的归纳能力、批判思维和问题意识。然而,现实中许多学生却因资料庞杂、逻辑混乱或时间不足,难以写出一篇真正“有据、有理、有深度”…...

告别Visio!用WPF+MVVM打造属于你自己的业务流程设计器(附完整源码)

基于WPFMVVM构建企业级业务流程设计器的实战指南 在当今企业数字化转型浪潮中,业务流程管理系统(BPM)已成为提升运营效率的核心工具。传统Visio等绘图工具虽然功能强大,但往往难以与企业内部系统深度集成,且缺乏动态交互能力。本文将带你从零…...

告别手动Coding:用EB tresos Studio配置TC3xx芯片MCAL的保姆级图文指南

告别手动Coding:用EB tresos Studio配置TC3xx芯片MCAL的保姆级图文指南 当TC3xx系列芯片遇上AUTOSAR架构,传统寄存器级开发方式正在被图形化配置彻底革新。对于每天需要面对微控制器底层驱动的嵌入式工程师而言,EB tresos Studio提供的可视化…...

Windows远程桌面终极解锁指南:如何免费开启多用户并发连接

Windows远程桌面终极解锁指南:如何免费开启多用户并发连接 【免费下载链接】rdpwrap RDP Wrapper Library 项目地址: https://gitcode.com/gh_mirrors/rd/rdpwrap 还在为Windows家庭版无法使用远程桌面而烦恼吗?RDP Wrapper Library这款开源工具能…...

告别手描!用ArcGIS的ArcScan插件5分钟搞定等高线矢量化(附详细参数设置)

高效地形图处理:ArcScan插件等高线矢量化全流程解析 在测绘与地理信息系统工作中,纸质地形图的数字化一直是基础却耗时的环节。传统手工矢量化不仅效率低下,还容易引入人为误差。ArcGIS平台中的ArcScan插件为解决这一痛点提供了专业方案&…...

不懂PMP的项目经理,正在被AI和敏捷时代淘汰

一、一个正在发生的残酷事实 张伟是一家传统制造企业的项目经理,拥有十年工作经验。他的日常工作是这样的:每天早上整理Excel进度表,中午开会协调资源,晚上更新甘特图,睡前发送项目周报。他觉得自己很忙、很重要。 直到…...

软件设计师下午题训练2-3题+2020下上午题错题解析 练习真题训练15

一、训练题2 1、2021上 (1) (2) a:团购点编号 b:客户电话 供货 主键 :(供货商编号,团购点编号) 外键:供货商编号、团购点编号 订单 主键:订单编号…...