當前位置:
首頁 > 最新 > 機器學習基礎知識1

機器學習基礎知識1

遵循:BY-SA(署名-相同方式共享4.0協議)

機器學習是人工智慧的一個重要的分支。這篇文章將會有助於你對機器學習的理解和認識,帶你熟悉其基本原理和基本概念。

先列舉下本文將會給你帶來的一些名詞(這只是本篇文章含有的名詞):

數據集(data set)、示例(instance)/樣本(sample)、屬性(attribute)/特徵(feature)、屬性值(attribute value)、屬性空間(attribute space)/樣本空間(sample space)/輸入空間、特徵向量(feature vector)、維數(dimensionality)、學習(learning)/訓練(training)、訓練數據(training data)、訓練樣本(training sample)、訓練集(training set)、假設(hypothesis)、真相/真實(ground-truth)、學習器(learner)、標記(label)、樣例(example)、標記空間(label space)/輸出空間、分類(classification)、回歸(regression)、二分類(binary classification)、正類(positive class)、反類(negative class)、多分類(multi-class classification)、測試(testing)、測試樣本(testing sample)、聚類(clustering)、監督學習(supervised learning)、無監督學習(unsupervised learning)、泛化(generalization)能力、分布(distribution)、獨立同分布(independent and identically distributed)、歸納(induction)、演繹(deduction)、泛化(generalization)過程、特化(specialization)過程、歸納學習(inductive learning)、版本空間(version space)、歸納偏好(inductive bias)/偏好、奧卡姆剃刀(Occam"s razor)、沒有免費的午餐定理(No Free Lunch Theorem)/NFL定理、深度學習(deep learning)等。

當我們去判斷瓜是否成熟,很多是憑藉經驗。會根據色澤、根蒂、敲聲等不同的角度去綜合判斷。但如果這些事情要用計算機去判斷處理怎麼辦呢?這就是機器學習要研究和做的類似事情,機器學習是研究如何通過計算的手段,找出規律和經驗,利用經驗來改善和達到所需效果的過程。在計算機中,「經驗」就是以「數據」形式存在的,對其進行計算分析來挖掘數據經驗。形成的經驗(模型)就可以用來預測和處理其他的類似數據和問題了,模型就是從數據分析中學習到的結果。以西瓜的選擇為例,我們收集了一批西瓜的數據,從各個方面進行了標記(label),如(色澤=青綠;根蒂=蜷縮;敲聲=濁響),(色澤=烏黑;根蒂=稍蜷;敲聲=沉悶),(色澤=淺白;根蒂=硬挺;敲聲=清脆),... ...。那麼這些數據的集合就稱為「數據集(data set)」,每條數據就是一個「示例(instance)/樣本(sample)」。其中的色澤、根蒂、敲聲叫做「屬性」或「特徵」。屬性取值叫做屬性值或特徵值。屬性所佔有的空間叫做「屬性空間」或「樣本空間」/「輸入空間」。如西瓜有色澤、根蒂、敲聲三個屬性,把它的屬性看成三個坐標軸,那麼每個西瓜都有其空間上的坐標位置,這個位置點對應一個坐標向量,所以一個示例或樣本也叫做一個「特徵向量」。

定義幾個符號:D=數據樣本(數據集)、x=標量、x=向量、X=變數集、χ=樣本空間或狀態空間

D={x1,x2,x3,...,xm}表示含有m個樣本的數據集,每個樣本由d個屬性(特徵)描述,即每個樣本xi=是d維樣本空間χ的一個向量,xi∈χ。其中xij是xi在第j個屬性上的取值,d稱為樣本xi的「維數」。

從數據中學習得到模型的過程稱為「學習(learning)」/「訓練(training)」,這個過程就是通過執行某個學習演算法來完成的。訓練過程中使用的數據稱為「訓練數據(training data)」,其中每個樣本稱為一個「訓練樣本(training sample)」訓練樣本組成的集合稱為「訓練集(training set)」。學習得到的模型對應了關於數據的某種潛在的規律,因此也成為「假設(hypothesis)」。這種潛在的規律自身也稱為「真相」或「真實(ground-truth)」,學習的過程就是為了找出或逼近真相。當我們在預測天氣好與壞的時候,把這些包含結果信息的數據,如「好天氣」稱為「標記(label)」;擁有了標記信息的示例/樣本,則稱為「樣例(example)」

這裡用(xi,yi)表示第i個樣例,其中yi∈Y是樣本xi的標記,Y是所有標記的集合,也成為「標記空間(label space)」或「輸出空間」。

再看下分類,二分類,回歸,多分類,聚類的簡單介紹和例子。如果我們想要預測的是離散值,如「好天氣」「壞天氣」,「好瓜」「壞瓜」,那麼此類學習任務就稱為「分類(classification)」;如果想要預測的是連續值,例如西瓜成熟度0.95,0.37,那麼此類學習任務稱為「回歸(regression)」,其中,只涉及兩個類別的分類問題叫二分類任務,其中一個類叫做「正類」,另一個叫「反類」。涉及多個類別時稱為「多分類」任務。一般情況,我們是通過訓練集數據進行學習,找規律,形成一個從輸入空間到輸出空間的映射關係f:X->Y。對於二分類任務,我們把輸出通常取值Y={-1,1}或{0,1};多分類任務,|Y|>2;對於回歸任務,Y=R,R為實數集。

當我們得到模型後,用這個模型去進行預測的過程就叫做「測試(testing)」,被預測的樣本成為「測試樣本」。例如在學習得到f後,對測試樣本x,可以得到預測表及y=f(x)。

對於聚類問題,還是以西瓜為例,將訓練集中的西瓜分成若干組,每組稱為一個「簇(cluster)」,這些自動形成的簇可能對應一些潛在的概念劃分,如「淺色瓜」「深色瓜」,「本地瓜」「外地瓜」。聚類的樣本信息一般都是沒有標記的。

訓練數據有標記稱為「監督學習」,無標記稱為「無監督學習」,分類和回歸屬於監督,聚類是無監督。

那麼我們機器學習的目標就是使學習得到的模型能很好的應用於「新樣本」,新數據。學習得到的模型適用於新樣本的能力,稱為「泛化」能力,具有強泛化能力的模型能很好的適用於整個樣本空間。通常我們假設樣本空間中全體樣本服從一個未知「分布」(distribution)D,我們獲得的每個樣本都是獨立的從這個分布上採樣獲得的,即「獨立同分布」,一般來說,訓練樣本越多,我們得到的關於D(未知分布)的信息越多,就更有利於我們獲取強泛化能力的模型。

再來看假設空間:歸納和演繹是科學推理的量大基本手段,前者是從特殊到一般的「泛化」過程,即從具體的事實歸結出一般性規律,如機器學習的從一堆數據中找規律,再用這個規律推廣;後者是從一般到特殊的「特化」過程,即從基礎原理推演出具體情況。就像我們在學習數學時,基於一組公理和推理規則推導出與之相洽的定理,這就是演繹。「從樣例中學習」是一個歸納的過程,也稱為「歸納學習」。

機器學習過程可以看做是從有限的數據集(特殊)進行搜索的過程,搜索目標是找到與訓練集「匹配」的假設。從特殊到一般的歸納過程。現實問題中,我們常面臨很大的假設空間,但學習過程是基於有限樣本訓練集進行的,因此可能有多個假設與訓練集一致,即存在著一個與訓練集一致的「假設集合」,稱作「版本空間」。例如西瓜問題的一個版本空間:

再看下歸納偏好:假設我們有三個假設模型,(色澤=*;根蒂=蜷縮;敲聲=*)、(色澤=*;根蒂=*;敲聲=濁響)和(色澤=*;根蒂=蜷縮;敲聲=濁響),用來判斷好瓜的標準。那麼對於一個瓜來說,我們採用不同的假設模型可能會產生不同的結果,那麼我們應該採用哪一個模型呢?機器學習演算法在學習過程中對某種類型假設的偏好,稱為「歸納偏好」或「偏好」。

如上圖,存在A和B兩條線可以連接這五個點,但是哪個線更好些呢?可能學習演算法更偏好比較平滑的曲線A。歸納偏好可以看作是學習演算法自身在一個可能很龐大的假設空間中對假設進行選擇的啟發式或「價值觀」。那麼有沒有一般性的原則來引導演算法確立「正確的」偏好呢?「奧克姆剃刀」是一種常用的、自然科學研究中最基本的原則,即「若有多個假設與觀察一致,則選最簡單的那個」。但是,奧卡姆剃刀並非唯一可行的原則。

其實經過各種數學推證,不管選擇哪種假設模型偏好,總誤差是一樣的!即總誤差與學習演算法無關!無論演算法A多聰明,演算法B多笨拙,他們的期望性能是相同的!這就是「沒有免費的午餐」定理,簡稱NFL定理。

那麼很多人到這裡可能會問了,既然所有學習演算法的期望性能都跟隨機胡猜差不多,那麼還用它幹嘛?但是要注意:NFL定理有一個重要的前提,所有「問題」出現的機會相同、或所有問題同等重要。但實際情形並不是這樣,很多時候,我們只關注自己正在試圖解決的問題,希望為它找到一個解決方案,至於這個解決方案在別的問題、甚至在相似的問題上是否為好方案,我們並不關心。所以NFL定理最重要的寓意,是讓我們清楚地認識到,脫離具體問題,空泛的談論「什麼學習演算法更好」毫無意義。學習演算法自身的歸納偏好與問題是否匹配,往往會起到決定性的作用。

學習機器學習,人工智慧了解歷史也是有必要的。

機器學習是人工智慧研究發展到一定階段的必然產物。廣義的歸納學習(從樣例中學習)涵蓋了監督學習、無監督學習,是被研究最多、應用最廣的。

二十世紀八十年代,「從樣例中學習」的一大主流是符號主義學習,其代表包括決策樹(decision tree)和基於邏輯的學習。

二十世紀九十年代中期之前,「從樣例中學習」的另一主流技術是基於神經網路的連接主義學習。1986年,D.E.Rumelhart等人重新發明了著名的BP演算法,產生了深遠影響。

二十世紀九十年代中期,「統計學習(statistical learning)」閃亮登場並迅速佔據主流舞台,代表性技術是支持向量機(Support Vector Machine)以及更一般的「核方法(kernel methods)」。

二十一世紀初,連接主義學習又捲土重來,掀起了以「深度學習」為名的熱潮。所謂深度學習,狹義的說就是「很多層」的神經網路。在很多測試和競賽上,特別是涉及到語音、圖像等複雜對象的應用中,深度學習技術取得了優越性能。

那麼,為什麼它這個時候才熱起來?有兩個基本原因:數據大了、計算能力強了。深度學習技術涉及的模型複雜度非常高,以至於要下功夫「調參」,把參數調節好,性能往往就好。因此深度學習雖然缺乏嚴格的理論基礎,但它顯著降低了機器學習應用者的門檻,為機器學習技術走向工程實踐帶來了便利。深度學習模型擁有大量的參數,若數據樣本少,則很容易「過擬合」。機器學習現在已經發展成為一個相當大的學科領域。

今天,在計算機科學的很多分支學科領域中,無論是多媒體、圖形學,還是網路通信、軟體工程,乃至體系結構、晶元設計,都能找到機器學習技術的身影,尤其是在計算機視覺、自然語言處理等「計算機應用技術」領域,機器學習已經成為最重要的技術進步源泉之一。「數據分析」恰是機器學習技術的舞台。

科學研究的基本手段已經從傳統的「理論+實驗」變成現在的「理論+實驗+計算」,也出現了「數據科學」的提法。「計算」的目的往往是數據分析,而數據科學的核心也恰恰是通過分析數據來獲得價值。

2006年,卡耐基梅隆大學宣告成立世界上第一個「機器學習系」。說到數據分析,很多人會想到「數據挖掘(data mining)」,而機器學習和統計學的研究為數據挖掘提供數據分析技術。美國《新聞周刊》曾對谷歌搜索有一句話評論:「它使任何人離任何問題的答案間的距離變得只有點擊一下滑鼠這麼遠」。除了深度學習,還可以了解下「遷移學習」、「類比學習」、「集成學習」等。

機器學習領域最重要的國際會議是國際機器學習會議(ICML)、國際神經信息處理系統會議(NIPS)和國際學習理論會議(COLT),重要的區域性會議主要有歐洲機器學習會議(ECML)和亞洲機器學習會議(ACML),最重要的國際學術期刊是Journal of Machine Learning Research和Machine Learing。人工智慧領域的重要會議如IJCAI、AAAI以及重要期刊如Artificial Intelligence、Journal of Artificial Intelligence Research等。國內機器學習領域最主要的活動是兩年一次的中國機器學習大會(CCML)以及每年句型的「機器學習以及應用」研討會(MLA),很多學術刊物都經常刊登有關機器學習的論文。

參考文獻:

[1]周志華.機器學習[M].北京:清華大學出版社,2016.

[2]陸汝鈐.人工智慧(下冊).北京:科學出版社,1996.

[3]Alpaydin,E.Introduction to Machine Learning.MA:MIT Press,Cambridge,2004.


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

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


請您繼續閱讀更多來自 機器學習 的精彩文章:

python機器學習運算贏得象棋比賽的概率及天氣對飛機的影響
機器學習之熵從定義到代碼

TAG:機器學習 |