[关闭]
@zqbinggong 2018-05-20T15:33:50.000000Z 字数 752 阅读 1230

tensorflow 实现自编码器以及多层感知机

《tensorflow实战》


自编码器 auto-encoder

使用自身的高阶特征来编码自己
1. 可以加入限制
- 限制中间隐藏层节点的数量,比如让其小于输入/输出节点的个数,就相当于一个降维的过程
- 加入噪声 denosing auto encoder ,如AGN(加性高斯噪声); masking noise,即有随机遮挡的噪声
2. 如果隐藏层只有一层,那么其原理类似于PCA
3. DBN(deep belief networks,由多层RBM组成),有多个隐藏层,每个隐藏层都是多个限制性波尔兹曼机。思路就是,先用自编码器进行无监督的预训练,提取特征并初始化权重,然后再使用标注信息进行监督式的训练
4. tensorflow实现自编码器(以去噪自编码器为例)

多层感知机

  1. 理论上只要隐含节点足够多,即使只有一个隐藏层的神经网络也可以拟合任意函数,同时隐藏层越多,越容易拟合复杂函数。理论表明层数越多,所需要隐含节点可以越少
  2. dropout实质上等于创造了很多新的随机样品,通过增大样本量,较少特征数量来防止过拟合。也可以看成是一种bagging方法,可以理解成每次丢弃节点数据是对特征的一种采样,不过这里只有一个融合的神经网络
  3. 参数难调问题
  4. 梯度弥散(gradient vanishmengt)sigmoid函数在反向传播中梯度值会逐渐减小,经过多层的传递后会呈指数级较小,因此梯度值在前几层就会变得非常小;ReLU函数可以完美地解决GV问题,非常适合训练很深的神经网络,并且它正面解决了梯度弥散问题,而不需要通过无监督的逐层训练初始化权重来绕行。比起sigmoid来说,它的变化有:
    • 单侧抑制 softplus也有,但是没有稀疏激活性
    • 相对宽阔的兴奋边界
    • 稀疏激活性 sigmoid由接近一半的神经元被激活
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注