日本无码免费高清在线|成人日本在线观看高清|A级片免费视频操逼欧美|全裸美女搞黄色大片网站|免费成人a片视频|久久无码福利成人激情久久|国产视频一二国产在线v|av女主播在线观看|五月激情影音先锋|亚洲一区天堂av

  • 手機(jī)站
  • 小程序

    汽車測試網(wǎng)

  • 公眾號
    • 汽車測試網(wǎng)

    • 在線課堂

    • 電車測試

機(jī)器學(xué)習(xí)最全知識點匯總

2022-03-06 23:59:43·  來源:機(jī)器學(xué)習(xí)算法與Python實戰(zhàn)  
 
AdaBoost算法

AdaBoost算法也是一種集成學(xué)習(xí)算法,用于二分類問題,是Boosting算法的一種實現(xiàn)。它用多個弱分類器的線性組合來預(yù)測,訓(xùn)練時重點關(guān)注錯分的樣本,準(zhǔn)確率高的弱分類器權(quán)重大。AdaBoost算法的全稱是自適應(yīng),它用弱分類器的線性組合來構(gòu)造強(qiáng)分類器。弱分類器的性能不用太好,僅比隨機(jī)猜測強(qiáng),依靠它們可以構(gòu)造出一個非常準(zhǔn)確的強(qiáng)分類器。強(qiáng)分類器的計算公式為:

圖片

其中x是輸入向量,F(xiàn)(x)是強(qiáng)分類器,ft(x)是弱分類器,at是弱分類器的權(quán)重,T為弱分類器的數(shù)量,弱分類器的輸出值為+1或-1,分別對應(yīng)正樣本和負(fù)樣本。分類時的判定規(guī)則為:

圖片

強(qiáng)分類器的輸出值也為+1或-1,同樣對應(yīng)于正樣本和負(fù)樣本。
訓(xùn)練時,依次訓(xùn)練每一個若分類器,并得到它們的權(quán)重值。訓(xùn)練樣本帶有權(quán)重值,初始時所有樣本的權(quán)重相等,在訓(xùn)練過程中,被前面的弱分類器錯分的樣本會加大權(quán)重,反之會減小權(quán)重,這樣接下來的弱分類器會更加關(guān)注這些難分的樣本。弱分類器的權(quán)重值根據(jù)它的準(zhǔn)確率構(gòu)造,精度越高的弱分類器權(quán)重越大。
給定l個訓(xùn)練樣本(xi,yi ),其中xi是特征向量,yi為類別標(biāo)簽,其值為+1或-1。訓(xùn)練算法的流程為:

圖片

根據(jù)計算公式,錯誤率低的弱分類器權(quán)重大,它是準(zhǔn)確率的增函數(shù)。AdaBoost算法在訓(xùn)練樣本集上的錯誤率會隨著弱分類器數(shù)量的增加而指數(shù)級降低。它能有效的降低模型的偏差。
AdaBoost算法從廣義加法模型導(dǎo)出,訓(xùn)練時求解的是指數(shù)損失函數(shù)的極小值:

圖片

求解時采用了分階段優(yōu)化,先得到弱分類器,然后確定弱分類器的權(quán)重值,這就是弱分類器,弱分類器權(quán)重的來歷。除了離散型AdaBoost之外,從廣義加法模型還可以導(dǎo)出其他幾種AdaBoost算法,分別是實數(shù)型AdaBoost,Gentle型AdaBoost,Logit型AdaBoost,它們使用了不同的損失函數(shù)和最優(yōu)化算法。
標(biāo)準(zhǔn)的AdaBoost算法是一種判別模型,只能支持二分類問題。它的改進(jìn)型可以處理多分類問題。 

主成分分析

主成分分析是一種數(shù)據(jù)降維和去除相關(guān)性的方法,它通過線性變換將向量投影到低維空間。對向量進(jìn)行投影就是對向量左乘一個矩陣,得到結(jié)果向量:y = Wx結(jié)果向量的維數(shù)小于原始向量的維數(shù)。降維要確保的是在低維空間中的投影能很好的近似表達(dá)原始向量,即重構(gòu)誤差最小化:

圖片

其中e為投影后空間的基向量,是標(biāo)準(zhǔn)正交基;a為重構(gòu)系數(shù),也是投影到低維空間后的坐標(biāo)。如果定義如下的散布矩陣:

圖片

其中m和

圖片

為所有樣本的均值向量。則上面的重構(gòu)誤差最小化等價于求解如下問題:

圖片

通過拉格朗日乘數(shù)法可以證明,使得該函數(shù)取最小值的ej為散度矩陣最大的d'個特征值對應(yīng)的單位長度特征向量。矩陣W的列ej是我們要求解的基向量,由它們構(gòu)成投影矩陣。計算時,先計算散布矩陣(或者協(xié)方差矩陣),再對該進(jìn)行進(jìn)行特征值分解,找到最大的一部分特征值和對應(yīng)的特征向量,構(gòu)成投影矩陣??梢宰C明,協(xié)方差矩陣或散布矩陣是實對稱半正定矩陣,因此所有特征值非負(fù)。進(jìn)行降維時,先將輸入向量減掉均值向量,然后左乘投影矩陣,即可得到投影后的向量。
主成分分析一種無監(jiān)督學(xué)習(xí)算法,也是一種線性方法。 

線性判別分析

線性判別分析向最大化類間差異、最小化類內(nèi)差異的方向線性投影。其基本思想是通過線性投影來最小化同類樣本間的差異,最大化不同類樣本間的差異。具體做法是尋找一個向低維空間的投影矩陣W,樣本的特征向量x經(jīng)過投影之后得到的新向量:y = Wx同一類樣投影后的結(jié)果向量差異盡可能小,不同類的樣本差異盡可能大。簡單的說,就是經(jīng)過這個投影之后同一類的樣本進(jìn)來聚集在一起,不同類的樣本盡可能離得遠(yuǎn)。這種最大化類間差異,最小化類內(nèi)差異的做法,在機(jī)器學(xué)習(xí)的很多地方都有使用。
類內(nèi)散布矩陣定義為:

圖片

它衡量的內(nèi)類樣本的發(fā)散程度。其中mi為每個類的均值向量,m為所有樣本的均值向量。類間散布矩陣定義為:

圖片

它衡量的了各類樣本之間的差異。訓(xùn)練時的優(yōu)化目標(biāo)是類間差異與類內(nèi)差異的比值:

圖片

上面的問題帶有冗余,如果w是最優(yōu)解,將其乘以一個不為0的系數(shù)之后還是最優(yōu)解。為了消掉冗余,加上如下約束:

圖片

然后使用拉格朗日乘數(shù)法,最后歸結(jié)于求解矩陣的特征值與特征向量:

圖片

LDA是有監(jiān)督的學(xué)習(xí)算法,在計算過程中利用了樣本標(biāo)簽值,是線性模型。LDA也不能直接用于分類和回歸問題,要對降維后的向量進(jìn)行分類還需要借助其他算法。 

kNN算法




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

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




人工神經(jīng)網(wǎng)絡(luò)是一種仿生的方法,參考了動物的神經(jīng)元結(jié)構(gòu)。從本質(zhì)上看,它是一個多層復(fù)合函數(shù)。對于多層前饋型神經(jīng)網(wǎng)絡(luò),即權(quán)連接網(wǎng)絡(luò),每一層實現(xiàn)的變換為:

圖片

其中W為權(quán)重矩陣,b為偏置向量,f為激活函數(shù)。正向傳播時反復(fù)用上上對每一層的輸出值進(jìn)行計算,得到最終的輸出。使用激活函數(shù)是為了保證非線性,對于激活函數(shù)更深入全面的介紹請參考SIGAI之前的公眾號文章“理解神經(jīng)網(wǎng)絡(luò)的激活函數(shù)”,“神經(jīng)網(wǎng)絡(luò)的激活函數(shù)總結(jié)”。萬能逼近定理保證了神經(jīng)網(wǎng)絡(luò)可以比較閉區(qū)間上任意一個連續(xù)函數(shù)。
權(quán)重和偏置通過訓(xùn)練得到,采用的是反向傳播算法。反向傳播算法從復(fù)合函數(shù)求導(dǎo)的鏈?zhǔn)椒▌t導(dǎo)出,用于計算損失函數(shù)對權(quán)重,偏置的梯度值。算法從最外層的導(dǎo)數(shù)值算起,依次遞推的計算更內(nèi)層的導(dǎo)數(shù)值,這對應(yīng)于從神經(jīng)網(wǎng)絡(luò)的輸出層算起,反向計算每個隱含層參數(shù)的導(dǎo)數(shù)值。其核心是誤差項的定義,定義誤差項為損失函數(shù)對臨時變量u的梯度:

圖片

其中,nl是神經(jīng)網(wǎng)絡(luò)的層數(shù)。最后一個層的誤差項可以直接求出,其他層的誤差項根據(jù)上面的遞推公式進(jìn)行計算。根據(jù)誤差項,可以計算出損失函數(shù)對每一層權(quán)重矩陣的梯度值:

圖片

以及對偏置向量的梯度值:

圖片

然后用梯度下降法對它們的值進(jìn)行更新。參數(shù)初始化一般采用隨機(jī)數(shù),而不是簡單的初始化為0。為了加快收斂速度,還可以使用動量項,它積累了之前的梯度信息。
神經(jīng)網(wǎng)絡(luò)訓(xùn)練時的損失函數(shù)不是凸函數(shù),因此有陷入局部極值,鞍點的風(fēng)險。另外,隨著層數(shù)的增加,會導(dǎo)致梯度消失問題,這是因為每次計算誤差項時都需要乘以激活函數(shù)的導(dǎo)數(shù)值,如果其絕對值小于1,多次連乘之后導(dǎo)致誤差項趨向于0,從而使得計算出來的參數(shù)梯度值接近于0,參數(shù)無法有效的更新。
如果對反傳播算法的推導(dǎo)細(xì)節(jié)感興趣,可以閱讀SIGAI之前的公眾號文章“反向傳播算法推導(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í)算法,它是一種非線性模型,它既可以用于分類問題,也可以用于回歸問題,并且支持多分類問題。 

分享到:
 
反對 0 舉報 0 收藏 0 評論 0
滬ICP備11026917號-25