3. Recursive AutoEncoder(递归自动编码器)
1. AutoEncoder介紹
2. Applications of AutoEncoder in NLP
3. Recursive Autoencoder(遞歸自動編碼器)
4. Stacked AutoEncoder(堆棧自動編碼器)
1. 前言
今天主要介紹用在NLP中比較常見的AutoEncoder的模型,Recursive Autoencoders(遞歸自動編碼模型)。這篇文章主要討論RAE在序列化的數(shù)據(jù)中,如何把數(shù)據(jù)降維并且用向量表示。
2. 矩陣表示
假設(shè)我們有一個矩陣\(L\)的表示向量,一個有序的有\(m\)個元素的序列,每個元素有\(k\)維的向量表示,我們用\(b_k\)代表我們需要找的那個向量,公式如下:
\[ x_i=Lb_k \]
現(xiàn)在我們能用矩陣表示這個\(m\)個元素的序列了,\((x_1,x_2,x_3...,x_m)\)。
3. 非監(jiān)督遞歸自動編碼器
上圖是RAE的二叉樹遞歸結(jié)構(gòu),最底層的節(jié)點\(x_1,x_2...,x_m\)都是序列的內(nèi)容。第一個RAE從在最底層最右邊的兩個孩子節(jié)點序列的元素\(x_1\),\(x_2\)開始,對它們進行重構(gòu),會產(chǎn)生一個隱藏層\(y_1\)。再上層一點,一個節(jié)點是序列中的元\(x_i\)素,另一個節(jié)點是下一程節(jié)點通過AE的過程算出來的隱藏層向量\(y_i\),經(jīng)過RAE后,會產(chǎn)生隱藏節(jié)點\(y_{i+1}\),如此循環(huán)直到序列中所有元素都進行了AE的過程。
- 編碼過程:父節(jié)點是\(y_1\),兩個孩子節(jié)點是\(x_1\)和\(x_2\):
\[ \mathbf{y_1}=f(\mathbf{W}[\mathbf{x}_{1},\mathbf{x}_{2}]+\mathbf{b}) \]
- 解碼過程:通過父節(jié)\(y_1\)點再重構(gòu)\(x_1\)和\(x_2\)
\[ [\mathbf{x}_{1}';\mathbf{x}_{2}']=\mathbf{W}'\mathbf{y_1}+\mathbf{b}' \]
- 損失函數(shù)
\[ E=\frac{1}{2}\Vert [\mathbf{x}_{1},\mathbf{x}_{2}]-[\mathbf{x}_{1}',\mathbf{x}_{2}']\Vert ^{2} \]
這個過程在每一個AE過程中重復(fù),直到構(gòu)造出整棵樹。
4. 優(yōu)化
我們可以從幾個方面去優(yōu)化RAE。
5. 總結(jié)
本文主要介紹了RAE的構(gòu)造和優(yōu)化方向,RAE適合用來處理序列問題。
轉(zhuǎn)載于:https://www.cnblogs.com/huangyc/p/9826574.html
總結(jié)
以上是生活随笔為你收集整理的3. Recursive AutoEncoder(递归自动编码器)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。