logo
Loading...

【QA】甚麼方法能用深度神經網路當作是降維的工具?? - Cupoy

甚麼方法能用深度神經網路當作是降維的工具??應該很多人都知曉,在機器學習非監督式學習中,PCA和t-...

【QA】甚麼方法能用深度神經網路當作是降維的工具??

2021/10/13 下午 01:49
機器學習共學討論版
Zih-Jia Luo
觀看數:17
回答數:0
收藏數:1

甚麼方法能用深度神經網路當作是降維的工具?? 應該很多人都知曉,在機器學習非監督式學習中,PCA和t-SNE還有LDA是分常常見的三個降維(dimension reduction)演算法。 若想知道更多機器學習的降維演算法請參考:基於 Python 的 11 種經典機器學習降維演算法 其實降低資料維度這件事,在資料科學領域裡面也是非常重要的一件事,因為當今天你要處理的資料維度太高的時候,也會容易引發維度災難(Curse of Dimensionality);或者當今天你想要做個資料視覺化給你的主管們看看的時候,我們也是需要把高維度的資料降到低維度才有辦法用視覺化的方式展現。 拉回題目… 那你知道,在深層神經網路(deep neural network)中該如何做到降維呢? 答案是: "Deep Auto-encoder"。 來討論一下Deep Auto-encoder吧! 基本上,Auto-encoder就是在做降維無誤!編碼至一個維度(比input的小)後,再output出來(這個過程又稱為Re-construct),這個重建過後output出來的值跟input愈接近愈好。 數據的降維不是隨意的,我們要保證一點數據降維之後仍然能夠最大程度的表示原有的數據特點,也就是最大程度的保留原有數據的特徵,使得數據不損失原始數據的主要特徵,那麼這個就是數據降維的關鍵點所在,在深度學習領域常用的數據降維的方式是使用自編碼網絡AutoEncoder來完成這個任務。 我們可以把Auto-encoder看成是,encoder和decoder接在一起。上面是encode; 下面則是decoder,Auto-encoder就是兩者串起來才能一起訓練。如下圖所示(降維後但保留features資訊,再做重建的過程)。 ![image](http://kwassistfile.cupoy.com/0000017C78301F3C000000116375706F795F72656C656173655155455354/1632821348593/large) AutoEncoder的原理: 如下圖所示,自編碼網絡Autoencoder 簡單來說就是將原有高維特徵的數據x進行壓縮成z,之後再進行解壓為x撇的過程,得到的最終結果x撇與原始數據x進行比較,從而對此進行非監督學習。 ![image](http://kwassistfile.cupoy.com/0000017C78301F3C000000116375706F795F72656C656173655155455354/1632821348594/large) AutoEncoder進行end-to-end的訓練,再層與層中不斷提高其準確度,而通過設計encode和decode過程使輸入和輸出越來越接近,也是一種無監督學習過程。它類似於機器學習中的PCA算法,AutoEncoder的主要功能是將數據壓縮之後得到的降維的特徵值,這一中間結果正類似於PCA的結果,這也正是原始數據的最本質特徵。 下圖為壓縮&重建的示意圖。 ![image](http://kwassistfile.cupoy.com/0000017C78301F3C000000116375706F795F72656C656173655155455354/1632821348595/large) ![image](http://kwassistfile.cupoy.com/0000017C78301F3C000000116375706F795F72656C656173655155455354/1632821348596/large)

回答列表