機器學習是指一種透過程式設計的演算法,它必須配合電腦程式,因為計算量很大,通常要不斷遞廻計算,無法人工進行。它涉及的數學理論很多,有機率論、統計學、逼近論、計算複雜性計算等多門學科。這邊所說的「學習」(learning)是指給定機器大量資料,由演算法從這些資料中尋找律則,檢視律則的正確性,再利用這些律則對未知資料進行預測。亦即利用己知資料進行訓練,建立模型,將模型套用到未和的預測上。演算法計算的流程通常很複雜,不是程式初學者可以勝任,所幸這些演算法基本上都已寫成模組,我們可以直接叫出使用。
由於人工知智慧( AI) 的技術日漸成熟,各種機器學習的演算法推陳出新,其應用也愈來愈普遍。以目前最熱門的電動車特斯(Tesla),創辦人馬斯克(Elon Musk)說,未來每位車主都會是Model S的「專業教練」。意思是,車主使用Model S的駕駛習慣,都會存電腦系統之中,成為訓練的資料,讓Model S一天比一天進步,成為更聰明的自動駕駛車輛。車主可能不會立即感受到Model S的變化,但經過一段時間,就能發現Model S比以前變得更「聰明」了。特斯拉的AI透過從全球各地車主所蒐集來的巨量數據進行訓練、推論,最終才得以達成足以應付日常生活中自動駕駛這項需求。
機器學習大致可以分成兩種:監督式學習與非監督式學習。監督學習:給定的訓練資料,必須有標記(labelling),代表這筆資料的特性,例如好壞、對錯、程度等級,或各種不同的分類。演算法會學習出一個函數,當新的資料到來時,可以根據資料的屬性,預測這筆資的類別。非監督學習則利用無標註的訓練資料,讓模型自我學習, 依據資料的性質,自行分類,也有結合這兩種模式的半監督式學習、增強學習等,演算法的發展極為快速而複雜。
本章學習包使用的分類的技巧,屬於監督式學習。首先我們以人工方式,標記每筆資料的正、負兩個類別,共一千則,作為我們的訓練集。將資料分為訓練組與測試組,前者用來訓練模式,後者用來檢驗模型的準確率。最後再應用到目標文本,預測其正負傾向。值得注意的是演算法有許多種,我們用了十種演算法:”Nearest Neighbors”, “Linear SVM”, “RBF SVM”, “Gaussian Process”, “Decision Tree”, “Random Forest”, “Neural Net”, “AdaBoost”,”Naive Bayes”, “QDA”,並比較其優劣。
好,現在請大家進入本章的學習包。