近十幾年來,已經出現許多監督式學習(Supervised Learning)分類的方法,
如 SVM[1]、Ada-boost[2]、Random Forest[3]、Logistic Regression[4]和 Naïve Bayes[5]等等,這些方法需要足夠標記資料訓練分類器,同時必須將所有標記資料 一次載入機器做運算和處理;這些方法在有限運算能力的機器上,往往無法有效率 處理這些無限且快速膨脹的資訊。
在機器學習方法中,機率模型是用來從觀察到的資料建立學習模型。傳統的參 數模型(parametric model)使用固定且有限的參數,容易在模型(通常可用一些參 數來表示)與資料之間產生 overfitting 或 underfitting 的問題,例如 Kmeans[6]、
GMM[7]等方法,在分群或分類之前我們都必須先給定一個群數或類別數參數,但是 此參數要設為多少,是一項困難的問題;而設定此參數又是一件很重要的事,就算 我們先將訓練資料切一小塊交叉驗證測試資料集合來測試哪個參數較好,還是不容 易找到一個最佳的參數(不會造成 overfitting 或 underfitting 的參數)。
參數模型中,通常針對想要解的問題,只能觀察到部分資料,若想估計資料的 分佈,貝氏方法提供一個給定事前機率,計算這些資料產生分佈之事後機率的方法
來估計分佈參數。傳統上,在分佈上面的事前機率通常是從一定的範圍內給定,這 限定了推論(Inference)的範疇。無母數方法提升了事前機率所給定的空間,通常 是包含所有分佈的空間。因為所有分佈空間都已考慮在模型中,貝氏無母數 (Bayesian Non-parametric)方法可避免參數選擇(parameter selection)和挑選模 型(model selection)問題,而且參數可隨資料自行變動,可降低 overfitting 和 underfitting 的狀況,基於 Dirichlet Process[8] 的 Dirichlet Process Mixture Model 即是一個經典的貝氏無母數模型。中國餐廳過程(Chinese Restaurant Process)[9,10,11]描述了從一個 Dirichlet Process 中取樣出分佈參數的過程,
以中國餐廳過程建構出來之混合模型(Mixture Model)又可以稱為中國餐廳過程混 合模型(Chinese Restaurant Process Mixture Model)。
實務上,很多問題具備 Online 特性,在我們做完分析後給了預測,系統馬上
例如將循序式演算法引入 MPI(Message Passing Interface)和 OpenMP 等概念。或 是像由 NVIDIA 所推出之 CUDA(Compute Unified Device Architecture),以及 Google 所提倡的 Map-Reduce[12]技術。
本論文提出的方法保留了中國餐廳過程混合模型(Chinese Restaurant Process Mixture Model)的無母數特性,也保留了 Online learning 的特性,可有效處理巨 量資料。
1.2 研究目的
傳統的許多監督式學習分類方法已經無法處理這些龐大的巨量資料,面臨的問 題除了隨著訓練資料持續的新增,必須持續更新模型參數外,要在訓練模型之前,
事先決定類別數參數也是一件困難的事,因此我們希望可以發展一個可以即時針對 新增的訓練資料更新模型參數外,同時使模型依資料特性自行決定類別數參數,且 能有效處理巨量資料的方法。
本論文的主要目的即是提出一個基於傳統中國餐廳過程(Chinese Restaurant Process)的全新 online learning algorithm。此演算法可以即時性的針對新增的 訓練資料來更新模型,更可以用來處理巨量資料。
此外,對於新到的訓練資料,若以往沒有此類別的訓練資料,運用無母數方 法的特性,本論文的演算法可以即時性的開拓訓練一個新類別並加入原來的模型,
使之更具彈性。
1.3 論文架構
1. 緒論 2. 相關研究
3. Online Chinese Restaurant Process 4. 實驗結果
5. 未來展望 6. 參考文獻