熱線電話:13121318867

登錄
首頁精彩閱讀機器學習與深度學習核心知識點總結(一)
機器學習與深度學習核心知識點總結(一)
2019-12-02
收藏
<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

作者 | 小小挖掘機

來源 | SIGAI

數學

1.列舉常用的最優化方法

梯度下降法

牛頓法,

擬牛頓法

坐標下降法

梯度下降法的改進型如AdaDelta,AdaGrad,Adam,NAG等。

2.梯度下降法的關鍵點

梯度下降法沿著梯度的反方向進行搜索,利用了函數的一階導數信息。梯度下降法的迭代公式為:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

根據函數的一階泰勒展開,在負梯度方向,函數值是下降的。只要學習率設置的足夠小,并且沒有到達梯度為0的點處,每次迭代時函數值一定會下降。需要設置學習率為一個非常小的正數的原因是要保證迭代之后的xk+1位于迭代之前的值xk的鄰域內,從而可以忽略泰勒展開中的高次項,保證迭代時函數值下降。

梯度下降法只能保證找到梯度為0的點,不能保證找到極小值點。迭代終止的判定依據是梯度值充分接近于0,或者達到最大指定迭代次數。

梯度下降法在機器學習中應用廣泛,尤其是在深度學習中。AdaDelta,AdaGrad,Adam,NAG等改進的梯度下降法都是用梯度構造更新項,區別在于更新項的構造方式不同。

3.牛頓法的關鍵點

牛頓法利用了函數的一階和二階導數信息,直接尋找梯度為0的點。牛頓法的迭代公式為:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

其中H為Hessian矩陣,g為梯度向量。牛頓法不能保證每次迭代時函數值下降,也不能保證收斂到極小值點。在實現時,也需要設置學習率,原因和梯度下降法相同,是為了能夠忽略泰勒展開中的高階項。學習率的設置通常采用直線搜索(line search)技術。

在實現時,一般不直接求Hessian矩陣的逆矩陣,而是求解下面的線性方程組:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

其解d稱為牛頓方向。迭代終止的判定依據是梯度值充分接近于0,或者達到最大指定迭代次數。

牛頓法比梯度下降法有更快的收斂速度,但每次迭代時需要計算Hessian矩陣,并求解一個線性方程組,運算量大。另外,如果Hessian矩陣不可逆,則這種方法失效。

4.拉格朗日乘數法

拉格朗日乘數法是一個理論結果,用于求解帶有等式約束的函數極值。對于如下問題:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

構造拉格朗日乘子函數:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

在最優點處對x和乘子變量的導數都必須為0:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

解這個方程即可得到最優解。對拉格朗日乘數法更詳細的講解可以閱讀任何一本高等數學教材。機器學習中用到拉格朗日乘數法的地方有:

主成分分析

線性判別分析

流形學習中的拉普拉斯特征映射

隱馬爾科夫模型

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

5.凸優化

數值優化算法面臨兩個方面的問題:局部極值,鞍點。前者是梯度為0的點,也是極值點,但不是全局極小值;后者連局部極值都不是,在鞍點處Hessian矩陣不定,即既非正定,也非負定。

凸優化通過對目標函數,優化變量的可行域進行限定,可以保證不會遇到上面兩個問題。凸優化是一類特殊的優化問題,它要求:

優化變量的可行域是一個凸集

目標函數是一個凸函數

凸優化最好的一個性質是:所有局部最優解一定是全局最優解。機器學習中典型的凸優化問題有:

線性回歸

嶺回歸

LASSO回歸

Logistic回歸

支持向量機

Softamx回歸

6.拉格朗日對偶

對偶是最優化方法里的一種方法,它將一個最優化問題轉換成另外一個問題,二者是等價的。拉格朗日對偶是其中的典型例子。對于如下帶等式約束和不等式約束的優化問題:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

與拉格朗日乘數法類似,構造廣義拉格朗日函數:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)
<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

必須滿足

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

的約束。原問題為:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

即先固定住x,調整拉格朗日乘子變量,讓函數L取極大值;然后控制變量x,讓目標函數取極小值。原問題與我們要優化的原始問題是等價的。

對偶問題為:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

和原問題相反,這里是先控制變量x,讓函數L取極小值;然后控制拉格朗日乘子變量,讓函數取極大值。

一般情況下,原問題的最優解大于等于對偶問題的最優解,這稱為弱對偶。在某些情況下,原問題的最優解和對偶問題的最優解相等,這稱為強對偶。

強對偶成立的一種條件是Slater條件:一個凸優化問題如果存在一個候選x使得所有不等式約束都是嚴格滿足的,即對于所有的i都有gi (x)<0,不等式不取等號,則強對偶成立,原問題與對偶問題等價。注意,Slater條件是強對偶成立的充分條件而非必要條件。

拉格朗日對偶在機器學習中的典型應用是支持向量機。

7.KKT條件

KKT條件是拉格朗日乘數法的推廣,用于求解既帶有等式約束,又帶有不等式約束的函數極值。對于如下優化問題:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

和拉格朗日對偶的做法類似,KKT條件構如下乘子函數:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

λ和μ稱為KKT乘子。在最優解處

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

應該滿足如下條件:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

等式約束

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

和不等式約束

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

是本身應該滿足的約束,

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

和之前的拉格朗日乘數法一樣。唯一多了關于gi (x)的條件:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

KKT條件只是取得極值的必要條件而不是充分條件。

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

8.特征值與特征向量

對于一個n階矩陣A,如果存在一個數λ和一個非0向量X,滿足:

則稱λ為矩陣A的特征值,X為該特征值對應的特征向量。根據上面的定義有下面線性方程組成立:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

根據線性方程組的理論,要讓齊次方程有非0解,系數矩陣的行列式必須為0,即:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

上式左邊的多項式稱為矩陣的特征多項式。矩陣的跡定義為主對角線元素之和:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

根據韋達定理,矩陣所有特征值的和為矩陣的跡:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

同樣可以證明,矩陣所有特征值的積為矩陣的行列式:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

利用特征值和特征向量,可以將矩陣對角化,即用正交變換將矩陣化為對角陣。實對稱矩陣一定可以對角化,半正定矩陣的特征值都大于等于0,在機器學習中,很多矩陣都滿足這些條件。特征值和特征向量在機器學習中的應用包括:正態貝葉斯分類器、主成分分析,流形學習,線性判別分析,譜聚類等。

9.奇異值分解

矩陣對角化只適用于方陣,如果不是方陣也可以進行類似的分解,這就是奇異值分解,簡稱SVD。假設A是一個m x n的矩陣,則存在如下分解:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

其中U為m x m的正交矩陣,其列稱為矩陣A的左奇異向量;

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

m x n的對角矩陣,除了主對角線

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

以外,其他元素都是0;V為n x n的正交矩陣,其行稱為矩陣A的右奇異向量。U的列為AAT的特征向量,V的列為AT A的特征向量。

10.最大似然估計

有些應用中已知樣本服從的概率分布,但是要估計分布函數的參數

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

,確定這些參數常用的一種方法是最大似然估計。

最大似然估計構造一個似然函數,通過讓似然函數最大化,求解出θ。最大似然估計的直觀解釋是,尋求一組參數,使得給定的樣本集出現的概率最大。

假設樣本服從的概率密度函數為

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

,其中X為隨機變量,θ為要估計的參數。給定一組樣本xi,i =1,...,l,它們都服從這種分布,并且相互獨立。最大似然估計構造如下似然函數:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

其中xi是已知量,這是一個關于θ的函數,我們要讓該函數的值最大化,這樣做的依據是這組樣本發生了,因此應該最大化它們發生的概率,即似然函數。這就是求解如下最優化問題:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

乘積求導不易處理,因此我們對該函數取對數,得到對數似然函數:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

最后要求解的問題為:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

最大似然估計在機器學習中的典型應用包括logistic回歸,貝葉斯分類器,隱馬爾科夫模型等。

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

基本概念

1.有監督學習與無監督學習

根據樣本數據是否帶有標簽值,可以將機器學習算法分成有監督學習和無監督學習兩類。有監督學習的樣本數據帶有標簽值,它從訓練樣本中學習得到一個模型,然后用這個模型對新的樣本進行預測推斷。有監督學習的典型代表是分類問題和回歸問題。

無監督學習對沒有標簽的樣本進行分析,發現樣本集的結構或者分布規律。無監督學習的典型代表是聚類,表示學習,和數據降維,它們處理的樣本都不帶有標簽值。

2.分類問題與回歸問題

有監督學習中,如果樣本的標簽是整數,則預測函數是一個向量到整數的映射,這稱為分類問題。如果標簽值是連續實數,則稱為回歸問題,此時預測函數是向量到實數的映射。

3.生成模型與判別模型

分類算法可以分成判別模型和生成模型。給定特征向量x與標簽值y,生成模型對聯合概率p(x,y)建模,判別模型對條件概率p(y|x)進行建模。另外,不使用概率模型的分類器也被歸類為判別模型,它直接得到預測函數而不關心樣本的概率分布:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

判別模型直接得到預測函數f(x),或者直接計算概率值p(y|x),比如SVM和logistic回歸,softmax回歸,判別模型只關心決策面,而不管樣本的概率分布的密度。

生成模型計算p(x, y)或者p(x|y) ,通俗來說,生成模型假設每個類的樣本服從某種概率分布,對這個概率分布進行建模。

機器學習中常見的生成模型有貝葉斯分類器,高斯混合模型,隱馬爾可夫模型,受限玻爾茲曼機,生成對抗網絡等。典型的判別模型有決策樹,kNN算法,人工神經網絡,支持向量機,logistic回歸,AdaBoost算法等。

4.交叉驗證

交叉驗證(cross validation)是一種統計準確率的技術。k折交叉驗證將樣本隨機、均勻的分成k份,輪流用其中的k-1份訓練模型,1份用于測試模型的準確率,用k個準確率的均值作為最終的準確率。

5.過擬合欠擬合

欠擬合也稱為欠學習,直觀表現是訓練得到的模型在訓練集上表現差,沒有學到數據的規律。引起欠擬合的原因有模型本身過于簡單,例如數據本身是非線性的但使用了線性模型;特征數太少無法正確的建立映射關系。

過擬合也稱為過學習,直觀表現是在訓練集上表現好,但在測試集上表現不好,推廣泛化性能差。過擬合產生的根本原因是訓練數據包含抽樣誤差,在訓練時模型將抽樣誤差也進行了擬合。所謂抽樣誤差,是指抽樣得到的樣本集和整體數據集之間的偏差。引起過擬合的可能原因有:

模型本身過于復雜,擬合了訓練樣本集中的噪聲。此時需要選用更簡單的模型,或者對模型進行裁剪。訓練樣本太少或者缺乏代表性。此時需要增加樣本數,或者增加樣本的多樣性。訓練樣本噪聲的干擾,導致模型擬合了這些噪聲,這時需要剔除噪聲數據或者改用對噪聲不敏感的模型。

6.偏差與方差分解

模型的泛化誤差可以分解成偏差和方差。偏差是模型本身導致的誤差,即錯誤的模型假設所導致的誤差,它是模型的預測值的數學期望和真實值之間的差距。

方差是由于對訓練樣本集的小波動敏感而導致的誤差。它可以理解為模型預測值的變化范圍,即模型預測值的波動程度。

模型的總體誤差可以分解為偏差的平方與方差之和:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

如果模型過于簡單,一般會有大的偏差和小的方差;反之如果模型復雜則會有大的方差但偏差很小。

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

7.正則化

為了防止過擬合,可以為損失函數加上一個懲罰項,對復雜的模型進行懲罰,強制讓模型的參數值盡可能小以使得模型更簡單,加入懲罰項之后損失函數為:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

正則化被廣泛應用于各種機器學習算法,如嶺回歸,LASSO回歸,logistic回歸,神經網絡等。除了直接加上正則化項之外,還有其他強制讓模型變簡單的方法,如決策樹的剪枝算法,神經網絡訓練中的dropout技術,提前終止技術等。

8.維數災難

為了提高算法的精度,會使用越來越多的特征。當特征向量維數不高時,增加特征確實可以帶來精度上的提升;但是當特征向量的維數增加到一定值之后,繼續增加特征反而會導致精度的下降,這一問題稱為維數災難。

貝葉斯分類器

貝葉斯分類器將樣本判定為后驗概率最大的類,它直接用貝葉斯公式解決分類問題。假設樣本的特征向量為x,類別標簽為y,根據貝葉斯公式,樣本屬于每個類的條件概率(后驗概率)為:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

分母p(x)對所有類都是相同的,分類的規則是將樣本歸到后驗概率最大的那個類,不需要計算準確的概率值,只需要知道屬于哪個類的概率最大即可,這樣可以忽略掉分母。分類器的判別函數為:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

在實現貝葉斯分類器時,需要知道每個類的條件概率分布p(x|y)即先驗概率。一般假設樣本服從正態分布。訓練時確定先驗概率分布的參數,一般用最大似然估計,即最大化對數似然函數。

如果假設特征向量的各個分量之間相互獨立,則稱為樸素貝葉斯分類器,此時的分類判別函數為:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

實現時可以分為特征分量是離散變量和連續變量兩種情況。貝葉斯分分類器是一種生成模型,可以處理多分類問題,是一種非線性模型。

決策樹

決策樹是一種基于規則的方法,它用一組嵌套的規則進行預測。在樹的每個決策節點處,根據判斷結果進入一個分支,反復執行這種操作直到到達葉子節點,得到預測結果。這些規則通過訓練得到,而不是人工制定的。

決策樹既可以用于分類問題,也可以用于回歸問題。分類樹的映射函數是多維空間的分段線性劃分,用平行于各坐標軸的超平面對空間進行切分;回歸樹的映射函數是分段常數函數。決策樹是分段線性函數而不是線性函數。只要劃分的足夠細,分段常數函數可以逼近閉區間上任意函數到任意指定精度,因此決策樹在理論上可以對任意復雜度的數據進行擬合。對于分類問題,如果決策樹深度夠大,它可以將訓練樣本集的所有樣本正確分類。

決策樹的訓練算法是一個遞歸的過程,首先創建根節點,然后遞歸的建立左子樹和右子樹。如果練樣本集為D,訓練算法的流程為:

1.用樣本集D建立根節點,找到一個判定規則,將樣本集分裂成D1和D2兩部分,同時為根節點設置判定規則。

2.用樣本集D1遞歸建立左子樹。

3.用樣本集D2遞歸建立右子樹。

4.如果不能再進行分裂,則把節點標記為葉子節點,同時為它賦值。

對于分類樹,如果采用Gini系數作為度量準則,決策樹在訓練時尋找最佳分裂的依據為讓Gini不純度最小化,這等價于讓下面的值最大化:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

尋找最佳分裂時需要計算用每個閾值對樣本集進行分裂后的純度值,尋找該值最大時對應的分裂,它就是最佳分裂。如果是數值型特征,對于每個特征將l個訓練樣本按照該特征的值從小到大排序,假設排序后的值為:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

接下來從x1開始,依次用每個xi作為閾值,將樣本分成左右兩部分,計算上面的純度值,該值最大的那個分裂閾值就是此特征的最佳分裂閾值。在計算出每個特征的最佳分裂閾值和上面的純度值后,比較所有這些分裂的純度值大小,該值最大的分裂為所有特征的最佳分裂。

決策樹可以處理屬性缺失問題,采用的方法是使用替代分裂規則。為了防止過擬合,可以對樹進行剪枝,讓模型變得更簡單。

決策樹是一種判別模型,既支持分類問題,也支持回歸問題,是一種非線性模型,它支持多分類問題。

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

隨機森林

隨機森林是一種集成學習算法,是Bagging算法的具體實現。集成學習機器學習中的一種思想,而不是某一具體算法,它通過多個模型的組合形成一個精度更高的模型,參與組合的模型稱為弱學習器。在預測時使用這些弱學習器模型聯合進行預測,訓練時需要依次訓練出這些弱學習器。

隨機森林用有放回抽樣(Bootstrap抽樣)構成出的樣本集訓練多棵決策樹,訓練決策樹的每個節點時只使用了隨機抽樣的部分特征。預測時,對于分類問題,一個測試樣本會送到每一棵決策樹中進行預測,然后投票,得票最多的類為最終分類結果。對于回歸問題,隨機森林的預測輸出是所有決策樹輸出的均值。

假設有n個訓練樣本。訓練每一棵樹時,從樣本集中有放回的抽取n個樣本,每個樣本可能會被抽中多次,也可能一次都沒抽中。如果樣本量很大,在整個抽樣過程中每個樣本有0.368的概率不被抽中。由于樣本集中各個樣本是相互獨立的,在整個抽樣中所有樣本大約有36.8%沒有被抽中。這部分樣本稱為包外(Out Of Bag,簡稱OOB)數據。

用這個抽樣的樣本集訓練一棵決策樹,訓練時,每次尋找最佳分裂時,還要對特征向量的分量采樣,即只考慮部分特征分量。由于使用了隨機抽樣,隨機森林泛化性能一般比較好,可以有效的降低模型的方差。

如果想更詳細的了解隨機森林的原理,請閱讀SIGAI之前的公眾號文章“隨機森林概述”。隨機森林是一種判別模型,既支持分類問題,也支持回歸問題,并且支持多分類問題,這是一種非線性模型。

AdaBoost算法

AdaBoost算法也是一種集成學習算法,用于二分類問題,是Boosting算法的一種實現。它用多個弱分類器的線性組合來預測,訓練時重點關注錯分的樣本,準確率高的弱分類器權重大。AdaBoost算法的全稱是自適應,它用弱分類器的線性組合來構造強分類器。弱分類器的性能不用太好,僅比隨機猜測強,依靠它們可以構造出一個非常準確的強分類器。強分類器的計算公式為:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

其中x是輸入向量,F(x)是強分類器,ft(x)是弱分類器,at是弱分類器的權重,T為弱分類器的數量,弱分類器、的輸出值為+1或-1,分別對應正樣本和負樣本。分類時的判定規則為:

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

強分類器的輸出值也為+1或-1,同樣對應于正樣本和負樣本。

訓練時,依次訓練每一個若分類器,并得到它們的權重值。訓練樣本帶有權重值,初始時所有樣本的權重相等,在訓練過程中,被前面的弱分類器錯分的樣本會加大權重,反之會減小權重,這樣接下來的弱分類器會更加關注這些難分的樣本。弱分類器的權重值根據它的準確率構造,精度越高的弱分類器權重越大。

給定l個訓練樣本(xi,yi ),其中xi特征向量,yi為類別標簽,其值為+1或-1。訓練算法的流程為:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

根據計算公式,錯誤率低的弱分類器權重大,它是準確率的增函數。AdaBoost算法在訓練樣本集上的錯誤率會隨著弱分類器數量的增加而指數級降低。它能有效的降低模型的偏差。

AdaBoost算法從廣義加法模型導出,訓練時求解的是指數損失函數的極小值:

<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機器學習</a>與<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>核心知識點總結(一)

求解時采用了分階段優化,先得到弱分類器,然后確定弱分類器的權重值,這就是弱分類器,弱分類器權重的來歷。除了離散型AdaBoost之外,從廣義加法模型還可以導出其他幾種AdaBoost算法,分別是實數型AdaBoost,Gentle型AdaBoost,Logit型AdaBoost,它們使用了不同的損失函數和最優化算法。

標準的AdaBoost算法是一種判別模型,只能支持二分類問題。它的改進型可以處理多分類問題。

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢