DBN
DBN
概述
结构
基础是多层RBM叠加而成的网络,可用于压缩与分类,或其他网络的传递中间层,避免了随机初始化权重带来的训练困难问题。
压缩任务
训练后的多层RBM组装成正向网络和反向网络,然后再通过CD学习算法微调网络达到最终模型
分类任务
因为CD算法的特殊性,可以将多层RBM组装成正向网络,然后添加一层分类拟合层,再通过CD学习算法微调网络达到最终模型。分类拟合层可以是任意模型,比如分类RBM,或者Softmax,BP等等。
特殊扩展
GB - RBM
作用:使RBM支持连续数据输入,但训练调参存在困难,一般作为输入口层网络。
能量函数
原能量函数
\[E(v,h)=\sum_i\frac{(v_i-a_i)^2}{2\sigma_i^2}-\sum_{ij}(W_{ij}·\frac{v_i}{\sigma_i}·h_j)-\sum_jb_jh_j
\]
若将数据进行线性变换,使数据\(\sigma\)=1,期望为0,则有
\[E(v,h)=\frac{||v||^2}2-v^Tb_v-h^Tb_h-v^TWh
\]
条件分布
在隐层条件下的可见层分布
\[P(v_i|h)=\sigma*h_{0,1}*w+a_i
\]
在可见层条件下的隐层分布
\[P(h_j=1|v)=\frac{1}{1+exp(-b_j-\sum_iW_{ij}\frac{v_i}{\sigma})}
\]
权值更新方式
可见层→隐层
\[\langle v,h\rangle_{data}=h_{0,1}*\frac{data}{\sigma}\\
\langle v\rangle_{data}=\frac{\sum_i(v_i-b_i)}{\sigma^2}\\
\langle h\rangle_{data}=\sum_jh_j
\]
隐层→可见层
\[\langle v,h\rangle_{recon}=\sum_{ij}\frac{h_j*v_i}{\sigma}\\
\langle v\rangle_{recon}=\sum_i\frac{v_i*b_i}{\sigma^2}\\
\langle h\rangle_{recon}=\sum_j{h_j}
\]
训练
\[\Delta a_i=\eta·(\langle v\rangle_{data}-\langle v\rangle_{recon})\\
\Delta b_j=\eta·(\langle h\rangle_{data}-\langle h\rangle_{recon})\\
\Delta W_{ij}=\eta·(\langle v,h\rangle_{data}-\langle v,h\rangle_{recon})
\]
Dropout / Dropconnect 方法
为了防止过拟合,可以通过阻止特征检测器的共同作用来提高神经网络的性能。也就是训练过程中,随机让一半的隐层节点值为0,或者让一定比例的边不连接。
GDBN网络
当隐层单元数超过所需个数时, 多余的隐层单元会增加网络的复杂度, 使得计算量变大从而导致训练时间呈指数增长; 当隐层单元数低于所需个数时, 由于网络无法满足训练所需规模, 从而导致达不到理性的训练结果. 因此, 可以使用GDBN网络(Genetic Deep Belief Networks), 通过利用遗传算法(Genetic Algorithm, GA)的全局快速寻优的能力对DBN的隐层单元个数自动进行设定。
Softmax算法
概率分配基于Boltzman分布,表示某一分类的概率。
\[P(o_j)=\frac{exp(o_j)}{\sum^K_{i=1}exp(o_i)}
\]
矢量表达式
\[o^{(i)}=x^{(i)}W+b\\
\hat{y}^{(i)}=softmax(o^{(i)})
\]
交叉熵
用于衡量两个概率分布差异的测量函数。分类中,交叉熵只关心对正确类别的预测概率,因为只要其值足够大,就可以确保分类结果正确。
\[H(y^{(i)},\hat{y}^{(i)})=-\sum^q_{j=1}y_j^{(i)}\log \hat{y}_j^{(i)}
\]
对应的损失函数
\[l(\Theta)=\frac{1}n\sum^n_{i=1}H(y^{(i)},\hat{y}^{(i)})
\]
剩下的就是求导,然后最优化。
©️ Copyrights.RSMX.GUILIN.2020-05-17
A geek and poetry lover.