在花书《深度学习》中,第8.4节讲到参数的初始化策略,提到:通常来说,最好还是初始化每个单元使其和其他单元计算不同的函数。这或许有助于确保没有输入模式丢失在前向传播的零空间中,没有梯度模式丢失在反向传播的零空间中。

这里的“零空间”是怎么理解的?

根据个人理解,是这样的:

神经网络的所有参数串联起来可以组成一个向量,可称之为参数向量。参数向量的每个参数的变化可以形成不同的参数向量,所有的参数向量可以张成一个向量空间,该空间可以称之为参数空间。神经网络的训练就是在这个参数空间中寻找一个最佳的参数向量,使神经网络取得最好的效果。参数向量的搜索方式是梯度下降法。

如果,参数向量中的两个参数被初始化为相同的数值,而且恰巧这两个参数所在的神经元又有相同的输入,相同的计划函数。那么相同的参数就会导致这两个神经元有相同的输出。损失函数的计算方式与梯度的计算方式是一样的,进而这两个参数的更新梯度也就是一样的,即:这两个参数会被执行相同的更新,也即,这两个参数是完全相关的。

如果一个向量空间中,向量中的两个元素是完全相关的,那么,该向量空间中的所有向量实际上张成的是一个子空间。原本我们期望的参数空间是一个全空间,因为这种情况下,参数有更大的搜索空间。现在参数空间坍缩成了一个子空间,减小了参数的候选范围,这不是我们想要的。

进而,说到零空间。关于零空间的理解可以参考我之前的博客:零空间。这里只引关键的一点:一个算子的子空间维度(算子的秩)+该算子的零空间维度=该算子的全空间维度。

参数空间由全空间(假如是n维空间)坍缩为子空间时,算子的秩也由n变为小于n,算子的零空间也由0维提升为大于等于1维,即,输入空间(算子的原像空间)中的许多样本就会落入算子的零空间中。

对应的,因为神经网络算子不是满秩,进而神经网络算子的逆也不是满秩,所以神经网络算子的逆也存在维度大于等于1的零空间,所以,也会有梯度会落在反向传播算子的零空间中,导致梯度更新失败。

---------------------------------

后记:有些理解或描述不一定准确,望有发现错误者斧正。

如:输入空间时p维,输出空间是q维,那么,神经网络的算子可以用一个维度为p*q的矩阵表示。而共有n个参数,所以参数空间是n维的,进而,神经网络算子矩阵的秩也是n。一般n<<min{p.q}? 所以算子矩阵本身就有零空间?秩n的下降仅仅是增大了零空间?

。。。还是不太清晰

参数初始化策略中提到的零空间理解相关推荐

  1. C++构造函数的参数初始化表

    对于常量类型和引用类型的数据成员,不能在构造函数中用赋值语句直接赋值,C++提供初始化表进行置初值. 带有成员初始化表的构造函数的一般形式如下: 类名::构造函数名([参数表])[:(成员初始化表)] ...

  2. 神经网络中的网络优化和正则化(二)之参数初始化/数据预处理/逐层归一化

    转载请注明出处:https://thinkgamer.blog.csdn.net/article/details/101026786 博主微博:http://weibo.com/234654758 G ...

  3. DL之DNN优化技术:DNN中参数初始化【Lecun参数初始化、He参数初始化和Xavier参数初始化】的简介、使用方法详细攻略

    DL之DNN优化技术:DNN中参数初始化[Lecun参数初始化.He参数初始化和Xavier参数初始化]的简介.使用方法详细攻略 导读:现在有很多学者认为,随着BN层的提出,权重初始化可能已不再那么紧 ...

  4. pytorch中的参数初始化方法

    参数初始化(Weight Initialization) PyTorch 中参数的默认初始化在各个层的 reset_parameters() 方法中.例如:nn.Linear 和 nn.Conv2D, ...

  5. Pytorch 学习(6):Pytorch中的torch.nn Convolution Layers 卷积层参数初始化

    Pytorch 学习(6):Pytorch中的torch.nn  Convolution Layers  卷积层参数初始化 class Conv1d(_ConvNd):......def __init ...

  6. React中diff算法的理解

    React中diff算法的理解 diff算法用来计算出Virtual DOM中改变的部分,然后针对该部分进行DOM操作,而不用重新渲染整个页面,渲染整个DOM结构的过程中开销是很大的,需要浏览器对DO ...

  7. 卷积神经网络参数优化策略(一)

    前言 最近卷积神经网络(CNN)很火热,它在图像分类领域的卓越表现引起了大家的广泛关注.本文总结和摘录了Michael Nielsen的那本Neural Network and Deep Learni ...

  8. Paper:Xavier参数初始化之《Understanding the difficulty of training deep feedforward neural networks》的翻译与解读

    Paper:Xavier参数初始化之<Understanding the difficulty of training deep feedforward neural networks>的 ...

  9. python继承中的参数_python 继承中的super

    python继承中子类访问父类的方法(包括__init__)主要有两种方法,一种是调用父类的未绑定方法,另一种是使用super(仅仅对于新式类),看下面的两个例子: #coding:utf-8 cla ...

最新文章

  1. 做一个有姿态的女孩子
  2. 剑指offer 刷题 01
  3. Controller节点无法启动neutron-server
  4. 011_Cascader级联选择器
  5. FFmpeg再学习 -- FFmpeg解码知识
  6. [推荐]经典炸弹人手机游戏[年兽防御战2]
  7. navicat 只对比一张表的数据_Excel VBA批量新建工作表(对比数据透视表的使用)...
  8. centos 6 mysql 5.7.13 编译安装_Centos 6.5系统下编译安装PHP 7.0.13的方法
  9. Java 接口(interface)的三种类型
  10. 密码管理系统竞品分析报告
  11. 下拉列表支持拼音简拼、全拼、汉字搜索。
  12. Windows多个桌面切换快捷键
  13. 休闲一下---沙雕朋友圈的日常
  14. excel:超链接应用,快速生成目录的几个方法
  15. 大数据开发常用命令大全 大全
  16. python socket模块[errno 113_error:
  17. qbo_webi: cherry server 有效url
  18. java8u221_jdk8u221下载|jdk-8u221-windows-x64 官方免费版 下载_当下软件园_软件下载
  19. 国开《工业通风及除尘》终结性考试
  20. win8 开发之旅(19) --足球游戏揭秘5

热门文章

  1. ROS☞通过两种方法提取.bag中的图像数据
  2. android 导航自动切换,Android导航抽屉切换图标向右
  3. fping安装包linux,Linux安装fping和hping
  4. python逢7过小游戏_while循环拓展:用python做一个逢七过小游戏
  5. wordpress 字符串翻译日期_WordPress强大搜索功能如何实现?安装Ivory Search插件
  6. python 标准库 excel_Python 操作 Excel 的函数库
  7. pandas 提取某几列_用Pandas做数据清洗,我一般都这么干……
  8. 文本文件 java_Java入门:读写文本文件
  9. python类和对象_Python类和对象
  10. Android通知频道,通知点