信息在DNN马尔科夫链结构上的变化
一个经典的全连接神经网络,如下图所示,输入层可以看做T0,输出层可以看做$\hat{\mathrm{Y}}$=TL+1。
考虑每一层隐藏层T与X、Y的交互信息:I(X; Ti), I(Ti, Y),交互信息部分的知识参见上一篇文章
在训练过程中每一轮把这两个交互信息画出来,横轴I(X; Ti),纵轴I(Ti, Y),同一颜色多个点代表同一层内多个神经元,不同颜色的点代表不同层数的神经元:
round 0-160:I(Ti, Y)快速上升,I(X; Ti)也随之增加
round 170-410: I(Ti, Y)继续上升,I(X; Ti)增加到一定程度之后,开始集体掉头减少。
round 420-1600:所有神经元开始集体往高I(Ti, Y),低I(X; Ti)的左上角移动
round 1600-5000:I(Ti, Y)保持稳定,训练到后面或许会有少许下滑,同时I(X; Ti)继续减少。
上面的交互信息变化是一个典型的全连接分类问题训练时画出的,而且并没有使用两层之间特征向量的交互信息,而是使用了两层之间神经元的交互信息,估计是向量的排列组合数远大于神经元的可能数值数量,不方便统计概率。所以转而使用两层之间神经元两两之间的交互信息,再以此近似两层特征向量之间的交互信息。
看图的时候,自动脑补同一颜色的所有点聚类之后得到的中心位置,就能想象出两层之间特征向量交互信息的移动轨迹了。
可以很明显地发现两个阶段:第一阶段I(Ti, Y)与I(X; Ti)一起上升,第二阶段I(Ti, Y)继续上升但I(X; Ti)下降。第一阶段很快就能走完,第二阶段要迭代比第一阶段多出很多次,才能最终完成收敛。
接下来要分析I(Ti, Y)增加的原因:
首先定义信息瓶颈扭曲(information bottleneck distortion)这个概念:
$d_{IB}(x,t)=D_{KL}\left(p(y\mid x)\parallel p(y\mid t)\right)=\sum\limits _{y}p(y\mid x)log\frac{p(y\mid x)}{p(y\mid t)}$
我们希望当训练完成之后,无论是用完整的网络输入x,还是把网络从中间砍开,在中间输入特征值t,二者最终输出的y都是接近的。因为不同层的特征值代表不同抽象等级的同一个输入,好比我们希望从矿石、橡胶等料经过全流程加工得到的汽车,与从轮胎、车架、座椅等中间件开始半路组装得到的汽车,最终产出是一致的。
考虑上式的预期值,并简化:
$E\left[d_{IB}\right]=\sum\limits _{x,t}p(x)p(t)d_{IB}(x,t)$
$=\sum\limits _{x,t,y}p(x)p(t)p(y\mid x)logp(y\mid x)-\sum\limits _{x,t,y}p(x)p(t)p(y|x)logp(y\mid t)$
使用$p(y\mid t)=\sum\limits _{x}p(y\mid x)p(x\mid t)$带入
$=-\sum\limits _{x,t}p(x)p(t)H(Y\mid x)-\sum\limits _{t,y}\frac{p(x)p(t)}{p(x\mid t)}p(y\mid t)logp(y\mid t)$
$=-\sum\limits _{x,{\color{red}t}}p(x){\color{red}{p(t)}}H(Y\mid x)+\sum\limits _{{\color{red}t}}\frac{{\color{red}{p(x)}}p(t)}{{\color{red}{p(x\mid t)}}}H(Y\mid t)$
$=-H(Y\mid X)+H(Y\mid T)$
使用交互信息$I(A;B)=H(A)-H(A\mid B)$
$E\left[d_{IB}\right]=I(X;Y)-I(T;Y)$
左边大于0,右边I(X;Y)是样本决定的,与网络结构无关,当做常量,所以要想让左边尽量小,需要让I(T;Y)尽量大。
所以我们会看到随着训练过程的进行,I(T;Y)基本上会一直增加,目的就是为了让神经网络结构无论从哪一层独立获得正确的输入时,输出都是一致的。
这里T选取的是任意一层隐藏层的特征值。在T0=X层情况下,左边恒等0,I(T;Y)取最大值I(X;Y)。在TL+1层情况下,I(T;Y)取值I($\hat{\mathrm{Y}}$;Y)。
在最初网络权重全部随机值的时候,I($\hat{\mathrm{Y}}$;Y)基本为0,随着层数i从0逐渐增加到L+1,I(Ti;Y)逐渐减少。我们可以从gif动图上最初round 0看出这个现象。
I(X; Ti)先增加再减小的原理有些复杂,一般把减小的过程叫做压缩,在一部分网络结构里会出现压缩现象,而在另一部分网络结构里,压缩现象并不明显。推测是与样本数量与使用的激活函数有关。
下一篇文章将会着重分析为什么会出现压缩,以及压缩的作用。
信息在DNN马尔科夫链结构上的变化的更多相关文章
- 蒙特卡洛马尔科夫链(MCMC)
蒙特卡洛马尔科夫链(MCMC) 标签: 机器学习重要性采样MCMC蒙特卡洛 2016-12-30 20:34 3299人阅读 评论(0) 收藏 举报 分类: 数据挖掘与机器学习(41) 版权声明: ...
- 从随机过程到马尔科夫链蒙特卡洛方法(MCMC)
从随机过程到马尔科夫链蒙特卡洛方法 1. Introduction 第一次接触到 Markov Chain Monte Carlo (MCMC) 是在 theano 的 deep learning t ...
- 13张动图助你彻底看懂马尔科夫链、PCA和条件概率!
13张动图助你彻底看懂马尔科夫链.PCA和条件概率! https://mp.weixin.qq.com/s/ll2EX_Vyl6HA4qX07NyJbA [ 导读 ] 马尔科夫链.主成分分析以及条件概 ...
- 【强化学习】MOVE37-Introduction(导论)/马尔科夫链/马尔科夫决策过程
写在前面的话:从今日起,我会边跟着硅谷大牛Siraj的MOVE 37系列课程学习Reinforcement Learning(强化学习算法),边更新这个系列.课程包含视频和文字,课堂笔记会按视频为单位 ...
- MCMC(二)马尔科夫链
MCMC(一)蒙特卡罗方法 MCMC(二)马尔科夫链 MCMC(三)M-H采样和Gibbs采样(待填坑) 在MCMC(一)蒙特卡罗方法中,我们讲到了如何用蒙特卡罗方法来随机模拟求解一些复杂的连续积分或 ...
- 《principles of model checking》中的离散时间马尔科夫链
<principles of model checking>中的离散时间马尔科夫链 说明:此文为我自学<principles of model checking>第十章内容的笔 ...
- N元马尔科夫链的实现
马尔可夫模型(Markov Model)是一种统计模型,广泛应用在语音识别,词性自动标注,音字转换,概率文法等各个自然语言处理等应用领域.经过长期发展,尤其是在语音识别中的成功应用,使它成为一种通用的 ...
- 马尔科夫链蒙特卡洛(Markov chain Monte Carlo)
(学习这部分内容大约需要1.3小时) 摘要 马尔科夫链蒙特卡洛(Markov chain Monte Carlo, MCMC) 是一类近似采样算法. 它通过一条拥有稳态分布 \(p\) 的马尔科夫链对 ...
- Chapter 4 马尔科夫链
4.1 引言 现在要研究的是这样一种过程: 表示在时刻的值(或者状态),想对一串连续时刻的值,比如:,, ... 建立一个概率模型. 最简单的模型就是:假设都是独立的随机变量,但是通常这种假设都是没什 ...
随机推荐
- mysql 定时计划任务 wish 按照id分组定时循环启动
SELECT count(*) FROM wish_sellers_in;UPDATE wish_sellers_in SET act_status =0 WHERE id >=1 AND ...
- Java环境变量配置----JDK开发环境及环境变量设置
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...
- 关于 登录框的测试的一些case
---恢复内容开始--- 最近的一个task是需要测试一个登录的界面,我的产品是应用程序,不是网页,所以,测试起来,会相对简单一些 还是按照 质量模型的角度,来思考这个 页面的测试 Requireme ...
- spring boot 与servlet
servlet: 基于java的web组件,用于生成动态内容,由容器管理. 类似其他java技术组件,由平台无关的java类组成,并且由java web服务器加载执行 serv ...
- 3/1 AT指令集
一.背景 由于机器与传输时的信号类型不通,机器处理的是数字信号,而传输时是模拟信号,故,要实现这两者间的交互,就需要一个介质,之前是靠硬件,靠人工,硬件使用modem(猫): 现在通过一种命令来实现自 ...
- ES6你不知道的let关键字及变量的提升
一.JavaScript变量创建到访问赋值的过程 创建 create/declare 初始化 initialize 赋值 assign 1.函数的提升 // 函数这种变量声明,首先会创建变量,再初始化 ...
- Linux Simple Systemd Service Guide
Simple Systemd Service Guide 主题 Systemd介绍 Systemd基本操作 怎样编写_service_.service文件 怎样部署service Systemd介绍 ...
- 利用gitbush从git上下载代码到本地
1. 在本地新建一个存放代码的文件夹: 2.进入文件夹,右击Git bush here3 3. 出现以下面板: 4. 输入: git init 5.输入:git clone 文件地址链接 成功,在文件 ...
- win7旗舰版64位GHOST版的,安装telnet客户端时,提示:出现错误。并非所有的功能被成功更改。
win7旗舰版64位GHOST版的,安装telnet客户端时,提示:出现错误.并非所有的功能被成功更改. 从安装成功的电脑上拷贝ghost版本缺少的文件,然后再安装telnet客户端,我已打包 链接: ...
- [SSM项目]Eclipse 搭建marven-web项目 hello world!
配置的种种 (仅第一次)eclipse配置好tomcat.jdk.marven: 建立项目:建立mvn project-选择mvn-web 消除警告和错误: 解决错误1-项目propriety-Jav ...