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

  • 抖音时空旅行多少抖币(抖音时空旅行多少票可以买)

    抖音时空旅行多少抖币(抖音时空旅行多少票可以买)

  • keil如何在c文件中添加h文件(keil怎么运行c语言)

    keil如何在c文件中添加h文件(keil怎么运行c语言)

  • windows defender是啥(Windows Defender是第三方软件吗)

    windows defender是啥(Windows Defender是第三方软件吗)

  • 百度贴吧首页推荐内容如何设置(百度贴吧首页推荐直播怎么关闭)

    百度贴吧首页推荐内容如何设置(百度贴吧首页推荐直播怎么关闭)

  • 华为p30充电时间(华为p30充电时间一般多久充满)

    华为p30充电时间(华为p30充电时间一般多久充满)

  • 互连众信是什么(互连众信是哪个贷款的)

    互连众信是什么(互连众信是哪个贷款的)

  • 抖音视频自动显示歌词怎么弄(抖音视频会自己动)

    抖音视频自动显示歌词怎么弄(抖音视频会自己动)

  • pr比特率越高越清晰吗(pr比特率调到多少不影响画质)

    pr比特率越高越清晰吗(pr比特率调到多少不影响画质)

  • 虎牙怎么放大主播头像(虎牙怎么放大主播视频)

    虎牙怎么放大主播头像(虎牙怎么放大主播视频)

  • airpods可以连windows系统的电脑吗(airPods可以连上别的牌子吗)

    airpods可以连windows系统的电脑吗(airPods可以连上别的牌子吗)

  • 微信卸载重装后好友还在嘛(微信卸载重装后群聊找不到了怎么办)

    微信卸载重装后好友还在嘛(微信卸载重装后群聊找不到了怎么办)

  • 在windows7中剪贴板是(在windows7中,剪贴板是)

    在windows7中剪贴板是(在windows7中,剪贴板是)

  • 二级目录如何设置(二级目录怎么变成一级目录)

    二级目录如何设置(二级目录怎么变成一级目录)

  • 锐龙3700u相当于酷睿哪一款(锐龙3700u相当于英特尔哪款处理器)

    锐龙3700u相当于酷睿哪一款(锐龙3700u相当于英特尔哪款处理器)

  • qq等级加速卡在哪使用(qq等级加速卡在哪看还有几天)

    qq等级加速卡在哪使用(qq等级加速卡在哪看还有几天)

  • oppor15处理器是什么(oppor 15的处理器)

    oppor15处理器是什么(oppor 15的处理器)

  • 华为p30应用市场闪退怎么办(华为P30应用市场)

    华为p30应用市场闪退怎么办(华为P30应用市场)

  • blackview是什么手机(blackswan是什么意思)

    blackview是什么手机(blackswan是什么意思)

  • 图文识字在微信哪里(微信图文识字有次数限制吗)

    图文识字在微信哪里(微信图文识字有次数限制吗)

  • mq8h2ch a是什么版本(mq8j2ch/a是什么版本多少钱)

    mq8h2ch a是什么版本(mq8j2ch/a是什么版本多少钱)

  • 怎么看内存条颗粒(怎么看内存条颗粒品牌)

    怎么看内存条颗粒(怎么看内存条颗粒品牌)

  • 窗口最小化快捷键是什么?(使窗口最小化的快捷键)

    窗口最小化快捷键是什么?(使窗口最小化的快捷键)

  • Linux下nfs服务器搭建技巧(linux服务器nfs安装)

    Linux下nfs服务器搭建技巧(linux服务器nfs安装)

  • 税控盘开票软件访问数据库错误
  • 我国当前税制结构的基本情况是怎样的
  • 装修费用应该计入什么科目
  • 差额征收如何做账
  • 小规模纳税人个税是月报还是季报
  • 个人提供劳务报酬需要到税务局开发票吗?
  • 项目差旅费能计入项目费用吗
  • 邮寄文件快递费账务处理
  • 国内旅客运输票据
  • 可供出售金融资产是指什么
  • 个税专项附加扣除
  • 当期留抵税额怎么计算
  • 项目部租房办公应计入什么费用
  • 借款可以转注资款吗
  • 未按期预缴企业个税
  • 房地产开发预提费用
  • 管道租赁合同怎么写
  • 公司亏损没有收入怎么办
  • 净利润含不含所得税
  • 国税代开增值税专票开错了如何处理?
  • 公户转账给个人没有票
  • 个人生产经营所得
  • 总分机构类型怎么选
  • 小微企业增值税税率
  • 赞助贫困学生的语句
  • ca证书延期不了
  • 资源综合利用企业税收优惠
  • 华为折叠手机mateXs
  • 简单介绍linux
  • 输入法自定义按键位置
  • 笔记本如何进行截图
  • 汇算清缴无形资产摊销填哪里
  • 金税三期怎么更正申报
  • 戛纳,法国 (© Manjik Photography/Alamy)
  • 公积金提取条件和标准
  • php入门例子
  • 营改增建筑企业增值税
  • 存货按实际成本计价是指每种存货的收发结存
  • 弥补以前年度亏损最多几年
  • 结霜的早晨
  • php访问数据库的一般步骤
  • 工资零申报3个月后不能申报了吗
  • 支付属于借方吗?
  • 以我为主题画一幅画
  • 出差补助需要发工资吗
  • vue router怎么传值
  • 微信小程序在哪里打开
  • php的难点
  • 罚款是否需要开证明
  • 货运代理约柜费怎么算
  • 分公司在外地,企业怎么交税
  • 税费减免政策2020
  • 坏账损失计入损益表
  • 畜牧业科技公司
  • 应税货物销售额含税吗
  • 小规模纳税人的企业所得税税率
  • 资产负债表调整事项
  • 融资租赁租出的固定资产账务处理
  • 社会保险中断后还可以续保吗
  • 医院产生的相关费用
  • 兼职会计做什么工作
  • 高危补丁该不该修补
  • 对于微软用户来说,为了防止计算机意外故障
  • 怎么修改ubuntu的ip地址
  • dmidecode命令
  • centos7搜索
  • windos8怎么样
  • 微软安全信息如何替换
  • linux awk '{print $0}'
  • win8怎么样的
  • OfcPfwSvc.exe - OfcPfwSvc是什么进程 有什么用
  • linux系统怎么访问网页
  • window10升级不了
  • javascript解析器
  • js如何获取url
  • centos python2.7升级到3.7
  • 美国税务制度
  • 电子税务局怎么添加开票员
  • 个人所得税预扣预缴办法
  • “老师你好”
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设