zoukankan      html  css  js  c++  java
  • 几种Autoencoder的深入理解和思考

     

    最近一直做用autoencoder解决句子编码的问题,一般来说,见得比较多的就是下面几种autoencoder

    • sparse autoencoder
    • denoising autoencoder
    • variational autoencoder(VAE)

    其实如果理解deep belief network的话,各种autoencoder可以很好的理解,下面总结一下我对这几种autoencoder以及DBN的理解

    1: autoencoder

    输入一列向量或者一个矩阵x,经过单层或者多层full connected network, encode成一个向量z,再由这个向量z还原成输入的向量x,也是通过全连接层,

    然后自定义loss函数,可以用欧式距离或者cross entropy,通过BP训练;

    2:denoising autoencoder 

    autoencoder + dropout

    3: sparse autoencoder

    autoencoder + L0_normalization(sparsity penalty)

    4: variational autoencoder

    跟autoencoder没太大关系,引入hidden state,最大化p(x),即实际的x在这套体系出现的概率,采用KL divergence的方法,将目标转换成最大化两部分,见下图

    右边的第一部分为decoder的误差, 第二部分为z的先验分布(标准高斯分布)和z的后验分布之间的kl divergence;

    从代码的角度来讲,把x通过全连接或者其他网络映射成一个均值u和一个方差v,Gaussian(u, v)即是Q(z/x), 然后根据这个分布sample出一个hidden state, 根据这个hidden state来来通过神经网络映射成x的预测值x_predict, 比较x和x_predict作为第一部分的loss, 当然这个只是右边第一个式子的估计值,大概是因为用mcmc很麻烦>_<

    5:deep belief network

    要理解这个首先得理解restricted boltzmann machine, 比较麻烦,下班了,有时间再写;

     

     

    附: monte carlo simulation algorithm

     

     

     

  • 相关阅读:
    $_SERVER
    下面介绍mysql中模糊查询的四种用法:
    qq第三方登录
    远程连接数据库出错
    lnmp中的tp的pathinfo模式
    TP5配置所谓的url_moudel
    tp3.2.3中的xss攻击基本防护
    tp中的Csv文件读取(原创)
    mysql语句整理
    SVN的详细使用
  • 原文地址:https://www.cnblogs.com/LarryGates/p/6837338.html
Copyright © 2011-2022 走看看