Parameter Initializations in Deep Learning
全零初始化的问题:
在Linear Regression中,常用的参数初始化方式是全零,因为在做Gradient Descent的时候,各个参数会在输入的各个分量维度上各自更新。更新公式为:

而在Neural Network(Deep Learning)中,当我们将所有的parameters做全零初始化,根据公式:


可知,每一层的Zl均为0,如果使用sigmoid activation,则al的值都等于0.5。在反向传播时,误差值

因为有ω在里面,所以导致δ都变成了零,而我们用于做Gradient Descent的梯度

也就通通变为了零,从而,我们的Back propagation算法失效,参数矩阵将始终保持全零的状态,无法更新。
Parameter初始化过小的问题:
首先,Parameter过小,则经过一层层的Sigmoid Function,activation会越来越小,也就是最终的输出结果会非常接近于0。从Sigmoid的图形可以看出,在接近0的图形范围内,函数是类似线性的。所以Parameter初始化过小,会导致神经网络失去非线性功能。此外,在接近0点的部分,Sigmoid Activation的δ'(z)接近于1/4。同样地,在公式中:

随着Backpropagation的进行,δ指数级衰减。下式中的梯度会随着层数的回溯,越来越小,直至消失消失。

Parameter初始化过大的问题:
将导致Z值过大,从Sigmoid和Tanh图形可知,当Z值过大时,激励函数会饱和,其梯度将趋近为0。导致的结果是,参数将无法进行更新,或更新很慢。

而如果我们通过调整bias,使得各层的z始终为0,则会有梯度爆炸的问题。还是在下式中

各层的δ‘(z)都是1/4,但ω却是很大的值。所以随着Backpropagation的推进,前层的δ会越来越大,如果层数很多,甚至变为NAN。
深度学习中的主流初始化方法有Xavier和He
Xavier Initialization有三种选择,Fan_in:

Fan_out:

Average:

He Initialization:


Parameter Initializations in Deep Learning的更多相关文章
- Decision Boundaries for Deep Learning and other Machine Learning classifiers
Decision Boundaries for Deep Learning and other Machine Learning classifiers H2O, one of the leading ...
- Edge Intelligence: On-Demand Deep Learning Model Co-Inference with Device-Edge Synergy
边缘智能:按需深度学习模型和设备边缘协同的共同推理 本文为SIGCOMM 2018 Workshop (Mobile Edge Communications, MECOMM)论文. 笔者翻译了该论文. ...
- A Brief Overview of Deep Learning
A Brief Overview of Deep Learning (This is a guest post by Ilya Sutskever on the intuition behind de ...
- Rolling in the Deep (Learning)
Rolling in the Deep (Learning) Deep Learning has been getting a lot of press lately, and is one of t ...
- 深度学习Deep learning
In the last chapter we learned that deep neural networks are often much harder to train than shallow ...
- Deep learning:五十一(CNN的反向求导及练习)
前言: CNN作为DL中最成功的模型之一,有必要对其更进一步研究它.虽然在前面的博文Stacked CNN简单介绍中有大概介绍过CNN的使用,不过那是有个前提的:CNN中的参数必须已提前学习好.而本文 ...
- Deep Learning 19_深度学习UFLDL教程:Convolutional Neural Network_Exercise(斯坦福大学深度学习教程)
理论知识:Optimization: Stochastic Gradient Descent和Convolutional Neural Network CNN卷积神经网络推导和实现.Deep lear ...
- Deep Learning in a Nutshell: History and Training
Deep Learning in a Nutshell: History and Training This series of blog posts aims to provide an intui ...
- Deep Learning 13_深度学习UFLDL教程:Independent Component Analysis_Exercise(斯坦福大学深度学习教程)
前言 理论知识:UFLDL教程.Deep learning:三十三(ICA模型).Deep learning:三十九(ICA模型练习) 实验环境:win7, matlab2015b,16G内存,2T机 ...
随机推荐
- [THUPC2018] 弗雷兹的玩具商店
link $solution:$ 好久没写数据结构了,那就写道简单题吧! 可以发现 $m\leq 50$,所以可以去取在 $[l,r]$ 中当价格相同时愉悦值最高的做完全背包 $dp$ . 发现修改价 ...
- EasyUI之DataGrid分页
第一步创建分页DataGrid <table id="dg"> <thead> <tr> <th data-options="f ...
- 时间选择器moment格式化存在时差问题
时间选择器moment格式化存在时差问题解决方法: return moment(date).utc().zone(+6).format('YYYY-MM-DD')解决IE9时间选择器不能回显数据解决方 ...
- SwiftUI 里的 swift 闭包总结
创建 UI 时的闭包使用 在 SwiftUI 里闭包出现的频率特别高,这里我重新梳理了下闭包的定义. 关于闭包 闭包表达式语法的一般形式如下: {(parameters) -> return t ...
- CentOS安全防护实例
(1) 借助iptables的recent模块限制IP连接数 可以限制瞬间连接数过大的恶意IP(比如web应用防护,但不适用于LVS+Keepalived集群环境) 防护指令如下 # 允许一个客户端6 ...
- 伪类和伪元素,review
总是分不太清楚,然后容易忘记这个概念,项目中又遇到了,复习一遍 问题 1.哪些常用的伪类?伪元素? 怎么记: 除了4个伪元素,其他都是伪类 哪四个伪元素?:before :after :first-l ...
- MySQL concat函数里面单引号的使用
通过concat拼字符串的时候,如果语句里面需要使用单引号,可以使用两个单引号来代替一个引号
- 64bit assembly
16个通用寄存器: %rax %rbx %rcx %rdx %rsi %rdi %rbp %rsp %r8 %r9 %r10 %r11 %r12 %r13 %r14 %r15
- CSS3属性之 target伪类实现Tab切换效果
CSS3 :target伪类用来改变页面中锚链接URL所指向的ID样式 代码示例: <!DOCTYPE html> <html lang="en"> < ...
- mpvue实现微信小程序(欢迎踩坑)
最近刚使用mpvue完成了微信小程序的开发,写点东西,做个记录. 首先依旧是两个传送门: 微信小程序文档:[https://developers.weixin.qq.com/miniprogram/d ...