前言

深度学习中参数的初始化也有很多trick,这些trick却对训练结果起到了至关重要的作用,
本文介绍一个权值初始化的策略。

介绍

针对神经网络权值初始化许多的方法,其中最常用的方法是用随机数进行初始化。
用代码表示就是W=randn(D,H),其中randn从均值为0,标准差为1的单位高斯分布中采样,因此神经节点
在初始化时有一个随机的方向。

这种初始化有一个问题就是,每个神经元节点输出值的方差会随着神经元节点输入样本的数量而增加。下面用公式说明这个问题。

Var(s)=Var(∑inwixi)=∑inVar(wixi)=∑in[E(wi)]2Var(xi)+[E(xi)]2Var(wi)+Var(xi)Var(wi)=∑inVar(xi)Var(wi)=(nVar(w))var(x)(1)(2)(3)(4)(5)(1)Var(s)=Var(∑inwixi)(2)=∑inVar(wixi)(3)=∑in[E(wi)]2Var(xi)+[E(xi)]2Var(wi)+Var(xi)Var(wi)(4)=∑inVar(xi)Var(wi)(5)=(nVar(w))var(x)

其中第3步到第4步我们假设输入值均值为0,即 E[xi]=E[wi]=0E[xi]=E[wi]=0
当然一般而言输入值均值不会为0,例如采样ReLU作为激活函数的话均值恒大于0。
第4到第5步我们假设所有 wi,xiwi,xi是独立同分布的。
每一步的推导都是根据方差相关性质得出。
其中第2步到第3步需要解释一下:

Var(XY)=E(X2Y2)−E2(XY)=E(X2)E(Y2)−(E(X)E(Y))2=(E2(X2)+Var(X))∗(E2(Y2)+Var(Y))−E2(X)E2(Y)=E2(X)Var(Y)+E2(Y)Var(X)+Var(X)Var(Y)(6)(7)(8)(9)(6)Var(XY)=E(X2Y2)−E2(XY)(7)=E(X2)E(Y2)−(E(X)E(Y))2(8)=(E2(X2)+Var(X))∗(E2(Y2)+Var(Y))−E2(X)E2(Y)(9)=E2(X)Var(Y)+E2(Y)Var(X)+Var(X)Var(Y)

从上面可以看出,如果我们希望ss与xx有相同的方差那么ww在初始化是应该乘以1/n−−−√

1/n,即W=randn(D,H)/sqrt(n)

DL神经网络权值初始化相关推荐

  1. Tensorflow:BP神经网络权值初始化

    一.Tensorflow入门 1.计算图: 每一个计算都是计算图上的一个结点,而节点之间的边描述了计算之间的依赖关系. 支持通过tf.Graph生成新的计算图,不同计算图上的张量和运算不会共享. Te ...

  2. caffe中权值初始化方法

    参考:https://www.cnblogs.com/tianshifu/p/6165809.html 首先说明:在caffe/include/caffe中的 filer.hpp文件中有它的源文件,如 ...

  3. 3.6 权值初始化-机器学习笔记-斯坦福吴恩达教授

    权值初始化 0值初始化 在逻辑回归中,我们通常会初始化所有权值为 0 ,假如在如下的神经网络也采用 0 值初始化: 则可以得到: a1(1)=a2(2)a^{(1)}_1=a^{(2)}_2a1(1) ...

  4. PyTorch框架学习十一——网络层权值初始化

    PyTorch框架学习十一--网络层权值初始化 一.均匀分布初始化 二.正态分布初始化 三.常数初始化 四.Xavier 均匀分布初始化 五.Xavier正态分布初始化 六.kaiming均匀分布初始 ...

  5. Pytorch —— 权值初始化

    1.梯度消失与爆炸 这里使用一个三层的全连接网络,现在观察一下第二个隐藏层W2W_2W2​的权值的梯度是怎么求取的. 根据链式求导法则可以知道,W2W_2W2​的求导如下: H2=H1∗W2\math ...

  6. Lecture6:激活函数、权值初始化、数据预处理、批量归一化、超参数选择

    目录 1.最小梯度下降(Mini-batch SGD) 2.激活函数 2.1 sigmoid 2.2 tanh 2.3 ReLU 2.4 Leaky ReLU 2.5 ELU 2.6 最大输出神经元 ...

  7. 深度学习--权值初始化

    什么是权值初始化 在神经网络的前向传播的过程中,需要设置输入到输出的权重. 为什么要权值初始化 正确的权值初始化可以促进模型的快速收敛,不正确的权值初始化可能使得模型在前向传播是发生发生信息消失,或在 ...

  8. 神经网络权值是什么意思,神经网络权重取值范围

    人工神经网络里的权值和权向量是什么意思啊?? 神经网络权值的具体含义是什么 神经网络权值怎么确定? 神经网络的权值是通过对网络的训练得到的.如果使用MATLAB的话不要自己设定,newff之后会自动赋 ...

  9. 权值初始化的常用方法

    为什么要进行权值初始化 深度神经网络经常会遇到梯度消失或者梯度爆炸现象.为什么会出现这种现象呢?熟悉链式求导法则的大家都知道,梯度是一些量的连乘,这些当中最重要的就是模型的输出.如果这时,模型的输出过 ...

  10. 深度学习 vs. 大数据:神经网络权值的版权属于谁?

     深度学习 vs. 大数据:神经网络权值的版权属于谁? width="22" height="16" src="http://hits.sinaj ...

最新文章

  1. 听完李厂长和雷布斯在乌镇讲AI段子,我突然理解为什么这两个男人选择在一起了
  2. hibernate oracle 读写分离_利用FDW进行ORACLE到Postgresql的数据迁移
  3. Spring Boot中实现跨域的五种方式
  4. 基于matlab_simulink汽车三自由度模型仿真
  5. Hibernate基本概念
  6. “睡服”面试官系列第二篇之promise(建议收藏学习)
  7. Java总结:正则表达式进行校验
  8. 非线性动力学_非线性科学中的现代数学方法:综述
  9. 蚂蚁科技 Service Mesh 落地实践与挑战 | GIAC 实录
  10. python随堂技术演讲时间表
  11. python怎么一步步调试_PyCharm入门第一步(二)——调试第一个Python应用程序
  12. 什么是技术档案(Technical Archives)?
  13. python离线_python 离线一个网站
  14. 华中计算机基础试题,华中科技大学2009大学计算机基础考试试题a
  15. 显卡ai性能测试软件,让AI帮助您自动超频。 Zotac RTX 2080Ti显卡性能测试
  16. 如何把Win7系统桌面上的内容保存在非系统盘
  17. dmp(数据管理平台)是什么?
  18. ECM 手机MIC电路简单设计描述
  19. 【题解】P2916 [USACO08NOV]安慰奶牛Cheering up the Cow-C++
  20. ceph分布式存储-常见 PG 故障处理

热门文章

  1. 《可信计算的研究与发展》;C-Rank:一种Deep Web数据记录可信度评估方法
  2. actionbar与viewpager的联合使用(android 3.0 ,level 11以上)
  3. VS2010与.NET4系列 13. ASP.NET 4 SEO 改进
  4. C# 线程手册 第三章 使用线程 Monitor.Wait() 和 Monitor.Pulse()
  5. BGSOUND与EMBED的区别
  6. springmvc和layui富文本编辑器实时上传图片功能实现
  7. thinkphp多表查询之join方法
  8. 深职院c语言考试试卷,深职院第1章C语言基础与入门教学.ppt
  9. 看书学python靠谱吗_自学Python靠谱吗?
  10. Mysql之wait_timeout参数生效办法