1. 程式人生 > >Spark機器學習(上)

Spark機器學習(上)

控制 常用 nbsp 建立 判斷 測試數據 話題 with 分享圖片

1、機器學習概念

1.1 機器學習的定義


在維基百科上對機器學習提出以下幾種定義:

l“機器學習是一門人工智能的科學,該領域的主要研究對象是人工智能,特別是如何在經驗學習中改善具體算法的性能”。

l“機器學習是對能通過經驗自動改進的計算機算法的研究”。

l“機器學習是用數據或以往的經驗,以此優化計算機程序的性能標準。” 一種經常引用的英文定義是:A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E。
可以看出機器學習強調三個關鍵詞:算法、經驗、性能,其處理過程如下圖所示。

技術分享圖片




上圖表明機器學習是數據通過算法構建出模型並對模型進行評估,評估的性能如果達到要求就拿這個模型來測試其他的數據,如果達不到要求就要調整算法來重新建立模型,再次進行評估,如此循環往復,最終獲得滿意的經驗來處理其他的數據。

1.2 機器學習的分類

1.2.1 監督學習


監督是從給定的訓練數據集中學習一個函數(模型),當新的數據到來時,可以根據這個函數(模型)預測結果。監督學習的訓練集要求包括輸入和輸出,也可以說是特征和目標。訓練集中的目標是由人標註(標量)的。在監督式學習下,輸入數據被稱為“訓練數據”,每組訓練數據有一個明確的標識或結果,如對防垃圾郵件系統中“垃圾郵件”、“非垃圾郵件”,對手寫數字識別中的“1”、“2”、“3”等。在建立預測模型時,監督式學習建立一個學習過程,將預測結果與“訓練數據”的實際結果進行比較,不斷調整預測模型,直到模型的預測結果達到一個預期的準確率。常見的監督學習算法包括回歸分析和統計分類:

l 二元分類是機器學習要解決的基本問題,將測試數據分成兩個類,如垃圾郵件的判別、房貸是否允許等問題的判斷。

l 多元分類是二元分類的邏輯延伸。例如,在因特網的流分類的情況下,根據問題的分類,網頁可以被歸類為體育、新聞、技術等,依此類推。

監督學習常常用於分類,因為目標往往是讓計算機去學習我們已經創建好的分類系統。數字識別再一次成為分類學習的常見樣本。一般來說,對於那些有用的分類系統和容易判斷的分類系統,分類學習都適用。

監督學習是訓練神經網絡和決策樹的最常見技術。神經網絡和決策樹技術高度依賴於事先確定的分類系統給出的信息。對於神經網絡來說,分類系統用於判斷網絡的錯誤,然後調整網絡去適應它;對於決策樹,分類系統用來判斷哪些屬性提供了最多的信息,如此一來可以用它解決分類系統的問題。

技術分享圖片

1.2.2 無監督學習


與監督學習相比,無監督學習的訓練集沒有人為標註的結果。在非監督式學習中,數據並不被特別標識,學習模型是為了推斷出數據的一些內在結構。常見的應用場景包括關聯規則的學習以及聚類等。常見算法包括Apriori算法和k-Means算法。這類學習類型的目標不是讓效用函數最大化,而是找到訓練數據中的近似點。聚類常常能發現那些與假設匹配的相當好的直觀分類,例如基於人口統計的聚合個體可能會在一個群體中形成一個富有的聚合,以及其他的貧窮的聚合。

技術分享圖片


非監督學習看起來非常困難:目標是我們不告訴計算機怎麽做,而是讓它(計算機)自己去學習怎樣做一些事情。非監督學習一般有兩種思路:第一種思路是在指導Agent時不為其指定明確的分類,而是在成功時采用某種形式的激勵制度。需要註意的是,這類訓練通常會置於決策問題的框架裏,因為它的目標不是產生一個分類系統,而是做出最大回報的決定。這種思路很好地概括了現實世界,Agent可以對那些正確的行為做出激勵,並對其他的行為進行處罰。

因為無監督學習假定沒有事先分類的樣本,這在一些情況下會非常強大,例如,我們的分類方法可能並非最佳選擇。在這方面一個突出的例子是Backgammon(西洋雙陸棋)遊戲,有一系列計算機程序(例如neuro-gammon和TD-gammon)通過非監督學習自己一遍又一遍地玩這個遊戲,變得比最強的人類棋手還要出色。這些程序發現的一些原則甚至令雙陸棋專家都感到驚訝,並且它們比那些使用預分類樣本訓練的雙陸棋程序工作得更出色。


1.2.3 半監督學習


半監督學習(Semi-supervised Learning)是介於監督學習與無監督學習之間一種機器學習方式,是模式識別和機器學習領域研究的重點問題。它主要考慮如何利用少量的標註樣本和大量的未標註樣本進行訓練和分類的問題。半監督學習對於減少標註代價,提高學習機器性能具有非常重大的實際意義。主要算法有五類:基於概率的算法;在現有監督算法基礎上進行修改的方法;直接依賴於聚類假設的方法等,在此學習方式下,輸入數據部分被標識,部分沒有被標識,這種學習模型可以用來進行預測,但是模型首先需要學習數據的內在結構以便合理地組織數據來進行預測。應用場景包括分類和回歸,算法包括一些對常用監督式學習算法的延伸,這些算法首先試圖對未標識數據進行建模,在此基礎上再對標識的數據進行預測,如圖論推理算法(Graph Inference)或者拉普拉斯支持向量機(Laplacian SVM)等。
半監督學習分類算法提出的時間比較短,還有許多方面沒有更深入的研究。半監督學習從誕生以來,主要用於處理人工合成數據,無噪聲幹擾的樣本數據是當前大部分半監督學習方法使用的數據,而在實際生活中用到的數據卻大部分不是無幹擾的,通常都比較難以得到純樣本數據。

技術分享圖片


1.2.4 強化學習


強化學習通過觀察來學習動作的完成,每個動作都會對環境有所影響,學習對象根據觀察到的周圍環境的反饋來做出判斷。在這種學習模式下,輸入數據作為對模型的反饋,不像監督模型那樣,輸入數據僅僅是作為一個檢查模型對錯的方式,在強化學習下,輸入數據直接反饋到模型,模型必須對此立刻做出調整。常見的應用場景包括動態系統以及機器人控制等。常見算法包括Q-Learning 以及時間差學習(Temporal difference learning)。

技術分享圖片


在企業數據應用的場景下,人們最常用的可能就是監督式學習和非監督式學習的模型。在圖像識別等領域,由於存在大量的非標識的數據和少量的可標識數據,目前半監督式學習是一個很熱的話題。而強化學習更多地應用在機器人控制及其他需要進行系統控制的領域。(上海尚學堂python人工智能提供技術支持,轉載請註明原文出處!)

Spark機器學習(上)