Unsupervised Learning

by allenlu2007

 

Learning 可粗分為三類:  Supervised learning; Unsupervised learning; and Reinforcement learning.

其實 Learning 問題傳統上可說就是 Optimization 問題。至少對於 supervised learning and reinforcement learning 是如此。  對於 unsupervised learning 如果有明確的目標如 clustering or lower dimension, 可以 define energy function 達到目的

 

Supervised learning 故名思義,就是有 golden training set 告訴你正確的 (input, output) pair.  通常用在 regression and classification 等 machine learning 問題。藉著 golden training set 的 loss function 可以 train regression or classifier 的 weight.   這部份的算法常常和 control, filtering, data fitting 有密切關係。很容易互相 leverage.  –> 有 golden training set and cost function (e.g. square error)

Reinforced learning 沒有直接的 golden training set, 而是有一個 cost function 告訴你正確的方向。不過常常伴隨 delayed rewarding, 並非 optimize 每一步,而著重在整體的策略和 maximize final rewarding.  同樣在 optimal control 也有類似的問題和算法。可以應用在無人車或無人機駕駛等需要一連串決策的 machine learning 問題。–> 一般沒有 golden training set 但有 cost function.  某一些 case 也有 golden training (like an expert).

最特別的是 Unsupervised learning, 沒有 golden training set, 也沒有 cost function.  沒有人告訴你對或錯,或是正確的方向,也不知道可以 learn 出什麼。有一陣子 unsupervised learning 並不認為是 machine learning.  –> 沒有 golden training set, 一般也沒有直接的 cost function.  對於某一些應用可以 define cost function as an energy function.  Learning 的目標就是 lower energy function!

Lecun 已經提出同樣的觀點,用 energy function 於 unsupervised learning.  是否可導入 Hamiltonian 的觀念? 甚至 control Hamiltonian 用來做 optimal control?

其實在 supervised learning 也早已引入 energy function.  在 supervised learning 時有 golden training samples.  可以很容易 define error or energy function.

Energy function –>  probability = exp(-E)  (assuming E > 0).   Minimize energy 就是 maximize probability.

最大的問題是如何定義 unsupervised learning 時的 energy function??

–> 在 RBM (restricted Boltzmann Machine) or Hopfield 中都是以 energy function 來作 unsupervised learning!

一個直接的方法就是 reconstruct input data, and calculate the error between reconstruct and input!

Energy function (unsupervised) = (reconstruct sample – input sample)

舉例而言,如何學 learn from speech? 一個方式是邊聽邊說,比較自己說和聽之間的差異。注意在 unsupervised learning 時我們並無法辨識  speech content (因為沒有 golden sample), 但我們可以 train 出 feature.  例如 phony, consonant, pitch, pause, etc. 等 speech 結構,雖然不知道意義。就像小孩牙牙學語,只是模仿媽媽的聲音。



其實 unsupervised learning 是非常重要的 learning 方式。只要想自己辨認不同的 face.  沒有人教你如何作 face recognition, 但每個人都可以作到。還有 Big data, 常常我們也不知道要找出什麼。

Unsupervised learning 最主要的目的就是 explore input data 的結構 (structure) 或是 features (特徵) 或是 representation.  重點是 no prior knowledge or only some prior knowledge (e.g. 幾個 cluster 是 prior, 但如何區分 cluster is unknown).  

主要幾個 unsupervised learning 的 subject:

* Clustering

* 和 clustering 相關的是 outliner detection

* Principle component analysis (類似 eigenvector decomposition) 

* High dimension input data –> reduce dimension to lower dimension structure

* Neural network 中的 feature extraction, deep learning!  (very hot topic now)

 

Clustering:  最常用的是 K-mean or Gaussian Mixture Model (GMM)

K-mean algorithm 算法比較簡單直覺。是否有 cost function 可以套用 optimization 的 discipline?  

K-mean 最大的問題,是如何決定 K? 

 

 

 

 

 

 

Advertisements