當前位置:
首頁 > 科技 > 深入淺出機器學習的基本原理與基礎概念

深入淺出機器學習的基本原理與基礎概念

接收程序員的 8 點技術早餐

不知道你在生活中是否留意過這樣的現象:我們可以根據相貌輕易區分出日本人、韓國人和泰國人,卻對英國人、俄羅斯人和德國人臉盲。造成這種現象的原因一方面在於日韓泰都是我國的鄰國,觀察這些國家普通人的機會較多;另一方面,拋開衣妝的因素不論,相同的人種也使得面貌特徵更加容易進行比較和辨別。

因此,根據大量的觀察就能總結出不同國別的相貌特點:中國人下頜適中,日本人長臉長鼻,韓國人眼小顴高,泰國人膚色暗深。在做出路人甲來自日本或是路人乙來自韓國的判斷時,正是以這些特徵作為依據的。

上面的例子就是簡化版的人類學習機制:從大量現象中提取反覆出現的規律與模式。這一過程在人工智慧中的實現就是機器學習。從形式化角度定義,如果演算法利用某些經驗使自身在特定任務類上的性能得到改善,就可以說該演算法實現了機器學習。而從方法論的角度看,機器學習是計算機基於數據構建概率統計模型並運用模型對數據進行預測與分析的學科

機器學習可說是從數據中來,到數據中去。假設已有數據具有一定的統計特性,則不同的數據可以視為滿足獨立同分布的樣本。機器學習要做的就是根據已有的訓練數據推導出描述所有數據的模型,並根據得出的模型實現對未知的測試數據的最優預測。

在機器學習中,數據並非通常意義上的數量值,而是對於對象某些性質的描述。被描述的性質叫作屬性,屬性的取值稱為屬性值,不同的屬性值有序排列得到的向量就是數據,也叫實例。在文首的例子中,黃種人相貌特徵的典型屬性便包括膚色、眼睛大小、鼻子長短、顴骨高度。標準的中國人實例甲就是屬性值的組合,標準的韓國人實例乙則是屬性值的組合。

根據線性代數的知識,數據的不同屬性之間可以視為相互獨立,因而每個屬性都代表了一個不同的維度,這些維度共同張成了特徵空間。每一組屬性值的集合都是這個空間中的一個點,因而每個實例都可以視為特徵空間中的一個向量,即特徵向量。需要注意的是這裡的特徵向量不是和特徵值對應的那個概念,而是指特徵空間中的向量。根據特徵向量對輸入數據進行分類就能夠得到輸出。

在前面的例子中,輸入數據是一個人的相貌特徵,輸出數據就是中國人 / 日本人 / 韓國人 / 泰國人四中選一。而在實際的機器學習任務中,輸出的形式可能更加複雜。根據輸入輸出類型的不同,預測問題可以分為以下三類。

分類問題:輸出變數為有限個離散變數,當個數為 2 時即為最簡單的二分類問題;

回歸問題:輸入變數和輸出變數均為連續變數;

標註問題:輸入變數和輸出變數均為變數序列。

但在實際生活中,每個國家的人都不是同一個模子刻出來的,其長相自然也會千差萬別,因而一個濃眉大眼的韓國人可能被誤認為中國人,一個膚色較深的日本人也可能被誤認為泰國人。

同樣的問題在機器學習中也會存在。一個演算法既不可能和所有訓練數據符合得分毫不差,也不可能對所有測試數據預測得精確無誤。因而誤差性能就成為機器學習的重要指標之一。

在機器學習中,誤差被定義為學習器的實際預測輸出與樣本真實輸出之間的差異。在分類問題中,常用的誤差函數是錯誤率,即分類錯誤的樣本佔全部樣本的比例。

誤差可以進一步分為訓練誤差和測試誤差兩類。訓練誤差指的是學習器在訓練數據集上的誤差,也稱經驗誤差;測試誤差指的是學習器在新樣本上的誤差,也稱泛化誤差。

訓練誤差描述的是輸入屬性與輸出分類之間的相關性,能夠判定給定的問題是不是一個容易學習的問題。測試誤差則反映了學習器對未知的測試數據集的預測能力,是機器學習中的重要概念。實用的學習器都是測試誤差較低,即在新樣本上表現較好的學習器。

學習器依賴已知數據對真實情況進行擬合,即由學習器得到的模型要儘可能逼近真實模型,因此要在訓練數據集中儘可能提取出適用於所有未知數據的普適規律。然而,一旦過於看重訓練誤差,一味追求預測規律與訓練數據的符合程度,就會把訓練樣本自身的一些非普適特性誤認為所有數據的普遍性質,從而導致學習器泛化能力的下降。

在前面的例子中,如果接觸的外國人較少,從沒見過雙眼皮的韓國人,思維中就難免出現「單眼皮都是韓國人」的錯誤定式,這就是典型的過擬合現象,把訓練數據的特徵錯當做整體的特徵。過擬合出現的原因通常是學習時模型包含的參數過多,從而導致訓練誤差較低但測試誤差較高

與過擬合對應的是欠擬合。如果說造成過擬合的原因是學習能力太強,造成欠擬合的原因就是學習能力太弱,以致於訓練數據的基本性質都沒能學到。如果學習器的能力不足,甚至會把黑猩猩的圖像誤認為人,這就是欠擬合的後果。

在實際的機器學習中,欠擬合可以通過改進學習器的演算法克服,但過擬合卻無法避免,只能盡量降低其影響。由於訓練樣本的數量有限,因而具有有限個參數的模型就足以將所有訓練樣本納入其中。可模型的參數越多,能與這個模型精確相符的數據也就越少,將這樣的模型運用到無窮的未知數據當中,過擬合的出現便不可避免。更何況訓練樣本本身還可能包含一些雜訊,這些隨機的雜訊又會給模型的精確性帶來額外的誤差。

整體來說,測試誤差與模型複雜度之間呈現的是拋物線的關係。當模型複雜度較低時,測試誤差較高;隨著模型複雜度的增加,測試誤差將逐漸下降並達到最小值;之後當模型複雜度繼續上升時,測試誤差會隨之增加,對應著過擬合的發生。

在模型選擇中,為了對測試誤差做出更加精確的估計,一種廣泛使用的方法是交叉驗證。交叉驗證思想在於重複利用有限的訓練樣本,通過將數據切分成若干子集,讓不同的子集分別組成訓練集與測試集,並在此基礎上反覆進行訓練、測試和模型選擇,達到最優效果。

如果將訓練數據集分成 10 個子集 $D_$ 進行交叉驗證,則需要對每個模型進行 10 輪訓練,其中第 1 輪使用的訓練集為 $D_2$~$D_10$ 這 9 個子集,訓練出的學習器在子集 $D_1$ 上進行測試;第 2 輪使用的訓練集為 $D_1$ 和 $D_3$~$D_10$ 這 9 個子集,訓練出的學習器在子集 $D_2$ 上進行測試。依此類推,當模型在 10 個子集全部完成測試後,其性能就是 10 次測試結果的均值。不同模型中平均測試誤差最小的模型也就是最優模型。

除了演算法本身,參數的取值也是影響模型性能的重要因素,同樣的學習演算法在不同的參數配置下,得到的模型性能會出現顯著的差異。因此,調參,也就是對演算法參數進行設定,是機器學習中重要的工程問題,這一點在今天的神經網路與深度學習中體現得尤為明顯。

假設一個神經網路中包含 1000 個參數,每個參數又有 10 種可能的取值,對於每一組訓練 / 測試集就有 $1000 ^ $ 個模型需要考察,因而在調參過程中,一個主要的問題就是性能和效率之間的折中。

在人類的學習中,有的人可能有高人指點,有的人則是無師自通。在機器學習中也有類似的分類。根據訓練數據是否具有標籤信息,可以將機器學習的任務分成以下三類。

監督學習:基於已知類別的訓練數據進行學習;

無監督學習:基於未知類別的訓練數據進行學習;

半監督學習:同時使用已知類別和未知類別的訓練數據進行學習。

受學習方式的影響,效果較好的學習演算法執行的都是監督學習的任務。即使號稱自學成才、完全脫離了對棋譜依賴的 AlphaGo Zero,其訓練過程也要受圍棋勝負規則的限制,因而也脫不開監督學習的範疇。

監督學習假定訓練數據滿足獨立同分布的條件,並根據訓練數據學習出一個由輸入到輸出的映射模型。反映這一映射關係的模型可能有無數種,所有模型共同構成了假設空間。監督學習的任務就是在假設空間中根據特定的誤差準則找到最優的模型。

根據學習方法的不同,監督學習可以分為生成方法與判別方法兩類

生成方法是根據輸入數據和輸出數據之間的聯合概率分布確定條件概率分布 $P(Y|X)$,這種方法表示了輸入 X 與輸出 Y 之間的生成關係;判別方法則直接學習條件概率分布 $P(Y|X)$ 或決策函數 $f(X)$,這種方法表示了根據輸入 X 得出輸出 Y 的預測方法。兩相對比,生成方法具有更快的收斂速度和更廣的應用範圍,判別方法則具有更高的準確率和更簡單的使用方式

今天我和你分享了機器學習的基本原理與基礎概念,其要點如下:

機器學習是計算機基於數據構建概率統計模型並運用模型對數據進行預測與分析的學科;

根據輸入輸出類型的不同,機器學習可分為分類問題、回歸問題、標註問題三類;

過擬合是機器學習中不可避免的問題,可通過選擇合適的模型降低其影響;

監督學習是目前機器學習的主流任務,包括生成方法和判別方法兩類。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 InfoQ 的精彩文章:

遊戲開發經驗總結:分散式架構、資料庫與進程設計
谷歌資深工程師辭職稱公司不再創新;Win 10將讓用戶跟蹤微軟收集的數據;Linus稱英特爾的補丁是垃圾

TAG:InfoQ |