全零初始化的问题:

在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的更多相关文章

  1. 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 ...

  2. Edge Intelligence: On-Demand Deep Learning Model Co-Inference with Device-Edge Synergy

    边缘智能:按需深度学习模型和设备边缘协同的共同推理 本文为SIGCOMM 2018 Workshop (Mobile Edge Communications, MECOMM)论文. 笔者翻译了该论文. ...

  3. 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 ...

  4. 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 ...

  5. 深度学习Deep learning

    In the last chapter we learned that deep neural networks are often much harder to train than shallow ...

  6. Deep learning:五十一(CNN的反向求导及练习)

    前言: CNN作为DL中最成功的模型之一,有必要对其更进一步研究它.虽然在前面的博文Stacked CNN简单介绍中有大概介绍过CNN的使用,不过那是有个前提的:CNN中的参数必须已提前学习好.而本文 ...

  7. Deep Learning 19_深度学习UFLDL教程:Convolutional Neural Network_Exercise(斯坦福大学深度学习教程)

    理论知识:Optimization: Stochastic Gradient Descent和Convolutional Neural Network CNN卷积神经网络推导和实现.Deep lear ...

  8. 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 ...

  9. Deep Learning 13_深度学习UFLDL教程:Independent Component Analysis_Exercise(斯坦福大学深度学习教程)

    前言 理论知识:UFLDL教程.Deep learning:三十三(ICA模型).Deep learning:三十九(ICA模型练习) 实验环境:win7, matlab2015b,16G内存,2T机 ...

随机推荐

  1. spark复习笔记(3)

    在windows上实现wordcount单词统计 一.编写scala程序,引入spark类库,完成wordcount 1.sparkcontextAPI sparkcontext是spark功能的主要 ...

  2. 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: [ // ...

  3. Java开发桌面程序学习(10)——css样式表使用以及Button使用

    css 样式表使用 javafx中的css样式,与html的有些不一样,javafx中的css,是以-fx-background-color这种样子的,具体可以参考文档JavaFx css官方文档 简 ...

  4. Redis的客户端Jedis

    1. Redis支持消息的订阅与发布 Redis的消息订阅支持:先订阅后发布 订阅:subscribe c1 c2 发布:publish c2 hello-redis 支持通配符的订阅:psubscr ...

  5. 2019-3-9-通过-frp-开启服务器打开本地的-ZeroNet-服务器外网访问

    title author date CreateTime categories 通过 frp 开启服务器打开本地的 ZeroNet 服务器外网访问 lindexi 2019-03-09 11:47:4 ...

  6. Linux 部署或升级openssh7.5p1

    运维Linux系统,部署或升级openssh是经常面临的事,以下已redhat6和redhat7为例. 在redhat6中部署openssh会有什么坑,在编辑openssh源码包时会报一些类似的错误, ...

  7. 配置 Kibana

    Products Cloud Services Customers Learn downloads EN Docs Kibana 用户手册 » 搭建 » 配置 Kibana «  在 Windows ...

  8. Flask之路由相关

    1.装饰器中的参数 @app.route("/info", methods=["GET", "POST"]) def student_inf ...

  9. POJ 2960 S-Nim (sg函数)

    题目链接:http://poj.org/problem?id=2960 题目大意:给定数组S,接下来给出m个游戏局面.游戏局面是一些beads堆,先给出堆数,然后是每一堆中beads的数目.游戏规则是 ...

  10. 基于ELK Stack7.1.0构建多用户安全认证日志系统

    ​ 配置tls加密通信及身份验证,主要目的是为了确保集群数据安全.在es早期版本,安全认证相关功能都属于商业付费服务,一般普通公司如果集群部署在内网,基本上就忽略了这些安全认证,当然也可以通过Ngin ...