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

熱線電話:13121318867

登錄
首頁精彩閱讀深度學習算法的幾個難點_數(shù)據(jù)分析師培訓
深度學習算法的幾個難點_數(shù)據(jù)分析師培訓
2015-03-07
收藏

深度學習算法的幾個難點_數(shù)據(jù)分析師培訓


1、局部最優(yōu)問題。

深度學習算法的目標函數(shù),幾乎全都是非凸的。而目前尋找最優(yōu)解的方法,都是基于梯度下降的。稍微有點背景知識的人都知道,梯度下降方法是解決不了非凸問題的。因此,如果找到最優(yōu)解,將是深度學習領(lǐng)域,非常值得研究的課題。

andrew在google的工作,也就是那只貓,其實訓練過程是讓人很費解的。為了縮短訓練時間,項目組采用了分布式訓練的方式。采用了1000臺計算機,在不同的計算機上存儲不同的訓練數(shù)據(jù),不同的訓練服務(wù)器通過參數(shù)服務(wù)器進行參數(shù)的交換。{CDA數(shù)據(jù)分析師培訓}訓練過程開始后,所有的訓練計算機從參數(shù)服務(wù)器更新當前參數(shù),然后利用當前參數(shù)以及本機器上的訓練數(shù)據(jù),計算得到當前的梯度,通過貪婪式方法,訓練到不能再訓練為止,然后將參數(shù)的更新量提交給服務(wù)器,再獲取新的參數(shù)進行更新。

在這個過程中,出現(xiàn)了不同機器在同步時間上的一個大問題。具體闡述如下:梯度下降這種方法,在計算梯度的時候,一定要知道當前參數(shù)的具體值,梯度是針對某一個具體的參數(shù)值才有意義的。但是,由于在這個系統(tǒng)中,計算機非常多,當計算機A從服務(wù)器上獲得參數(shù)值后,完成梯度的計算得到步進量的時候,可能在它提交結(jié)果之前,計算機B已經(jīng)修改了參數(shù)服務(wù)器上的參數(shù)了。也就是說,A所得到的步進量,并不是針對當前的參數(shù)值的。

論文中,作者注意到了這個問題,但是故意不去理會,結(jié)果訓練結(jié)果居然不錯。作者的解釋是:這是一種歪打正著的現(xiàn)象。

為什么能夠歪打正著呢?有可能是這樣的:非凸問題,本來就不是梯度下降法能夠解決的。如果不存在同步難題,那么隨著訓練的深入,結(jié)果肯定會收斂到某一個局部最優(yōu)解上面去。而現(xiàn)在這種同步問題,恰好能夠有助于跳出局部最優(yōu)解。因此最終的訓練結(jié)果還算不錯。

作者并沒有證明,這種方式,對于尋找全局最優(yōu)一定是有幫助的。對于最終的結(jié)果是否一定是經(jīng)驗最優(yōu)的,也沒有證明。因此我感覺,深度學習里面,這種超高維參數(shù)的最優(yōu)結(jié)果的尋優(yōu),是一個很值得深入研究的問題。它對于最終的效果也確實影響很大。

2、內(nèi)存消耗巨大,計算復雜。

內(nèi)存消耗巨大和計算復雜體現(xiàn)在兩個方面。(1)訓練過程。(2)檢測過程。

這兩個過程的計算復雜,根本原因都是龐大的參數(shù)規(guī)模造成的。比如google的這個項目,每一個位置都用到了8個模版,每一個像素,這8個模版都是不同的,因此導致最后的模版總數(shù)很大,所以訓練和檢測都很慢。當然,這種模版的設(shè)計法,讓人不好理解,為什么不同的像素位置,模版完全不同。我還是支持以前的卷積神經(jīng)網(wǎng)絡(luò)里面的思想,不同位置的模版都是一樣的,但沒一個位置,模版數(shù)量就遠不止8個了。這樣的好處是,內(nèi)存空間中,總的模板數(shù)下降了;但缺點是,計算更復雜了。

因此,如果能夠找到一個好的方法,能夠有效的較低計算復雜度,將是很有意義的。(比如某個鄰域內(nèi)如果方差極小,其實根本就沒必要計算了,直接賦0.)

3、人腦機理還有很多沒用上。

深度學習模擬的是人腦的其中一個很小的方面,就是:深度結(jié)構(gòu),以及稀疏性。

但事實上,人腦是相當復雜滴。關(guān)于視覺注意機制、多分辨率特性、聯(lián)想、心理暗示等功能,目前根本就沒有太多的模擬。所以神經(jīng)解剖學對于人工智能的影響應(yīng)該是蠻大的。將來要想掀起機器智能的另一個研究高潮,估計還得繼續(xù)借鑒神經(jīng)解剖學。

4、人為設(shè)計模版的可行性。

一直在想,為什么第一層用于檢測角點和邊緣這種簡單特征的模版,一定需要通過無監(jiān)督訓練得到,如果人為實現(xiàn)模擬的話,能否也得到較為理想的結(jié)果呢?

從神經(jīng)解剖學的成果上來看,人腦的v1區(qū)和v2區(qū),神經(jīng)細胞確實是按照規(guī)律排列的。而且都是可以人為設(shè)計的。而且,一個讓人懷疑的地方就是,v1區(qū)和v2區(qū)的神經(jīng)細胞,是先天發(fā)育好的,還是后天訓練出來的?如果是先天的,那就是說,這種模版是可以人為設(shè)計的。

5、代價函數(shù)的設(shè)計方法。

代價函數(shù)的設(shè)計,在初學者看來,是很奇怪的。代價函數(shù)的設(shè)計,直接影響到最終的模版訓練結(jié)果,可以說是深度學習中最核心的模塊。

從目前已經(jīng)發(fā)表的論文來看,一是考慮重構(gòu)誤差,二是加入某種懲罰項。懲罰項的設(shè)計有多種模式,有考慮一階范式的,有考慮二階范式的,各種設(shè)計可謂千奇百怪。有博文上講到,懲罰項的作用是為了防止過擬合,但也有博文的觀點是,懲罰項是為了保證稀疏性。(感覺過擬合與稀疏性是否存在某種內(nèi)在聯(lián)系。)

當然,代價函數(shù)的設(shè)計方法,目前還在不斷探索,感覺這是一個可以發(fā)論文的點。

6、整個神經(jīng)網(wǎng)絡(luò)系統(tǒng)的設(shè)計。

神經(jīng)網(wǎng)絡(luò)的設(shè)計方法,包含了研究人員對人腦的理解方式。CNN、RBM,以及andrew項目組設(shè)計的變態(tài)網(wǎng)絡(luò),都各有各的特色。要把整個網(wǎng)絡(luò)框架設(shè)計好,還是比較需要經(jīng)驗的,也是相當費腦力的。當然,這是整個領(lǐng)域最有研究價值的模塊。

數(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); }