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

熱線電話:13121318867

登錄
首頁精彩閱讀機器學(xué)習(xí)之徑向基神經(jīng)網(wǎng)絡(luò)
機器學(xué)習(xí)之徑向基神經(jīng)網(wǎng)絡(luò)
2017-07-25
收藏

機器學(xué)習(xí)之徑向基神經(jīng)網(wǎng)絡(luò)

本文基于臺大機器學(xué)習(xí)技法系列課程進行的筆記總結(jié)。

主要內(nèi)容如下圖所示:

首先介紹一下徑向基函數(shù)網(wǎng)絡(luò)的Hypothesis和網(wǎng)絡(luò)的結(jié)構(gòu),然后介紹徑向基神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法,以及利用K-means進行的學(xué)習(xí),最后通過一個實例加深對RBF神經(jīng)網(wǎng)絡(luò)認識和理解。

RBF神經(jīng)網(wǎng)絡(luò)的Hypothesis和網(wǎng)絡(luò)結(jié)構(gòu)

我們從基于Gaussian kernel的support vector machine中在無限維度中進行特征轉(zhuǎn)換來獲取一個large margin的邊界,這個Gaussian kernel就是一個Radio Basis Function Kernel。其意義呢有兩個:一是radio,代表的是x和中心點xm之間的距離,可以是任意衡量距離的某種范數(shù),比如L2范數(shù)等;二是Basis,表示要進行聯(lián)合(combine);于是就可以得到了以下關(guān)于RBF神經(jīng)網(wǎng)絡(luò)的更加質(zhì)樸的定義:如下圖所示,RBF神經(jīng)網(wǎng)絡(luò)實際上就是一些選擇出來的radial徑向hypothesis的線性組合。

那么為何是神經(jīng)網(wǎng)絡(luò)呢?我們看如下圖所示的結(jié)構(gòu)對比,從中可以看出兩者的隱含層(hidden layer)不同,即RBF神經(jīng)網(wǎng)絡(luò)采用的激發(fā)函數(shù)或者映射是徑向基函數(shù)(距離+高斯)等,而輸出層都一樣,是特征轉(zhuǎn)換后的線性融合。

這樣就得到了RBF的神經(jīng)網(wǎng)絡(luò)的Hypothesis,如下圖所示,如果還記得kernel svm的hypothesis的話(representation theory),我們得到的SVM的Hypothesis實際上就是support vector的線性組合,即影響我們最后得到的hypothesis只是與這些“代表”的點有關(guān)。類似的,RBF也是如此,我們需要找到一些能夠代表數(shù)據(jù)的中心點( center )。所以我們在進行訓(xùn)練學(xué)習(xí)的時候要做的就是:給定的徑向基函數(shù)(RBF)和輸出,然后決定這些center和線性組合的系數(shù)β。另外一個值得提出的就是從另一個角度來看徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)與其他前饋神經(jīng)網(wǎng)絡(luò)的關(guān)系,可以參考我的另一篇博文中的總結(jié):神經(jīng)網(wǎng)絡(luò)總結(jié)(初稿),關(guān)鍵點就是從BP神經(jīng)網(wǎng)絡(luò)到徑向基函數(shù)神經(jīng)網(wǎng)絡(luò),一個明顯的特征就是我們不用在對所有全局的鏈接權(quán)重進行訓(xùn)練,而是只對一些重要的影響輸出的權(quán)重進行調(diào)整,這樣就能明顯提升神經(jīng)網(wǎng)絡(luò)的訓(xùn)練速度。

另一個重要的內(nèi)容就是Gaussian的徑向基函數(shù)實際上做的就是一種相似度的測量,而且是在原始空間的相似度測量。而特征轉(zhuǎn)換就是距離與中心點的相似度的轉(zhuǎn)換。

Full RBF神經(jīng)網(wǎng)絡(luò)

full RBF神經(jīng)網(wǎng)絡(luò)實際上就是一個非常lazy的RBF神經(jīng)網(wǎng)絡(luò)。之所以lazy講的它根本不做center,也就是它把所有觀測到的數(shù)據(jù)都作為center,也就是輸入size為N,那么center的size也是N。即一種uniform的形式,融合每一個輸入數(shù)據(jù)到所有訓(xùn)練樣本點的相似度。如下圖所示:

最近鄰模型(Nearest neighbor)

思想就是我們對所有經(jīng)過hypothesis得到的輸出進行投票(vote,aggregation),而是選擇在相似度上與已知樣本點最近的那個點的標(biāo)簽作為輸出。這就是典型的最近鄰模型。所以這樣看上去訓(xùn)練就比較簡單了,實際上只用把觀測到的數(shù)據(jù)保存下來就好,但測試過程則比較復(fù)雜,因為要對所有的已知標(biāo)簽的樣本點進行相似度的計算,然后選出最近鄰的那個,并輸出該樣本的標(biāo)簽。稍微拓展一下,我們還是可以做融合的,我們選出最相似的k個鄰居,然后由著k個鄰居進行投票,或者線性融合,然后再輸出,這樣的模型就叫做k最近鄰模型。

Regularization

那如果利用full RBF神經(jīng)網(wǎng)絡(luò)進行regression呢情況又變成怎樣呢,如下圖所示:

從中可以看出,經(jīng)過以上設(shè)計進行訓(xùn)練我們將得到Ein=0,這在內(nèi)插法逼近函數(shù)的時候是非常好的,可是我們知道這樣好的Ein往往有可能出現(xiàn)overfitting,所以需要進行regularization的設(shè)計。常見的方法就是加約束項或懲罰函數(shù)。在不同的空間做regularization有著不同的結(jié)果。另一中regularization的方法就是限制center的數(shù)量,我們用few center進行,而不是full,這樣就能在一定程度上降低模型復(fù)雜度。那么如何從一堆X中萃取中心點呢?萃取的標(biāo)準(zhǔn)又是什么呢?

于是問題就轉(zhuǎn)向了聚類問題cluster problem。

聚類問題cluster problem(K-means)

聚類問題的數(shù)學(xué)描述如下圖所示,通過優(yōu)化聚類誤差(采用了平方誤差)進行。

于是就引出了非常著名的K-means聚類算法,具體內(nèi)容參看我的另一篇博客K-means算法

把K-means 應(yīng)用到RBF神經(jīng)網(wǎng)絡(luò)

那么將K-means方法用到RBF神經(jīng)網(wǎng)絡(luò)中,就可以得到以下的流程

下面幾個就是利用k-means算法流程進行的實驗結(jié)果

對比了采用regularization的full RBF、采用了few center(K-means)的RBF以及基于nearest neighbor的Full RBF實驗效果圖,從圖中可以看出,雖然full RBF效果可能要比k-means的效果要好,可是一般來講由于計算復(fù)雜度和overfitting的風(fēng)險等原因一般不常常使用。

*************************************************************************************************************************************

對于徑向基函數(shù)神經(jīng)網(wǎng)絡(luò),只要抓住它的hypothesis的質(zhì)樸表示:一堆center的相似度(Gaussian RBF)的線性融合(vote,linear aggregation)就好了。完成的特征轉(zhuǎn)換就是距離到相似度。輸出就是相似度的線性組合。

然后中間涉及到的三個比較重要的內(nèi)容就是:1. 最近鄰思想;2. K-means算法;3. alternating optimization的思想。能夠掌握上面三個重要內(nèi)容就非常好了。


數(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)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 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); }