一、自編碼器:降維【無監督學習】
PCA簡介:【線性】原矩陣乘以過渡矩陣W得到新的矩陣,原矩陣和新矩陣是同樣的東西,只是通過W換基。
自編碼:
自動編碼器是一種無監督的神經網絡模型,它可以學習到輸入數據的隱含特征,這稱為編碼(coding),同時用學習到的新特征可以重構出原始輸入數據,稱之為解碼(decoding)。從直觀上來看,自動編碼器可以用於特征降維,類似主成分分析PCA,但是其相比PCA其性能更強,這是由於神經網絡模型可以提取更有效的新特征。除了進行特征降維,自動編碼器學習到的新特征可以送入有監督學習模型中,所以自動編碼器可以起到特征提取器的作用。作為無監督學習模型,自動編碼器還可以用於生成與訓練樣本不同的新數據,這樣自動編碼器(變分自動編碼器,VariationalAutoencoders)就是生成式模型。
類型:堆棧自動編碼器(StackedAutoencoder)、去噪自動編碼器(DenoisingAutoencoder),稀疏自動編碼器(SparseAutoencoder)以及變分自動編碼器。
自編碼和PCA的區別:
由於神經網絡能夠學習非線性關系,因此可以認為這是PCA更有力(非線性)的泛化。而PCA試圖發現描述原始數據的低維超平面,自編碼器則能夠學習非線性流形(流形為連續的非交叉的曲面)。這兩種方法之間的區別如下圖所示。
自編碼還原的結果比PCA清晰。
而兩者的重點是要拿到比較好的30維code。
二、降噪自編碼【加噪聲】
三、CNN、DNN、RBM、DBN來實現自編碼: