美文网首页
参数权重初始化:凯明初始化函数

参数权重初始化:凯明初始化函数

作者: lizg | 来源:发表于2022-09-13 10:50 被阅读0次

问题:
  权重初始化对神经网络最终的收敛有重要影响。梯度爆炸:当损失函数梯度过大,导致损失函数在最小值附近振荡;梯度消失:当损失函数梯度过小,导致损失函数未到最小值就提前收敛。
  原则:如何找到合适的初始化函数?1.激活函数的均值为0;2.每一层激活值的方差应该保持一致。
  解决方案:Kaiming初始化函数:
    1)在给定层上创建适合权重矩阵的维度的张量,并用服从标准正态分布的随机数字填充(均值为0,方差为1);
    2)将每个随机选择的数字乘以sqrt(2/n),其中n是从上一层的输入给定层的传入连接数;
    3)偏置张量初始化为0。

1.Kaiming初始化函数的定义

import torch
import math
def kaiming(n, h):
    return torch.randn(n, h) * math.sqrt(2./n)
def relu(x):
    return x.clamp_min(0.)

2.凯明初始化的均值和标准差

x = torch.randn(512)
for i in range(100):
    w = kaiming(512, 512)
    x = relu(w @ x)
    if i%10 == 0:
        print(x.mean(), x.std())

相关文章

  • 参数权重初始化:凯明初始化函数

    问题:  权重初始化对神经网络最终的收敛有重要影响。梯度爆炸:当损失函数梯度过大,导致损失函数在最小值附近振荡;梯...

  • Day 3: 参数初始化

    神经网络参数初始化 神经网络的参数主要是权重(weights):W, 和偏置项(bias):b 1) 0初始化 不...

  • 轻松学习 JavaScript——第 3 部分:函数中的默认参数

    JavaScript函数可以有默认参数值。通过默认函数参数,你可以初始化带有默认值的正式参数。如果不初始化具有某些...

  • TensorFlow 基础(5)

    感知机(单层神经网络) 输入层 输出层: 初始化权重 初始化权重 设计模型 损失函数通过推导我们可以得到 变化率...

  • 损失函数不变

    损失函数不变 cost 由300降到1.8后维持不变 怀疑 权重初始化错误 正确,初始化失败,未能随机初始化时乘以...

  • #《FFMPEG》 学习 第一章

    ##初始化 ``` av_register_all 编解码初始化函数,此函数无参数返回 avcodec_regi...

  • 2019-04-30 Day9

    Day 9 6.1 参数的更新 6.2 权重初始值 6.2.1 权重初始化为0? 权值衰减是一种通过减小权重参数的...

  • rocketmq源码1-namesrv

    一 main函数入口 命令行参数解析处理 配置初始化 日志初始化 NamesrvController初始化和启动 ...

  • 第七章 网络优化与正则化(7.3,7.4,7.5)

    7.3 参数初始化 预训练初始化一个已经在大规模数据上训练过的模型可以提供一个好的参数初始值 随机初始化对称权重现...

  • pytorch之参数的初始化

    在训练神经网络模型的时候,权重的初始化十分重要,pytorch中提供了多种参数初始化的方法 初始化为某个常数 初始...

网友评论

      本文标题:参数权重初始化:凯明初始化函数

      本文链接:https://www.haomeiwen.com/subject/iczcortx.html