自編碼器
自編碼器(粵拼:zi6 pin1 maa5 hei3;英文:autoencoder)係一種人工神經網絡,用嚟做降維(dimensionality reduction;減少手上嘅隨機變數嘅數量)[1]。舉個例說明(睇收縮自編碼器):
- 想像家陣有個簡單嘅前饋神經網絡(feedforward network),輸入層有 粒細胞,輸出層又係有 粒細胞,而隱藏層有 粒細胞,當中 ;
- 假想個網絡做咗學習[註 1],能夠可靠噉次次接收到輸入 ,都會俾出輸出 (俾一個輸入,會俾一個同輸入一個板嘅輸出)[註 2],
- 輸入層同隱藏層就係所謂嘅入碼器(encoder),而輸出層同隱藏層就係所謂嘅解碼器(decoder);
做完上述啲嘢之後,隱藏層同輸入輸出兩層之間嘅最後權重值會有用,例如以後撞親啲同類嘅數據嗰陣,研究者知個網絡能夠可靠噉解碼、將隱藏層數據變返同原來輸入一樣嘅數值,佢就可以放心噉將啲數據冚唪唥交俾個自編碼器,入嗮碼幫每個個案做 個數值(維度)嘅數據,而因為 ,用呢個方法儲數據會慳位過就噉每個個案都儲嗮嗰 個數值,由此達到降維嘅效果。喺數據探勘(data mining)等嘅領域上,自編碼器仲可以用嚟話俾研究者知啲數據當中有冇乜嘢特殊嘅規律,例如係「呢 15()個變數會唔會有可能用 7()個變數嘅變化解釋嗮?」等嘅問題[2][3]。
做法
[編輯]喺最簡單嗰種自編碼器做法當中,個演算法嘅目標係要改變啲權重,令以下數值最小化:
- ;
當中 係損失函數(loss function),反映做解碼嗰陣嘅誤差(重構個輸入嗰時,同實際數值差幾遠);而 係一個為咗避免過適(overfitting)而設嘅隨機性數值。研究者特登設下咗 嘅自編碼器就係所謂嘅變分自編碼器(variational autoencoder,VAE)[4] ,得名自入便用到嘅變分貝葉斯方法(Variational Bayesian methods)。
自編碼器可以分類做:
- 收縮自編碼器(undercomplete autoencoder):最簡單直接嗰種自編碼器,指運用隱藏層-喺收縮自編碼器當中又叫樽頸層(bottleneck layer)-細胞嘅數量少嚟令個自編碼器焗住要將手上嘅資訊降維;如果一切順利,個收縮自編碼器會學識用數量少嘅幾個因素嚟重構手上嘅資訊[5]。
- 稀疏自編碼器(sparse autoencoder):自編碼器另一種做法,呢種自編碼器嘅隱藏層細胞數量唔少、但係佢哋嘅損失函數包含「每一層啟動咗嘅細胞嘅數量」,而且損失同「每一層啟動咗嘅細胞嘅數量」成正比-即係話個網絡會傾向變成「每次收到輸入嗰陣,得少量細胞會啟動」,但個網絡依然可以有相當多嘅細胞,所以能夠做到「迫個網絡用少數變數預測輸入」嘅效果得嚟,又唔會對「個網絡最多可以考慮幾多個因素」作出太大嘅限制[6]。
- 去除雜音自編碼器(denoising autoencoder):指啲啟動函數入面帶有隨機性嘅自編碼器;呢種做法令到個自編碼器焗住要由有雜音(通常會偏離原本輸入最多 30% 左右)嘅輸入嗰度重構個輸入[註 3],噉做能夠確保一個隱藏層細胞數量唔少過輸入層細胞數量嘅自編碼器唔會變成一個(冇用嘅)恆等函數;去除雜音自編碼器仲可以幾個砌埋一齊成疊放去除雜音自編碼器(stacked denoising autoencoder)做深度學習[7]。
... 等等。
深度自編碼器
[編輯]深度自編碼器(deep autoencoder)係一種自編碼器。一個深度自編碼器包含兩個互相對稱嘅深度信念網絡:一個深度自編碼器分入碼面(encoder)同解碼面(decoder),入碼面係一個由 4 至 5 部受限玻茲曼機一層層砌埋一齊而成嘅深度信念網絡;解碼面同入碼面對稱-即係話入碼器會一層層噉做特徵提取,最後成一個壓縮特徵向量(compressed feature vector),然後(假設個深度自編碼器經已訓練好)解碼面會一層層噉做解碼,最後解碼出嘅輸出會同輸入一樣。喺實際應用上,深度自編碼器可以攞嚟做數據壓縮嘅工作[8][9]。
上圖係一個簡單(總共得 5 層)深度自編碼器嘅結構圖解; 係輸入, 係輸出層,中間嘅係隱藏層,而 係壓縮特徵向量;左面嘅入碼面會由 做特徵提取,然後(只要個網絡訓練好)解碼面會將入咗碼嘅特徵數值變返做原本輸出, ≈ 。
註釋
[編輯]睇埋
[編輯]參考文獻
[編輯]- Hinton, G. E., Krizhevsky, A., & Wang, S. D. (2011, June). Transforming auto-encoders (PDF). In International conference on artificial neural networks (pp. 44-51). Springer, Berlin, Heidelberg.
- Rooca, J. (2019). Understanding Variational Autoencoders (VAEs). Towards Data Science.
攷
[編輯]- ↑ Vincent, Pascal; Larochelle, Hugo (2010). "Stacked Denoising Autoencoders: Learning Useful Representations in a Deep Network with a Local Denoising Criterion". Journal of Machine Learning Research. 11: 3371–3408.
- ↑ Kramer, Mark A. (1991). "Nonlinear principal component analysis using autoassociative neural networks". AIChE Journal. 37 (2): 233–243.
- ↑ Vincent, Pascal; Larochelle, Hugo (2010). "Stacked Denoising Autoencoders: Learning Useful Representations in a Deep Network with a Local Denoising Criterion". Journal of Machine Learning Research. 11: 3371–3408.
- ↑ Rooca, J. (2019). Understanding Variational Autoencoders (VAEs). Towards Data Science.
- ↑ Thies, J., & Alimohammad, A. (2019). Compact and low-power neural spike compression using undercomplete autoencoders. IEEE Transactions on Neural Systems and Rehabilitation Engineering, 27(8), 1529-1538.
- ↑ Ng, A. (2011). Sparse autoencoder 互聯網檔案館嘅歸檔,歸檔日期2020年6月23號,. (PDF). CS294A Lecture notes, 72(2011), 1-19.
- ↑ Denoising Autoencoders explained. Towards Data Science.
- ↑ Deep Autoencoders.
- ↑ Autoencoders: Neural Networks for Unsupervised Learning. Medium..