1. 程式人生 > >機器學習一些演算法簡介

機器學習一些演算法簡介

更多學習筆記關注:
公眾號:StudyForAI
知乎專欄:https://www.zhihu.com/people/yuquanle/columns


首先來看一下機器學習的定義:

機器學習有下面幾種定義:

  1. 機器學習是一門人工智慧的科學,該領域的主要研究物件是人工智慧,特別是如何在經驗學習中改善具體演算法的效能。

  2. 機器學習是對能通過經驗自動改進的計算機演算法的研究。

  3. 機器學習是用資料或以往的經驗,以此優化計算機程式的效能標準。


機器學習的演算法很多,很多演算法是一類演算法,而有些演算法又是從其他演算法中延伸出來的。在機器學習或者人工智慧領域,對一個問題的建模有不同的方式,人們首先會考慮演算法的學習方式,有幾種主要的學習方式:監督學習,非監督學習,半監督學習和強化學習。


  • 監督學習:從給定的訓練資料集中學習出一個函式,當新的資料到來時,可以根據這個函式預測結果。監督學習的訓練集要求是包括輸入和輸出,也可以說是特徵和目標。訓練集中的目標是由人工標註。

  • 無監督學習:與監督學習相比,訓練集沒有人為標註的結果。常見的無監督學習演算法有聚類。

  • 半監督學習:介於監督學習與無監督學習之間。

  • 強化學習:通過觀察來學習做成如何的動作。每個動作都會對環境有所影響,學習物件根據觀察到的周圍環境的反饋來做出判斷。


一些常見演算法簡介:

線性迴歸(Linear regression)

  1. 在統計學中,線性迴歸是利用稱為線性迴歸方程的最小平方函式對一個或多個自變數和因變數之間關係進行建模的一種迴歸分析。 這種函式是一個或多個稱為迴歸係數的模型引數的線性組合。

  2. 線性迴歸的表示是一個方程,它通過找到輸入變數的特定權重(稱為係數 w),來描述一條最適合表示輸入變數 x 與輸出變數 y 關係的直線

    例如:y = w * x+b

    我們將根據輸入 x 預測 y,線性迴歸學習演算法的目標是找到係數 w 和 b 的值。

  3. 線性迴歸PyTorch實戰: https://blog.csdn.net/m0_37306360/article/details/79307818


邏輯迴歸(Logistic regression)

  1. 邏輯迴歸是從統計學中借鑑的一種技術。它是處理二分類問題的首選方法。邏輯迴歸與線性迴歸相似,目標都是找到每個輸入變數的權重,即係數值w和b(注意,這裡w是一條向量)。與線性迴歸不同的是,Logistic 迴歸線上性迴歸的基礎上加入了logistic 函式的非線性函式進行變換。

    例如:y=F (w*x + b)   F為Logistic函式,這個函式可以將任何值轉換到 0 到 1 的區間內。

  2. 邏輯迴歸PyTorch實戰: https://blog.csdn.net/m0_37306360/article/details/79307818



感知機(Perceptron)

  1. 感知機在1957年由Rosenblatt提出,是神經網路和支援向量機的基礎。感知機是一種二類分類的線性分類模型,其輸入為例項的特徵向量,輸出為例項的類別,+1代表正類,-1代表負類。感知機屬於判別模型,它的目標是要將輸入例項通過分離超平面將正負二類分離

  2. 感知機詳解看這裡:https://blog.csdn.net/m0_37306360/article/details/79885858

  3. 感知機實戰:https://blog.csdn.net/m0_37306360/article/details/75144176


決策樹(Decision tree)

  1. 機器學習中,決策樹是一個預測模型,代表的是物件屬性與物件值之間的一種對映關係。對於樣本資料集,物件屬性就是樣本特徵,有很多,物件值就是類標籤,只有一個。分類決策樹模型由結點和有向邊組成。結點分為內部結點和葉結點。內部結點表示一個特徵(屬性),葉結點表示一個類標籤。

    從資料產生決策樹的機器學習技術叫做決策樹學習。決策樹學習的演算法通常是一個遞迴地選擇最優特徵,並根據特徵對資料集進行分割,使得各個子資料集有一個最好的分類的過程。

    決策樹學習過程:特徵選擇,決策樹生成

  2. 決策樹詳解看這裡:https://blog.csdn.net/m0_37306360/article/details/76861494

  3. 決策樹sklearn實戰:https://blog.csdn.net/m0_37306360/article/details/76875643


樸素貝葉斯(Naive Bayes)

  1. 樸素貝葉斯方法是一系列有監督學習的方法,這些方法基於對貝葉斯理論的應用,即簡單(naive)的假設:每對特徵之間都相互獨立。樸素貝葉斯的思想基礎是這樣的:對於給出的待分類樣本特徵x,求解在此樣本出現的條件下各個類別出現的概率,哪個最大,就認為此待分類樣本屬於哪個類別。

  2. 貝葉斯詳解看這裡:https://blog.csdn.net/m0_37306360/article/details/76861212

  3. sklearn實戰:https://blog.csdn.net/m0_37306360/article/details/76861306


K 近鄰演算法(K-nearest neighbor)

  1. KNN的直觀理解:給定一個訓練資料集,對於新的輸入例項,在訓練資料集中找到與該例項最近鄰的k個例項,這k個例項的多數屬於某個類,就把該輸入例項分為這個類。演算法的關鍵在於如何確定資料例項間的相似性。

  2. KNN實戰:https://blog.csdn.net/m0_37306360/article/details/75021670


聚類演算法(Cluster)

  1. 聚類就是按照某個特定標準(如距離準則)把一個數據集聚成不同的簇,使得同一簇內的資料的相似性儘可能大,同時不在同一個簇中的資料的相似性儘可能小。即聚類後要使得同一簇的資料儘可能聚集到一起,不同簇的資料儘量分離。聚類屬於無監督學習演算法。

  2. 聚類演算法總結看這裡:https://blog.csdn.net/m0_37306360/article/details/80629182


支援向量機(SVM)

  1. 支援向量機,因其英文名為support vector machine,故一般簡稱SVM,通俗來講,它是一種二類分類模型,其基本模型定義為特徵空間上的間隔最大的線性分類器,其學習策略便是間隔最大化,最終可轉化為一個凸二次規劃問題的求解。


整合學習(Ensemble learning)

  1. 整合學習通過構建並結合多個機器學習器來完成學習任務。整合學習可以用於分類問題整合,迴歸問題整合等等,可以說所有的機器學習領域都可以看到整合學習的身影。

  2. 代表演算法是Boosting系列演算法和Bagging的演算法。



順便提一下統計機器學習的基本步驟:

(1)得到一個有限的訓練資料集合

(2)確定包含所有可能的模型的假設空間,即學習模型的集合

(3)確定模型選擇的準則,即學習的演算法

(4)實現求解最優模型的演算法,即學習的演算法

(5)通過學習方法選擇最優模型

(6)利用學習的最優模型對新資料進行預測和分析


統計機器學習三要素:模型,策略,演算法

  • 模型:首先考慮問題是學習什麼樣的模型,監督學習過程中,模型就是所要學習的條件概率或者決策函式。


  • 策略:考慮按照什麼樣的準則學習或者選擇最優模型。統計學習的目標在於從假設空間中選取最優模型。通常引入損失函式和風險函式。


損失函式度量模型一次預測的好壞,風險函式度量平均意義下模型預測的好壞。

常見損失函式:

(1) 0-1損失函式

(2) 平方損失函式

(3) 絕對值損失函式

(4) 對數損失函式


  • 演算法:指學習模型的具體計算方法。也就是說用什麼樣的演算法求解最優模型引數。


損失函式越小,模型越好。由於模型的輸入輸出是隨機變數,遵循聯合分佈P,所以求P的期望就是損失函式的期望。

學習的目標就是選擇期望風險最小的模型。但是P是未知的。模型關於訓練資料集的平均損失稱為經驗風險或者經驗損失。根據大數定律,當樣本容量N趨於無窮時,經驗風險趨於期望風險。但是在現實生活中,樣本是有限的,所以要對經驗風險進行矯正。二個策略:經驗風險最小化和結構風險最小化。


要考慮的幾個問題:過擬合,泛化能力,驗證方法。


參考:

1.維基百科

2.李航 統計學習方法