机器学习常用算法(LDA,CNN,LR)原理简述
1.LDA
LDA是一種三層貝葉斯模型,三層分別為:文檔層、主題層和詞層。該模型基于如下假設(shè):
1)整個(gè)文檔集合中存在k個(gè)互相獨(dú)立的主題;
2)每一個(gè)主題是詞上的多項(xiàng)分布;
3)每一個(gè)文檔由k個(gè)主題隨機(jī)混合組成;
4)每一個(gè)文檔是k個(gè)主題上的多項(xiàng)分布;
5)每一個(gè)文檔的主題概率分布的先驗(yàn)分布是Dirichlet分布;
6)每一個(gè)主題中詞的概率分布的先驗(yàn)分布是Dirichlet分布。
文檔的生成過(guò)程如下:
1)對(duì)于文檔集合M,從參數(shù)為β的Dirichlet分布中采樣topic生成word的分布參數(shù)φ;
2)對(duì)于每個(gè)M中的文檔m,從參數(shù)為α的Dirichlet分布中采樣doc對(duì)topic的分布參數(shù)θ;
3)對(duì)于文檔m中的第n個(gè)詞語(yǔ)W_mn,先按照θ分布采樣文檔m的一個(gè)隱含的主題Z_m,再按照φ分布采樣主題Z_m的一個(gè)詞語(yǔ)W_mn。
因此整個(gè)模型的聯(lián)合分布,如下:
對(duì)聯(lián)合分布求積分,去掉部分隱變量后:
用間接計(jì)算轉(zhuǎn)移概率可以消除中間參數(shù)θ和φ,所以主題的轉(zhuǎn)移概率化為:
這樣我們就可以通過(guò)吉布斯采樣來(lái)進(jìn)行每輪的迭代,迭代過(guò)程即:首先產(chǎn)生于一個(gè)均勻分布的隨機(jī)數(shù),然后根據(jù)上式計(jì)算每個(gè)轉(zhuǎn)移主題的概率,通過(guò)累積概率判斷隨機(jī)數(shù)落在哪個(gè)new topic下,更新參數(shù)矩陣,如此迭代直至收斂。
2.CNN
2.1 多層感知器基礎(chǔ)
單個(gè)感知器的結(jié)構(gòu)示例如下:
其中函數(shù)f為激活函數(shù),一般用sigmoid函數(shù)。
將多個(gè)單元組合起來(lái)并具有分層結(jié)構(gòu)時(shí),就形成了多層感知器模型(神經(jīng)網(wǎng)絡(luò))。下圖是一個(gè)具有一個(gè)隱含層(3個(gè)節(jié)點(diǎn))和一個(gè)單節(jié)點(diǎn)輸出層的神經(jīng)網(wǎng)絡(luò)。
2.2 卷積神經(jīng)網(wǎng)絡(luò)
2.2.1 結(jié)構(gòu)特征
在圖像處理中,往往把圖像表示為像素的向量,比如一個(gè)1000×1000的圖像,可以表示為一個(gè)〖10〗^6的向量。在上述的神經(jīng)網(wǎng)絡(luò)中,如果隱含層數(shù)目與輸入層一樣,即也是〖10〗^6時(shí),那么輸入層到隱含層的參數(shù)數(shù)據(jù)為〖10〗^12,這樣就太多了,基本沒(méi)法訓(xùn)練。因此需要減少網(wǎng)絡(luò)的參數(shù)。
卷積網(wǎng)絡(luò)就是為識(shí)別二維形狀而特殊設(shè)計(jì)的一個(gè)多層感知器,這種網(wǎng)絡(luò)結(jié)構(gòu)對(duì)平移、比例縮放、傾斜或者共他形式的變形具有高度不變性。這些良好的性能是網(wǎng)絡(luò)在有監(jiān)督方式下學(xué)會(huì)的,網(wǎng)絡(luò)的結(jié)構(gòu)主要有稀疏連接和權(quán)值共享兩個(gè)特點(diǎn),包括如下形式的約束:
1)特征提取。每一個(gè)神經(jīng)元從上一層的局部接受域得到輸入,因而迫使它提取局部特征。一旦一個(gè)特征被提取出來(lái),只要它相對(duì)于其他特征的位置被近似地保留下來(lái),它的精確位置就變得沒(méi)有那么重要了。
2)特征映射。網(wǎng)絡(luò)的每一個(gè)計(jì)算層都是由多個(gè)特征映射組成的,每個(gè)特征映射都是平面形式的,平面中單獨(dú)的神經(jīng)元在約束下共享相同的權(quán)值集。
3)子抽樣。每個(gè)卷積層后面跟著一個(gè)實(shí)現(xiàn)局部平均和子抽樣的計(jì)算層,由此特征映射的分辨率降低。這種操作具有使特征映射的輸出對(duì)平移和其他形式的變形的敏感度下降的作用。
在一個(gè)卷積網(wǎng)絡(luò)的所有層中的所有權(quán)值都是通過(guò)有監(jiān)督訓(xùn)練來(lái)學(xué)習(xí)的,此外,網(wǎng)絡(luò)還能自動(dòng)的在學(xué)習(xí)過(guò)程中提取特征。
一個(gè)卷積神經(jīng)網(wǎng)絡(luò)一般是由卷積層和子抽樣層交替組成。下圖是一個(gè)例子:
輸入的圖片經(jīng)過(guò)卷積層,子抽樣層,卷積層,子抽樣層之后,再由一個(gè)全連接成得到輸出。
2.2.2 卷積層
卷積層是通過(guò)權(quán)值共享實(shí)現(xiàn)的。共享權(quán)值的單元構(gòu)成一個(gè)特征映射,如下圖所示。
在圖中,有3個(gè)隱層節(jié)點(diǎn),他們屬于同一個(gè)特征映射。同種顏色的鏈接的權(quán)值是相同的,這里仍然可以使用梯度下降的方法來(lái)學(xué)習(xí)這些權(quán)值,只需要對(duì)原始算法做一些小的改動(dòng),共享權(quán)值的梯度是所有共享參數(shù)的梯度的總和。
2.2.3 子抽樣層
子抽樣層通過(guò)局部感知實(shí)現(xiàn)。一般認(rèn)為人對(duì)外界的認(rèn)知是從局部到全局的,而圖像的空間聯(lián)系也是局部的像素聯(lián)系較為緊密,而距離較遠(yuǎn)的像素相關(guān)性則較弱。因而,每個(gè)神經(jīng)元其實(shí)沒(méi)有必要對(duì)全局圖像進(jìn)行感知,只需要對(duì)局部進(jìn)行感知,然后在更高層將局部的信息綜合起來(lái)就得到了全局的信息。如下圖所示:左圖為全連接,右圖為局部連接。
3.LR
線(xiàn)性回歸模型,一般表達(dá)為h_θ (x)= θ^T X 形式,輸出域是整個(gè)實(shí)數(shù)域,可以用來(lái)進(jìn)行二分類(lèi)任務(wù),但實(shí)際應(yīng)用中對(duì)二分類(lèi)問(wèn)題人們一般都希望獲的一個(gè)[0,1]范圍的概率值,比如生病的概率是0.9或者0.1,sigmoid函數(shù)g(z)可以滿(mǎn)足這一需求,將線(xiàn)性回歸的輸出轉(zhuǎn)換到[0,1]。
利用g(z),可以獲取樣本x屬于類(lèi)別1和類(lèi)別0的概率p(y = 1 |x,θ),p(y = 0|x,θ),變成邏輯回歸的形式:
取分類(lèi)閾值為0.5,相應(yīng)的決策函數(shù)為:
取不同的分類(lèi)閾值可以得到不同的分類(lèi)結(jié)果,如果對(duì)正例的判別準(zhǔn)確性要求高,可以選擇閾值大一些,比如 0.6,對(duì)正例的召回要求高,則可以選擇閾值小一些,比如0.3。
轉(zhuǎn)換后的分類(lèi)面(decision boundary)與原來(lái)的線(xiàn)性回歸是等價(jià)的
3.1 參數(shù)求解
模型的數(shù)學(xué)形式確定后,剩下就是如何去求解模型中的參數(shù)。統(tǒng)計(jì)學(xué)中常用的一種方法是最大似然估計(jì),即找到一組參數(shù),使得在這組參數(shù)下,我們的數(shù)據(jù)的似然值(概率)越大。在邏輯回歸模型中,似然值可表示為:
取對(duì)數(shù)可以得到對(duì)數(shù)似然值:
另一方面,在機(jī)器學(xué)習(xí)領(lǐng)域,我們更經(jīng)常遇到的是損失函數(shù)的概念,其衡量的是模型預(yù)測(cè)的誤差,值越小說(shuō)明模型預(yù)測(cè)越好。常用的損失函數(shù)有0-1損失,log損失,hinge損失等。其中l(wèi)og損失在單個(gè)樣本點(diǎn)的定義為:
定義整個(gè)數(shù)據(jù)集上的平均log損失,我們可以得到:
即在邏輯回歸模型中,最大化似然函數(shù)和最小化log損失函數(shù)實(shí)際上是等價(jià)的。對(duì)于該優(yōu)化問(wèn)題,存在多種求解方法,這里以梯度下降的為例說(shuō)明。梯度下降(Gradient Descent)又叫最速梯度下降,是一種迭代求解的方法,通過(guò)在每一步選取使目標(biāo)函數(shù)變化最快的一個(gè)方向調(diào)整參數(shù)的值來(lái)逼近最優(yōu)值。基本步驟如下:
選擇下降方向(梯度方向,?)
選擇步長(zhǎng),更新參數(shù)
重復(fù)以上兩步直到滿(mǎn)足終止條件。
3.2 分類(lèi)邊界
知道如何求解參數(shù)后,我們來(lái)看一下模型得到的最后結(jié)果是什么樣的。很容易可以從sigmoid函數(shù)看出,取0.5作為分類(lèi)閾值,當(dāng)??時(shí),y=1,否則 y=0。?是模型隱含的分類(lèi)平面(在高維空間中,一般叫做超平面)。所以說(shuō)邏輯回歸本質(zhì)上是一個(gè)線(xiàn)性模型,但這不意味著只有線(xiàn)性可分的數(shù)據(jù)能通過(guò)LR求解,實(shí)際上,可以通過(guò)特征變換的方式把低維空間轉(zhuǎn)換到高維空間,而在低維空間不可分的數(shù)據(jù),到高維空間中線(xiàn)性可分的幾率會(huì)高一些。下面兩個(gè)圖的對(duì)比說(shuō)明了線(xiàn)性分類(lèi)曲線(xiàn)和非線(xiàn)性分類(lèi)曲線(xiàn)(通過(guò)特征映射)。
左圖是一個(gè)線(xiàn)性可分的數(shù)據(jù)集,右圖在原始空間中線(xiàn)性不可分,但是在特征轉(zhuǎn)換 [x1,x2]=>[x1,x2,x21,x22,x1x2] 后的空間是線(xiàn)性可分的,對(duì)應(yīng)的原始空間中分類(lèi)邊界為一條類(lèi)橢圓曲線(xiàn)
3.3 Word2Vec
Word2Vec有兩種網(wǎng)絡(luò)模型,分別為CBOW模型(Continuous Bag-of-Words Model)和Sikp-gram模型(Continuous Skip-gram Model)。
兩個(gè)模型都包含三層:輸入層、投影層和輸出層。其中,CBOW模型是在已知當(dāng)前詞w(t)的上下文w(t-2)、w(t-1)、w(t+1)、w(t+2)的情況下來(lái)預(yù)測(cè)詞w(t),Skip-gram模型則恰恰相反,它是在已知當(dāng)前詞w(t)的情況下來(lái)預(yù)測(cè)當(dāng)前詞的上下文w(t-2)、w(t-1)、w(t+1)、w(t+2)。例如,“今天/天氣/好/晴朗”,而當(dāng)前詞為“天氣”。CBOW模型是預(yù)測(cè)“今天”、“好”、“晴朗”之間出現(xiàn)“天氣”的概率,而Skip-gram模型是預(yù)測(cè)“天氣”的周?chē)霈F(xiàn)“今天”、“好”、“晴朗”三個(gè)詞的概率。
CBOW模型通過(guò)優(yōu)化如下的目標(biāo)函數(shù)來(lái)求解,目標(biāo)函數(shù)為一個(gè)對(duì)數(shù)似然函數(shù)。
CBOW的輸入為包含Context(w)中2c個(gè)詞的詞向量v(w),這2c個(gè)詞向量在投影層累加得到輸出層的輸出記為X_w。輸出層采用了Hierarchical Softmax的技術(shù),組織成一棵根據(jù)訓(xùn)練樣本集的所有詞的詞頻構(gòu)建的Huffman樹(shù),實(shí)際的詞為Huffman樹(shù)的葉子節(jié)點(diǎn)。通過(guò)長(zhǎng)度為??的路徑??可以找到詞w,路徑可以表示成由0和1組成的串,記為?。Huffman數(shù)的每個(gè)中間節(jié)點(diǎn)都類(lèi)似于一個(gè)邏輯回歸的判別式,每個(gè)中間節(jié)點(diǎn)的參數(shù)記為??。那么,對(duì)于CBOW模型來(lái)說(shuō),有:
那么,目標(biāo)函數(shù)為:
那么通過(guò)隨機(jī)梯度下降法更新目標(biāo)函數(shù)的參數(shù)θ和X,使得目標(biāo)函數(shù)的值最大即可。
與CBOW模型類(lèi)似,Skip-gram通過(guò)優(yōu)化如下的目標(biāo)函數(shù)來(lái)求解。
其中:
那么,Skip-gram的目標(biāo)函數(shù)為:
通過(guò)隨機(jī)梯度下降法更新目標(biāo)函數(shù)的參數(shù)θ和v(w),使得目標(biāo)函數(shù)的值最大即可。
轉(zhuǎn)載于:https://www.cnblogs.com/webary/p/5063452.html
總結(jié)
以上是生活随笔為你收集整理的机器学习常用算法(LDA,CNN,LR)原理简述的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ylbtech-Unitity-CS:H
- 下一篇: c++笔试题两道,求解当中一道