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

泰州做网站软件企业债纳入公司债规则出炉

泰州做网站软件,企业债纳入公司债规则出炉,上海网页制作公司 酒店,汉中 wordpress诸神缄默不语-个人CSDN博文目录 #xff08;如果只想看代码#xff0c;请直接跳到“方法”一节#xff0c;开头我介绍我的常用方法#xff0c;后面介绍具体的各种方案#xff09; 神经网络通过多层神经元相互连接构成#xff0c;而这些连接的强度就是通过权重#xff…诸神缄默不语-个人CSDN博文目录 如果只想看代码请直接跳到“方法”一节开头我介绍我的常用方法后面介绍具体的各种方案 神经网络通过多层神经元相互连接构成而这些连接的强度就是通过权重Weight来表征的。权重是可训练的参数意味着它们会在训练过程中根据反向传播算法自动调整以最小化网络的损失函数。 每个神经元接收到的输入信号会与相应的权重相乘然后所有这些乘积会被累加在一起最后可能还会加上一个偏置项Bias形成该神经元的净输入。这个净输入随后会被送入激活函数产生神经元的输出进而传递给下一层的神经元。在这个过程中权重决定了信号传递的强度和方向是调整和控制网络学习过程的关键。 从数学角度看权重可以被组织成矩阵或张量的形式以支持高效的矩阵运算和便于处理来自网络上一层的所有输入及其对下一层的影响。训练开始时权重通常会被初始化为小的随机值这是为了打破对称性并允许网络学习。随着训练的进行通过梯度下降算法等优化方法权重会逐渐调整以使得网络的预测输出尽可能接近真实标签。 总之神经网络的权重是连接网络中各层之间的桥梁它们的值决定了网络的行为和性能通过训练不断优化这些权重神经网络能够学习到复杂的数据表示和模式完成各种复杂的任务。 在深度学习中神经网络的权重初始化对模型的训练效率和最终性能有着至关重要的影响。适当的初始化方法可以帮助加速收敛避免陷入局部最小值同时也可以防止训练过程中的梯度消失或梯度爆炸问题。相反不当的权重初始化可能导致模型训练效果不佳甚至无法收敛。 文章目录 权重初始化的必要性不认真对待的危害权重初始化方法1. 随机初始化2. Xavier/Glorot 初始化3. He/Kaiming 初始化4. SVD 初始化 结论本文撰写过程中使用到的其他参考资料 权重初始化的必要性 加速收敛合适的初始化方法能够使神经网络更快地收敛到较低的误差。避免梯度问题通过控制权重的初始范围可以帮助避免训练过程中的梯度消失或爆炸问题。影响泛化能力初始化不仅影响训练速度和稳定性也间接影响模型的泛化能力。 不认真对待的危害 训练时间延长不合适的初始化可能导致模型需要更长的时间来收敛。性能下降极端情况下不合适的初始化会导致模型无法从训练数据中学习有效的特征从而严重影响模型性能。训练失败在某些情况下错误的初始化方法甚至会导致训练完全失败例如梯度消失或爆炸。 权重初始化方法 我个人的习惯是在构建模型的时候直接对需要手写的权重进行初始化。权重用Xavier初始化偏置直接初始化为全0向量代码示例 from torch.nn.init import xavier_normal_class MPBFNDecoder(nn.Module):def __init__(self):super(MPBFNDecoder,self).__init__()...self.Wf12nn.Parameter(xavier_normal_(torch.empty(charge_num,ds)))self.Wf13nn.Parameter(xavier_normal_(torch.empty(penalty_num,ds)))self.Wf23nn.Parameter(xavier_normal_(torch.empty(penalty_num,ds)))self.b12nn.Parameter(torch.zeros(charge_num,))self.b13nn.Parameter(torch.zeros(penalty_num,))self.b23nn.Parameter(torch.zeros(penalty_num,))完整代码见https://github.com/PolarisRisingWar/LJP_Collection/blob/master/models/MPBFN/train_and_test.py PyTorch内置的模型都已经自动写好了初始化函数不需要手动设置。 以下有些代码示例是指定Linear中的权重进行初始化的。如果你们需要改成对特定参数进行初始化的话也好改反正你们懂这个意思就行。 1. 随机初始化 Uniform 高斯分布初始化 公式权重 w ∼ N ( 0 , stdev 2 ) w \sim \mathcal{N}(0, \text{stdev}^2) w∼N(0,stdev2) 其中 N ( 0 , stdev 2 ) \mathcal{N}(0, \text{stdev}^2) N(0,stdev2) 表示均值为0标准差为 stdev \text{stdev} stdev 的高斯正态分布。 概述最简单的方法是从某个分布通常是均匀分布或正态分布中随机选取权重值。 代码实例 import torch import torch.nn as nn# 均匀分布初始化 def uniform_init(model):if isinstance(model, nn.Linear):nn.init.uniform_(model.weight, -1, 1)if model.bias is not None:nn.init.constant_(model.bias, 0)# 正态分布初始化 def normal_init(model):if isinstance(model, nn.Linear):nn.init.normal_(model.weight, mean0, std1)if model.bias is not None:nn.init.constant_(model.bias, 0)2. Xavier/Glorot 初始化 公式权重 w ∼ U ( − 6 n in n out , 6 n in n out ) w \sim \mathcal{U}(-\sqrt{\frac{6}{n_{\text{in}} n_{\text{out}}}}, \sqrt{\frac{6}{n_{\text{in}} n_{\text{out}}}}) w∼U(−nin​nout​6​ ​,nin​nout​6​ ​) 其中 U ( a , b ) \mathcal{U}(a, b) U(a,b) 表示均匀分布 n in n_{\text{in}} nin​ 是层输入的单元数 n out n_{\text{out}} nout​ 是层输出的单元数。 对梯度消失问题有优势。 论文(2010 PMLR) Understanding the difficulty of training deep feedforward neural networks原理考虑到输入和输出的方差目的是保持所有层的梯度大小大致相同。代码实例 def xavier_init(model):if isinstance(model, nn.Linear):nn.init.xavier_uniform_(model.weight)if model.bias is not None:nn.init.constant_(model.bias, 0)3. He/Kaiming 初始化 公式权重 w ∼ N ( 0 , 2 n in ) w \sim \mathcal{N}(0, \frac{2}{n_{\text{in}}}) w∼N(0,nin​2​) 其中 n in n_{\text{in}} nin​ 是层输入的单元数假设权重初始化为均值为0方差为 2 n in \frac{2}{n_{\text{in}}} nin​2​ 的正态分布。 Kaiming Normal也称为He Normal初始化是由何凯明等人在2015年提出的一种权重初始化方法旨在解决ReLU激活函数在深度神经网络中使用时的梯度消失或爆炸问题。这种方法考虑到了ReLU激活函数特性特别是其非零区域的分布特点从而提出通过调整初始化权重的方差来保持信号在前向传播和反向传播过程中的稳定。 论文(2015 ICCV) Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification原理Kaiming Normal 初始化的核心思想是根据网络层的输入单元数量即fan_in来调整权重的方差确保各层激活值的方差保持一致以此来避免在深层网络中出现梯度消失或爆炸的问题。具体来说该方法建议将权重初始化为均值为0方差为 2 / fan_in 2/\text{fan\_in} 2/fan_in的正态分布其中 fan_in \text{fan\_in} fan_in是权重矩阵中输入单元的数量。代码实例 def he_init(model):if isinstance(model, nn.Linear):nn.init.kaiming_uniform_(model.weight, modefan_in, nonlinearityrelu)if model.bias is not None:nn.init.constant_(model.bias, 0)4. SVD 初始化 公式无特定公式。SVD 初始化涉及对权重矩阵进行奇异值分解SVD然后根据需要重新组合以初始化网络权重。 SVD奇异值分解初始化是一种高级权重初始化技术它通过对权重矩阵应用奇异值分解来初始化神经网络。这种方法特别适用于需要保持输入数据特征或处理特定矩阵结构如正交性或特定范数的场合。 对RNN有比较好的效果。参考论文(2014 ICLR) Exact solutions to the nonlinear dynamics of learning in deep linear neural networks SVD 初始化的基本思想是将权重矩阵 W W W 分解为三个矩阵的乘积 W U Σ V T W U\Sigma V^T WUΣVT其中 U U U 和 V V V 是正交矩阵 Σ \Sigma Σ 是对角矩阵包含 W W W 的奇异值。初始化过程中可以通过调整 Σ \Sigma Σ 中的奇异值来控制权重矩阵的性质如其范数或分布特性从而影响模型的训练动态和最终性能。 代码实例 在PyTorch中实现SVD初始化可能涉及到使用torch.svd对权重矩阵进行奇异值分解然后根据分解结果来重构权重矩阵。以下是一个简化的示例 import torch import torch.nn as nndef svd_init(model):if isinstance(model, nn.Linear):U, S, V torch.svd(torch.randn(model.weight.shape))# 可以根据需要调整S中的奇异值model.weight.data torch.mm(U, torch.mm(torch.diag(S), V.t()))if model.bias is not None:nn.init.constant_(model.bias, 0)SVD初始化提供了一种灵活的方法来控制神经网络权重的特性尤其是在需要维护输入特征结构或优化训练稳定性的高级应用中。通过精确控制权重矩阵的奇异值研究者和工程师可以优化网络的初始化状态从而提高模型训练的效率和效果。然而由于其实现相对复杂通常仅在特定需求下采用此方法。 结论 权重初始化在神经网络训练中起着决定性的作用。选择合适的初始化方法可以显著提高训 练效率和模型性能。在实践中应根据模型的具体结构和使用的激活函数来选择最适合的初始化方法。以上提到的方法仅是众多初始化技术中的几种研究者和开发者可以根据需要选择或创新更适合自己模型需求的初始化策略。 本文撰写过程中使用到的其他参考资料 数据竞赛中如何优化深度学习模型
http://www.pierceye.com/news/553455/

相关文章:

  • 哪些网站可以做调查赚钱图片生成软件
  • 网站空间的管理wordpress vip system
  • 新思维网站北京住房建设部网站首页
  • 温州网站制作套餐麒麟网站建设
  • 淘宝接单做网站wordpress能做企业网站吗
  • 网站建设运营公众号运营合同app网站开发书籍下载
  • 网站seo流程网站开发开账务处理
  • 婚介网站方案长沙网络公司电话
  • 自助网站搭建系统做网站接电话一般要会什么
  • 雷州网站建设公司网站建设与管理说课ppt
  • 问答类网站怎么做wordpress 调取页面缩略图
  • 做电影资源网站手机版wordpress实例配置
  • 广西网站建设方案品牌官网方案
  • 游戏工作室网络组建方案seo81
  • 搭建个人网站的步骤温州专业微网站制作价格
  • 网站怎么做充值系统php图书管理系统网站开发
  • 多商家网站建设自助建站系统源码 资源网
  • 广州番禺网站制作公司哪家好文章网站建设
  • 漯河网站建设e辽宁身营商环境建设局网站
  • 营销网站建设套餐企业信息公示管理系统
  • 网站布局设计排版网站外部链接做多少合适呢
  • 成品网站 源码1688上海网站建设 找德华专业
  • 网站建设费用申报佛山电脑培训班哪里有
  • 免费网站服务器厦门网站建设推广哪家好
  • 青海海东平安县建设局网站如何建设旅游网站
  • 成都响应式网站开发百度里面的站长工具怎么取消
  • 手机购物网站设计广告设计有限公司
  • 新手制作网站wordpress lamp 教程
  • 响应式的网站做优化好吗wordpress删掉自豪
  • 做网站第一步创建网站根目录