無監督式學習Unsupervised Learning- Introduction

by wenwu
0 comment

無監督式學習Unsupervised Learning- Introduction

今日的課程來自於: https://youtu.be/CXgbekl66jc

在實務上,我們都沒有完整的資料,接下來的內容都是無監督式學習
本篇為無監督式學習的介紹


無監督式學習可以分成兩種 ,通常我們沒有完整label的資料

  • 化繁為簡 : Clustering(聚類) /Dimension Reduction(降維)
    將複雜的input 變成簡單的output,比如把一大堆沒有打上label的樹圖片轉變為一棵抽象的樹,此時training data只有input,而沒有output
  • 無中生有(Generation) 
    無中生有就是隨機給function一個數字,它就會生成不同的圖像,此時training data沒有input,而只有output

Clustering

clustering,顧名思義,就是把相近的樣本分成同一類,比如將沒有label的影像分類,手動標上標籤,這分類過程就是化繁為簡的過程

那…我們要分幾組呢? 
選擇適當的cluster,要empirical的來決定它

K-means 

最常用的就是K-means :

  • 將一堆沒有標籤的資料,將他們分成K個cluster
  • 每一個cluster都要找一個center,初始值可以從training data 裡隨機挑K個object X^n出來做K個center c^i 的初始值
  • 之後的值找出最靠近的cluster,將他分類
  • 更新center: 把每個cluster裡的所有object取平均值作為新的center值
  • 反覆以上動作

如果不是從原先的data set 裡取center 的初始值,可能會導致部分cluster沒有樣本點


HAC (Hierarchical Agglomerative Clustering)層次聚類 

假設我們現在有五個樣本點,想要做clustering:

  • bulid a tree: 
    建立類似Huffman Tree,只不過huffman 是依據詞頻,而HAC是依據相似度建樹
    將五個樣本點兩兩計算相似度,挑出最相似的一對,重複以上動作,直到只剩下一個root 節點
  • pick a threshold 
    選threshold,就是在構造好的tree上橫著切一刀,相連的結點屬於同一個cluster,下圖中,不同顏色的橫線和葉結點上不同顏色的方框對應著切法與cluster的分法

HAC和K-means最大的區別在於如何決定cluster的數量,在K-means裡,K的值是要你直接決定的;而
在HAC裡,你並不需要直接決定分多少cluster,而是去決定這一刀切在樹的哪裡


Dimension Reduction

clustering的缺點就是每一個object都要屬於一個類別,一定要分類一個類別但是物件可能有多種屬性,如果硬分類,就會失去很多信息;我們應該用一個vector來描述該object,這個vector的每一維都代表object的某種屬
性,這種做法就叫做Distributed Representation,或者說,Dimension Reduction

Why Dimension Reduction Help? 

接下來要來看為什麼Dimension Reduction 可能是有用的

假設data為下圖左側中的3D螺旋式分布,你會發現用3D的空間來描述這些data很浪費空間,因為我們可以完全把它攤平,此時只需要用2D的空間可以描述這個3D信息

舉一個極端的例子,下面這幾張表示“3”的image,我們完全可以用中間這張image旋轉角度來描述,也就是說,我們只需要用這一個dimension就可以描述原先28*28 dimension的圖像
你只要抓住角度的變化就可以知道28維空間中的變化,只要用一維就可以描述這個image


How to do Dimension Reduction? 

在Dimension Reduction裡,我們要找一個function,這個function的input是原始的x,output是經過降維之後的z。dim(z)<dim(x)

最簡單的方法是Feature Selection,即直接從原有的dimension裡拿掉一些直觀上就對結果沒有影響的dimension,就做到了降維。

最常見的方法叫做PCA(Principe Component Analysis),下一篇會提到

Related Articles

發表迴響