1. AutoEncoder介绍

2. Applications of AutoEncoder in NLP

3. Recursive Autoencoder(递归自动编码器)

4. Stacked AutoEncoder(堆栈自动编码器)

1. 前言

今天主要介绍用在NLP中比较常见的AutoEncoder的模型,Recursive Autoencoders(递归自动编码模型)。这篇文章主要讨论RAE在序列化的数据中,如何把数据降维并且用向量表示。

2. 矩阵表示

假设我们有一个矩阵\(L\)的表示向量,一个有序的有\(m\)个元素的序列,每个元素有\(k\)维的向量表示,我们用\(b_k\)代表我们需要找的那个向量,公式如下:

\[ x_i=Lb_k \]

现在我们能用矩阵表示这个\(m\)个元素的序列了,\((x_1,x_2,x_3...,x_m)\)。

3. 非监督递归自动编码器

上图是RAE的二叉树递归结构,最底层的节点\(x_1,x_2...,x_m\)都是序列的内容。第一个RAE从在最底层最右边的两个孩子节点序列的元素\(x_1\),\(x_2\)开始,对它们进行重构,会产生一个隐藏层\(y_1\)。再上层一点,一个节点是序列中的元\(x_i\)素,另一个节点是下一程节点通过AE的过程算出来的隐藏层向量\(y_i\),经过RAE后,会产生隐藏节点\(y_{i+1}\),如此循环直到序列中所有元素都进行了AE的过程。

  • 编码过程:父节点是\(y_1\),两个孩子节点是\(x_1\)和\(x_2\):

\[ \mathbf{y_1}=f(\mathbf{W}[\mathbf{x}_{1},\mathbf{x}_{2}]+\mathbf{b}) \]

  • 解码过程:通过父节\(y_1\)点再重构\(x_1\)和\(x_2\)

\[ [\mathbf{x}_{1}';\mathbf{x}_{2}']=\mathbf{W}'\mathbf{y_1}+\mathbf{b}' \]

  • 损失函数

\[ E=\frac{1}{2}\Vert [\mathbf{x}_{1},\mathbf{x}_{2}]-[\mathbf{x}_{1}',\mathbf{x}_{2}']\Vert ^{2} \]
这个过程在每一个AE过程中重复,直到构造出整棵树。

4. 优化

我们可以从几个方面去优化RAE。

  1. 选择一个好的方式去构造树:我们构造二叉树的方法很多。例如一个比较好的构造二叉树的方式是用贪婪算法在每一步去尝试每个可能选择孩子节点,最后选择这一步重构损失最低的方式建树。
  2. 选择一个好的重构损失函数:前面我们的重构损失是平均的惩罚所有序列的损失值。假设我们可以包含孩子节点多的RAE过程的损失的权重比包含孩子节点少的RAE过程的损失函数的权重大。
  3. 归一化:RAE计算的隐藏节点,它们后面会被下一个RAE重建。为了最小化重构的损失,RAE计算隐藏节点的时候可以对它进行归一化。

5. 总结

本文主要介绍了RAE的构造和优化方向,RAE适合用来处理序列问题。

转载于:https://www.cnblogs.com/huangyc/p/9826574.html

3. Recursive AutoEncoder(递归自动编码器)相关推荐

  1. MySQL8使用with recursive实现递归

    MySQL8使用with recursive实现递归 语法 WITH recursive 表名 AS ( 初始语句(非递归部分) UNION ALL 递归部分语句 ) [ SELECT| INSERT ...

  2. Deep Learning in Natural Language Processing中文连载(一)

    前言: 感谢邓力.刘洋博士能够提供给广大NLP从业者.爱好者提供了这本全面.通俗易懂的好书,以及其他专家前辈在具体章节.领域做出的贡献. 本书共338页,涵盖了NLP基本问题的介绍,以及深度学习在对话 ...

  3. 读论文Recursive Deep Models for Semantic Compositionality Over a Sentiment Treebank

    读论文Recursive Deep Models for Semantic Compositionality Over a Sentiment Treebank 原地址:https://blog.cs ...

  4. 深度学习之自编码器AutoEncoder

    深度学习之自编码器AutoEncoder 原文:http://blog.csdn.net/marsjhao/article/details/73480859 一.什么是自编码器(Autoencoder ...

  5. 用linux下常用命令wget进行整站下载(递归下载至本地)

    为什么80%的码农都做不了架构师?>>>    这个命令可以以递归的方式下载整站,并可以将下载的页面中的链接转换为本地链接. wget加上参数之后,即可成为相当强大的下载工具. wg ...

  6. 当我们在谈论 Deep Learning:AutoEncoder 及其相关模型

    引言 AutoEncoder 是 Feedforward Neural Network 的一种,曾经主要用于数据的降维或者特征的抽取,而现在也被扩展用于生成模型中.与其他 Feedforward NN ...

  7. 使用Keras和TensorFlow构建深度自动编码器

    In this tutorial, we will explore how to build and train deep autoencoders using Keras and Tensorflo ...

  8. chmod递归授权文件夹(用法)

    chmod -R 777 abc chmod a+rwx chmod o+rwx chmod a-x chmod [options] mode files 只能文件属主或特权用户才能使用该功能来改变文 ...

  9. AutoEncoder、RBM、DBM、DBN

    AutoEncoder自动编码器 Deep Learning最简单的一种方法是利用人工神经网络的特点,人工神经网络(ANN)本身就是具有层次结构的系统,如果给定一个神经网络,我们假设其输出与输入是相同 ...

最新文章

  1. 2021年大数据Hive(十一):Hive调优
  2. 简单protobuf
  3. 自己动手制作的一个JDBC的套件封装,求指导
  4. 第20课 - 初始化列表的使用
  5. ThinkPHP CURD返回结果参考
  6. 大揭秘| 我司项目组Gitlab Flow DevOps流程
  7. 利用批处理程序和excel获取windows文件信息
  8. Android-LayoutInflater
  9. gb和gib的区别_不同软硬件环境下NVMe SSD性能简测和一些SSD测试建议
  10. 移动端H5游戏开发之(移动端尺寸基础知识)
  11. jQuery改变网页背景颜色切换的方法
  12. 浏览器工作原理(超级详解!!!!)
  13. DevC++实现代码高亮复制进word
  14. 根据接口获取得数据,布局两列多行的代码写法
  15. 2013年国模 B题 碎纸片拼接
  16. 如何将notepad++中的xml文件格式化(层级关系展示)
  17. 网络攻击知识之几种IP地址攻击方式
  18. 类比C++ 学习Python的class
  19. 从零开始,构建电子地图网站:0_3_数据处理python(1)
  20. 计算机科学与技术杂谈

热门文章

  1. 手动 clone 安装 Homebrew
  2. 【安卓开发 】Android初级开发(五)自定义View
  3. php通知多有人,PHP通知抑制;只有某些情况/方法
  4. 获取linux详细信息,Linux 获取网口详细信息
  5. jq监听子元素被点击_vue开发app点击字母展示地区列表(兄弟组件之间联动)
  6. HTML5怎样设置站点,我是怎样让网站用上HTML5 Manifest
  7. E1倒换保护设备知识详解
  8. 中继器、集线器、网桥、网关产品介绍
  9. 局域网工业交换机的种类和选择注意事项!
  10. 串口光猫应用领域及技术参数详解