位置: 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知识总结)

  • vivo NEX 3s屏幕是什么材质的(vivo nex 3s是什么屏幕)

    vivo NEX 3s屏幕是什么材质的(vivo nex 3s是什么屏幕)

  • vivo NEX 3s的摄像头一共有多少个(vivo nex 3 相机)

    vivo NEX 3s的摄像头一共有多少个(vivo nex 3 相机)

  • 华为荣耀10为什么接不了电话(华为荣耀10为什么会自动重启)

    华为荣耀10为什么接不了电话(华为荣耀10为什么会自动重启)

  • 苹果耳机充电盒充不进电(苹果耳机充电盒掉了怎么找回)

    苹果耳机充电盒充不进电(苹果耳机充电盒掉了怎么找回)

  • 开店宝和美团商家区别(开店宝是美团吗)

    开店宝和美团商家区别(开店宝是美团吗)

  • 苹果证书掉了怎么修复(苹果证书掉了怎么办)

    苹果证书掉了怎么修复(苹果证书掉了怎么办)

  • 微信记录可查几年的(微信记录能查到多久的)

    微信记录可查几年的(微信记录能查到多久的)

  • 苹果11怎么开双声道(苹果11怎么开双卡)

    苹果11怎么开双声道(苹果11怎么开双卡)

  • 打印机可以扫描吗(打印机可以扫描但是打印没反应怎么办)

    打印机可以扫描吗(打印机可以扫描但是打印没反应怎么办)

  • 苹果最小的手机(苹果最小的手机尺寸是多少)

    苹果最小的手机(苹果最小的手机尺寸是多少)

  • airpods pro什么时候出的(airpods pro什么时候出三代)

    airpods pro什么时候出的(airpods pro什么时候出三代)

  • 苹果手机接不了电话但可以打出去(苹果手机接不了陌生电话怎么解除)

    苹果手机接不了电话但可以打出去(苹果手机接不了陌生电话怎么解除)

  • win10专业版16g内存显示8g(windows10专业版多少内存)

    win10专业版16g内存显示8g(windows10专业版多少内存)

  • mate30有50倍变焦吗(华为mate30pro50倍变焦)

    mate30有50倍变焦吗(华为mate30pro50倍变焦)

  • 华为畅享10和10e区别(华为畅享10和10e哪个好)

    华为畅享10和10e区别(华为畅享10和10e哪个好)

  • wps宏有什么用(wps office的宏)

    wps宏有什么用(wps office的宏)

  • 键盘上end键的作用(键盘end键是哪个)

    键盘上end键的作用(键盘end键是哪个)

  • 荣耀v20支持屏幕解锁吗(荣耀v20屏幕是)

    荣耀v20支持屏幕解锁吗(荣耀v20屏幕是)

  • 无线网开启ap是干嘛用的(无线网络中的ap)

    无线网开启ap是干嘛用的(无线网络中的ap)

  • 小米mix3支持27w快充吗(小米mix3支持内存卡扩展吗)

    小米mix3支持27w快充吗(小米mix3支持内存卡扩展吗)

  • 苹果手机下载音乐在哪(苹果手机下载音乐怎么下载到本地)

    苹果手机下载音乐在哪(苹果手机下载音乐怎么下载到本地)

  • 探探学生认证有啥用(探探学生认证有优惠吗)

    探探学生认证有啥用(探探学生认证有优惠吗)

  • 邮箱过期文件怎么恢复(邮箱过期文件怎么找回来)

    邮箱过期文件怎么恢复(邮箱过期文件怎么找回来)

  • 滴滴顺风车什么时候上线(滴滴顺风车什么车型都可以吗)

    滴滴顺风车什么时候上线(滴滴顺风车什么车型都可以吗)

  • vivox9s能万能遥控吗(vivos9万能遥控)

    vivox9s能万能遥控吗(vivos9万能遥控)

  • 苹果8p美版和国行的区别(美版iphone8p和国行有什么区别)

    苹果8p美版和国行的区别(美版iphone8p和国行有什么区别)

  • 显卡坏了能开机吗(显卡坏了能开机进入安全模式)

    显卡坏了能开机吗(显卡坏了能开机进入安全模式)

  • 为什么搜不到蓝牙耳机(为什么搜不到蓝牙鼠标设备)

    为什么搜不到蓝牙耳机(为什么搜不到蓝牙鼠标设备)

  • 微信支付收款受限七天(微信支付收款受限多久解除)

    微信支付收款受限七天(微信支付收款受限多久解除)

  • YOLOv8代码上线,官方宣布将发布论文,附精度速度初探和对比总结(yolov1代码)

    YOLOv8代码上线,官方宣布将发布论文,附精度速度初探和对比总结(yolov1代码)

  • pinia和vuex的区别 Vuex 和 Pinia 的优缺点 何时使用Pinia,何时使用Vuex(vuex和bus)

    pinia和vuex的区别 Vuex 和 Pinia 的优缺点 何时使用Pinia,何时使用Vuex(vuex和bus)

  • React(六) —— redux(react+)

    React(六) —— redux(react+)

  • 已经抵扣的进项税额转出怎么申报
  • 全成本核算优缺点
  • 电子税务局实名核验失败怎么回事啊
  • 财产租赁合同金额含税吗
  • 劳务公司包工包料的法律法规
  • 小微小型微利企业减按20%的所得税税率征收企业所得税
  • 发票上的收款人负法律责任吗
  • 购入原材料结转采购成本的会计分录
  • 信息服务费可以计入办公费吗
  • 事业单位跨年度错账调整
  • 网上银行 电子回单
  • 盈余公积的用途是什么
  • 公司购买网络交换机入什么会计科目
  • 新办企业汇算清缴流程
  • 如何查一张发票有没有作废
  • 购车合同起什么作用
  • 物业公司小规模纳税人如何报税
  • 研究开发费用扣除标准
  • 技术服务费增值税申报表填写
  • 增加采购发票的方法
  • 长期资产的含义
  • 公积金代扣时会扣多少
  • 开发企业土地使用税计算方法
  • 工程安装人工外包合同怎么写
  • 清除cookies有什么用
  • php数组函数输出《咏雪》里有多少"片"字
  • 用公司资质应交什么费用
  • 存入保证金账户分录怎么写
  • mac怎么切换输入方式
  • 原始凭证丢了怎么查帐
  • gws.exe是啥
  • 怎么做委托银行业务
  • 国家纪念品
  • 变动成本法计算营业利润
  • 资本金投资回报率
  • 以前年度损益科目代码
  • 微信公众号php开发教程
  • 2023年最新最全税率表
  • bash详解
  • 缴纳增值税会计科目
  • python闭包主要解决什么问题
  • 应收账款计提坏账准备方法
  • 体育用品账务处理
  • 设计模式代理模式
  • .dot python
  • phpcms api
  • 研发人员旅游能计入研发费用吗
  • 本期应补退税额为负数怎么申报
  • 服务业按什么结算工资
  • 限额领料单属于什么凭证
  • SQL Server 2008用'sa'登录失败,启用'sa'登录的解决办法
  • 进项税额不得抵扣的情况
  • 公司进项抵税
  • 小规模纳税人工程款税率是多少
  • 应付劳务费怎么做账
  • 计提生产经营所得
  • 退休人员的返聘合同
  • 发票开错一个字还能报销吗?
  • 逾期未认证的增值税发票处理办法
  • pe市盈率法
  • 委托加工物资加工费的增值税计入成本吗
  • 转帐支票遗失怎么办
  • 劳务支出如何做账
  • 一般纳税人可抵扣的票证有哪些?
  • vmwares
  • win10自带邮箱无法使用126
  • 简单总结译码器和数据选择器的作用
  • javascript全选反选
  • cocos2dx游戏开发教程
  • 同一个文件夹中的文件可以同名吗
  • 基于JAVASCRIPT实现的可视化工具是
  • python读取grib
  • nodejs爬虫技术
  • js parseint parsefloat
  • bash shell 语法
  • javascript新手教程
  • 安卓短信提示
  • javascript模块化
  • 纳税人初次购买税控设备
  • 高速通行费发票查验
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设