神经网络的参数初始化【数学】

news2024/9/8 23:22:27

文章目录

  • 1、零初始化(Zero Initialization)
  • 2、随机初始化(Random Initialization)
  • 3、Xavier初始化(Glorot Initialization)
  • 4、He初始化(He Initialization)
  • 5、正交初始化(Orthogonal Initialization)
  • 6、LECUN初始化
  • 7、方差缩放初始化(Variance Scaling Initialization)
  • 8、参数初始化的重要性

🍃作者介绍:双非本科大三网络工程专业在读,阿里云专家博主,专注于Java领域学习,擅长web应用开发、数据结构和算法,初步涉猎人工智能和前端开发。
🦅个人主页:@逐梦苍穹
📕所属专栏:人工智能
🌻gitee地址:xzl的人工智能代码仓库
✈ 您的一键三连,是我创作的最大动力🌹
🛸神经网络参数初始化的PyTorch实现:https://xzl-tech.blog.csdn.net/article/details/140745338

1、零初始化(Zero Initialization)

公式:
W i j = 0 W_{ij} = 0 Wij=0
解释:将所有权重都初始化为零。
原因:简单易行,但会导致所有神经元的激活值和梯度相同,使模型无法有效学习。

2、随机初始化(Random Initialization)

公式:
W i j ∼ U ( − ϵ , ϵ ) W_{ij} \sim \mathcal{U}(-\epsilon, \epsilon) WijU(ϵ,ϵ)

W i j ∼ N ( 0 , σ 2 ) W_{ij} \sim \mathcal{N}(0, \sigma^2) WijN(0,σ2)
解释:

  • U ( − ϵ , ϵ ) \mathcal{U}(-\epsilon, \epsilon) U(ϵ,ϵ) 表示从区间 [ − ϵ , ϵ ] [- \epsilon, \epsilon] [ϵ,ϵ] 的均匀分布中随机采样。
  • N ( 0 , σ 2 ) \mathcal{N}(0, \sigma^2) N(0,σ2) 表示从均值为0、方差为 σ 2 \sigma^2 σ2 的正态分布中随机采样。

原因:打破对称性,使每个神经元有不同的初始值,避免模型陷入无法学习的状态。

3、Xavier初始化(Glorot Initialization)

公式:
W ∼ U ( − 6 n i n + n o u t , 6 n i n + n o u t ) W \sim \mathcal{U}\left(-\sqrt{\frac{6}{n_{in} + n_{out}}}, \sqrt{\frac{6}{n_{in} + n_{out}}}\right) WU(nin+nout6 ,nin+nout6 )

W ∼ N ( 0 , 2 n i n + n o u t ) W \sim \mathcal{N}\left(0, \frac{2}{n_{in} + n_{out}}\right) WN(0,nin+nout2)
解释:

  • U ( − 6 n i n + n o u t , 6 n i n + n o u t ) \mathcal{U}\left(-\sqrt{\frac{6}{n_{in} + n_{out}}}, \sqrt{\frac{6}{n_{in} + n_{out}}}\right) U(nin+nout6 ,nin+nout6 ) 表示从区间 [ − 6 n i n + n o u t , 6 n i n + n o u t ] \left[-\sqrt{\frac{6}{n_{in} + n_{out}}}, \sqrt{\frac{6}{n_{in} + n_{out}}}\right] [nin+nout6 ,nin+nout6 ] 的均匀分布中随机采样。
  • N ( 0 , 2 n i n + n o u t ) \mathcal{N}\left(0, \frac{2}{n_{in} + n_{out}}\right) N(0,nin+nout2) 表示从均值为0、方差为 2 n i n + n o u t \frac{2}{n_{in} + n_{out}} nin+nout2 的正态分布中随机采样。

原因:通过均匀分布或正态分布进行初始化,确保前向传播和反向传播过程中,神经元的输出值不会因为层数增加而导致方差过大或过小。

4、He初始化(He Initialization)

公式:
W ∼ U ( − 6 n i n , 6 n i n ) W \sim \mathcal{U}\left(-\sqrt{\frac{6}{n_{in}}}, \sqrt{\frac{6}{n_{in}}}\right) WU(nin6 ,nin6 )

W ∼ N ( 0 , 2 n i n ) W \sim \mathcal{N}\left(0, \frac{2}{n_{in}}\right) WN(0,nin2)
解释:

  • U ( − 6 n i n , 6 n i n ) \mathcal{U}\left(-\sqrt{\frac{6}{n_{in}}}, \sqrt{\frac{6}{n_{in}}}\right) U(nin6 ,nin6 ) 表示从区间 [ − 6 n i n , 6 n i n ] \left[-\sqrt{\frac{6}{n_{in}}}, \sqrt{\frac{6}{n_{in}}}\right] [nin6 ,nin6 ] 的均匀分布中随机采样。
  • N ( 0 , 2 n i n ) \mathcal{N}\left(0, \frac{2}{n_{in}}\right) N(0,nin2) 表示从均值为0、方差为 2 n i n \frac{2}{n_{in}} nin2 的正态分布中随机采样。

原因:专为ReLU及其变体激活函数设计,确保在使用这些激活函数时,前向传播和反向传播过程中的信号不会过于减弱。

5、正交初始化(Orthogonal Initialization)

公式:

  1. 生成一个随机矩阵 A A A
  2. 通过QR分解得到正交矩阵 Q Q Q
  3. 缩放 Q Q Q 使其适应模型的输入输出大小。

解释:QR分解是一种将矩阵分解为正交矩阵 Q Q Q 和上三角矩阵 R R R 的方法,最终保留正交矩阵 Q Q Q
原因:正交矩阵可以保持输入信号的方差,避免梯度消失或爆炸的问题,特别适用于RNN等需要保持长期依赖的网络。

6、LECUN初始化

公式:
W ∼ U ( − 3 n i n , 3 n i n ) W \sim \mathcal{U}\left(-\sqrt{\frac{3}{n_{in}}}, \sqrt{\frac{3}{n_{in}}}\right) WU(nin3 ,nin3 )

W ∼ N ( 0 , 1 n i n ) W \sim \mathcal{N}\left(0, \frac{1}{n_{in}}\right) WN(0,nin1)
解释:

  • U ( − 3 n i n , 3 n i n ) \mathcal{U}\left(-\sqrt{\frac{3}{n_{in}}}, \sqrt{\frac{3}{n_{in}}}\right) U(nin3 ,nin3 ) 表示从区间 [ − 3 n i n , 3 n i n ] \left[-\sqrt{\frac{3}{n_{in}}}, \sqrt{\frac{3}{n_{in}}}\right] [nin3 ,nin3 ] 的均匀分布中随机采样。
  • N ( 0 , 1 n i n ) \mathcal{N}\left(0, \frac{1}{n_{in}}\right) N(0,nin1) 表示从均值为0、方差为 1 n i n \frac{1}{n_{in}} nin1 的正态分布中随机采样。

原因:专为tanh激活函数设计,确保在使用tanh激活函数时,前向传播和反向传播过程中的信号不会过于减弱。

7、方差缩放初始化(Variance Scaling Initialization)

公式:
W ∼ N ( 0 , 2 n i n ⋅ scale ) W \sim \mathcal{N}\left(0, \frac{2}{n_{in} \cdot \text{scale}}\right) WN(0,ninscale2)

W ∼ U ( − 6 n i n ⋅ scale , 6 n i n ⋅ scale ) W \sim \mathcal{U}\left(-\sqrt{\frac{6}{n_{in} \cdot \text{scale}}}, \sqrt{\frac{6}{n_{in} \cdot \text{scale}}}\right) WU(ninscale6 ,ninscale6 )
解释:

  • N ( 0 , 2 n i n ⋅ scale ) \mathcal{N}\left(0, \frac{2}{n_{in} \cdot \text{scale}}\right) N(0,ninscale2) 表示从均值为0、方差为 2 n i n ⋅ scale \frac{2}{n_{in} \cdot \text{scale}} ninscale2 的正态分布中随机采样。
  • U ( − 6 n i n ⋅ scale , 6 n i n ⋅ scale ) \mathcal{U}\left(-\sqrt{\frac{6}{n_{in} \cdot \text{scale}}}, \sqrt{\frac{6}{n_{in} \cdot \text{scale}}}\right) U(ninscale6 ,ninscale6 ) 表示从区间 [ − 6 n i n ⋅ scale , 6 n i n ⋅ scale ] \left[-\sqrt{\frac{6}{n_{in} \cdot \text{scale}}}, \sqrt{\frac{6}{n_{in} \cdot \text{scale}}}\right] [ninscale6 ,ninscale6 ] 的均匀分布中随机采样。

原因:通过调整缩放因子,适应不同的网络和激活函数,使初始化更具灵活性。

8、参数初始化的重要性

适当的参数初始化方法可以加速模型训练,提高模型性能,并避免一些常见的问题,如梯度消失或爆炸。以下是常见问题及其解决方案:

  1. 梯度消失:初始化时权重过小,导致梯度在反向传播过程中逐渐变小,最终接近零。
    • 解决方案:使用He初始化或Xavier初始化,确保权重的初始方差适中。
  2. 梯度爆炸:初始化时权重过大,导致梯度在反向传播过程中逐渐变大,最终趋于无穷大。
    • 解决方案:使用适当的初始化方法,如Xavier初始化,确保权重的初始方差适中。
  3. 模型收敛慢:权重初始化不当,导致模型需要更多的迭代次数才能收敛。
    • 解决方案:根据激活函数选择合适的初始化方法,如使用ReLU激活函数时选择He初始化。

通过理解和应用适当的参数初始化方法,可以显著提高神经网络的训练效率和性能。在实际应用中,可以通过实验来验证不同初始化方法的效果,并结合其他优化技术(如学习率调整、正则化方法等)进行调优。

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

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

相关文章

前端基于 axios 实现批量任务调度管理器 demo

一、背景介绍 这是一个基于 axios 实现的批量任务调度管理器的 demo。它使用了axios、promise 等多种技术和原理来实现批量处理多个异步请求,并确保所有请求都能正确处理并报告其状态。 假设有一个场景:有一个任务列表,有单个任务的处理功能…

OpenGL学习 1

一些唠叨: 很多时候,都被Live2d吸引,去年想给网页加个live2d看板娘,结果看不懂live2d官方给的SDK,放弃了。今天又想弄个live2d桌宠,都已经在网上找到Python 的 Live2D 拓展库了,并提供了用QT实现…

领航者-跟随者编队算法 定义+特性+原理+公式+Python示例代码(带详细注释)

文章目录 引言定义特性基本原理和公式推导基本原理公式推导运动模型领航者的控制跟随者的控制 示例推导 实现步骤和代码实现实现步骤Python代码实现(带详细注释)代码运行结果代码和图表说明 应用案例优化和挑战优化挑战 结论 引言 在现代科技的发展中&a…

PointCLIP: Point Cloud Understanding by CLIP

Abstract 近年来,基于对比视觉语言预训练(CLIP)的零镜头和少镜头学习在二维视觉识别中表现出了令人鼓舞的效果,该方法在开放词汇设置下学习图像与相应文本的匹配。然而,通过大规模二维图像-文本对预训练的CLIP是否可以推广到三维识别&#x…

【状语从句】

框架 概念,特点主将从现连接词时间条件地点结果方式让步原因目的比较省略倒装 解读 1【概念,特点】 一个完整的句子,去修饰另一个完整句子中的动词,称为状语从句;特点:从句完整,只用考虑连接词是…

扩展------正向代理和反向代理怎么理解?

今天看博客园,突然看到正向代理和反向代理,发现自己还不会就稍微研究了一下。 正向代理----(看做是服务员) 当我们进饭店吃饭,我们不可能会直接去后厨叫厨师给我们做菜,而是通过服务员去通知,这个就叫做正向代理。 再…

keras在GPU环境下配置,conda虚拟环境并安装TensorFlow,cudatoolkit,cudann和jupyter等

前言:要有版本意识 在我个人的多次配置环境过程中,很多时候失败或者后序出现问题,往往都是版本不匹配的问题。所以在本次安装中,提前重点了解了下版本匹配情况。各位千万不要跳过这部分,因为这不仅是基础知识了解的过…

君子学习,是为了修养自己

98天 保护自己最好的方式: 恢复良知的明和诚,就能照见万物,能常觉、常照,任何东西都无所遁形。(相信直觉) 君子学习,是为了修养自己。 从不担忧别人会欺骗自己,只是永远不欺骗自己的…

docker笔记7-dockerfile

docker笔记7-dockerfile 一、dockerfile介绍二、dockerfile指令三、构建自己的镜像 一、dockerfile介绍 Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。 以下是常用的 Dockerfile 关键字的完整列表和说明: 二、docker…

实时捕获数据库变更

1.CDC概述 CDC 的全称是 Change Data Capture ,在广义的概念上,只要能捕获数据变更的技术,我们都可以称为 CDC 。我们目前通常描述的CDC 技术主要面向数据库的变更,是一种用于捕获数据库中数据变更的技术,CDC 技术应用…

C语言进阶 10. 字符串

C语言进阶 10. 字符串 文章目录 C语言进阶 10. 字符串10.1. 字符串10.2. 字符串变量10.3. 字符串输入输出10.4. 字符串数组10.5. 单字符输入输出10.6. 字符串函数strlen()10.7. 字符串函数strc()10.8. 字符串函数strcpy()10.9. 字符串搜索函数10.10. PAT10-0. 说反话 (20)10-1.…

RK3568平台(input篇)input数据上报分析

一.input设置事件类型 __set_bit 是一个位操作函数,用于设置一个位图中的特定位,例如可以通过下面的代码将 输入设备设置为支持按键事件: __set_bit(EV_KEY,myinput_dev->evbit) 第一位为设置设置事件类型。 第二位为输入设备的能力 和…

6 网络

6 网络 1、概念2 IP地址3、套接字4、TCP协议4.1 TCP协议的基本特征4.2 建立连接4.4 终止连接4.5 编程模型 5、UDP协议5.1 UDP协议的基本特性5.2 常用函数5.3 UDP通信模型 6、域名解析 1、概念 计算机网络是实现资源共享和信息传递的计算机系统 ISO/OSI网络协议模型 TCP/IP协…

应急响应靶场

靶场搭建 靶场环境搭建:首先确定目标靶机的IP地址: 端口探测:发现只开放了22号端口 尝试利用hydra进行爆破: 成功找到了密码。ssh远程登录之后,添加后门账号: msfvenom生成msf的木马: 利用python快速搭建h…

代码随想录 day 25 回溯

第七章 回溯算法 part04 491.递增子序列 本题和大家刚做过的 90.子集II 非常像,但又很不一样,很容易掉坑里。 https://programmercarl.com/0491.%E9%80%92%E5%A2%9E%E5%AD%90%E5%BA%8F%E5%88%97.html 视频讲解:https://www.bilibili.com/vi…

培训第十六天(web服务apache与nginx)

上午 静态资源 根据开发者保存在项目资源目录中的路径访问静态资源html 图片 js css 音乐 视频 f12,开发者工具,网络 1、web基本概念 web服务器(web server):也称HTTP服务器(HTTP server)&am…

解决Windows密码丢失问题:详细指南

解决Windows密码丢失问题:详细指南 引言 最近因为某些工作缘故,接触到windows比较频繁,特此记录一下 当下,计算机安全是每个人都不能忽视的重要问题。然而,有时可能因为忘记密码而无法访问自己的Windows系统&#xf…

NAS、SAN 与 DAS 的比较与应用场景

文章目录 1. NAS(网络附加存储)定义特点实现成本:适用场景 2. SAN(存储区域网络)定义特点实现成本:适用场景 3. DAS(直接附加存储)定义特点实现成本:适用场景 区别总结结…

基于tkinter的学生信息管理系统之登录界面和主界面菜单设计

目录 一、tkinter的介绍 二、登陆界面的设计 1、登陆界面完整代码 2、部分代码讲解 3、登录的数据模型设计 4、效果展示 三、学生主界面菜单设计 1、学生主界面菜单设计完整代码 2、 部分代码讲解 3、效果展示 四、数据库的模型设计 欢迎大家进来学习和支持&#xff01…