一直关注CNN 和RNN

对于早期的DBN略知一二,今天花了点时间看看了看看

说说我的看法

DBN可以看做深度学习的一个分水岭,它真正意义上解决了神经网络的训练方法,也使得深度学习能够深度下去。

你在CNN RNN SNN都可以看到它类似的身影

Hilton老爷子做的贡献是很大的,没有这个玩意,后续的各种变态很难说的

1. 基础

Auto-Associative Neural Network 自联想神经网络  AANN   这个是NN中比较变态的案例, 他要求输入和输出尽可能保持一致,记住只有三层,即只有一个隐藏层, 那么中间隐藏层肯定是输入数据某种形式上的复杂表示

2. 延伸

既然是这样子,我把多个AANN堆叠在一起,不就是目前我们虽了解的各种深度学习的架构嘛!

多个隐藏层,也就是数据的不同表示,可以说是数据更高维度的表示,或者可以称呼为能量显示

CNN也好,RNN也好,都是这种理念的深化 ,从输入到第一个隐藏层,然后链接受到第二个隐藏层,(RBM 受限波尔茨曼机) 一直这么下去,最高的两层是分类和隐藏层向量, 只对两层进行BP优化, 有最高的隐藏层逐步往下训练,每次只训练相邻的两层,也就是尽可能的保持两层数据的一致性,但是并不是保持正DBN的最优化,

这样做训练量比较小,BP算法只影响顶层,后续的工作我们叫做 fine-tuning

除了顶层 RBM,其他层 RBM 的权重被分成向上的认知权重和向下的生成权重;

Wake 阶段:认知过程,通过外界的特征和向上的权重 (认知权重) 产生每一层的抽象表示 (结点状态) ,并且使用梯度下降修改层间的下行权重 (生成权重) 。

Sleep 阶段:生成过程,通过顶层表示 (醒时学得的概念) 和向下权重,生成底层的状态,同时修改层间向上的权重。