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

熱線電話:13121318867

登錄
首頁(yè)精彩閱讀一文讀懂深度學(xué)習(xí)(附學(xué)習(xí)資源)
一文讀懂深度學(xué)習(xí)(附學(xué)習(xí)資源)
2017-11-14
收藏

一文讀懂深度學(xué)習(xí)(附學(xué)習(xí)資源)

Medium上獲得超過(guò)一萬(wàn)五千贊的深度學(xué)習(xí)入門(mén)指南,結(jié)合圖文為你縷清深度學(xué)習(xí)中的各個(gè)基礎(chǔ)概念的內(nèi)涵。

Image credit: Datanami


人工智能(AI)

(https://en.wikipedia.org/wiki/Artificial_intelligence)

機(jī)器學(xué)習(xí)(ML)

(https://en.wikipedia.org/wiki/Machine_learning)

都屬于目前最熱門(mén)的話題。


在日常生活中,AI這個(gè)術(shù)語(yǔ)我們隨處可見(jiàn)。你或許會(huì)從立志高遠(yuǎn)的開(kāi)發(fā)者哪那里聽(tīng)說(shuō)她(他)們想要學(xué)習(xí)AI。你又或許會(huì)從運(yùn)營(yíng)者那里聽(tīng)到他們想要在他們的的服務(wù)中實(shí)施AI。但往往這些人中的絕大多數(shù)都并不明白什么是AI。


在你閱讀完這篇文章之后,你將會(huì)了解AI和ML的基本知識(shí)。而更重要的是,你將會(huì)明白深度學(xué)習(xí)(https://en.wikipedia.org/wiki/Deep_learning),這類(lèi)最熱門(mén)的機(jī)器學(xué)習(xí),是如何運(yùn)作的。


這篇教程適用于所有人,所以本文并沒(méi)有涉及高級(jí)數(shù)學(xué)。


背景


理解深度學(xué)習(xí)如何工作的第一步是掌握下列重要術(shù)語(yǔ)之間的區(qū)別。

人工智能(AI)v.s.機(jī)器學(xué)習(xí)(ML)


人工智能是人類(lèi)智能在計(jì)算機(jī)上的復(fù)制。


AI的研究之初,那時(shí)的研究人員嘗試著復(fù)制人類(lèi)智能來(lái)完成像玩游戲這樣特定的任務(wù)。

他們引入了大量的計(jì)算機(jī)需要遵守的規(guī)則。有了這些規(guī)則,計(jì)算機(jī)就有了一份包含各種可能行動(dòng)的清單,并基于這些規(guī)則作出決定(https://en.wikipedia.org/wiki/Expert_system)。


機(jī)器學(xué)習(xí),指的是機(jī)器使用大量數(shù)據(jù)集而非硬編碼規(guī)則來(lái)進(jìn)行學(xué)習(xí)的能力。


ML允許計(jì)算機(jī)通過(guò)自身來(lái)學(xué)習(xí)。這種學(xué)習(xí)方法得益于現(xiàn)代計(jì)算機(jī)的強(qiáng)大性能,性能保證了計(jì)算機(jī)能夠輕松處理樣本數(shù)巨大的數(shù)據(jù)集。

監(jiān)督學(xué)習(xí) v.s. 非監(jiān)督學(xué)習(xí)


監(jiān)督學(xué)習(xí)

(https://en.wikipedia.org/wiki/Supervised_learning)

指的是利用已標(biāo)注數(shù)據(jù)集進(jìn)行的學(xué)習(xí),該數(shù)據(jù)中包含輸入和期望輸出。


當(dāng)你利用監(jiān)督學(xué)習(xí)來(lái)訓(xùn)練AI時(shí),你提供給它一份輸入,并告訴它預(yù)期的輸出。


如果AI所生成的輸出是錯(cuò)誤的(譯者注:與期望輸出不同),它將重新調(diào)整計(jì)算(注:應(yīng)該是對(duì)公式的參數(shù)進(jìn)行重新計(jì)算)。這個(gè)過(guò)程將會(huì)在數(shù)據(jù)集上迭代運(yùn)行,直到AI不再犯錯(cuò)誤。


預(yù)測(cè)天氣的AI便是監(jiān)督學(xué)習(xí)的一個(gè)典型例子。它通過(guò)學(xué)習(xí)過(guò)往數(shù)據(jù)來(lái)預(yù)測(cè)未來(lái)天氣。該訓(xùn)練數(shù)據(jù)擁有輸入(氣壓,濕度,風(fēng)速)和輸出(溫度)。


非監(jiān)督學(xué)習(xí)

(https://en.wikipedia.org/wiki/Unsupervised_learning)

機(jī)器學(xué)習(xí)應(yīng)用沒(méi)有指定結(jié)構(gòu)的數(shù)據(jù)集來(lái)進(jìn)行學(xué)習(xí)的任務(wù)。


當(dāng)你應(yīng)用非監(jiān)督學(xué)習(xí)來(lái)訓(xùn)練AI時(shí),你可以讓AI對(duì)數(shù)據(jù)進(jìn)行邏輯分類(lèi)。


電商網(wǎng)站上的行為預(yù)測(cè)AI便是非監(jiān)督學(xué)習(xí)的一個(gè)例子。它無(wú)法通過(guò)擁有輸入和輸出的已標(biāo)注數(shù)據(jù)集來(lái)進(jìn)行學(xué)習(xí)。相反地,它在輸入數(shù)據(jù)上創(chuàng)建它自己的分類(lèi)。它將會(huì)告訴你哪一種用戶(hù)最可能購(gòu)買(mǎi)差異化的商品。


深度學(xué)習(xí)又是如何運(yùn)作的呢?


現(xiàn)在你已經(jīng)準(zhǔn)備好去理解什么是深度學(xué)習(xí),以及它是如何運(yùn)作的。


深度學(xué)習(xí)機(jī)器學(xué)習(xí)中的一種方法。在給予它一組輸入后,它使我們能夠訓(xùn)練AI來(lái)預(yù)測(cè)結(jié)果。監(jiān)督學(xué)習(xí)和非監(jiān)督學(xué)習(xí)都能夠用來(lái)訓(xùn)練AI。


我們將通過(guò)建立一個(gè)假設(shè)的機(jī)票價(jià)格預(yù)估系統(tǒng)來(lái)闡述深度學(xué)習(xí)是如何運(yùn)作的。我們將應(yīng)用監(jiān)督學(xué)習(xí)方法來(lái)訓(xùn)練它。


我們想要該機(jī)票價(jià)格預(yù)估系統(tǒng)基于下列輸入來(lái)進(jìn)行預(yù)測(cè)(為了簡(jiǎn)潔,我們除去了返程機(jī)票):

起飛機(jī)場(chǎng)

到達(dá)機(jī)場(chǎng)

起飛日期

航空公司


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


接下來(lái)我們將視角轉(zhuǎn)向我們的AI的大腦內(nèi)部。


和動(dòng)物一樣,我們預(yù)估系統(tǒng)AI的大腦中有神經(jīng)元。將它們用圓圈表示。這些神經(jīng)元在內(nèi)部都是相互連接的。


Image credit: CS231n

這些神經(jīng)元又被分為三種層次:

輸入層

隱藏層

輸出層


輸入層接收輸入數(shù)據(jù)。在本案例中,在輸入層中有4個(gè)神經(jīng)元:起飛機(jī)場(chǎng),到達(dá)機(jī)場(chǎng),起飛日期以及航空公司。輸入層將輸入傳遞給第一個(gè)隱藏層。


隱藏層針對(duì)我們的輸入進(jìn)行數(shù)學(xué)運(yùn)算。創(chuàng)建神經(jīng)網(wǎng)絡(luò)的一大難點(diǎn)便是決定隱藏層的層數(shù),以及每層中神經(jīng)元的個(gè)數(shù)。


深度學(xué)習(xí)中的“深度”所指的是擁有多于一層的隱藏層。


輸出層返回的是輸出數(shù)據(jù)。在本案例中,輸出層返回的是價(jià)格預(yù)測(cè)。

那么它到底是如何來(lái)運(yùn)算價(jià)格預(yù)測(cè)的呢?


這便是我們將要揭曉的深度學(xué)習(xí)的奇妙之處了。


每?jī)蓚€(gè)神經(jīng)元之間的連接,都對(duì)應(yīng)著一個(gè)權(quán)重。該權(quán)重決定了輸入值的重要程度。初始的權(quán)重會(huì)被隨機(jī)設(shè)定。


當(dāng)預(yù)測(cè)機(jī)票價(jià)格時(shí),起飛日期是決定價(jià)格的最重要的因素之一。因此,與起飛日期這個(gè)神經(jīng)元相連的連接將會(huì)有更高的權(quán)重。


Image credit: CodeProject


每個(gè)神經(jīng)元都有一個(gè)激活函數(shù)(https://en.wikipedia.org/wiki/Activation_function)。若沒(méi)有數(shù)學(xué)推導(dǎo),這些函數(shù)十分晦澀難懂。


簡(jiǎn)而言之,激活函數(shù)的作用之一便是將神經(jīng)元的結(jié)果“標(biāo)準(zhǔn)化”。


一旦一組輸入數(shù)據(jù)通過(guò)了神經(jīng)網(wǎng)絡(luò)的所有層,神經(jīng)網(wǎng)絡(luò)將會(huì)通過(guò)輸出層返回輸出數(shù)據(jù)。


一點(diǎn)也不復(fù)雜,是吧?


訓(xùn)練神經(jīng)網(wǎng)絡(luò)


訓(xùn)練A是深度學(xué)習(xí)中最難的部分了。這又是為什么呢?

你需要一個(gè)龐大的數(shù)據(jù)集

你還需要強(qiáng)大的算力


對(duì)于我們的機(jī)票價(jià)格預(yù)估系統(tǒng),我們需要得到過(guò)往的票價(jià)數(shù)據(jù)。由于起始機(jī)場(chǎng)和起飛時(shí)間擁有大量可能的組合,所以我們需要的是一個(gè)非常龐大的票價(jià)列表。


為了訓(xùn)練機(jī)票價(jià)格預(yù)估系統(tǒng)的AI,我們需要將數(shù)據(jù)集的數(shù)據(jù)給予該系統(tǒng),然后將它輸出的結(jié)果與數(shù)據(jù)集的輸出進(jìn)行比對(duì)。因?yàn)榇藭r(shí)AI仍然沒(méi)有受過(guò)訓(xùn)練,所以它的輸出將會(huì)是錯(cuò)誤的。


一旦我們遍歷完了整個(gè)數(shù)據(jù)集,我們便能創(chuàng)造出一個(gè)函數(shù),該函數(shù)告訴我們AI的輸出和真實(shí)輸出到底相差多少。這個(gè)函數(shù)我們稱(chēng)為損失函數(shù)。

在理想情況下,我們希望我們的損失函數(shù)為0,該理想情況指的是AI的輸出和數(shù)據(jù)集的輸出相等之時(shí)。 


如何減小損失函數(shù)呢?


改變神經(jīng)元之間的權(quán)重。我們可以隨機(jī)地改變這些權(quán)重直到損失函數(shù)足夠小,但是這種方法并不夠高效。


取而代之地,我們應(yīng)用一種叫做梯度下降(https://en.wikipedia.org/wiki/Gradient_descent)的技巧。


梯度下降是一種幫助我們找到函數(shù)最小值的技巧。在本案例中,我們尋找損失函數(shù)的最小值。


在每次數(shù)據(jù)集迭代之后,該方法以小增量的方式改變權(quán)重。通過(guò)計(jì)算損失函數(shù)在一組確定的權(quán)重集合上的導(dǎo)數(shù)(梯度),我們便能夠知悉最小值在哪個(gè)方向。


Image credit: Sebastian Raschka


為了最小化損失函數(shù),你需要多次迭代數(shù)據(jù)集。這便是需要高算力的原因了。

利用梯度下降更新權(quán)重的過(guò)程是自動(dòng)進(jìn)行的。這便是深度學(xué)習(xí)的魔力所在!


一旦我們訓(xùn)練好機(jī)票價(jià)格預(yù)估的AI之后,我們便能夠用它來(lái)預(yù)測(cè)未來(lái)的價(jià)格了。


拓展閱讀


神經(jīng)網(wǎng)絡(luò)有非常多的種類(lèi):用于計(jì)算機(jī)視覺(jué)(https://en.wikipedia.org/wiki/Computer_vision)的卷積神經(jīng)網(wǎng)絡(luò)(https://en.wikipedia.org/wiki/Convolutional_neural_network)以及應(yīng)用于自然語(yǔ)言處理(https://en.wikipedia.org/wiki/Natural_language_processing)的循環(huán)神經(jīng)網(wǎng)絡(luò)(https://en.wikipedia.org/wiki/Recurrent_neural_network)。


如果你想要學(xué)習(xí)深度學(xué)習(xí)的技術(shù)細(xì)節(jié),我建議你參加一個(gè)在線課程。


吳恩達(dá)(https://medium.com/@andrewng)的深度學(xué)習(xí)專(zhuān)項(xiàng)課程(https://www.coursera.org/specializations/deep-learning)是當(dāng)下最好的深度學(xué)習(xí)課程之一。如果你并不需要一個(gè)證書(shū),你便可以免費(fèi)旁聽(tīng)這門(mén)課程。


小結(jié)


1. 深度學(xué)習(xí)應(yīng)用神經(jīng)網(wǎng)絡(luò)來(lái)模仿動(dòng)物智能。

2. 神經(jīng)網(wǎng)絡(luò)中有三個(gè)層次的神經(jīng)元:輸入層、隱藏層以及輸出層。

3. 神經(jīng)元之間的連接對(duì)應(yīng)一個(gè)權(quán)重,該權(quán)重決定了各輸入數(shù)據(jù)的重要程度。

4. 神經(jīng)元中應(yīng)用一個(gè)激活函數(shù)來(lái)“標(biāo)準(zhǔn)化”神經(jīng)元輸出的數(shù)據(jù)。

5. 你需要一個(gè)龐大的數(shù)據(jù)集來(lái)訓(xùn)練神經(jīng)網(wǎng)絡(luò)

6. 在數(shù)據(jù)集上迭代并與輸出結(jié)果相比較,我們將會(huì)得到一個(gè)損失函數(shù),損失函數(shù)能告訴我們AI生成的結(jié)果和真實(shí)結(jié)果相差多少。

7. 在每次數(shù)據(jù)集的迭代之后,都會(huì)利用梯度下降方法調(diào)整神經(jīng)元之間的權(quán)重,以減小損失函數(shù)。


數(shù)據(jù)分析咨詢(xún)請(qǐng)掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

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

OK
客服在線
立即咨詢(xún)
客服在線
立即咨詢(xún)
') } 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(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶(hù)后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說(shuō)明請(qǐng)參見(jiàn):http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".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 = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+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); }