参数初始化

xavier初始化: https://blog.csdn.net/VictoriaW/article/details/73000632

条件:优秀的初始化应该使得各层的激活值和梯度的方差在传播过程中保持一致

初始化方法:

  • 假设激活函数关于0对称,且主要针对于全连接神经网络。适用于tanh和softsign

He初始化:https://blog.csdn.net/xxy0118/article/details/84333635

  • 条件:正向传播时,状态值的方差保持不变;反向传播时,关于激活值的梯度的方差保持不变。
  • 适用于ReLU的初始化方法:

Drop out: https://blog.csdn.net/stdcoutzyx/article/details/49022443

https://zhuanlan.zhihu.com/p/38200980

dropout是指在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃,故而每一个mini-batch都在训练不同的网络。对于一个有N个节点的神经网络,有了dropout后,就可以看做是$2^n$个模型的集合了,但此时要训练的参数数目却是不变的。

没有dropout的神经网络 :

有dropout的神经网络:

上面的Bernoulli函数的作用是以概率系数p随机生成一个取值为0或1的向量,代表每个神经元是否需要被丢弃。

代码层面实现让某个神经元以概率p停止工作,其实就是让它的激活函数值以概率p变为0。比如我们某一层网络神经元的个数为1000个,其激活函数输出值为y1、y2、y3、......、y1000,我们dropout比率选择0.4,那么这一层神经元经过dropout后,1000个神经元中会有大约400个的值被置为0。

预测的时候,每一个单元的参数要预乘以p:

Batch Normalization

随着网络训练的进行,每个隐层的参数变化使得后一层的输入发生变化,从而每一批训练数据的分布也随之改变,致使网络在每次迭代中都需要拟合不同的数据分布,增大训练的复杂度以及过拟合的风险。

批量归一化方法是针对每一批数据,在网络的每一层输入之前增加归一化处理(均值为0,标准差为1),将所有批数据强制在统一的数据分布下。

批量归一化降低了模型的拟合能力,归一化之后的输入分布被强制为0均值和1标准差。比如下图,在使用sigmoid激活函数的时候,如果把数据限制到0均值单位方差,那么相当于只使用了激活函数中近似线性的部分,这显然会降低模型表达能力。

为此,作者又为BN增加了2个参数,用来保持模型的表达能力。 
于是最后的输出为: 
 其中$r^{(k)}$、$\beta^{(k)}$分别为缩放参数和偏移参数。
上述公式中用到了均值E和方差Var,需要注意的是理想情况下E和Var应该是针对整个数据集的,但显然这是不现实的。因此,作者做了简化,用一个Batch的均值和方差作为对整个数据集均值和方差的估计。 
整个BN的算法如下:

参考:

https://blog.csdn.net/mzpmzk/article/details/79839047

http://blog.csdn.net/shuzfan/article/details/50723877

https://arxiv.org/pdf/1502.03167.pdf

最新文章

  1. iOS 数据存储之SQLite3的使用
  2. 还原MySql数据库失败:max_allowed_packet 设置过小导致记录写入失败
  3. linux安装软件通常会做哪些事
  4. tomcat、腾讯云主机和微信
  5. jquery validate 指定错误内容的位置
  6. Coursera台大机器学习技法课程笔记03-Kernel Support Vector Machine
  7. Delphi经验总结(3)
  8. Python异常处理实例
  9. Tomcat绑定多个IP地址 多域名绑定
  10. JAVA 年老代收集器 第10节
  11. 读书笔记——thinking in java
  12. ELK5.0安装教程
  13. OOA、OOD、OOP分别是什么?
  14. QQ 相册后台存储架构重构与跨 IDC 容灾实践
  15. ●BZOJ 1272 [BeiJingWc2008]Gate Of Babylon
  16. UEFI rootkit 工具LoJax可以感染电脑主板(mainboard)
  17. 【20180111】【物流FM专访】贝业新兄弟李济宏:我们是如何做到大件家居B2C物流第一的?
  18. android控件RecyclerView中,如何显示自定义分割线以及最后一项去除分割线
  19. Mybaties 实现批量修改
  20. win10装MySQL5.7

热门文章

  1. Chrome 抓包:快速定位HTTP协议问题
  2. Spring4配置文件模板
  3. Servlet的常见错误
  4. git && github 相关
  5. 杂项-PIN:百科
  6. Vue知识整理16:单文件组件
  7. Octavia 创建 loadbalancer 的实现与分析
  8. Asp .Net Mvc在DeBug模式下设置自定义IP
  9. cocos2dx基础篇(14) 滚动视图CCScrollView
  10. java日常统计