0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

梯度下降法在機(jī)器學(xué)習(xí)中的應(yīng)用

QQ475400555 ? 來源:機(jī)器視覺沙龍 ? 2023-05-18 09:20 ? 次閱讀

1.列舉常用的最優(yōu)化方法

梯度下降法

牛頓法,

擬牛頓法

坐標(biāo)下降法

梯度下降法的改進(jìn)型如AdaDelta,AdaGrad,Adam,NAG等。

2.梯度下降法的關(guān)鍵點(diǎn)

梯度下降法沿著梯度的反方向進(jìn)行搜索,利用了函數(shù)的一階導(dǎo)數(shù)信息。梯度下降法的迭代公式為: 4d07ae18-f519-11ed-90ce-dac502259ad0.png ? 根據(jù)函數(shù)的一階泰勒展開,在負(fù)梯度方向,函數(shù)值是下降的。只要學(xué)習(xí)率設(shè)置的足夠小,并且沒有到達(dá)梯度為0的點(diǎn)處,每次迭代時(shí)函數(shù)值一定會(huì)下降。需要設(shè)置學(xué)習(xí)率為一個(gè)非常小的正數(shù)的原因是要保證迭代之后的xk+1位于迭代之前的值xk的鄰域內(nèi),從而可以忽略泰勒展開中的高次項(xiàng),保證迭代時(shí)函數(shù)值下降。 ? 梯度下降法只能保證找到梯度為0的點(diǎn),不能保證找到極小值點(diǎn)。迭代終止的判定依據(jù)是梯度值充分接近于0,或者達(dá)到最大指定迭代次數(shù)。 ? 梯度下降法在機(jī)器學(xué)習(xí)中應(yīng)用廣泛,尤其是在深度學(xué)習(xí)中。AdaDelta,AdaGrad,Adam,NAG等改進(jìn)的梯度下降法都是用梯度構(gòu)造更新項(xiàng),區(qū)別在于更新項(xiàng)的構(gòu)造方式不同。對(duì)梯度下降法更全面的介紹可以閱讀SIGAI之前的公眾號(hào)文章“理解梯度下降法”。 ?

3.牛頓法的關(guān)鍵點(diǎn)

牛頓法利用了函數(shù)的一階和二階導(dǎo)數(shù)信息,直接尋找梯度為0的點(diǎn)。牛頓法的迭代公式為: 4d16b14c-f519-11ed-90ce-dac502259ad0.png ? 其中H為Hessian矩陣,g為梯度向量。牛頓法不能保證每次迭代時(shí)函數(shù)值下降,也不能保證收斂到極小值點(diǎn)。在實(shí)現(xiàn)時(shí),也需要設(shè)置學(xué)習(xí)率,原因和梯度下降法相同,是為了能夠忽略泰勒展開中的高階項(xiàng)。學(xué)習(xí)率的設(shè)置通常采用直線搜索(line search)技術(shù)。 ? 在實(shí)現(xiàn)時(shí),一般不直接求Hessian矩陣的逆矩陣,而是求解下面的線性方程組: ? 4d269bc0-f519-11ed-90ce-dac502259ad0.png ? 其解d稱為牛頓方向。迭代終止的判定依據(jù)是梯度值充分接近于0,或者達(dá)到最大指定迭代次數(shù)。 ? 牛頓法比梯度下降法有更快的收斂速度,但每次迭代時(shí)需要計(jì)算Hessian矩陣,并求解一個(gè)線性方程組,運(yùn)算量大。另外,如果Hessian矩陣不可逆,則這種方法失效。 ?

4.拉格朗日乘數(shù)法

拉格朗日乘數(shù)法是一個(gè)理論結(jié)果,用于求解帶有等式約束的函數(shù)極值。對(duì)于如下問題: 4d36accc-f519-11ed-90ce-dac502259ad0.png 構(gòu)造拉格朗日乘子函數(shù): ? 4d4640f6-f519-11ed-90ce-dac502259ad0.png ? 在最優(yōu)點(diǎn)處對(duì)x和乘子變量的導(dǎo)數(shù)都必須為0: ? 4d66c948-f519-11ed-90ce-dac502259ad0.png ? 解這個(gè)方程即可得到最優(yōu)解。對(duì)拉格朗日乘數(shù)法更詳細(xì)的講解可以閱讀任何一本高等數(shù)學(xué)教材。機(jī)器學(xué)習(xí)中用到拉格朗日乘數(shù)法的地方有: ?

主成分分析

線性判別分析

流形學(xué)習(xí)中的拉普拉斯特征映射

隱馬爾科夫模型

5.凸優(yōu)化

數(shù)值優(yōu)化算法面臨兩個(gè)方面的問題:局部極值,鞍點(diǎn)。前者是梯度為0的點(diǎn),也是極值點(diǎn),但不是全局極小值;后者連局部極值都不是,在鞍點(diǎn)處Hessian矩陣不定,即既非正定,也非負(fù)定。 凸優(yōu)化通過對(duì)目標(biāo)函數(shù),優(yōu)化變量的可行域進(jìn)行限定,可以保證不會(huì)遇到上面兩個(gè)問題。凸優(yōu)化是一類特殊的優(yōu)化問題,它要求:

優(yōu)化變量的可行域是一個(gè)凸集

目標(biāo)函數(shù)是一個(gè)凸函數(shù)

凸優(yōu)化最好的一個(gè)性質(zhì)是:所有局部最優(yōu)解一定是全局最優(yōu)解。機(jī)器學(xué)習(xí)中典型的凸優(yōu)化問題有:

線性回歸

嶺回歸

LASSO回歸

Logistic回歸

支持向量機(jī)

Softamx回歸

6.拉格朗日對(duì)偶

對(duì)偶是最優(yōu)化方法里的一種方法,它將一個(gè)最優(yōu)化問題轉(zhuǎn)換成另外一個(gè)問題,二者是等價(jià)的。拉格朗日對(duì)偶是其中的典型例子。對(duì)于如下帶等式約束和不等式約束的優(yōu)化問題: 4d75c128-f519-11ed-90ce-dac502259ad0.png ? 與拉格朗日乘數(shù)法類似,構(gòu)造廣義拉格朗日函數(shù): ? 4d891070-f519-11ed-90ce-dac502259ad0.png ? 4d9d86d6-f519-11ed-90ce-dac502259ad0.png必須滿足4dac8726-f519-11ed-90ce-dac502259ad0.png的約束。原問題為: ? 4dc9f504-f519-11ed-90ce-dac502259ad0.png ? 即先固定住x,調(diào)整拉格朗日乘子變量,讓函數(shù)L取極大值;然后控制變量x,讓目標(biāo)函數(shù)取極小值。原問題與我們要優(yōu)化的原始問題是等價(jià)的。 ? 對(duì)偶問題為: ? 4dd948ce-f519-11ed-90ce-dac502259ad0.png ? 和原問題相反,這里是先控制變量x,讓函數(shù)L取極小值;然后控制拉格朗日乘子變量,讓函數(shù)取極大值。 ? 一般情況下,原問題的最優(yōu)解大于等于對(duì)偶問題的最優(yōu)解,這稱為弱對(duì)偶。在某些情況下,原問題的最優(yōu)解和對(duì)偶問題的最優(yōu)解相等,這稱為強(qiáng)對(duì)偶。 ? 強(qiáng)對(duì)偶成立的一種條件是Slater條件:一個(gè)凸優(yōu)化問題如果存在一個(gè)候選x使得所有不等式約束都是嚴(yán)格滿足的,即對(duì)于所有的i都有g(shù)i?(x)<0,不等式不取等號(hào),則強(qiáng)對(duì)偶成立,原問題與對(duì)偶問題等價(jià)。注意,Slater條件是強(qiáng)對(duì)偶成立的充分條件而非必要條件。 ? 拉格朗日對(duì)偶在機(jī)器學(xué)習(xí)中的典型應(yīng)用是支持向量機(jī)。 ?

7.KKT條件

KKT條件是拉格朗日乘數(shù)法的推廣,用于求解既帶有等式約束,又帶有不等式約束的函數(shù)極值。對(duì)于如下優(yōu)化問題: 4def9516-f519-11ed-90ce-dac502259ad0.png ? 和拉格朗日對(duì)偶的做法類似,KKT條件構(gòu)如下乘子函數(shù): ? 4e02a6ce-f519-11ed-90ce-dac502259ad0.png ? 4e128210-f519-11ed-90ce-dac502259ad0.png4e22ea06-f519-11ed-90ce-dac502259ad0.png稱為KKT乘子。在最優(yōu)解處4e30a47a-f519-11ed-90ce-dac502259ad0.png應(yīng)該滿足如下條件: 4e3e18da-f519-11ed-90ce-dac502259ad0.jpg 等式約束 4e59a1a4-f519-11ed-90ce-dac502259ad0.png 和不等式約束 4e66b33a-f519-11ed-90ce-dac502259ad0.png 是本身應(yīng)該滿足的約束,4e7c3714-f519-11ed-90ce-dac502259ad0.png和之前的拉格朗日乘數(shù)法一樣。唯一多了關(guān)于gi?(x)的條件: 4e8bf71c-f519-11ed-90ce-dac502259ad0.png KKT條件只是取得極值的必要條件而不是充分條件。 ? ?

8.特征值與特征向量

對(duì)于一個(gè)n階矩陣A,如果存在一個(gè)數(shù)4e128210-f519-11ed-90ce-dac502259ad0.png和一個(gè)非0向量X,滿足: ? 4eb0a832-f519-11ed-90ce-dac502259ad0.png ? 則稱4e128210-f519-11ed-90ce-dac502259ad0.png為矩陣A的特征值,X為該特征值對(duì)應(yīng)的特征向量。根據(jù)上面的定義有下面線性方程組 成立: ? 4ecba8bc-f519-11ed-90ce-dac502259ad0.png ? 上式左邊的多項(xiàng)式稱為矩陣的特征多項(xiàng)式。矩陣的跡定義為主對(duì)角線元素之和: 4ee17fd4-f519-11ed-90ce-dac502259ad0.png ? 根據(jù)韋達(dá)定理,矩陣所有特征值的和為矩陣的跡: ? 4eee04de-f519-11ed-90ce-dac502259ad0.png ? 同樣可以證明,矩陣所有特征值的積為矩陣的行列式: ? 4f04942e-f519-11ed-90ce-dac502259ad0.png ? 利用特征值和特征向量,可以將矩陣對(duì)角化,即用正交變換將矩陣化為對(duì)角陣。實(shí)對(duì)稱矩陣一定可以對(duì)角化,半正定矩陣的特征值都大于等于0,在機(jī)器學(xué)習(xí)中,很多矩陣都滿足這些條件。特征值和特征向量在機(jī)器學(xué)習(xí)中的應(yīng)用包括:正態(tài)貝葉斯分類器、主成分分析,流形學(xué)習(xí),線性判別分析,譜聚類等。 ?

9.奇異值分解

矩陣對(duì)角化只適用于方陣,如果不是方陣也可以進(jìn)行類似的分解,這就是奇異值分解,簡(jiǎn)稱SVD。假設(shè)A是一個(gè)m x n的矩陣,則存在如下分解: 4f10a6e2-f519-11ed-90ce-dac502259ad0.png ? 其中U為m x m的正交矩陣,其列稱為矩陣A的左奇異向量;4f2103d4-f519-11ed-90ce-dac502259ad0.png為m x n的對(duì)角矩陣,除了主對(duì)角線4f2f8b66-f519-11ed-90ce-dac502259ad0.png以外,其他元素都是0;V為n x n的正交矩陣,其行稱為矩陣A的右奇異向量。U的列為AAT的特征向量,V的列為AT?A的特征向量。 ?

10.最大似然估計(jì)

有些應(yīng)用中已知樣本服從的概率分布,但是要估計(jì)分布函數(shù)的參數(shù)4f4039e8-f519-11ed-90ce-dac502259ad0.png,確定這些參數(shù)常用的一種方法是最大似然估計(jì)。 ? 最大似然估計(jì)構(gòu)造一個(gè)似然函數(shù),通過讓似然函數(shù)最大化,求解出4f4039e8-f519-11ed-90ce-dac502259ad0.png。最大似然估計(jì)的直觀解釋是,尋求一組參數(shù),使得給定的樣本集出現(xiàn)的概率最大。 ? 假設(shè)樣本服從的概率密度函數(shù)為4f57bfdc-f519-11ed-90ce-dac502259ad0.png,其中X為隨機(jī)變量,4f4039e8-f519-11ed-90ce-dac502259ad0.png為要估計(jì)的參數(shù)。給定一組樣本xi,i?=1,...,l,它們都服從這種分布,并且相互獨(dú)立。最大似然估計(jì)構(gòu)造如下似然函數(shù): ? 4f7ae98a-f519-11ed-90ce-dac502259ad0.png ? 其中xi是已知量,這是一個(gè)關(guān)于4f4039e8-f519-11ed-90ce-dac502259ad0.png的函數(shù),我們要讓該函數(shù)的值最大化,這樣做的依據(jù)是這組樣本發(fā)生了,因此應(yīng)該最大化它們發(fā)生的概率,即似然函數(shù)。這就是求解如下最優(yōu)化問題: ? 4f9d0358-f519-11ed-90ce-dac502259ad0.png ? 乘積求導(dǎo)不易處理,因此我們對(duì)該函數(shù)取對(duì)數(shù),得到對(duì)數(shù)似然函數(shù): ? 4fb28e94-f519-11ed-90ce-dac502259ad0.png 最后要求解的問題為: 4fc62828-f519-11ed-90ce-dac502259ad0.png ? 最大似然估計(jì)在機(jī)器學(xué)習(xí)中的典型應(yīng)用包括logistic回歸,貝葉斯分類器,隱馬爾科夫模型等。 ?

基本概念

1.有監(jiān)督學(xué)習(xí)與無監(jiān)督學(xué)習(xí)

根據(jù)樣本數(shù)據(jù)是否帶有標(biāo)簽值,可以將機(jī)器學(xué)習(xí)算法分成有監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)兩類。有監(jiān)督學(xué)習(xí)的樣本數(shù)據(jù)帶有標(biāo)簽值,它從訓(xùn)練樣本中學(xué)習(xí)得到一個(gè)模型,然后用這個(gè)模型對(duì)新的樣本進(jìn)行預(yù)測(cè)推斷。有監(jiān)督學(xué)習(xí)的典型代表是分類問題和回歸問題。 無監(jiān)督學(xué)習(xí)對(duì)沒有標(biāo)簽的樣本進(jìn)行分析,發(fā)現(xiàn)樣本集的結(jié)構(gòu)或者分布規(guī)律。無監(jiān)督學(xué)習(xí)的典型代表是聚類,表示學(xué)習(xí),和數(shù)據(jù)降維,它們處理的樣本都不帶有標(biāo)簽值。

2.分類問題與回歸問題

在有監(jiān)督學(xué)習(xí)中,如果樣本的標(biāo)簽是整數(shù),則預(yù)測(cè)函數(shù)是一個(gè)向量到整數(shù)的映射,這稱為分類問題。如果標(biāo)簽值是連續(xù)實(shí)數(shù),則稱為回歸問題,此時(shí)預(yù)測(cè)函數(shù)是向量到實(shí)數(shù)的映射。

3.生成模型與判別模型

分類算法可以分成判別模型和生成模型。給定特征向量x與標(biāo)簽值y,生成模型對(duì)聯(lián)合概率p(x,y)建模,判別模型對(duì)條件概率p(y|x)進(jìn)行建模。另外,不使用概率模型的分類器也被歸類為判別模型,它直接得到預(yù)測(cè)函數(shù)而不關(guān)心樣本的概率分布: 4fde6186-f519-11ed-90ce-dac502259ad0.png 判別模型直接得到預(yù)測(cè)函數(shù)f(x),或者直接計(jì)算概率值p(y|x),比如SVM和logistic回歸,softmax回歸,判別模型只關(guān)心決策面,而不管樣本的概率分布的密度。 ? 生成模型計(jì)算p(x, y)或者p(x|y) ,通俗來說,生成模型假設(shè)每個(gè)類的樣本服從某種概率分布,對(duì)這個(gè)概率分布進(jìn)行建模。 ? 機(jī)器學(xué)習(xí)中常見的生成模型有貝葉斯分類器,高斯混合模型,隱馬爾可夫模型,受限玻爾茲曼機(jī),生成對(duì)抗網(wǎng)絡(luò)等。典型的判別模型有決策樹,kNN算法,人工神經(jīng)網(wǎng)絡(luò),支持向量機(jī),logistic回歸,AdaBoost算法等。 ?

4.交叉驗(yàn)證

交叉驗(yàn)證(cross validation)是一種統(tǒng)計(jì)準(zhǔn)確率的技術(shù)。k折交叉驗(yàn)證將樣本隨機(jī)、均勻的分成k份,輪流用其中的k-1份訓(xùn)練模型,1份用于測(cè)試模型的準(zhǔn)確率,用k個(gè)準(zhǔn)確率的均值作為最終的準(zhǔn)確率。

5.過擬合與欠擬合

欠擬合也稱為欠學(xué)習(xí),直觀表現(xiàn)是訓(xùn)練得到的模型在訓(xùn)練集上表現(xiàn)差,沒有學(xué)到數(shù)據(jù)的規(guī)律。引起欠擬合的原因有模型本身過于簡(jiǎn)單,例如數(shù)據(jù)本身是非線性的但使用了線性模型;特征數(shù)太少無法正確的建立映射關(guān)系。 過擬合也稱為過學(xué)習(xí),直觀表現(xiàn)是在訓(xùn)練集上表現(xiàn)好,但在測(cè)試集上表現(xiàn)不好,推廣泛化性能差。過擬合產(chǎn)生的根本原因是訓(xùn)練數(shù)據(jù)包含抽樣誤差,在訓(xùn)練時(shí)模型將抽樣誤差也進(jìn)行了擬合。所謂抽樣誤差,是指抽樣得到的樣本集和整體數(shù)據(jù)集之間的偏差。引起過擬合的可能原因有: 模型本身過于復(fù)雜,擬合了訓(xùn)練樣本集中的噪聲。此時(shí)需要選用更簡(jiǎn)單的模型,或者對(duì)模型進(jìn)行裁剪。訓(xùn)練樣本太少或者缺乏代表性。此時(shí)需要增加樣本數(shù),或者增加樣本的多樣性。訓(xùn)練樣本噪聲的干擾,導(dǎo)致模型擬合了這些噪聲,這時(shí)需要剔除噪聲數(shù)據(jù)或者改用對(duì)噪聲不敏感的模型。

6.偏差與方差分解

模型的泛化誤差可以分解成偏差和方差。偏差是模型本身導(dǎo)致的誤差,即錯(cuò)誤的模型假設(shè)所導(dǎo)致的誤差,它是模型的預(yù)測(cè)值的數(shù)學(xué)期望和真實(shí)值之間的差距。 方差是由于對(duì)訓(xùn)練樣本集的小波動(dòng)敏感而導(dǎo)致的誤差。它可以理解為模型預(yù)測(cè)值的變化范圍,即模型預(yù)測(cè)值的波動(dòng)程度。 模型的總體誤差可以分解為偏差的平方與方差之和: 4ff8ad48-f519-11ed-90ce-dac502259ad0.png 如果模型過于簡(jiǎn)單,一般會(huì)有大的偏差和小的方差;反之如果模型復(fù)雜則會(huì)有大的方差但偏差很小。 ?

7.正則化

為了防止過擬合,可以為損失函數(shù)加上一個(gè)懲罰項(xiàng),對(duì)復(fù)雜的模型進(jìn)行懲罰,強(qiáng)制讓模型的參數(shù)值盡可能小以使得模型更簡(jiǎn)單,加入懲罰項(xiàng)之后損失函數(shù)為: 5009676e-f519-11ed-90ce-dac502259ad0.png 正則化被廣泛應(yīng)用于各種機(jī)器學(xué)習(xí)算法,如嶺回歸,LASSO回歸,logistic回歸,神經(jīng)網(wǎng)絡(luò)等。除了直接加上正則化項(xiàng)之外,還有其他強(qiáng)制讓模型變簡(jiǎn)單的方法,如決策樹的剪枝算法,神經(jīng)網(wǎng)絡(luò)訓(xùn)練中的dropout技術(shù),提前終止技術(shù)等。 ?

8.維數(shù)災(zāi)難

為了提高算法的精度,會(huì)使用越來越多的特征。當(dāng)特征向量維數(shù)不高時(shí),增加特征確實(shí)可以帶來精度上的提升;但是當(dāng)特征向量的維數(shù)增加到一定值之后,繼續(xù)增加特征反而會(huì)導(dǎo)致精度的下降,這一問題稱為維數(shù)災(zāi)難。

貝葉斯分類器

貝葉斯分類器將樣本判定為后驗(yàn)概率最大的類,它直接用貝葉斯公式解決分類問題。假設(shè)樣本的特征向量為x,類別標(biāo)簽為y,根據(jù)貝葉斯公式,樣本屬于每個(gè)類的條件概率(后驗(yàn)概率)為: 501b4b3c-f519-11ed-90ce-dac502259ad0.png ? 分母p(x)對(duì)所有類都是相同的,分類的規(guī)則是將樣本歸到后驗(yàn)概率最大的那個(gè)類,不需要計(jì)算準(zhǔn)確的概率值,只需要知道屬于哪個(gè)類的概率最大即可,這樣可以忽略掉分母。分類器的判別函數(shù)為: 502cc65a-f519-11ed-90ce-dac502259ad0.png ? 在實(shí)現(xiàn)貝葉斯分類器時(shí),需要知道每個(gè)類的條件概率分布p(x|y)即先驗(yàn)概率。一般假設(shè)樣本服從正態(tài)分布。訓(xùn)練時(shí)確定先驗(yàn)概率分布的參數(shù),一般用最大似然估計(jì),即最大化對(duì)數(shù)似然函數(shù)。 ? 如果假設(shè)特征向量的各個(gè)分量之間相互獨(dú)立,則稱為樸素貝葉斯分類器,此時(shí)的分類判別函數(shù)為: 503e15b8-f519-11ed-90ce-dac502259ad0.png ? 實(shí)現(xiàn)時(shí)可以分為特征分量是離散變量和連續(xù)變量?jī)煞N情況。貝葉斯分分類器是一種生成模型,可以處理多分類問題,是一種非線性模型。 ?

決策樹

決策樹是一種基于規(guī)則的方法,它用一組嵌套的規(guī)則進(jìn)行預(yù)測(cè)。在樹的每個(gè)決策節(jié)點(diǎn)處,根據(jù)判斷結(jié)果進(jìn)入一個(gè)分支,反復(fù)執(zhí)行這種操作直到到達(dá)葉子節(jié)點(diǎn),得到預(yù)測(cè)結(jié)果。這些規(guī)則通過訓(xùn)練得到,而不是人工制定的。 決策樹既可以用于分類問題,也可以用于回歸問題。分類樹的映射函數(shù)是多維空間的分段線性劃分,用平行于各坐標(biāo)軸的超平面對(duì)空間進(jìn)行切分;回歸樹的映射函數(shù)是分段常數(shù)函數(shù)。決策樹是分段線性函數(shù)而不是線性函數(shù)。只要?jiǎng)澐值淖銐蚣?xì),分段常數(shù)函數(shù)可以逼近閉區(qū)間上任意函數(shù)到任意指定精度,因此決策樹在理論上可以對(duì)任意復(fù)雜度的數(shù)據(jù)進(jìn)行擬合。對(duì)于分類問題,如果決策樹深度夠大,它可以將訓(xùn)練樣本集的所有樣本正確分類。 決策樹的訓(xùn)練算法是一個(gè)遞歸的過程,首先創(chuàng)建根節(jié)點(diǎn),然后遞歸的建立左子樹和右子樹。如果練樣本集為D,訓(xùn)練算法的流程為:

1.用樣本集D建立根節(jié)點(diǎn),找到一個(gè)判定規(guī)則,將樣本集分裂成D1和D2兩部分,同時(shí)為根節(jié)點(diǎn)設(shè)置判定規(guī)則。

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

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

4.如果不能再進(jìn)行分裂,則把節(jié)點(diǎn)標(biāo)記為葉子節(jié)點(diǎn),同時(shí)為它賦值。

對(duì)于分類樹,如果采用Gini系數(shù)作為度量準(zhǔn)則,決策樹在訓(xùn)練時(shí)尋找最佳分裂的依據(jù)為讓Gini不純度最小化,這等價(jià)于讓下面的值最大化: 504ff670-f519-11ed-90ce-dac502259ad0.png 尋找最佳分裂時(shí)需要計(jì)算用每個(gè)閾值對(duì)樣本集進(jìn)行分裂后的純度值,尋找該值最大時(shí)對(duì)應(yīng)的分裂,它就是最佳分裂。如果是數(shù)值型特征,對(duì)于每個(gè)特征將l個(gè)訓(xùn)練樣本按照該特征的值從小到大排序,假設(shè)排序后的值為: 5063c31c-f519-11ed-90ce-dac502259ad0.png 接下來從x1開始,依次用每個(gè)xi作為閾值,將樣本分成左右兩部分,計(jì)算上面的純度值,該值最大的那個(gè)分裂閾值就是此特征的最佳分裂閾值。在計(jì)算出每個(gè)特征的最佳分裂閾值和上面的純度值后,比較所有這些分裂的純度值大小,該值最大的分裂為所有特征的最佳分裂。 ? 決策樹可以處理屬性缺失問題,采用的方法是使用替代分裂規(guī)則。為了防止過擬合,可以對(duì)樹進(jìn)行剪枝,讓模型變得更簡(jiǎn)單。如果想要更詳細(xì)的了解決策樹的原理,請(qǐng)閱讀SIGAI之前的公眾號(hào)文章“理解決策樹”,在SIGAI云端實(shí)驗(yàn)室有決策樹訓(xùn)練算法的原理實(shí)驗(yàn),此功能免費(fèi),網(wǎng)址為: www.sigai.cn ? 決策樹是一種判別模型,既支持分類問題,也支持回歸問題,是一種非線性模型,它支持多分類問題。 ?

隨機(jī)森林

隨機(jī)森林是一種集成學(xué)習(xí)算法,是Bagging算法的具體實(shí)現(xiàn)。集成學(xué)習(xí)是機(jī)器學(xué)習(xí)中的一種思想,而不是某一具體算法,它通過多個(gè)模型的組合形成一個(gè)精度更高的模型,參與組合的模型稱為弱學(xué)習(xí)器。在預(yù)測(cè)時(shí)使用這些弱學(xué)習(xí)器模型聯(lián)合進(jìn)行預(yù)測(cè),訓(xùn)練時(shí)需要依次訓(xùn)練出這些弱學(xué)習(xí)器。 隨機(jī)森林用有放回抽樣(Bootstrap抽樣)構(gòu)成出的樣本集訓(xùn)練多棵決策樹,訓(xùn)練決策樹的每個(gè)節(jié)點(diǎn)時(shí)只使用了隨機(jī)抽樣的部分特征。預(yù)測(cè)時(shí),對(duì)于分類問題,一個(gè)測(cè)試樣本會(huì)送到每一棵決策樹中進(jìn)行預(yù)測(cè),然后投票,得票最多的類為最終分類結(jié)果。對(duì)于回歸問題,隨機(jī)森林的預(yù)測(cè)輸出是所有決策樹輸出的均值。 假設(shè)有n個(gè)訓(xùn)練樣本。訓(xùn)練每一棵樹時(shí),從樣本集中有放回的抽取n個(gè)樣本,每個(gè)樣本可能會(huì)被抽中多次,也可能一次都沒抽中。如果樣本量很大,在整個(gè)抽樣過程中每個(gè)樣本有0.368的概率不被抽中。由于樣本集中各個(gè)樣本是相互獨(dú)立的,在整個(gè)抽樣中所有樣本大約有36.8%沒有被抽中。這部分樣本稱為包外(Out Of Bag,簡(jiǎn)稱OOB)數(shù)據(jù)。 用這個(gè)抽樣的樣本集訓(xùn)練一棵決策樹,訓(xùn)練時(shí),每次尋找最佳分裂時(shí),還要對(duì)特征向量的分量采樣,即只考慮部分特征分量。由于使用了隨機(jī)抽樣,隨機(jī)森林泛化性能一般比較好,可以有效的降低模型的方差。 如果想更詳細(xì)的了解隨機(jī)森林的原理,請(qǐng)閱讀SIGAI之前的公眾號(hào)文章“隨機(jī)森林概述”。隨機(jī)森林是一種判別模型,既支持分類問題,也支持回歸問題,并且支持多分類問題,這是一種非線性模型。

AdaBoost算法

AdaBoost算法也是一種集成學(xué)習(xí)算法,用于二分類問題,是Boosting算法的一種實(shí)現(xiàn)。它用多個(gè)弱分類器的線性組合來預(yù)測(cè),訓(xùn)練時(shí)重點(diǎn)關(guān)注錯(cuò)分的樣本,準(zhǔn)確率高的弱分類器權(quán)重大。AdaBoost算法的全稱是自適應(yīng),它用弱分類器的線性組合來構(gòu)造強(qiáng)分類器。弱分類器的性能不用太好,僅比隨機(jī)猜測(cè)強(qiáng),依靠它們可以構(gòu)造出一個(gè)非常準(zhǔn)確的強(qiáng)分類器。強(qiáng)分類器的計(jì)算公式為: 5079b0aa-f519-11ed-90ce-dac502259ad0.png 其中x是輸入向量,F(xiàn)(x)是強(qiáng)分類器,ft(x)是弱分類器,at是弱分類器的權(quán)重,T為弱分類器的數(shù)量,弱分類器的輸出值為+1或-1,分別對(duì)應(yīng)正樣本和負(fù)樣本。分類時(shí)的判定規(guī)則為: 508b6b2e-f519-11ed-90ce-dac502259ad0.png 強(qiáng)分類器的輸出值也為+1或-1,同樣對(duì)應(yīng)于正樣本和負(fù)樣本。 ? 訓(xùn)練時(shí),依次訓(xùn)練每一個(gè)若分類器,并得到它們的權(quán)重值。訓(xùn)練樣本帶有權(quán)重值,初始時(shí)所有樣本的權(quán)重相等,在訓(xùn)練過程中,被前面的弱分類器錯(cuò)分的樣本會(huì)加大權(quán)重,反之會(huì)減小權(quán)重,這樣接下來的弱分類器會(huì)更加關(guān)注這些難分的樣本。弱分類器的權(quán)重值根據(jù)它的準(zhǔn)確率構(gòu)造,精度越高的弱分類器權(quán)重越大。 ? 給定l個(gè)訓(xùn)練樣本(xi,yi?),其中xi是特征向量,yi為類別標(biāo)簽,其值為+1或-1。訓(xùn)練算法的流程為: 509f53e6-f519-11ed-90ce-dac502259ad0.jpg 根據(jù)計(jì)算公式,錯(cuò)誤率低的弱分類器權(quán)重大,它是準(zhǔn)確率的增函數(shù)。AdaBoost算法在訓(xùn)練樣本集上的錯(cuò)誤率會(huì)隨著弱分類器數(shù)量的增加而指數(shù)級(jí)降低。它能有效的降低模型的偏差。 ? AdaBoost算法從廣義加法模型導(dǎo)出,訓(xùn)練時(shí)求解的是指數(shù)損失函數(shù)的極小值: 50b70284-f519-11ed-90ce-dac502259ad0.png 求解時(shí)采用了分階段優(yōu)化,先得到弱分類器,然后確定弱分類器的權(quán)重值,這就是弱分類器,弱分類器權(quán)重的來歷。除了離散型AdaBoost之外,從廣義加法模型還可以導(dǎo)出其他幾種AdaBoost算法,分別是實(shí)數(shù)型AdaBoost,Gentle型AdaBoost,Logit型AdaBoost,它們使用了不同的損失函數(shù)和最優(yōu)化算法。 ? 標(biāo)準(zhǔn)的AdaBoost算法是一種判別模型,只能支持二分類問題。它的改進(jìn)型可以處理多分類問題。 ?

主成分分析

主成分分析是一種數(shù)據(jù)降維和去除相關(guān)性的方法,它通過線性變換將向量投影到低維空間。對(duì)向量進(jìn)行投影就是對(duì)向量左乘一個(gè)矩陣,得到結(jié)果向量: y = Wx 結(jié)果向量的維數(shù)小于原始向量的維數(shù)。降維要確保的是在低維空間中的投影能很好的近似表達(dá)原始向量,即重構(gòu)誤差最小化: 50c99f3e-f519-11ed-90ce-dac502259ad0.png 其中e為投影后空間的基向量,是標(biāo)準(zhǔn)正交基;a為重構(gòu)系數(shù),也是投影到低維空間后的坐標(biāo)。如果定義如下的散布矩陣: 50d88d96-f519-11ed-90ce-dac502259ad0.png 其中m和50ea8e06-f519-11ed-90ce-dac502259ad0.png為所有樣本的均值向量。則上面的重構(gòu)誤差最小化等價(jià)于求解如下問題: 50fa8112-f519-11ed-90ce-dac502259ad0.png 通過拉格朗日乘數(shù)法可以證明,使得該函數(shù)取最小值的ej為散度矩陣最大的d'個(gè)特征值對(duì)應(yīng)的單位長(zhǎng)度特征向量。矩陣W的列ej是我們要求解的基向量,由它們構(gòu)成投影矩陣。計(jì)算時(shí),先計(jì)算散布矩陣(或者協(xié)方差矩陣),再對(duì)該進(jìn)行進(jìn)行特征值分解,找到最大的一部分特征值和對(duì)應(yīng)的特征向量,構(gòu)成投影矩陣??梢宰C明,協(xié)方差矩陣或散布矩陣是實(shí)對(duì)稱半正定矩陣,因此所有特征值非負(fù)。進(jìn)行降維時(shí),先將輸入向量減掉均值向量,然后左乘投影矩陣,即可得到投影后的向量。 ? 主成分分析一種無監(jiān)督學(xué)習(xí)算法,也是一種線性方法。 ?

線性判別分析

線性判別分析向最大化類間差異、最小化類內(nèi)差異的方向線性投影。其基本思想是通過線性投影來最小化同類樣本間的差異,最大化不同類樣本間的差異。具體做法是尋找一個(gè)向低維空間的投影矩陣W,樣本的特征向量x經(jīng)過投影之后得到的新向量: y = Wx 同一類樣投影后的結(jié)果向量差異盡可能小,不同類的樣本差異盡可能大。簡(jiǎn)單的說,就是經(jīng)過這個(gè)投影之后同一類的樣本進(jìn)來聚集在一起,不同類的樣本盡可能離得遠(yuǎn)。這種最大化類間差異,最小化類內(nèi)差異的做法,在機(jī)器學(xué)習(xí)的很多地方都有使用。 類內(nèi)散布矩陣定義為: 510a1bd6-f519-11ed-90ce-dac502259ad0.png 它衡量的內(nèi)類樣本的發(fā)散程度。其中mi為每個(gè)類的均值向量,m為所有樣本的均值向量。類間散布矩陣定義為: 5119a1c8-f519-11ed-90ce-dac502259ad0.png 它衡量的了各類樣本之間的差異。訓(xùn)練時(shí)的優(yōu)化目標(biāo)是類間差異與類內(nèi)差異的比值: 512cfb74-f519-11ed-90ce-dac502259ad0.png 上面的問題帶有冗余,如果w是最優(yōu)解,將其乘以一個(gè)不為0的系數(shù)之后還是最優(yōu)解。為了消掉冗余,加上如下約束: 51400dea-f519-11ed-90ce-dac502259ad0.png 然后使用拉格朗日乘數(shù)法,最后歸結(jié)于求解矩陣的特征值與特征向量: 5150b3c0-f519-11ed-90ce-dac502259ad0.png LDA是有監(jiān)督的學(xué)習(xí)算法,在計(jì)算過程中利用了樣本標(biāo)簽值,是線性模型。LDA也不能直接用于分類和回歸問題,要對(duì)降維后的向量進(jìn)行分類還需要借助其他算法。 ?

kNN算法

kNN算法將樣本分到離它最相似的樣本所屬的類。算法本質(zhì)上使用了模板匹配的思想。要確定一個(gè)樣本的類別,可以計(jì)算它與所有訓(xùn)練樣本的距離,然后找出和該樣本最接近的k個(gè)樣本,統(tǒng)計(jì)這些樣本的類別進(jìn)行投票,票數(shù)最多的那個(gè)類就是分類結(jié)果。 由于需要計(jì)算樣本間的距離,因此需要依賴距離定義,常用的有歐氏距離,Mahalanobis距離,Bhattacharyya距離。另外,還可以通過學(xué)習(xí)得到距離函數(shù),這就是距離度量學(xué)習(xí)。 kNN算法是一種判別模型,即支持分類問題,也支持回歸問題,是一種非線性模型。它天然的支持多分類問題。kNN算法沒有訓(xùn)練過程,是一種基于實(shí)例的算法。

人工神經(jīng)網(wǎng)絡(luò)

人工神經(jīng)網(wǎng)絡(luò)是一種仿生的方法,參考了動(dòng)物的神經(jīng)元結(jié)構(gòu)。從本質(zhì)上看,它是一個(gè)多層復(fù)合函數(shù)。對(duì)于多層前饋型神經(jīng)網(wǎng)絡(luò),即權(quán)連接網(wǎng)絡(luò),每一層實(shí)現(xiàn)的變換為: 516ba036-f519-11ed-90ce-dac502259ad0.png 其中W為權(quán)重矩陣,b為偏置向量,f為激活函數(shù)。正向傳播時(shí)反復(fù)用上上對(duì)每一層的輸出值進(jìn)行計(jì)算,得到最終的輸出。使用激活函數(shù)是為了保證非線性,對(duì)于激活函數(shù)更深入全面的介紹請(qǐng)參考SIGAI之前的公眾號(hào)文章“理解神經(jīng)網(wǎng)絡(luò)的激活函數(shù)”,“神經(jīng)網(wǎng)絡(luò)的激活函數(shù)總結(jié)”。萬能逼近定理保證了神經(jīng)網(wǎng)絡(luò)可以比較閉區(qū)間上任意一個(gè)連續(xù)函數(shù)。 ? 權(quán)重和偏置通過訓(xùn)練得到,采用的是反向傳播算法。反向傳播算法從復(fù)合函數(shù)求導(dǎo)的鏈?zhǔn)椒▌t導(dǎo)出,用于計(jì)算損失函數(shù)對(duì)權(quán)重,偏置的梯度值。算法從最外層的導(dǎo)數(shù)值算起,依次遞推的計(jì)算更內(nèi)層的導(dǎo)數(shù)值,這對(duì)應(yīng)于從神經(jīng)網(wǎng)絡(luò)的輸出層算起,反向計(jì)算每個(gè)隱含層參數(shù)的導(dǎo)數(shù)值。其核心是誤差項(xiàng)的定義,定義誤差項(xiàng)為損失函數(shù)對(duì)臨時(shí)變量u的梯度: 517ba594-f519-11ed-90ce-dac502259ad0.jpg 其中,nl是神經(jīng)網(wǎng)絡(luò)的層數(shù)。最后一個(gè)層的誤差項(xiàng)可以直接求出,其他層的誤差項(xiàng)根據(jù)上面的遞推公式進(jìn)行計(jì)算。根據(jù)誤差項(xiàng),可以計(jì)算出損失函數(shù)對(duì)每一層權(quán)重矩陣的梯度值: 519721a2-f519-11ed-90ce-dac502259ad0.png 以及對(duì)偏置向量的梯度值: 51a970d2-f519-11ed-90ce-dac502259ad0.png 然后用梯度下降法對(duì)它們的值進(jìn)行更新。參數(shù)初始化一般采用隨機(jī)數(shù),而不是簡(jiǎn)單的初始化為0。為了加快收斂速度,還可以使用動(dòng)量項(xiàng),它積累了之前的梯度信息。 ? 神經(jīng)網(wǎng)絡(luò)訓(xùn)練時(shí)的損失函數(shù)不是凸函數(shù),因此有陷入局部極值,鞍點(diǎn)的風(fēng)險(xiǎn)。另外,隨著層數(shù)的增加,會(huì)導(dǎo)致梯度消失問題,這是因?yàn)槊看斡?jì)算誤差項(xiàng)時(shí)都需要乘以激活函數(shù)的導(dǎo)數(shù)值,如果其絕對(duì)值小于1,多次連乘之后導(dǎo)致誤差項(xiàng)趨向于0,從而使得計(jì)算出來的參數(shù)梯度值接近于0,參數(shù)無法有效的更新。 ? 如果對(duì)反傳播算法的推導(dǎo)細(xì)節(jié)感興趣,可以閱讀SIGAI之前的公眾號(hào)文章“反向傳播算法推導(dǎo)-全連接神經(jīng)網(wǎng)絡(luò)”。神經(jīng)網(wǎng)絡(luò)的訓(xùn)練算法可以總結(jié)為: 復(fù)合函數(shù)求導(dǎo)?+?梯度下降法 ? 標(biāo)準(zhǔn)的神經(jīng)網(wǎng)絡(luò)是一種有監(jiān)督的學(xué)習(xí)算法,它是一種非線性模型,它既可以用于分類問題,也可以用于回歸問題,并且支持多分類問題。 ?

支持向量機(jī)

支持向量機(jī)的核心思想是最大化分類間隔。簡(jiǎn)單的支持向量機(jī)就是讓分類間隔最大化的線性分類器,找到多維空間中的一個(gè)超平面。它在訓(xùn)練是求解的問題為: 51b9d116-f519-11ed-90ce-dac502259ad0.png 這從點(diǎn)到超平面的距離方程導(dǎo)出,通過增加一個(gè)約束條件消掉了優(yōu)化變量的冗余??梢宰C明,這個(gè)問題是凸優(yōu)化問題,并且滿足Slater條件。這個(gè)問題帶有太多的不等式約束,不易求解,因此通過拉格朗日對(duì)偶轉(zhuǎn)換為對(duì)偶問題求解: 51ce4128-f519-11ed-90ce-dac502259ad0.jpg 同樣的,這個(gè)問題也是凸優(yōu)化問題。此時(shí)支持向量機(jī)并不能解決非線性分類問題,通過使用核函數(shù),將向量變換到高維空間,使它們更可能是線性可分的。而對(duì)向量先進(jìn)行映射再做內(nèi)積,等價(jià)于先做內(nèi)積再做映射,因此核函數(shù)并不用顯式的對(duì)向量進(jìn)行映射,而是對(duì)兩個(gè)向量的內(nèi)積進(jìn)行映射,這是核函數(shù)的精髓。要理解核函數(shù),可以閱讀SIGAI之前的公眾號(hào)文章“【實(shí)驗(yàn)】理解SVM的核函數(shù)和參數(shù)”。 ? 加入核函數(shù)K之后的對(duì)偶問題變?yōu)椋?51e28552-f519-11ed-90ce-dac502259ad0.jpg 預(yù)測(cè)函數(shù)為: 52081100-f519-11ed-90ce-dac502259ad0.png 其中b通過KKT條件求出。如果使用正定核,這個(gè)問題也是凸優(yōu)化問題。求解采用了SMO算法,這是一種分治法,每次挑選出兩個(gè)變量進(jìn)行優(yōu)化,其他變量保持不動(dòng)。選擇優(yōu)化變量的依據(jù)是KKT條件,對(duì)這兩個(gè)變量的優(yōu)化是一個(gè)帶等式和不等式約束的二次函數(shù)極值問題,可以直接得到公式解。另外,這個(gè)子問題同樣是一個(gè)凸優(yōu)化問題。 ? 標(biāo)準(zhǔn)的支持向量機(jī)只能解決二分類問題。對(duì)于多分類問題,可以用這種二分類器的組合來解決,有以下幾種方案: ? 1對(duì)剩余方案。對(duì)于有k個(gè)類的分類問題,訓(xùn)練k個(gè)二分類器。訓(xùn)練時(shí)第i個(gè)分類器的正樣本是第i類樣本,負(fù)樣本是除第i類之外其他類型的樣本,這個(gè)分類器的作用是判斷樣本是否屬于第i類。在進(jìn)行分類時(shí),對(duì)于待預(yù)測(cè)樣本,用每個(gè)分類器計(jì)算輸出值,取輸出值最大那個(gè)作為預(yù)測(cè)結(jié)果。 ? 1對(duì)1方案。如果有k個(gè)類,訓(xùn)練Ck2個(gè)二分類器,即這些類兩兩組合。訓(xùn)練時(shí)將第i類作為正樣本,其他各個(gè)類依次作為負(fù)樣本,總共有k?(k???1)?/ 2種組合。每個(gè)分類器的作用是判斷樣本是屬于第i類還是第j類。對(duì)樣本進(jìn)行分類時(shí)采用投票的方法,依次用每個(gè)二分類器進(jìn)行預(yù)測(cè),如果判定為第m類,則m類的投票數(shù)加1,得票最多的那個(gè)類作為最終的判定結(jié)果。 ? 除了通過二分類器的組合來構(gòu)造多類分類器之外,還可以通過直接優(yōu)化多類分類的目標(biāo)函數(shù)得到多分類器。 ? SVM是一種判別模型。它既可以用于分類問題,也可以用于回歸問題。標(biāo)準(zhǔn)的SVM只能支持二分類問題,使用多個(gè)分類器的組合,可以解決多分類問題。如果不使用核函數(shù),SVM是一個(gè)線性模型,如果使用非線性核,則是非線性模型,這可以從上面的預(yù)測(cè)函數(shù)看出。如果想更詳細(xì)的了解支持向量機(jī),可以閱讀SIGAI之前的公眾號(hào)文章“用一張圖理解SVM的脈絡(luò)”。 ?

logistic回歸

logistic回歸是一種二分類算法,直接為樣本估計(jì)出它屬于正負(fù)樣本的概率。先將向量進(jìn)行線性加權(quán),然后計(jì)算logistic函數(shù),可以得到[0,1]之間的概率值,它表示樣本x屬于正樣本的概率: 521dcfb8-f519-11ed-90ce-dac502259ad0.png 正樣本標(biāo)簽值為1,負(fù)樣本為0。使用logistic函數(shù)的原因是它單調(diào)增,并且值域在(0, 1)之間,剛好符合概率的要求。訓(xùn)練時(shí)采用最大似然估計(jì),求解對(duì)數(shù)似然函數(shù)的極值: 523429a2-f519-11ed-90ce-dac502259ad0.png 可以證明這是一個(gè)凸優(yōu)化問題,求解時(shí)可以用梯度下降法,也可以用牛頓法。如果正負(fù)樣本的標(biāo)簽為+1和-1,則可以采用另外一種寫法: 524891d0-f519-11ed-90ce-dac502259ad0.png 訓(xùn)練時(shí)的目標(biāo)同樣是最大化對(duì)數(shù)似然函數(shù): 525c047c-f519-11ed-90ce-dac502259ad0.png 同樣的,這也是一個(gè)凸優(yōu)化問題。預(yù)測(cè)時(shí)并不需要計(jì)算logistic函數(shù),而是直接計(jì)算: 5272e854-f519-11ed-90ce-dac502259ad0.png Logistic回歸是一種二分類算法,雖然使用了概率,但它是一種判別模型!另外要注意的是,logistic回歸是一種線性模型,這從它的預(yù)測(cè)函數(shù)就可以看出。它本身不能支持多分類問題,它的擴(kuò)展版本softmax回歸可以解決多分類問題。 ?

K均值算法

K均值算法是一種聚類算法,把樣本分配到離它最近的類中心所屬的類,類中心由屬于這個(gè)類的所有樣本確定。 k均值算法是一種無監(jiān)督的聚類算法。算法將每個(gè)樣本分配到離它最近的那個(gè)類中心所代表的類,而類中心的確定又依賴于樣本的分配方案。 在實(shí)現(xiàn)時(shí),先隨機(jī)初始化每個(gè)類的類中心,然后計(jì)算樣本與每個(gè)類的中心的距離,將其分配到最近的那個(gè)類,然后根據(jù)這種分配方案重新計(jì)算每個(gè)類的中心。這也是一種分階段優(yōu)化的策略。 與k近鄰算法一樣,這里也依賴于樣本之間的距離,因此需要定義距離的計(jì)算方式,最常用的是歐氏距離,也可以采用其他距離定義。算法在實(shí)現(xiàn)時(shí)要考慮下面幾個(gè)問題: 1.類中心向量的初始化。一般采用隨機(jī)初始化。最簡(jiǎn)單的是Forgy算法,它從樣本集中隨機(jī)選擇k個(gè)樣本作為初始類中心。第二種方案是隨機(jī)劃分,它將所有樣本隨機(jī)的分配給k個(gè)類中的一個(gè),然后按照這種分配方案計(jì)算各個(gè)類的類中心向量。 2.參數(shù)k的設(shè)定??梢愿鶕?jù)先驗(yàn)知識(shí)人工指定一個(gè)值,或者由算法自己確定。 3.迭代終止的判定規(guī)則。一般做法是計(jì)算本次迭代后的類中心和上一次迭代時(shí)的類中心之間的距離,如果小于指定閾值,則算法終止。

卷積神經(jīng)網(wǎng)絡(luò)

卷積神經(jīng)網(wǎng)絡(luò)是對(duì)全連接神經(jīng)網(wǎng)絡(luò)的發(fā)展,它使用卷積層,池化層自動(dòng)學(xué)習(xí)各個(gè)尺度上的特征。卷積運(yùn)算為: 5287f028-f519-11ed-90ce-dac502259ad0.png 在這里需要注意多通道卷積的實(shí)現(xiàn),它的輸入圖像,卷積核都有多個(gè)通道,分別用各個(gè)通道的卷積核對(duì)輸入圖像的各個(gè)通道進(jìn)行卷積,然后再累加。這里也使用了激活函數(shù),原因和全連接神經(jīng)網(wǎng)絡(luò)相同。池化運(yùn)算最常見的有均值池化,max池化,分別用均值和最大值代替圖像的一塊矩形區(qū)域。使用池化的原因是為了降維,減小圖像的尺寸,另外,它還帶來了一定程度的平移和旋轉(zhuǎn)的不變性。Max池化是非線性操作,現(xiàn)在用的更多。 ? 對(duì)于經(jīng)典的網(wǎng)絡(luò)結(jié)構(gòu),包括LeNet-5網(wǎng)絡(luò),AlexNet,VGG網(wǎng)絡(luò),GoogLeNet,殘差網(wǎng)絡(luò)等經(jīng)典的網(wǎng)絡(luò)結(jié)構(gòu),創(chuàng)新點(diǎn),要熟記于心。 ? 自Alex網(wǎng)絡(luò)出現(xiàn)之后,各種改進(jìn)的卷積網(wǎng)絡(luò)不斷被提出。這些改進(jìn)主要在以下幾個(gè)方面進(jìn)行:卷積層,池化層,激活函數(shù),損失函數(shù),網(wǎng)絡(luò)結(jié)構(gòu)。對(duì)于這些典型的改進(jìn),也要深刻理解。 ? 由于引入了卷積層和池化層,因此反向傳播算法需要為這兩種層進(jìn)行考慮。卷積層誤差項(xiàng)的反向傳播的公式為 52a3e580-f519-11ed-90ce-dac502259ad0.png 根據(jù)誤差項(xiàng)計(jì)算卷積核梯度值的公式為: 52b4c65c-f519-11ed-90ce-dac502259ad0.png 如果采用均值池化,池化層的誤差項(xiàng)反向傳播計(jì)算公式為: 52cd6676-f519-11ed-90ce-dac502259ad0.png 如果使用max池化,則為: 52e150aa-f519-11ed-90ce-dac502259ad0.png 注意,池化層沒有需要訓(xùn)練得到的參數(shù)。如果對(duì)卷積神經(jīng)網(wǎng)絡(luò)反向傳播算法的推導(dǎo)感興趣,可以閱讀SIGAI之前的公眾號(hào)文章“反向傳播算法推導(dǎo)-卷積神經(jīng)網(wǎng)絡(luò)”。 ? 卷積神經(jīng)網(wǎng)絡(luò)具有遷移學(xué)習(xí)的能力,我們可以把這個(gè)網(wǎng)絡(luò)的參數(shù)作為訓(xùn)練的初始值,在新的任務(wù)上繼續(xù)訓(xùn)練,這種做法稱為fine-tune,即網(wǎng)絡(luò)微調(diào)。大量的實(shí)驗(yàn)結(jié)果和應(yīng)用結(jié)果證明,這種微調(diào)是有效的。這說明卷積神經(jīng)網(wǎng)絡(luò)在一定程度上具有遷移學(xué)習(xí)的能力,卷積層學(xué)習(xí)到的特征具有通用性。VGG網(wǎng)絡(luò)在ImageNet數(shù)據(jù)集上的訓(xùn)練結(jié)果在進(jìn)行微調(diào)之后,被廣泛應(yīng)用于目標(biāo)檢測(cè)、圖像分割等任務(wù)。 ? 和全連接神經(jīng)網(wǎng)絡(luò)一樣,卷積神經(jīng)網(wǎng)絡(luò)是一個(gè)判別模型,它既可以用于分類問題,也可以用用于回歸問題,并且支持多分類問題。 ?

循環(huán)神經(jīng)網(wǎng)絡(luò)

循環(huán)神經(jīng)網(wǎng)絡(luò)是一種具有記憶功能的神經(jīng)網(wǎng)絡(luò),每次計(jì)算時(shí),利用了上一個(gè)時(shí)刻的記憶值,特別適合序列數(shù)據(jù)分析。網(wǎng)絡(luò)接受的是一個(gè)序列數(shù)據(jù),即一組向量,依次把它們輸入網(wǎng)絡(luò),計(jì)算每個(gè)時(shí)刻的輸出值。記憶功能通過循環(huán)神層實(shí)現(xiàn): 52f5c242-f519-11ed-90ce-dac502259ad0.png 它同時(shí)利用了本時(shí)刻的輸入值和上一個(gè)時(shí)刻的記憶值。輸出層的變換為: 530b5864-f519-11ed-90ce-dac502259ad0.png 這和普通神經(jīng)網(wǎng)絡(luò)沒什么區(qū)別。由于引入了循環(huán)層,因此反向傳播算法有所不同,稱為BPTT,即時(shí)間軸上的反向傳播算法。算法從最后一個(gè)時(shí)刻算起,沿著時(shí)間軸往前推。誤差項(xiàng)的遞推公式為: 5320fff2-f519-11ed-90ce-dac502259ad0.jpg 遞推的終點(diǎn)為最后一個(gè)時(shí)刻。 533044da-f519-11ed-90ce-dac502259ad0.jpg 根據(jù)誤差項(xiàng)計(jì)算對(duì)權(quán)重和偏置的梯度值的公式為: 5346b30a-f519-11ed-90ce-dac502259ad0.jpg 循環(huán)神經(jīng)網(wǎng)絡(luò)同樣存在梯度消失問題,因此出現(xiàn)了LSTM,GRU等結(jié)構(gòu)。 ? 以循環(huán)神經(jīng)網(wǎng)絡(luò)為基礎(chǔ),構(gòu)造出了兩類通用的框架,分別是連接主義時(shí)序分類(CTC),以及序列到序列學(xué)習(xí)(seq2seq)。用于解決語(yǔ)音識(shí)別,自然語(yǔ)言處理中的問題。其中,seq2seq采用了編碼器-解碼器結(jié)構(gòu),用兩個(gè)循環(huán)神經(jīng)網(wǎng)絡(luò)組合起來完成計(jì)算,一個(gè)充當(dāng)編碼器,一個(gè)充當(dāng)解碼器。 ? 和其他類型的神經(jīng)網(wǎng)絡(luò)一樣,循環(huán)神經(jīng)網(wǎng)絡(luò)是一個(gè)判別模型,既支持分類問題,也支持回歸問題,并且支持多分類問題。 ?

高斯混合模型

高斯混合模型通過多個(gè)正態(tài)分布的加權(quán)和來描述一個(gè)隨機(jī)變量的概率分布,概率密度函數(shù)定義為: 5360db2c-f519-11ed-90ce-dac502259ad0.png 其中x為隨機(jī)向量,k為高斯分布的個(gè)數(shù),wi為權(quán)重,53730428-f519-11ed-90ce-dac502259ad0.png為高斯分布的均值向量,5380fb3c-f519-11ed-90ce-dac502259ad0.png為協(xié)方差矩陣。所有權(quán)重之和為1,即: 53960324-f519-11ed-90ce-dac502259ad0.png 任意一個(gè)樣本可以看作是先從k個(gè)高斯分布中選擇出一個(gè),選擇第i個(gè)高斯分布的概率為wi,再由第i個(gè)高斯分布53ad51b4-f519-11ed-90ce-dac502259ad0.png產(chǎn)生出這個(gè)樣本數(shù)據(jù)x。高斯混合模型可以逼近任何一個(gè)連續(xù)的概率分布,因此它可以看做是連續(xù)性概率分布的萬能逼近器。之所有要保證權(quán)重的和為1,是因?yàn)楦怕拭芏群瘮?shù)必須滿足在53be6fee-f519-11ed-90ce-dac502259ad0.png內(nèi)的積分值為1。 ? 指定高斯分布的個(gè)數(shù),給定一組訓(xùn)練樣本,可以通過期望最大化EM算法確定高斯混合模型的參數(shù)。每次迭代時(shí),在E步計(jì)算期望值,在M步最大化期望值,如此循環(huán)交替。 ?

EM算法

EM算法是一種迭代法,其目標(biāo)是求解似然函數(shù)或后驗(yàn)概率的極值,而樣本中具有無法觀測(cè)的隱含變量。因?yàn)殡[變量的存在,我們無法直接通過最大化似然函數(shù)來確定參數(shù)的值??梢圆捎靡环N策略,構(gòu)造出對(duì)數(shù)似然函數(shù)的一個(gè)下界函數(shù),這個(gè)函數(shù)不含有隱變量,然后優(yōu)化這個(gè)下界。不斷的提高這個(gè)下界,使原問題達(dá)到最優(yōu)解,這就是EM算法所采用的思路。算法的構(gòu)造依賴于Jensen不等式。 算法在實(shí)現(xiàn)時(shí)首先隨機(jī)初始化參數(shù)53d40ec6-f519-11ed-90ce-dac502259ad0.png的值,接下來循環(huán)迭代,每次迭代時(shí)分為兩步: ? E步,基于當(dāng)前的參數(shù)估計(jì)值53e45024-f519-11ed-90ce-dac502259ad0.png,計(jì)算在給定x時(shí)對(duì)z的條件概率的數(shù)學(xué)期望: 53f8fb50-f519-11ed-90ce-dac502259ad0.png M步,求解如下極值問題,更新53d40ec6-f519-11ed-90ce-dac502259ad0.png的值: 541c37f0-f519-11ed-90ce-dac502259ad0.jpg 實(shí)現(xiàn)Qi?時(shí)可以按照下面的公式計(jì)算: 5435d462-f519-11ed-90ce-dac502259ad0.jpg 迭代終止的判定規(guī)則是相鄰兩次函數(shù)值之差小于指定閾值。需要注意的是,EM算法只能保證收斂到局部極小值。

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4256

    瀏覽量

    62223
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8320

    瀏覽量

    132164

原文標(biāo)題:機(jī)器學(xué)習(xí)最全知識(shí)點(diǎn)匯總

文章出處:【微信號(hào):機(jī)器視覺沙龍,微信公眾號(hào):機(jī)器視覺沙龍】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    分享一個(gè)自己寫的機(jī)器學(xué)習(xí)線性回歸梯度下降算法

    單變量線性回歸算法,利用Batch梯度梯度下降算法迭代計(jì)算得到誤差最小的代價(jià)函數(shù)theta0,theta1。調(diào)節(jié)學(xué)習(xí)率a可以觀察擬合得到的函數(shù)和代價(jià)函數(shù)誤差收斂情況。
    發(fā)表于 10-02 21:48

    機(jī)器學(xué)習(xí)新手必學(xué)的三種優(yōu)化算法(牛頓法、梯度下降法、最速下降法

    轉(zhuǎn)換的算法復(fù)雜度是非常高的(O(n3)),因此牛頓法在這種情形下并不常用。梯度下降梯度下降是目前為止機(jī)
    發(fā)表于 05-07 08:30

    如何學(xué)習(xí)機(jī)器學(xué)習(xí)

    【吳恩達(dá)機(jī)器學(xué)習(xí)學(xué)習(xí)筆記13(Normal Equation& 與梯度下降比較)
    發(fā)表于 04-26 11:05

    梯度下降法、牛頓法到擬牛頓法它們的聯(lián)系與區(qū)別是什么

    梯度下降法、牛頓法到擬牛頓法,淺談它們的聯(lián)系與區(qū)別
    發(fā)表于 05-21 11:06

    keras內(nèi)置的7個(gè)常用的優(yōu)化器介紹

    =0.004)上述優(yōu)化器可以分為兩類:1 梯度下降算法類 2 自適應(yīng)學(xué)習(xí)率類。這些算法的基礎(chǔ)都是梯度下降算法,只是
    發(fā)表于 08-18 06:32

    用基于計(jì)算機(jī)隨機(jī)模擬的下降法求解報(bào)童問題

    采用計(jì)算機(jī)隨機(jī)模擬加上傳統(tǒng)的梯度下降法,求解了報(bào)童每天賣報(bào)的期望收益最大的訂報(bào)量,并給出了迭代變化圖,結(jié)果表明此算法對(duì)于報(bào)童問題是相當(dāng)有效的。對(duì)于企業(yè)訂貨等問
    發(fā)表于 09-16 10:49 ?7次下載

    基于梯度下降法和互補(bǔ)濾波的航向姿態(tài)參考系統(tǒng)

    針對(duì)微型無人機(jī)航向姿態(tài)參考系統(tǒng)低成本、小型化的工程實(shí)現(xiàn)需求,基于三軸陀螺儀、加速度計(jì)和磁力計(jì),提出了一種在線實(shí)時(shí)姿態(tài)估計(jì)算法。該算法采用四元數(shù)描述系統(tǒng)模型,采用改進(jìn)的梯度下降法預(yù)處理加速度計(jì)和磁力計(jì)
    發(fā)表于 11-16 10:29 ?15次下載
    基于<b class='flag-5'>梯度</b><b class='flag-5'>下降法</b>和互補(bǔ)濾波的航向姿態(tài)參考系統(tǒng)

    一種結(jié)合梯度下降法的二層搜索粒子群算法

    針對(duì)標(biāo)準(zhǔn)粒子群優(yōu)化(PSO)算法求解復(fù)雜優(yōu)化問題中出現(xiàn)的早熟收斂問題,提出一種結(jié)合梯度下降法的二次搜索粒子群算法。首先,當(dāng)全局極值超過預(yù)設(shè)的最大不變迭代次數(shù)時(shí),判斷全局極值點(diǎn)處于極值陷阱
    發(fā)表于 11-27 17:28 ?5次下載
    一種結(jié)合<b class='flag-5'>梯度</b><b class='flag-5'>下降法</b>的二層搜索粒子群算法

    機(jī)器學(xué)習(xí):隨機(jī)梯度下降和批量梯度下降算法介紹

    隨機(jī)梯度下降(Stochastic gradient descent) 批量梯度下降(Batch gradient descent) 梯度
    發(fā)表于 11-28 04:00 ?8777次閱讀
    <b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>:隨機(jī)<b class='flag-5'>梯度</b><b class='flag-5'>下降</b>和批量<b class='flag-5'>梯度</b><b class='flag-5'>下降</b>算法介紹

    一文看懂常用的梯度下降算法

    編輯:祝鑫泉 一 概述 梯度下降算法( Gradient Descent Optimization )是神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練最常用的優(yōu)化算法。對(duì)于深度學(xué)習(xí)模型,基本都是采用梯度
    發(fā)表于 12-04 18:17 ?1757次閱讀

    機(jī)器學(xué)習(xí)梯度下降法的過程

    梯度下降法是一個(gè)用于尋找最小化成本函數(shù)的參數(shù)值的最優(yōu)化算法。當(dāng)我們無法通過分析計(jì)算(比如線性代數(shù)運(yùn)算)求得函數(shù)的最優(yōu)解時(shí),我們可以利用梯度下降法來求解該問題。
    發(fā)表于 04-26 16:44 ?3387次閱讀

    梯度下降算法及其變種:批量梯度下降,小批量梯度下降和隨機(jī)梯度下降

    現(xiàn)在我們來討論梯度下降算法的三個(gè)變種,它們之間的主要區(qū)別在于每個(gè)學(xué)習(xí)步驟中計(jì)算梯度時(shí)使用的數(shù)據(jù)量,是對(duì)每個(gè)參數(shù)更新(學(xué)習(xí)步驟)時(shí)的
    的頭像 發(fā)表于 05-03 15:55 ?2.1w次閱讀

    機(jī)器學(xué)習(xí)優(yōu)化算法梯度下降,牛頓法和擬牛頓法的優(yōu)缺點(diǎn)詳細(xì)介紹

    梯度下降法實(shí)現(xiàn)簡(jiǎn)單,當(dāng)目標(biāo)函數(shù)是凸函數(shù)時(shí),梯度下降法的解是全局解。一般情況下,其解不保證是全局最優(yōu)解,梯度
    的頭像 發(fā)表于 08-04 11:40 ?5.2w次閱讀

    機(jī)器學(xué)習(xí)梯度下降法是怎樣的

    最優(yōu)化問題是機(jī)器學(xué)習(xí)算法中非常重要的一部分,幾乎每一個(gè)機(jī)器學(xué)習(xí)算法的核心都是處理最優(yōu)化問題。
    發(fā)表于 03-30 09:44 ?1159次閱讀

    各種梯度下降法是如何工作的

    導(dǎo)讀一圖勝千言,什么?還是動(dòng)畫,那就更棒啦!本文用了大量的資源來解釋各種梯度下降法(gradient descents),想給大家直觀地介紹一下這些方法是如何工作的。
    的頭像 發(fā)表于 08-17 11:50 ?1028次閱讀