99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀機器學習常用算法(LDA,CNN,LR)原理簡述
機器學習常用算法(LDA,CNN,LR)原理簡述
2017-03-14
收藏

機器學習常用算法(LDA,CNN,LR)原理簡述

1.LDA

LDA是一種三層貝葉斯模型,三層分別為:文檔層、主題層和詞層。該模型基于如下假設(shè):
1)整個文檔集合中存在k個互相獨立的主題;
2)每一個主題是詞上的多項分布;
3)每一個文檔由k個主題隨機混合組成;
4)每一個文檔是k個主題上的多項分布;
5)每一個文檔的主題概率分布的先驗分布是Dirichlet分布;
6)每一個主題中詞的概率分布的先驗分布是Dirichlet分布。
文檔的生成過程如下:
1)對于文檔集合M,從參數(shù)為β的Dirichlet分布中采樣topic生成word的分布參數(shù)φ;
2)對于每個M中的文檔m,從參數(shù)為α的Dirichlet分布中采樣doc對topic的分布參數(shù)θ;
3)對于文檔m中的第n個詞語W_mn,先按照θ分布采樣文檔m的一個隱含的主題Z_m,再按照φ分布采樣主題Z_m的一個詞語W_mn。

因此整個模型的聯(lián)合分布,如下:

對聯(lián)合分布求積分,去掉部分隱變量后:

用間接計算轉(zhuǎn)移概率可以消除中間參數(shù)θ和φ,所以主題的轉(zhuǎn)移概率化為:

這樣我們就可以通過吉布斯采樣來進行每輪的迭代,迭代過程即:首先產(chǎn)生于一個均勻分布的隨機數(shù),然后根據(jù)上式計算每個轉(zhuǎn)移主題的概率,通過累積概率判斷隨機數(shù)落在哪個new topic下,更新參數(shù)矩陣,如此迭代直至收斂。

2.CNN

2.1 多層感知器基礎(chǔ)

單個感知器的結(jié)構(gòu)示例如下:

其中函數(shù)f為激活函數(shù),一般用sigmoid函數(shù)。
將多個單元組合起來并具有分層結(jié)構(gòu)時,就形成了多層感知器模型(神經(jīng)網(wǎng)絡(luò))。下圖是一個具有一個隱含層(3個節(jié)點)和一個單節(jié)點輸出層的神經(jīng)網(wǎng)絡(luò)

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

2.2.1 結(jié)構(gòu)特征

圖像處理中,往往把圖像表示為像素的向量,比如一個1000×1000的圖像,可以表示為一個〖10〗^6的向量。在上述的神經(jīng)網(wǎng)絡(luò)中,如果隱含層數(shù)目與輸入層一樣,即也是〖10〗^6時,那么輸入層到隱含層的參數(shù)數(shù)據(jù)為〖10〗^12,這樣就太多了,基本沒法訓練。因此需要減少網(wǎng)絡(luò)的參數(shù)。
卷積網(wǎng)絡(luò)就是為識別二維形狀而特殊設(shè)計的一個多層感知器,這種網(wǎng)絡(luò)結(jié)構(gòu)對平移、比例縮放、傾斜或者共他形式的變形具有高度不變性。這些良好的性能是網(wǎng)絡(luò)在有監(jiān)督方式下學會的,網(wǎng)絡(luò)的結(jié)構(gòu)主要有稀疏連接和權(quán)值共享兩個特點,包括如下形式的約束:
1)特征提取。每一個神經(jīng)元從上一層的局部接受域得到輸入,因而迫使它提取局部特征。一旦一個特征被提取出來,只要它相對于其他特征的位置被近似地保留下來,它的精確位置就變得沒有那么重要了。
2)特征映射。網(wǎng)絡(luò)的每一個計算層都是由多個特征映射組成的,每個特征映射都是平面形式的,平面中單獨的神經(jīng)元在約束下共享相同的權(quán)值集。
3)子抽樣。每個卷積層后面跟著一個實現(xiàn)局部平均和子抽樣的計算層,由此特征映射的分辨率降低。這種操作具有使特征映射的輸出對平移和其他形式的變形的敏感度下降的作用。
在一個卷積網(wǎng)絡(luò)的所有層中的所有權(quán)值都是通過有監(jiān)督訓練來學習的,此外,網(wǎng)絡(luò)還能自動的在學習過程中提取特征
一個卷積神經(jīng)網(wǎng)絡(luò)一般是由卷積層和子抽樣層交替組成。下圖是一個例子:

輸入的圖片經(jīng)過卷積層,子抽樣層,卷積層,子抽樣層之后,再由一個全連接成得到輸出。

2.2.2 卷積層

卷積層是通過權(quán)值共享實現(xiàn)的。共享權(quán)值的單元構(gòu)成一個特征映射,如下圖所示。

在圖中,有3個隱層節(jié)點,他們屬于同一個特征映射。同種顏色的鏈接的權(quán)值是相同的,這里仍然可以使用梯度下降的方法來學習這些權(quán)值,只需要對原始算法做一些小的改動,共享權(quán)值的梯度是所有共享參數(shù)的梯度的總和。

2.2.3 子抽樣層

子抽樣層通過局部感知實現(xiàn)。一般認為人對外界的認知是從局部到全局的,而圖像的空間聯(lián)系也是局部的像素聯(lián)系較為緊密,而距離較遠的像素相關(guān)性則較弱。因而,每個神經(jīng)元其實沒有必要對全局圖像進行感知,只需要對局部進行感知,然后在更高層將局部的信息綜合起來就得到了全局的信息。如下圖所示:左圖為全連接,右圖為局部連接。

3.LR

線性回歸模型,一般表達為h_θ (x)= θ^T X 形式,輸出域是整個實數(shù)域,可以用來進行二分類任務,但實際應用中對二分類問題人們一般都希望獲的一個[0,1]范圍的概率值,比如生病的概率是0.9或者0.1,sigmoid函數(shù)g(z)可以滿足這一需求,將線性回歸的輸出轉(zhuǎn)換到[0,1]。

利用g(z),可以獲取樣本x屬于類別1和類別0的概率p(y = 1 |x,θ),p(y = 0|x,θ),變成邏輯回歸的形式:

取分類閾值為0.5,相應的決策函數(shù)為:

取不同的分類閾值可以得到不同的分類結(jié)果,如果對正例的判別準確性要求高,可以選擇閾值大一些,比如 0.6,對正例的召回要求高,則可以選擇閾值小一些,比如0.3。
轉(zhuǎn)換后的分類面(decision boundary)與原來的線性回歸是等價的

3.1 參數(shù)求解

模型的數(shù)學形式確定后,剩下就是如何去求解模型中的參數(shù)。統(tǒng)計學中常用的一種方法是最大似然估計,即找到一組參數(shù),使得在這組參數(shù)下,我們的數(shù)據(jù)的似然值(概率)越大。在邏輯回歸模型中,似然值可表示為:

取對數(shù)可以得到對數(shù)似然值:

另一方面,在機器學習領(lǐng)域,我們更經(jīng)常遇到的是損失函數(shù)的概念,其衡量的是模型預測的誤差,值越小說明模型預測越好。常用的損失函數(shù)有0-1損失,log損失,hinge損失等。其中l(wèi)og損失在單個樣本點的定義為:

定義整個數(shù)據(jù)集上的平均log損失,我們可以得到:

即在邏輯回歸模型中,最大化似然函數(shù)和最小化log損失函數(shù)實際上是等價的。對于該優(yōu)化問題,存在多種求解方法,這里以梯度下降的為例說明。梯度下降(Gradient Descent)又叫最速梯度下降,是一種迭代求解的方法,通過在每一步選取使目標函數(shù)變化最快的一個方向調(diào)整參數(shù)的值來逼近最優(yōu)值?;静襟E如下:
選擇下降方向(梯度方向,
選擇步長,更新參數(shù)
重復以上兩步直到滿足終止條件。

3.2 分類邊界

知道如何求解參數(shù)后,我們來看一下模型得到的最后結(jié)果是什么樣的。很容易可以從sigmoid函數(shù)看出,取0.5作為分類閾值,當  時,y=1,否則 y=0。 是模型隱含的分類平面(在高維空間中,一般叫做超平面)。所以說邏輯回歸本質(zhì)上是一個線性模型,但這不意味著只有線性可分的數(shù)據(jù)能通過LR求解,實際上,可以通過特征變換的方式把低維空間轉(zhuǎn)換到高維空間,而在低維空間不可分的數(shù)據(jù),到高維空間中線性可分的幾率會高一些。下面兩個圖的對比說明了線性分類曲線和非線性分類曲線(通過特征映射)。

左圖是一個線性可分的數(shù)據(jù)集,右圖在原始空間中線性不可分,但是在特征轉(zhuǎn)換 [x1,x2]=>[x1,x2,x21,x22,x1x2] 后的空間是線性可分的,對應的原始空間中分類邊界為一條類橢圓曲線

3.3 Word2Vec

Word2Vec有兩種網(wǎng)絡(luò)模型,分別為CBOW模型(Continuous Bag-of-Words Model)和Sikp-gram模型(Continuous Skip-gram Model)。

兩個模型都包含三層:輸入層、投影層和輸出層。其中,CBOW模型是在已知當前詞w(t)的上下文w(t-2)、w(t-1)、w(t+1)、w(t+2)的情況下來預測詞w(t),Skip-gram模型則恰恰相反,它是在已知當前詞w(t)的情況下來預測當前詞的上下文w(t-2)、w(t-1)、w(t+1)、w(t+2)。例如,“今天/天氣/好/晴朗”,而當前詞為“天氣”。CBOW模型是預測“今天”、“好”、“晴朗”之間出現(xiàn)“天氣”的概率,而Skip-gram模型是預測“天氣”的周圍出現(xiàn)“今天”、“好”、“晴朗”三個詞的概率。
CBOW模型通過優(yōu)化如下的目標函數(shù)來求解,目標函數(shù)為一個對數(shù)似然函數(shù)。

CBOW的輸入為包含Context(w)中2c個詞的詞向量v(w),這2c個詞向量在投影層累加得到輸出層的輸出記為X_w。輸出層采用了Hierarchical Softmax的技術(shù),組織成一棵根據(jù)訓練樣本集的所有詞的詞頻構(gòu)建的Huffman樹,實際的詞為Huffman樹的葉子節(jié)點。通過長度為 的路徑  可以找到詞w,路徑可以表示成由0和1組成的串,記為。Huffman數(shù)的每個中間節(jié)點都類似于一個邏輯回歸的判別式,每個中間節(jié)點的參數(shù)記為 。那么,對于CBOW模型來說,有:
那么,目標函數(shù)為:

那么通過隨機梯度下降法更新目標函數(shù)的參數(shù)θ和X,使得目標函數(shù)的值最大即可。
與CBOW模型類似,Skip-gram通過優(yōu)化如下的目標函數(shù)來求解。

其中:

那么,Skip-gram的目標函數(shù)為:

通過隨機梯度下降法更新目標函數(shù)的參數(shù)θ和v(w),使得目標函數(shù)的值最大即可。

數(shù)據(jù)分析咨詢請掃描二維碼

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

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }