权重的维度保持为 2 的幂

即便是运行最先进的深度学习模型,使用最新、最强大的计算硬件,内存管理仍然在字节(byte)级别上进行。所以,把参数保持在 64, 128, 512, 1024 等 2 的次方永远是件好事。这也许能帮助分割矩阵和权重,导致学习效率的提升。当用 GPU 运算,这变得更明显。

权重初始化 (Weight Initialization)

永远用小的随机数字初始化权重,以打破不同单元间的对称性(symmetry)。但权重应该是多小呢?推荐的上限是多少?用什么概率分布产生随机数字?

当使用 Sigmoid 激励函数时,如果权重初始化为很大的数字,那么 sigmoid 会饱和(尾部区域),导致死神经元(dead neurons)。如果权重特别小,梯度也会很小。因此,最好是在中间区域选择权重,比如说那些围绕平均值均衡分布的数值。
参数初始化应该使得各层激活值不会出现饱和现象且激活值不为0。我们把这两个条件总结为参数初始化条件:

初始化必要条件一:各层激活值不会出现饱和现象。
初始化必要条件二:各层激活值不为0。

tensorflow几种普通的参数初始化方法

1.  tf.constant_initializer() 常数初始化
2.  tf.ones_initializer() 全1初始化
3. tf.zeros_initializer() 全0初始化
4. tf.random_uniform_initializer() 均匀分布初始化
5. tf.random_normal_initializer() 正态分布初始化
6. tf.truncated_normal_initializer() 截断正态分布初始化
7. tf.uniform_unit_scaling_initializer() 这种方法输入方差是常数
8. tf.variance_scaling_initializer() 自适应初始化
9. tf.orthogonal_initializer() 生成正交矩阵

Xavier初始化和 MSRA初始化(He初始化)

1、Xavier初始化:
优点:这个初始化器是用来保持每一层的梯度大小都差不多相同。通过使用这种初始化方法,可以避免梯度在最后一层网络中爆炸或者弥散

条件:正向传播时,激活值的方差保持不变;反向传播时,关于状态值的梯度的方差保持不变。
初始化方法:
W∼U[−6ni+ni+1,6ni+ni+1]W \sim U\left[-\frac{\sqrt{6}}{\sqrt{n_{i}+n_{i+1}}}, \frac{\sqrt{6}}{\sqrt{n_{i}+n_{i+1}}}\right]W∼U[−ni​+ni+1​​6​​,ni​+ni+1​​6​​]
假设激活函数关于0对称,且主要针对于全连接神经网络。适用于tanh和softsign
论文地址:Understanding the difficulty of training deep feedforward neural networks

2、He初始化:
条件:正向传播时,状态值的方差保持不变;反向传播时,关于激活值的梯度的方差保持不变。
适用于ReLU的初始化方法:
W∼N[0,2nii^]W \sim N\left[0, \sqrt{\frac{2}{n_{i} \hat{i}}}\right]W∼N[0,ni​i^2​​]
适用于Leaky ReLU的初始化方法:
W∼N[0,2(1+α2)n^i]W \sim N\left[0, \sqrt{\frac{2}{\left(1+\alpha^{2}\right) \hat{n}_{i}} ]}\right.W∼N[0,(1+α2)n^i​2​]​
n^i=hi∗wi∗di\hat{n}_{i}=h_{i} * w_{i} * d_{i}n^i​=hi​∗wi​∗di​

hi,wih_{i}, w_{i}hi​,wi​分别表示卷积层中卷积核的高和宽,而di为当前层卷积核的个数。

论文地址:Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification

权重衰减(weight decay)

参考:权重衰减(weight decay)与学习率衰减(learning rate decay)

L2正则化的目的就是为了让权重衰减到更小的值,在一定程度上减少模型过拟合的问题,所以权重衰减也叫L2正则化。

L2正则化与权重衰减系数

L2正则化就是在代价函数后面再加上一个正则化项:

其中C0代表原始的代价函数,后面那一项就是L2正则化项,它是这样来的:所有参数w的平方的和,除以训练集的样本大小n。λ就是正则项系数,权衡正则项与C0项的比重。另外还有一个系数1/2,1/2 1/211经常会看到,主要是为了后面求导的结果方便,后面那一项求导会产生一个2,与1/2相乘刚好凑整为1。系数λ就是权重衰减系数

为什么可以给权重带来衰减

权重衰减(L2正则化)的作用

作用:权重衰减(L2正则化)可以避免模型过拟合问题。
思考:L2正则化项有让w变小的效果,但是为什么w变小可以防止过拟合呢?
原理:(1)从模型的复杂度上解释:更小的权值w,从某种意义上说,表示网络的复杂度更低,对数据的拟合更好(这个法则也叫做奥卡姆剃刀),而在实际应用中,也验证了这一点,L2正则化的效果往往好于未经正则化的效果。(2)从数学方面的解释:过拟合的时候,拟合函数的系数往往非常大,为什么?如下图所示,过拟合,就是拟合函数需要顾忌每一个点,最终形成的拟合函数波动很大。在某些很小的区间里,函数值的变化很剧烈。这就意味着函数在某些小区间里的导数值(绝对值)非常大,由于自变量值可大可小,所以只有系数足够大,才能保证导数值很大。而正则化是通过约束参数的范数使其不要太大,所以可以在一定程度上减少过拟合情况。

No bias decay:

一般来说,权重衰减会用到网络中所有需要学习的参数上面。然而仅仅将权重衰减用到卷积层和全连接层,不对biases,BN层的 \gamma, \beta 做权重衰减,效果会更好。
Bag of Tricks for Image Classification with Convolutional Neural Networks

深度学习优化策略---权重、权重初始化与权重衰减相关推荐

  1. [ 深度学习 ] —— 优化策略:(1) Label Smoothing Regularization(LSR)

    参考文献:本文第七节 转载链接:https://blog.csdn.net/lqfarmer/article/details/74276680

  2. 深度学习入门笔记(十一):权重初始化

    欢迎关注WX公众号:[程序员管小亮] 专栏--深度学习入门笔记 声明 1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献. 2)本文仅供学术交流,非商用.所以每一部分具 ...

  3. 深度学习分布式策略优化、显存优化、通信优化、编译优化综述

    综述 因为我个人最近在从事可能是AI领域对性能挑战最大的方向,自动驾驶领域,所以对整个深度学习训练的优化尤为关注,最近一直在学习相关内容,谨以此篇文章做一个总结. 我一直很看好深度学习训练优化这个方向 ...

  4. DL:关于深度学习常用数据集中训练好的权重文件(Deeplab v3、MobileNet、InceptionV3、VGG系列、ResNet、Mask R-CNN )下载地址集合(持续更新)

    DL:关于深度学习常用数据集中训练好的权重文件(Deeplab v3.MobileNet.InceptionV3.VGG系列.ResNet.Mask R-CNN )下载地址集合(持续更新) 目录 基于 ...

  5. 入门 | 一文简述深度学习优化方法——梯度下降

    http://www.sohu.com/a/241298990_129720 本文是一篇关于深度学习优化方法--梯度下降的介绍性文章.作者通过长长的博文,简单介绍了梯度下降的概念.优势以及两大挑战.文 ...

  6. 深度学习优化器中的变形金刚:Ranger21

    论文题目:RANGER21: A SYNERGISTIC DEEP LEARNING OPTIMIZER 论文链接:https://arxiv.org/pdf/2106.13731.pdf 1 Ran ...

  7. 深度学习 --- 优化入门六(正则化、参数范数惩罚L0、L1、L2、Dropout)

    前面几节分别从不同的角度对梯度的优化进行梳理,本节将进行正则化的梳理,所谓正则化,简单来说就是惩罚函数,在机器学习中的SVM中引入拉格朗日乘子法即引入惩罚项解决了约束问题,在稀疏自编码器中我们引入了惩 ...

  8. 深度学习 --- 优化入门五(Batch Normalization(批量归一化)二)

    批归一化真的可以解决内部协方差偏移问题?如果不能解决,那它的作用是什么?你所接受的整个深度学习教育是一个谎言吗?让我们来寻找答案吧! 开始之前...... 我想提醒一下,本文是深度学习优化算法系列的第 ...

  9. 深度学习优化算法的总结与梳理(从 SGD 到 AdamW 原理和代码解读)

    作者丨科技猛兽 转自丨极市平台 本文思想来自下面这篇大佬的文章: Juliuszh:一个框架看懂优化算法之异同 SGD/AdaGrad/Adam https://zhuanlan.zhihu.com/ ...

  10. 大梳理!深度学习优化算法:从 SGD 到 AdamW 原理和代码解读

    ‍ 作者丨知乎 科技猛兽  极市平台 编辑 https://zhuanlan.zhihu.com/p/391947979 本文思想来自下面这篇大佬的文章: Juliuszh:一个框架看懂优化算法之异同 ...

最新文章

  1. esriFeatureType与esriGeometryType的区别与联系
  2. ABAP如何检查字符串是否为日期或时间格式
  3. 新手学java_新手如何学习Java
  4. 【渝粤教育】国家开放大学2018年春季 8039-22T二手车评估 参考试题
  5. OJ1086: ASCII码排序(多实例测试)(C语言)
  6. c++水平制表符怎么用_怎么才能把字写得好看一些?这四个方法用对了,水平会提升...
  7. 中国已与36个国家(地区)海关实现“经认证的经营者”(AEO)互认
  8. 2011年 7月6日の朝会文章 手塚 治虫
  9. vc ++ 如何做界面开发?
  10. datetime对应的jdbc mysql_Java连接MySQL数据库
  11. 2022 CVPR 三维人体重建相关论文汇总(3D Human Reconstruction)
  12. iphone ping_如何在iPhone上运行Ping(网络诊断)
  13. 题目29 英文输入法单词联想
  14. java微信公众号图文消息编辑器,如何使用微信公众号自带的编辑器做出简洁舒适的图文排版...
  15. Arangodb Basic CRUD
  16. 磁盘转换|如何将mbr转换成gpt?
  17. 毕业设计之 --- 基于大数据分析的金融产品销售预测分析
  18. MaxCompute 助力衣二三构建智能化运营工具
  19. 杭州电子科技大学研究生计算机专业目录,杭州电子科技大学2017年硕士计算机学院招生目录.pdf...
  20. 《人类简史》笔记二——一场永远的革命

热门文章

  1. win10系统ltsc和服务器版哪个好,win10哪个版本最稳定流畅
  2. 微信小程序连接蓝牙打印机打印快递面单
  3. 吉林大学 校园网 认证相关 (SUSPEND)
  4. 计算几何——多边形面积
  5. 注册reg.html是什么,reg命令如何修改注册表?reg命令作用介绍
  6. PA塑料EN45545-2:2020R22 HL3防火检测的难易程度
  7. 如何批量清理DWG文件?DWG文件清理教程
  8. cv :: cvtColor
  9. vue项目中配置跨域
  10. 百度OCR图片内容识别