背景與意義
現實生活中常常會有這樣的問題:
(1)缺乏足夠的先驗知識,因此難以人工標註類別;
(2)進行人工類別標註的成本太高。
很自然地,我們希望計算機能代我們(部分)完成這些工作,或至少提供一些幫助。常見的套用背景包括:
(1)一從龐大的樣本集合中選出一些具有代表性的加以標註用於分類器的訓練。
(2)先將所有樣本自動分為不同的類別,再由人類對這些類別進行標註。
(3)在無類別信息情況下,尋找好的特徵。
常用算法
常用的無監督學習算法主要有主成分分析方法PCA等,等距映射方法、局部線性嵌入方法、拉普拉斯特徵映射方法、黑塞局部線性嵌入方法和局部切空間排列方法等。
從原理上來說PCA等數據降維算法同樣適用於深度學習,但是這些數據降維方法複雜度較高,並且其算法的目標太明確,使得抽象後的低維數據中沒有次要信息,而這些次要信息可能在更高層看來是區分數據的主要因素。所以現在深度學習中採用的無監督學習方法通常採用較為簡單的算法和直觀的評價標準。
典型例子-聚類
無監督學習里典型例子是聚類。聚類的目的在於把相似的東西聚在一起,而我們並不關心這一類是什麼。因此,一個聚類算法通常只需要知道如何計算相似度就可以開始工作了。
聚類算法一般有五種方法,最主要的是劃分方法和層次方法兩種。劃分聚類算法通過最佳化評價函式把數據集分割為K個部分,它需要K作為 輸人參數。典型的分割聚類算法有K-means算法, K-medoids算法、CLARANS算法。層次聚類由不同層次的分割聚類組成,層次之間的分割具有嵌套的關係。它不需要輸入參數,這是它優於分割聚類 算法的一個明顯的優點,其缺點是終止條件必須具體指定。典型的分層聚類算法有BIRCH算法、DBSCAN算法和CURE算法等。
分類
目前深度學習中的無監督學習主要分為兩類,一類是確定型的自編碼方法及其改進算法,其目標主要是能夠從抽象後的數據中儘量無損地恢復原有數據,一類是機率型的受限波爾茲曼機及其改進算法,其目標主要是使受限玻爾茲曼機達到穩定狀態時原數據出現的機率最大。
確定型無監督學習
確定型無監督學習主要有自編碼及稀疏自編碼、降噪自編碼等。自編碼可以看作是一個特殊的3層BP神經網路,特殊性體現在需要使得自編碼網路的輸入輸出儘可能近似,即儘可能使得編碼無損(能夠從編碼中還原出原來的信息)。雖然稀疏自編碼可以學習一個相等函式,使得可見層數據和經過編碼解碼後的數據儘可能相等,但是其魯棒性仍然較差,尤其是當測試樣本和訓練樣本機率分布相差較大時,效果較差。為此,Vincent等人在稀疏自編碼的基礎上提出了降噪自編碼,其基本思想是,以一定機率使輸入層某些節點的值為0,此時輸入到可視層的數據變為x^,隱含層輸出為y,然後由重構x的輸出z,使得z和x的差值儘可能的小。
機率型無監督學習
機率型無監督學習的典型代表就是限制玻爾茲曼機,限制玻爾茲曼機是玻爾茲曼機的一個簡化版本,可以方便地從可見層數據推算出隱含層的激活狀態。