新手如何快速入門深度學(xué)習(xí)
深度學(xué)習(xí)必備基礎(chǔ)
深度學(xué)習(xí)發(fā)展至今已然有幾個(gè)年頭了,上個(gè)世紀(jì)九十年代的美國(guó)銀行率先使用深度學(xué)習(xí)技術(shù)做為手寫字體識(shí)別,但深度學(xué)習(xí)的驚艷登場(chǎng)并沒(méi)有留住它一時(shí)的輝煌, 直到2012年深度學(xué)習(xí)這個(gè)領(lǐng)域才開始漸入人們的眼簾??梢哉f(shuō)我們現(xiàn)在擁有著***的學(xué)習(xí)機(jī)會(huì),世界***的會(huì)的議論文,各大數(shù)據(jù)庫(kù)公開的數(shù)據(jù)源以及開源的力量已經(jīng)讓我們站在了巨人的肩膀上去成長(zhǎng)。下面就給大家分享一份深度學(xué)習(xí)入門指南,讓大家能更快更好的加入深度學(xué)習(xí)這個(gè)璀璨的舞臺(tái)。
必備技能1-Python:
python我就不必多說(shuō)啦吧,有多方便大家用過(guò)了都知道,這里強(qiáng)調(diào)這點(diǎn)是因?yàn)?,現(xiàn)在無(wú)論是公開的論文還是代碼基本在深度學(xué)習(xí)這個(gè)領(lǐng)域都是python為主流的,我在學(xué)習(xí)的過(guò)程中一個(gè)最重要的點(diǎn)就是學(xué)習(xí)別人的代碼,通過(guò)把高手的代碼debug一遍我們才能真正的懂一個(gè)技術(shù)的原理,那么在這個(gè)領(lǐng)域里高手們的代碼很多都是python版本的。更重要的一點(diǎn)是,我們?nèi)腴T這個(gè)領(lǐng)域肯定不會(huì)自己動(dòng)手一步一步的去實(shí)現(xiàn)所有需要的技術(shù)代碼,一個(gè)最直接的學(xué)習(xí)方法就是結(jié)合開源的框架,那么可以說(shuō)深度學(xué)習(xí)的開源框架基本都是python接口的,能用這些開源框架是我們學(xué)習(xí)的一個(gè)最基本的手段啦,所以重要的事情說(shuō)三遍,python!python!python!
必備技能2–線性代數(shù),微積分
很多同學(xué)該覺(jué)得很頭疼了。。。,怎么有是數(shù)學(xué)啊,沒(méi)錯(cuò)咱們深度學(xué)習(xí)需要很好的數(shù)據(jù)基礎(chǔ),我所說(shuō)的這倆簡(jiǎn)直就是九牛一毛,但是作為我們?nèi)腴T來(lái)說(shuō)已經(jīng)夠啦。其實(shí)咱們所有的深度學(xué)習(xí)是什么呢?它就是一個(gè)復(fù)雜的人工神經(jīng)網(wǎng)絡(luò)嘛,那么要去能懂這個(gè)神經(jīng)網(wǎng)絡(luò)的原理,有機(jī)器學(xué)習(xí)基礎(chǔ)的同學(xué)們肯定都知道,其實(shí)就包括了兩部分嘛,前向傳播和反向傳播。這兩部分一個(gè)最最最核心的點(diǎn)就是矩陣計(jì)算和梯度求導(dǎo)運(yùn)算啦,所以說(shuō)咱們要能入門這個(gè)領(lǐng)域,這些數(shù)學(xué)可是還要復(fù)習(xí)起來(lái)的。
必備技能3–英文閱讀能力:
這個(gè)還需要說(shuō)啥子嘛?技術(shù)都是國(guó)外搬來(lái)的,咱們要學(xué)習(xí)的肯定都是國(guó)外各路大神的作品啦,比如課程呀,論文呀等等,那么要能跟上大神們的腳步,這點(diǎn)肯定是不能少的吧。
必備技能4–查找資料能力:
這點(diǎn)其實(shí)是蠻重要的,也就是我們?cè)趯W(xué)習(xí)的過(guò)程中,要積累一些數(shù)據(jù)庫(kù)還有好的學(xué)習(xí)資源,比如公開的代碼呀,這也就要我們經(jīng)常去逛逛技術(shù)博客,github呀看看有木有一些適合咱們學(xué)習(xí)的東東,找到有價(jià)值的學(xué)習(xí)資源比咱們自己埋頭苦學(xué)更有價(jià)值的。
避開常見(jiàn)誤區(qū)
深度學(xué)習(xí)這個(gè)領(lǐng)域的坑可以說(shuō)還是蠻多的,咱們?cè)谶M(jìn)軍的路上
一定要避開這些了。
自己挖的坑:
咱們?cè)趯W(xué)習(xí)的過(guò)程中一定要循序漸進(jìn),切不可急于求成。這就像練武功一樣,一味的求快求狠只能走火入門。這里我暫且認(rèn)為想要入門的同學(xué)們的基礎(chǔ)都是比較薄弱的,咱們不能跳過(guò)傳統(tǒng)機(jī)器學(xué)習(xí)這條路直接一大步邁進(jìn)深度學(xué)習(xí)這個(gè)領(lǐng)域中,我們起碼要知道神經(jīng)網(wǎng)絡(luò)是怎么一回事。這對(duì)于咱們理解以及掌握深度學(xué)習(xí)有著重要的幫助,比如咱們***步要做的就是去搞明白什么是前向和反向傳播以及從頭到尾的自己推導(dǎo)一遍,有了這樣一個(gè)過(guò)程咱們?cè)偃W(xué)習(xí)深度學(xué)習(xí)就會(huì)輕松多啦。千萬(wàn)不可自欺欺人,一步還沒(méi)走穩(wěn)呢就著急跑去下一個(gè)知識(shí)點(diǎn)啦,在積累的過(guò)程中不要給自己挖坑,確保自己搞明白一個(gè)點(diǎn)啦再去深入到下一個(gè)點(diǎn)中。
掉進(jìn)別人的坑:
我們?cè)趯W(xué)習(xí)的路上肯定會(huì)挖掘到很多的資源,但是這些資源不可盲目學(xué)習(xí),我們需要有一定的鑒別能力。就好比說(shuō)我們跟著一個(gè)武功一般的學(xué),怎么也不會(huì)學(xué)到哪里去,但是我們給一個(gè)武林***當(dāng)小弟,我們學(xué)到的也不會(huì)少嘛。這就是說(shuō)我們要學(xué)習(xí)的資源一定要是通過(guò)了大家的認(rèn)可的,在我看來(lái)現(xiàn)在百度到的很多資源其實(shí)錯(cuò)誤的地方還是蠻多的,我們盡量多關(guān)注一些國(guó)外大神的主頁(yè)以及github上比較火的項(xiàng)目。
學(xué)習(xí)路線圖
這個(gè)路線圖是針對(duì)咱們要入門的同學(xué)制定的,已然成神的同學(xué)們可不使用哦。
(一)入門神經(jīng)網(wǎng)絡(luò):
對(duì)于咱們要入門的同學(xué)來(lái)說(shuō),***部也是最重要的一步就是能夠去懂什么是神經(jīng)網(wǎng)絡(luò)以及把整體流程從頭到尾的推一遍,神經(jīng)網(wǎng)絡(luò)這個(gè)東西還是蠻抽象的,這里有一個(gè)入門的課程大家可以參考下深度學(xué)習(xí)全民皆兵
把神經(jīng)網(wǎng)絡(luò)以及深度學(xué)習(xí)所需的每一個(gè)知識(shí)點(diǎn)都從頭到尾的推了一遍還是很不錯(cuò)的。
(二)選擇一個(gè)深度學(xué)習(xí)方向:
深度學(xué)習(xí)現(xiàn)在來(lái)說(shuō)有兩個(gè)方向比較成功,一個(gè)是自然語(yǔ)言處理,另一個(gè)是計(jì)算機(jī)視覺(jué)。在學(xué)習(xí)的路上,我們需要選擇一個(gè)自己喜歡的方向去深入,有的同學(xué)可能會(huì)說(shuō)我都想去研究個(gè)究竟,其實(shí)只要有時(shí)間這些都不是事。但是我覺(jué)得還是選擇一個(gè)方向去深入比較好,無(wú)論對(duì)于研究還是工作我們不可能同一階段去弄這兩個(gè)事,所以確定好一個(gè)深度學(xué)習(xí)的方向還是很重要的。當(dāng)我們選擇好方向之后我們要學(xué)習(xí)的東東就確定了,對(duì)于自然語(yǔ)言處理我們要學(xué)習(xí)的就是RNN現(xiàn)在更火的是LSTM,對(duì)于計(jì)算機(jī)視覺(jué)我們要學(xué)習(xí)的就是CNN,大家如果聽(tīng)不懂這幾個(gè)縮寫,沒(méi)關(guān)系的等咱們真正走到了這不的時(shí)候再去了解也來(lái)得及,這里我們只需要知道我們要兩個(gè)方向可以選擇。
(三)論文與代碼:
對(duì)于選擇好的方向我們首先要弄懂這個(gè)網(wǎng)絡(luò)的原理,***的辦法就是邊學(xué)邊做,結(jié)合一個(gè)實(shí)際的項(xiàng)目。有的同學(xué)可能比較愁,我哪有實(shí)際項(xiàng)目去結(jié)合啊,其實(shí)咱們github上的每一位大神的代碼咱們都可以當(dāng)成是一個(gè)實(shí)際的項(xiàng)目呀,比如人臉檢測(cè),物體識(shí)別呀,這些公開的代碼就是咱們練手的利器呀,我們首先需要從頭到尾的完全理解一個(gè)找好的項(xiàng)目,這其中包括了很多內(nèi)容了。比如學(xué)習(xí)一個(gè)深度學(xué)習(xí)框架,應(yīng)用公開數(shù)據(jù)集,訓(xùn)練模型等等。從我自身學(xué)習(xí)的經(jīng)驗(yàn)來(lái)說(shuō),最有價(jià)值的做法就是,在一些高端會(huì)議上找到一篇開源的而且做的事是咱們感興趣的的論文,首先通讀論文,然后對(duì)應(yīng)于開源的代碼開始大干一波 (就是把代碼和論文對(duì)應(yīng)上,確保自己完全理解),還有些需要注意的點(diǎn)比如說(shuō)咱們一定要找***的論文和代碼,這些應(yīng)該就不用我多說(shuō)啦。在完成了一個(gè)項(xiàng)目之后,咱們就有一定功底啦,可以說(shuō)咱們已經(jīng)入門深度學(xué)習(xí)這個(gè)領(lǐng)域啦,但僅僅是入門,切不可就此止步。
【本文是51CTO專欄作者唐宇迪的原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)注明出處】