機器學習模型

iwork.f3 6年前發布 | 24K 次閱讀 機器學習 AI

機器學習中使用的算法大體分為 3 類:監督學習、無監督學習和強化學習。 監督學習 提供了反饋來表明預測正確與否,而 無監督學習 沒有響應:算法僅嘗試根據數據的隱含結構對數據進行分類。 強化學習 類似于監督學習,因為它會接收反饋,但反饋并不是對每個輸入或狀態都是必要的。本教程將探索這些學習模型背后的理念,以及用于每種模型的一些關鍵算法。

機器學習算法不斷在發展演變。但是,在大部分情況下,這些算法都傾向于適應 3 種學習模型之一。模型的存在,只是為了以某種方式進行自動調節,以便改進算法的操作或行為。

圖 1. 算法的 3 種學習模型

機器學習模型

在監督學習中,數據集包含其目標輸出(或 標簽 ),以便函數能夠計算給定預測的誤差。在做出預測并生成(實際結果與目標結果的)誤差時,會引入監督來調節函數并學習這一映射。

在無監督學習中,數據集不含目標輸出;因此無法監督函數。函數嘗試將數據集劃分為“類”,以便每個類都包含數據集的具有共同特征的一部分。

最后,在強化學習中,算法嘗試學習一些操作,以便獲得導致目標狀態的一組給定狀態。誤差不會在每個示例后提供(就像監督學習一樣),而是在收到強化信號(比如達到目標狀態)后提供。此行為類似于人類學習,僅在給予獎勵時為所有操作提供必要反饋。

現在,讓我們深入分析一下每種模型,了解它們的方法和關鍵算法。

監督學習

監督學習是最容易理解的學習模型。監督模型中的學習需要創建一個函數,該函數可以使用一個訓練數據集來訓練,然后應用于未見過的數據來達到一定的預測性能。構建該函數的目的是為了將映射函數有效推廣到從未見過的數據。

可通過兩個階段來構建和測試一個具有監督學習能力的映射函數。在第一階段,將一個數據集劃分為兩種樣本:訓練數據和測試數據。訓練數據和測試數據都包含一個測試矢量(輸入),以及一個或多個已知的目標輸出值。使用訓練數據集訓練映射函數,直到它達到一定的性能水平(一個衡量映射函數將訓練數據映射到關聯的目標輸出的準確性的指標)。在監督學習的上下文中,會對每個訓練樣本都執行此過程,在此過程中,使用了(實際輸出與目標輸出的)誤差來調節映射函數。在下一階段,將會使用測試數據來測試訓練的映射函數。測試數據表示未用于訓練的數據,并為如何將映射函數有效推廣到未見過的數據提供了一種很好的度量方法。

圖 2. 構建并測試具有監督學習能力的映射函數的兩個階段

機器學習模型

許多算法都屬于監督學習類別,比如支持矢量機和樸素貝葉斯。讓我們查看兩種關鍵方法:神經網絡和決策樹。

神經網絡

神經網絡通過一個模型將輸入矢量處理為結果輸出矢量,該模型的靈感來源于大腦中的神經元和它們之間的連接。該模型包含一些通過權值相互連接的神經元層,權值可以調節某些輸入相對于其他輸入的重要性。每個神經元都包含一個用來確定該神經元的輸出的激活函數(作為輸入矢量與權矢量的乘積的函數)。計算輸出的方式是,將輸入矢量應用于網絡的輸入層,然后(采用前饋方式)計算網絡中每個神經元的輸出。

圖 3. 典型神經網絡的層

機器學習模型

最常用于神經網絡的監督學習方法之一是 反向傳播 。在反向傳播中,會應用一個輸入矢量并計算輸出矢量。計算(實際輸出與目標輸出的)誤差,然后從輸出層向輸入層執行反向傳播,以便調節權值和偏差(作為對輸出的貢獻的函數,可以針對學習率進行調節)。要進一步了解神經網絡和反向傳播,請參閱“神經網絡深入剖析”。

決策樹(Decision trees)

決策樹 是一種用于分類的監督學習方法。根據由數據的特征推斷出的決策規則,這種算法會創建樹來預測輸入矢量的結果。決策樹很有用,因為它們很容易可視化,使您能夠理解導致結果的因素。

圖 4. 一種典型的決策樹

機器學習模型

決策樹有兩種模型: 分類樹回歸樹 。在分類樹中,目標變量是一個離散值,樹葉表示類標簽(如示例樹中所示);在回歸樹中,目標變量可以接受連續值。您使用一個數據集來訓練樹,然后,該樹利用數據構建一種模型。您隨后可以使用該樹,利用未見過的數據制定決策(通過基于當前的測試矢量遍歷樹,直到遇到樹葉)。

有大量用于決策樹學習的算法。最早的算法之一是迭代二叉樹 3(Iterative Dichotomiser 3,ID3),它基于矢量中的一個字段,將數據集拆分為兩個不同的數據集。通過計算字段的熵來選擇字段(熵是對字段值的分布的一種度量)。該算法的目的是從矢量中選擇一個字段,隨著樹的構建,這個字段會導致對數據集的后續拆分的熵下降。

除 ID3 外,還有一個名為 C4.5 的改良算法(ID3 的換代算法)和多元自適應回歸樣條 (MARS),后者構建的決策樹改進了數字處理。

無監督學習

無監督學習也是一種相對簡單的學習模型,但從名稱可以看出,它缺乏評價,且無法度量性能。它的目的是構建一個映射函數,以便基于數據中隱藏的特征將數據劃分為不同類。

與監督學習一樣,無監督學習的使用也分為兩個階段。在第一階段,映射函數將一個數據集劃分為不同的類。每個輸入矢量都包含在一個類中,但該算法無法對這些類應用標簽。

圖 5. 使用無監督學習的兩個階段

機器學習模型

結果可能是數據被劃分為不同的類(然后您可以從中得出有關結果類的結論),但您可以根據應用情況進一步使用這些類。推薦系統就是這類應用中的一種,其中的輸入矢量可能表示用戶的特征或購買行為,一個類中的用戶表示具有類似興趣的用戶,然后可以對這些用戶進行營銷或推薦產品。

要實現無監督學習,可以采用各種各樣的算法,比如 k 均值集群或自適應共振理論,或者 ART(實現數據集的無監督集群的一系列算法)。

K 均值集群(K-means clustering)

k 均值集群起源于信號處理,是一種簡單的流行集群算法。該算法的目的是將數據集中的示例劃分為到 k 個集群中。每個示例都是一個數字矢量,允許計算矢量間的距離作為歐幾里德距離。

下面的簡單示例直觀地展示了如何將數據劃分到 k = 2 個集群中,其中的示例間的歐幾里德距離是離集群的質心(中心)最近的距離,它表明了集群的成員關系。

圖 6. k 均值集群的簡單示例

機器學習模型

k 均值算法非常容易理解和實現。首先將數據集中的每個示例隨機分配到一個集群,計算集群的質心作為所有成員示例的均值,然后迭代該數據集,以確定一個示例離所屬集群更近還是離替代集群更近(假設 k = 2)。如果成員離替代集群更近,則將該示例移到新集群并重新計算它的質心。此過程一直持續到沒有示例移動到替代集群為止。

如圖所示,在對示例矢量中的特征一無所知(即沒有監督)的情況下, k 均值將示例數據集劃分為 k 個集群。

自適應共振理論(Adaptive resonance theory)

自適應共振理論 (ART) 是一系列提供模式識別和預測能力的算法。可以按無監督和監督模型來劃分 ART,但這里將重點介紹無監督方面。ART 是一種自組織神經網絡架構。該方法允許在維護現有知識的同時學習新映射。

k 均值一樣,可以使用 ART1 劃分集群,但它有一個關鍵優勢,因為無需在運行時定義 k ,ART1 可以基于數據來調節集群數量。

ART1 包含 3 種關鍵特征:一個比較字段(用于確定一個新特征矢量有多適合現有類別)、一個識別字段(包含表示活動集群的神經元),以及一個重置模塊。應用輸入矢量后,比較字段會識別最適合它的集群。如果輸入矢量與識別字段的匹配度高于某個警戒參數,則更新與識別字段中的神經元的連接,以便考慮這個新矢量。否則,在識別字段中創建一個新神經元,以便考慮一個新集群。創建新神經元后,不會更新現有神經元的權值,并允許它們保留現有知識。以這種方式應用數據集中的所有示例,直到沒有示例輸入矢量更改集群。此刻,訓練才算完成。

圖 7. ART1 的特性

機器學習模型

ART 包含多個支持二進制輸入矢量或實值矢量 (ART2) 的算法。預測 ART 是 ART1/2 的一種變體,但它依賴于監督式訓練。

強化學習

強化學習是一個有趣的學習模型,不僅能學習如何將輸入映射到輸出,還能學習如何借助依賴關系將一系列輸入映射到輸出(例如 Markov 決策流程)。在環境中的狀態和給定狀態下的可能操作的上下文中,可以應用強化學習。在學習過程中,該算法隨機探索某個環境中的狀態-操作對(以構建一個狀態-操作對表),然后應用所學信息來挖掘狀態-操作對獎勵,以便為給定狀態選擇能導致某個目標狀態的最佳操作。要進一步了解強化學習,請參閱“ 通過強化學習訓練軟件代理來執行合理行為 ”。

圖 8. 強化學習模型

機器學習模型

考慮一個玩 21點撲克游戲的簡單代理。狀態表示玩家的牌數。操作表示玩 21點撲克游戲的代理可以執行的操作 — 在本例中為拿牌或停牌。訓練代理玩 21點撲克游戲涉及到多手牌,會針對獲勝或失敗為給定狀態-操作聯結提供獎勵。例如,狀態值 10 表示拿牌的獎勵為 1.0,停牌的獎勵為 0.0(表明拿牌是最佳選擇)。對于狀態 20,學到的獎勵可能是:拿牌的獎勵為 1.0,停牌的獎勵為 0.0。對于一手不太明確的牌,狀態 17 的操作值可能表示停牌獎勵 0.95 和拿牌獎勵 0.05。然后,此代理會根據概率在 95% 的時間停牌,在 5% 的時間拿牌。在出了許多手牌之后,這些獎勵會變得明確,表明給定狀態(或一手牌)的最佳選擇。

在監督學習中,評價環節會對每個示例進行評分,而在強化學習中,評價環節僅在達到目標狀態(擁有狀態為 21 的一手牌)時提供評分。

Q-learning

Q-learning 是一種強化學習方法,它合并了每個狀態-操作對的 Q 值來表明遵循給定狀態路徑的獎勵。Q-learning 的一般算法是分階段學習一個環境中的獎勵。每個狀態都包括為狀態執行操作,直到達到目標狀態。在學習期間,根據概率完成選擇的操作(作為 Q 值的函數),這允許探索狀態-操作空間。在達到目標狀態時,流程從某個初始位置再次開始。

為給定狀態選擇操作后,會針對每個狀態-操作對來更新 Q 值。對當前狀態應用操作來達到新狀態(應用了折扣系數)后,會使用可用于該新狀態且具有最大 Q 值的操作(可能什么也不做)所提供的獎勵,對狀態-操作對的 Q 值進行更新。通過學習率,可以實現更新結果的進一步折扣,學習率可以確定寶貴的新信息已存在多長時間。折扣系數表明了未來獎勵相較于短期獎勵的重要性。請注意,環境中可能填入負值和正值獎勵,或者只有目標狀態可以表明獎勵。

圖 9. 一種典型的 Q-learning 算法

機器學習模型

此算法用于許多達到目標狀態的時間點,并允許基于狀態的概率性操作選擇來更新 Q 值。完成時,可以自由使用 Q 值(對給定狀態使用具有最大 Q 值的操作)來利用所獲得的知識,以便采用最佳方式達到目標狀態。

強化學習還包含其他具有不同特征的算法。狀態-操作-獎勵-狀態-操作的循環類似于 Q-learning,但操作的選擇不基于最大 Q 值,而是包含一定的概率。強化學習是一種理想的算法,可以學習如何在不確定的環境中制定決策。

結束語

機器學習受益于滿足不同需求的各種各樣的算法。監督學習算法學習一個已經分類的數據集的映射函數,而無監督學習算法可基于數據中的一些隱藏特征對未標記的數據集進行分類。最后,強化學習可以通過反復探索某個不確定的環境,學習該環境中的決策制定策略。

 

來自:http://www.ibm.com/developerworks/cn/cognitive/library/cc-models-machine-learning/index.html?ca=drs-

 

 本文由用戶 iwork.f3 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!