位置: IT常识 - 正文

深度学习参数初始化(二)Kaiming初始化 含代码

编辑:rootadmin
深度学习参数初始化(二)Kaiming初始化 含代码

推荐整理分享深度学习参数初始化(二)Kaiming初始化 含代码,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

目录

一、介绍

二、基础知识

三、Kaiming初始化的假设条件 

四、Kaiming初始化的简单的公式推导

1.前向传播

2.反向传播

五、Pytorch实现

深度学习参数初始化系列:

(一)Xavier初始化 含代码

(二)Kaiming初始化 含代码

一、介绍

        Kaiming初始化论文地址:https://arxiv.org/abs/1502.01852

        Xavier初始化在ReLU层表现不好,主要原因是relu层会将负数映射到0,影响整体方差。而且Xavier初始化方法适用的激活函数有限:要求关于0对称;线性。而ReLU激活函数并不满足这些条件,实验也可以验证Xavier初始化确实不适用于ReLU激活函数。所以何恺明在对此做了改进,提出Kaiming初始化,一开始主要应用于计算机视觉、卷积网络。

二、基础知识

1.假设随机变量X和随机变量Y相互独立,则有

        (1) 

 2.通过期望求方差的公式, 方差等于平方的期望减去期望的平方.

                (2)

 3.独立变量乘积公式

        (3)

4.连续性随机变量X的概率密度函数为f(x),若积分绝对收敛,则期望公式如下:

                        (4)

三、Kaiming初始化的假设条件 

        与Xavier初始化相似,Kaiming初始化同样适用Glorot条件,即我们的初始化策略应该使得各层的激活值和状态梯度的方差在传播过程中的方差保持一致;Kaiming初始化的参数仍然满足均值是0,且更新的过程中权重的均值一直是0。

        与Xavier初始化不同的,Kaiming初始化不在要求每层输出均值都是0(因为Relu这样的激活函数做不到啊);当然也不再要求f′(0)=1。

        Kaiming初始化中,前向传播和反向传播时各自使用自己的初始化策略,但是保证前向传播时每层的方差和反向传播时梯度的方差都是1。

四、Kaiming初始化的简单的公式推导

        我们使用卷积来进行推导,并且激活函数使用ReLU。

1.前向传播

        对于一层卷积,有:

                        (5)

         其中是激活函数前的输出,是权重的个数,是权重,是输入。

        根据(3)式,可将(4)式推导为:

        (6)

         根据假设,但是是上一层通过ReLU得到的,所以,则:

                (7)

 通过(2)式可得,则(7)式推导为:

深度学习参数初始化(二)Kaiming初始化 含代码

                        (8)

根据期望公式(4), 通过第层的输出来求此期望, 我们有, 其中表示ReLU函数.

                         (9)

其中表示概率密度函数,因为的时候,所以可以去掉小于0的区间, 并且大于0的时候,可推出:

                   (10)

因为是假设在0周围对称分布且均值为0, 所以也是在0附近分布是对称的, 并且均值为0(此处假设偏置为0),则

       (11) 

所以的期望是:

              (12)

 根据公式(2),因为的期望等于0,于是有:

则式(12)推导为:

                        (13)

将(13)式带入(8)式:

                        (14)

从第一层一直往前进行前向传播, 可以得到某层的方差为 :

这里的就是输入的样本, 我们会将其归一化处理, 所以, 现在让每层输出方差等于1, 即:

于是正向传播时,Kaiming初始化的实现就是下面的均匀分布:

高斯分布:

2.反向传播

因为反向传播的时候

                (15)

 其中表示损失函数对其求导. 为参数

根据(3)式:

 其中表示反向传播时输出通道数,最后得出

于是反向传播时,Kaiming初始化的实现就是下面的均匀分布:

高斯分布:

五、Pytorch实现import torchclass DemoNet(torch.nn.Module): def __init__(self): super(DemoNet, self).__init__() self.conv1 = torch.nn.Conv2d(1, 1, 3) print('random init:', self.conv1.weight) ''' kaiming 初始化方法中服从均匀分布 U~(-bound, bound), bound = sqrt(6/(1+a^2)*fan_in) a 为激活函数的负半轴的斜率,relu 是 0 mode- 可选为 fan_in 或 fan_out, fan_in 使正向传播时,方差一致; fan_out 使反向传播时,方差一致 nonlinearity- 可选 relu 和 leaky_relu ,默认值为 。 leaky_relu ''' torch.nn.init.kaiming_uniform_(self.conv1.weight, a=0, mode='fan_out') print('xavier_uniform_:', self.conv1.weight) ''' kaiming 初始化方法中服从正态分布,此为 0 均值的正态分布,N~ (0,std),其中 std = sqrt(2/(1+a^2)*fan_in) a 为激活函数的负半轴的斜率,relu 是 0 mode- 可选为 fan_in 或 fan_out, fan_in 使正向传播时,方差一致;fan_out 使反向传播时,方差一致 nonlinearity- 可选 relu 和 leaky_relu ,默认值为 。 leaky_relu ''' torch.nn.init.kaiming_normal_(self.conv1.weight, a=0, mode='fan_out') print('kaiming_normal_:', self.conv1.weight)if __name__ == '__main__': demoNet = DemoNet()
本文链接地址:https://www.jiuchutong.com/zhishi/300432.html 转载请保留说明!

上一篇:微信小程序获取用户openid(微信小程序获取手机号失败)

下一篇:学习CSS3,使用双旋转实现福到了的迎春喜庆特效(css3知识总结)

  • 修改微博昵称(修改微博昵称不可用怎么办)

    修改微博昵称(修改微博昵称不可用怎么办)

  • 抖音转发给朋友的顺序怎么删除(抖音转发给朋友的顺序是怎么来的)

    抖音转发给朋友的顺序怎么删除(抖音转发给朋友的顺序是怎么来的)

  • rx580相当于gtx什么卡

    rx580相当于gtx什么卡

  • 笔记本1660ti和2060买哪个(笔记本1660ti和2060玩游戏对比)

    笔记本1660ti和2060买哪个(笔记本1660ti和2060玩游戏对比)

  • 小米6不识别sim卡打不开wifi(小米6不能识别sim)

    小米6不识别sim卡打不开wifi(小米6不能识别sim)

  • 手机qq多久不动就显示离线(手机qq多久不动就显示4g)

    手机qq多久不动就显示离线(手机qq多久不动就显示4g)

  • mdb是什么格式(mdb格式的文件怎么打开编辑)

    mdb是什么格式(mdb格式的文件怎么打开编辑)

  • 键盘另起一行是哪个键(键盘打字另起一行)

    键盘另起一行是哪个键(键盘打字另起一行)

  • 怎么用邮箱发照片(怎么用邮箱发照片文件夹)

    怎么用邮箱发照片(怎么用邮箱发照片文件夹)

  • 淘宝直播一定要用电脑吗(淘宝直播一定要每天播吗)

    淘宝直播一定要用电脑吗(淘宝直播一定要每天播吗)

  • 微信卸载了咋重新登录(微信卸载了咋重新安装)

    微信卸载了咋重新登录(微信卸载了咋重新安装)

  • 充电线和数据线的区别(充电线和数据线怎么区分)

    充电线和数据线的区别(充电线和数据线怎么区分)

  • photoshop是什么意思(ps什么意思)

    photoshop是什么意思(ps什么意思)

  • ipad电池如何检测(苹果ipad电池检测在哪里)

    ipad电池如何检测(苹果ipad电池检测在哪里)

  • vivo手机怎么把软件下载到内存卡(vivo手机怎么把旧手机的东西导入新手机)

    vivo手机怎么把软件下载到内存卡(vivo手机怎么把旧手机的东西导入新手机)

  • 苹果x怎么关掉相机声音(苹果X怎么关掉下载密码)

    苹果x怎么关掉相机声音(苹果X怎么关掉下载密码)

  • word文字后面添加横线(word文字后面添加不了横线怎么办)

    word文字后面添加横线(word文字后面添加不了横线怎么办)

  • 苹果x设备信任不见了(苹果x设备信任在哪里)

    苹果x设备信任不见了(苹果x设备信任在哪里)

  • 苹果xr的三维触控在哪(苹果xr的三维触屏不灵敏)

    苹果xr的三维触控在哪(苹果xr的三维触屏不灵敏)

  • 内容水平居中怎么设置(内容水平居中怎么弄)

    内容水平居中怎么设置(内容水平居中怎么弄)

  • 迅雷发评论解除安全模式(迅雷取消评论)

    迅雷发评论解除安全模式(迅雷取消评论)

  • uber怎么用(uber怎么用paypal付款)

    uber怎么用(uber怎么用paypal付款)

  • 系统托盘中不显示网络图标怎么办(系统托盘图标禁用)

    系统托盘中不显示网络图标怎么办(系统托盘图标禁用)

  • 最轻便的蓝光刻录机是什么(最轻便的蓝光刻录机品牌)

    最轻便的蓝光刻录机是什么(最轻便的蓝光刻录机品牌)

  • 广告公司的税务
  • 出口免税收入的计税依据
  • 其他权益性资产包括哪些
  • 计提社保公积金的会计分录
  • 经营性项目应收减少额怎么算
  • 利税总额是应交还是已交
  • 企业为什么要进行环境分析
  • 事业单位之间调动需要多久
  • 银行承兑个人可以接受吗
  • 收不回来应收账款会计分录
  • 过期食品翻新
  • 哪些费用可以进项抵扣
  • 购买银行理财产品被骗怎么办
  • 所得税工资账载怎么算
  • 事业单位取得的财政拨款免税吗
  • 超市的商品进销表怎么做
  • 哪些税计入原材料费用
  • 给单位员工报销电话费怎么做账务处理
  • 电子税务局如何开票操作
  • 无租使用房产协议
  • 利润表里的其他业务利润怎么形成的
  • 收到的投资收益属于经营活动产生的现金流量吗
  • 固定资产质保金计入什么科目
  • 资本性支出计算公式为什么加折旧
  • 投资理财产品的优势和劣势
  • 2021新版win10
  • 怎么租办公室省钱
  • 其他现代服务业是什么
  • 什么是债券持有人
  • 建筑企业如何预缴企业所得税
  • nvsvc.exe - nvsvc是什么进程 有什么用
  • macOS Big Sur 11.3 开发者预览版/公测版 Beta 6正式发布
  • 金银首饰零售业必须为一般纳税人吗
  • 租赁经营账务处理办法
  • 建房转让协议书
  • 企业间合作建房且建成后自用
  • 如何收取会员会费才合法
  • 房产税和土地使用税什么时候申报
  • 行政单位基建账户可以建立吗为什么
  • 农民专业合作社属于什么企业类型
  • 固定资产多少可以一次摊销
  • 不得免征和抵扣税额是什么意思
  • 物权转移手续是什么
  • phpcms技术
  • 土地给人家种了几十年还能要回来吗
  • sql 封装
  • 小规模纳税人增值税申报表怎么填
  • 残保金账务处理会计科目
  • 存货资产评估方法
  • 最新出口退税申报需要哪些资料
  • 固定资产超过多少入账
  • 商贸公司用购进产品吗
  • 税务开票金额每个月有限制吗
  • 代理进口货物如何确定增值税纳税人
  • 出差补助办法
  • 废料卖出算哪种收入
  • 会计凭证装订时间法律规定
  • 商品降价如何进行投诉
  • 应收应付可以相互冲销吗
  • 办理营业执照需要什么条件
  • 权益性投资包括哪些
  • bios关闭光驱设置
  • 如何升级mac系统到10.12
  • linux命令合集
  • 本地电脑的网卡物理地址
  • linux命令su-
  • unity3ds
  • linux shell脚本攻略(第3版)
  • python中安装模块的命令
  • 显示解析包时出错是怎么回事
  • jquery中什么方法用于模拟光标悬停事件
  • jquery实现轮播图步骤
  • js如何使用
  • 英语流利说的简单介绍
  • 外经证怎么核验
  • 陕西社保费管理客户端初始密码
  • 深圳市税务局发短信是真的吗
  • 生猪屠宰企业报价
  • 七创社开放时间
  • 地方税务局几点下班
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设