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机 ... 
随机推荐
- spark复习笔记(3)
			在windows上实现wordcount单词统计 一.编写scala程序,引入spark类库,完成wordcount 1.sparkcontextAPI sparkcontext是spark功能的主要 ... 
- Vue —— You may use special comments to disable some warnings. Use // eslint-disable-next-line to ignore the next line. Use /* eslint-disable */ to ignore all warnings in a file.问题
			方法1: 在build/webpack.base.conf.js文件中,找到module->rules中有关eslint的规则,注释或者删除掉就可以了 module: { rules: [ // ... 
- Java开发桌面程序学习(10)——css样式表使用以及Button使用
			css 样式表使用 javafx中的css样式,与html的有些不一样,javafx中的css,是以-fx-background-color这种样子的,具体可以参考文档JavaFx css官方文档 简 ... 
- Redis的客户端Jedis
			1. Redis支持消息的订阅与发布 Redis的消息订阅支持:先订阅后发布 订阅:subscribe c1 c2 发布:publish c2 hello-redis 支持通配符的订阅:psubscr ... 
- 2019-3-9-通过-frp-开启服务器打开本地的-ZeroNet-服务器外网访问
			title author date CreateTime categories 通过 frp 开启服务器打开本地的 ZeroNet 服务器外网访问 lindexi 2019-03-09 11:47:4 ... 
- Linux 部署或升级openssh7.5p1
			运维Linux系统,部署或升级openssh是经常面临的事,以下已redhat6和redhat7为例. 在redhat6中部署openssh会有什么坑,在编辑openssh源码包时会报一些类似的错误, ... 
- 配置 Kibana
			Products Cloud Services Customers Learn downloads EN Docs Kibana 用户手册 » 搭建 » 配置 Kibana « 在 Windows ... 
- Flask之路由相关
			1.装饰器中的参数 @app.route("/info", methods=["GET", "POST"]) def student_inf ... 
- POJ 2960 S-Nim (sg函数)
			题目链接:http://poj.org/problem?id=2960 题目大意:给定数组S,接下来给出m个游戏局面.游戏局面是一些beads堆,先给出堆数,然后是每一堆中beads的数目.游戏规则是 ... 
- 基于ELK Stack7.1.0构建多用户安全认证日志系统
			 配置tls加密通信及身份验证,主要目的是为了确保集群数据安全.在es早期版本,安全认证相关功能都属于商业付费服务,一般普通公司如果集群部署在内网,基本上就忽略了这些安全认证,当然也可以通过Ngin ... 
