機器學習演算法總覽

2021-10-19 08:27:16 字數 1453 閱讀 5316

本文對機器學習做乙個大體概覽,以便看清該學科分支的知識點分布情況,以供後續學習指明方向與道路。

一般的解釋如下:

機器學習是通過程式設計讓計算機從資料中進行學習的科學(和藝術)。

還有兩位前輩對機器學習的定義如下:

機器學習是讓計算機具有學習的能力,無需進行明確程式設計。 —— 亞瑟·薩繆爾,1959

電腦程式利用經驗 e 學習任務 t,效能是 p,如果針對任務 t 的效能 p 隨著經驗 e 不斷增長,則稱為機器學習。 —— 湯姆·公尺切爾,1997

在《sklearn與tensorflow機器學習實用指南》一書中,指出機器學習的特長如下:

1 需要進行大量手工調整或需要擁有長串規則才能解決的問題:機器學習演算法通常可以簡化**、提高效能。

2 問題複雜,傳統方法難以解決:最好的機器學習方法可以找到解決方案。

3 環境有波動:機器學習演算法可以適應新資料。

4 洞察複雜問題和大量資料。

根據訓練手段與資料特點,常見的機器學習演算法被分為以下幾類(考慮到深度學習屬於機器學習的乙個分支,但其自身研究規模可以單獨成為一門學科,所以不再將深度學習內容吸納進來):

1 監督學習

2 無監督學習

3 半監督學習

4 強化學習

當然,如果從問題本身出發,則可以按問題特徵將演算法進行分類,如分類問題、回歸問題、聚類問題以及降維問題等。在監督學習中,用來訓練的資料報含了答案,一般將這個答案稱為標籤。通常在分類與回歸問題中,多數用到監督學習演算法。其包含的演算法有:

k近鄰演算法、線性回歸、邏輯回歸、支援向量機、決策樹和隨機森林、神經網路(隸屬深度學習)等多種演算法。

在無監督學習中,訓練資料是不帶標籤的。通常在聚類、關聯規則、降維以及異常檢測等任務中需要用到無監督學習演算法。其包含的演算法有:

聚類、k均值、層次聚類分析、期望最大值、視覺化和降維、主成分分析、關聯性規則學習、apriori 演算法等多種演算法。

在半監督學習中,面對的是部分帶標籤的訓練資料,即通常是大量不帶標籤資料和小部分帶標籤資料。半監督學習介於監督學習與無監督學習之間,所以多數半監督學習演算法是監督演算法和無監督演算法的結合。例如深度信念網路(deep belief networks)是基於互相疊加的受限玻爾茲曼機(restricted boltzmann machines,rbm),後者是乙個非監督元件。rbm 先用無監督學習方法進行訓練,再用監督學習方法進行整個系統的微調。

強化學習在機器學習中獨樹一幟,學習系統在這裡被稱為智慧型體(agent),可以對環境進行觀察,選擇和執行動作,從而獲得獎勵或懲罰,以此促進系統自己學習哪個是最佳方法或策略才能得到長久的最大獎勵,學習到的策略決定了智慧型體在給定情況下應該採取的行動。deepmind 的 alphago 就是強化學習的典型案例,它在 2016 年三月擊敗了世界圍棋冠軍李世石,震撼一時。

宣告:對於機器學習的入門書籍,筆者較為推薦文中提到的《sklearn與tensorflow機器學習實用指南》,筆者也是在閱讀之後想將其內容分享給諸位,本篇博文的素材與思路大多**於這本書。

機器學習入門總覽(下)

整合學習是機器學習中乙個非常重要且熱門的分支,是用多個弱分類器構成乙個強分類器,核心理論就是團結力量大。一般的弱分類器可以由決策樹,神經網路,貝葉斯分類器,k 近鄰等構成。整合原因 1 模型選擇 假設各弱分類器間具有一定差異性,這會導致生成的分類決策邊界不同。所以它們多多少少都會有錯誤,於是把它們結...

基礎排序演算法總覽

比較相鄰的兩元素,不滿足大小關係則互換,一次遍歷能將乙個元素放到正確的位置上。完成排序需要n次遍歷,則事件複雜度o n 2 可以不使用額外的資料結構,則空間複雜度為o 1 可以相等時不交換,則是穩定的排序演算法。python3 大致如下 from typing import list defbubb...

基礎排序演算法總覽

比較相鄰的兩元素,不滿足大小關係則互換,一次遍歷能將乙個元素放到正確的位置上。完成排序需要n次遍歷,則事件複雜度o n 2 可以不使用額外的資料結構,則空間複雜度為o 1 可以相等時不交換,則是穩定的排序演算法。python3 大致如下 from typing import list def bub...