<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 智能計(jì)算 > 設(shè)計(jì)應(yīng)用 > 科普:深度學(xué)習(xí)真的那么難嗎?

          科普:深度學(xué)習(xí)真的那么難嗎?

          作者: 時(shí)間:2017-10-22 來(lái)源:網(wǎng)絡(luò) 收藏

          今天,面對(duì)AI如此重要的江湖地位,作為重要的一個(gè)研究分支,幾乎出現(xiàn)在當(dāng)下所有熱門(mén)的AI應(yīng)用領(lǐng)域,其中包含語(yǔ)義理解、圖像識(shí)別、語(yǔ)音識(shí)別,自然語(yǔ)言處理等等,更有人認(rèn)為當(dāng)前的等同于領(lǐng)域。

          如果在這個(gè)的時(shí)代,作為一個(gè)有理想抱負(fù)的程序員,或者學(xué)生、愛(ài)好者,不懂這個(gè)超熱的話題,似乎已經(jīng)跟時(shí)代脫節(jié)了。

          本文引用地址:http://www.ex-cimer.com/article/201710/367432.htm

          但是,深度學(xué)習(xí)對(duì)數(shù)學(xué)的要求,包括微積分、線性代數(shù)和概率論與數(shù)理統(tǒng)計(jì)等要求,讓大部分的有理想抱負(fù)青年踟躕前行。那么問(wèn)題來(lái)了,理解深度學(xué)習(xí),到底需不需要這些知識(shí)?關(guān)子就不賣了,標(biāo)題已經(jīng)說(shuō)明。

          前段時(shí)間,編輯閑逛各大社區(qū)論壇,發(fā)現(xiàn)一篇非常適合初學(xué)者學(xué)習(xí)的深度學(xué)習(xí)的回復(fù)帖子,用風(fēng)趣的白話和例子深入淺出的分析了深度學(xué)習(xí)的過(guò)程,非常通俗易懂。通過(guò)與在西門(mén)子從事領(lǐng)域的楊安國(guó)老師溝通,獲得內(nèi)容編輯授權(quán),把內(nèi)容重新整理修正,內(nèi)容更加通俗易懂,希望人人都能夠理解深度學(xué)習(xí)。

          關(guān)于深度學(xué)習(xí),網(wǎng)上的資料很多,不過(guò)貌似大部分都不太適合初學(xué)者。楊老師總結(jié)了幾個(gè)原因:

          1、深度學(xué)習(xí)確實(shí)需要一定的數(shù)學(xué)基礎(chǔ)。如果不用深入淺出地方法講,有些讀者就會(huì)有畏難的情緒,因而容易過(guò)早地放棄。

          2、中國(guó)人或美國(guó)人寫(xiě)的書(shū)籍或文章,普遍比較難一些。

          深度學(xué)習(xí)所需要的數(shù)學(xué)基礎(chǔ)并沒(méi)有想象中的那么難,只需要知道導(dǎo)數(shù)和相關(guān)的函數(shù)概念即可。高等數(shù)學(xué)也沒(méi)學(xué)過(guò)?很好,這篇文章其實(shí)是想讓文科生也能看懂,只需要學(xué)過(guò)初中數(shù)學(xué)就完全可以。

          其實(shí)不必有畏難的情緒,比較推崇李書(shū)福的精神,在一次電視采訪中,李書(shū)福說(shuō):誰(shuí)說(shuō)中國(guó)人不能造汽車?造汽車有啥難的,不就是四個(gè)輪子加兩排沙發(fā)嘛。當(dāng)然,他這個(gè)結(jié)論有失偏頗,不過(guò)精神可嘉。

          導(dǎo)數(shù)是什么?無(wú)非就是變化率。

          比如:王小二今年賣了100頭豬,去年賣了90頭,前年賣了80頭。。。變化率或者增長(zhǎng)率是什么?每年增長(zhǎng)10頭豬,多簡(jiǎn)單。這里需要注意有個(gè)時(shí)間變量---年。王小二賣豬的增長(zhǎng)率是10頭/年,也就是說(shuō),導(dǎo)數(shù)是10。

          函數(shù)y=f(x)=10x+30,這里我們假設(shè)王小二第一年賣了30頭,以后每年增長(zhǎng)10頭,x代表時(shí)間(年),y代表豬的頭數(shù)。

          當(dāng)然,這是增長(zhǎng)率固定的情形,而現(xiàn)實(shí)生活中,很多時(shí)候,變化量也不是固定的,也就是說(shuō)增長(zhǎng)率不是恒定的。比如,函數(shù)可能是這樣: y=f(x)=5x2;+30,這里x和y依然代表的是時(shí)間和頭數(shù),不過(guò)增長(zhǎng)率變了,怎么算這個(gè)增長(zhǎng)率,我們回頭再講?;蛘吣愀纱嘤涀讉€(gè)求導(dǎo)的公式也可以。

          深度學(xué)習(xí)還有一個(gè)重要的數(shù)學(xué)概念:偏導(dǎo)數(shù),偏導(dǎo)數(shù)的偏怎么理解?偏頭疼的偏,還是我不讓你導(dǎo),你偏要導(dǎo)?都不是,我們還以王小二賣豬為例,剛才我們講到,x變量是時(shí)間(年),可是賣出去的豬,不光跟時(shí)間有關(guān)啊,隨著業(yè)務(wù)的增長(zhǎng),王小二不僅擴(kuò)大了養(yǎng)豬場(chǎng),還雇了很多員工一起養(yǎng)豬。所以方程式又變了:y=f(x)=5x2;+8x + 35x +30

          這里x代表面積,x代表員工數(shù),當(dāng)然x還是時(shí)間。

          上面我們講了,導(dǎo)數(shù)其實(shí)就是變化率,那么偏導(dǎo)數(shù)是什么?偏導(dǎo)數(shù)無(wú)非就是多個(gè)變量的時(shí)候,針對(duì)某個(gè)變量的變化率。在上面的公式里,如果針對(duì)x求偏導(dǎo)數(shù),也就是說(shuō),員工對(duì)于豬的增長(zhǎng)率貢獻(xiàn)有多大,或者說(shuō),隨著(每個(gè))員工的增長(zhǎng),豬增加了多少,這里等于35---每增加一個(gè)員工,就多賣出去35頭豬。 計(jì)算偏導(dǎo)數(shù)的時(shí)候,其他變量都可以看成常量,這點(diǎn)很重要,常量的變化率為0,所以導(dǎo)數(shù)為0,所以就剩對(duì)35x求導(dǎo)數(shù),等于35. 對(duì)于x求偏導(dǎo),也是類似的。

          求偏導(dǎo)我們用一個(gè)符號(hào)表示:比如 y/ x就表示y對(duì)x求偏導(dǎo)。

          廢話半天,這些跟深度學(xué)習(xí)到底有啥關(guān)系?當(dāng)然有關(guān)系,深度學(xué)習(xí)是采用神經(jīng)網(wǎng)絡(luò),用于解決線性不可分的問(wèn)題。關(guān)于這一點(diǎn),我們回頭再討論,大家也可以網(wǎng)上搜一下相關(guān)的文章。這里主要講講數(shù)學(xué)與深度學(xué)習(xí)的關(guān)系。先給大家看幾張圖:

          圖1. 所謂深度學(xué)習(xí),就是具有很多個(gè)隱層的神經(jīng)網(wǎng)絡(luò)。

          圖2.單輸出的時(shí)候,怎么求偏導(dǎo)數(shù)

          圖3.多輸出的時(shí)候,怎么求偏導(dǎo)數(shù)。

          后面兩張圖是日本人寫(xiě)的關(guān)于深度學(xué)習(xí)的書(shū),感覺(jué)寫(xiě)的不錯(cuò),把圖盜來(lái)用一下。所謂入力層,出力層,中間層,分別對(duì)應(yīng)于中文的:輸入層,輸出層,和隱層。大家不要被這幾張圖嚇著,其實(shí)很簡(jiǎn)單的。再舉一個(gè)例子,就以撩妹為例。男女戀愛(ài)我們大致可以分為三個(gè)階段:

          1.初戀期。相當(dāng)于深度學(xué)習(xí)的輸入層。別人吸引你,肯定是有很多因素,比如:身高,身材,臉蛋,學(xué)歷,性格等等,這些都是輸入層的參數(shù),對(duì)每個(gè)人來(lái)說(shuō)權(quán)重可能都不一樣。

          2.熱戀期。我們就讓它對(duì)應(yīng)于隱層吧。這個(gè)期間,雙方各種磨合,柴米油鹽醬醋茶。

          3.穩(wěn)定期。對(duì)應(yīng)于輸出層,是否合適,就看磨合得咋樣了。大家都知道,磨合很重要,怎么磨合呢?就是不斷學(xué)習(xí)訓(xùn)練和修正的過(guò)程嘛!比如女朋友喜歡草莓蛋糕,你買(mǎi)了藍(lán)莓的,她的反饋是negaTIve,你下次就別買(mǎi)了藍(lán)莓,改草莓了。

          看完這個(gè),有些小伙可能要開(kāi)始對(duì)自己女友調(diào)參了。有點(diǎn)不放心,所以補(bǔ)充一下。撩妹和深度學(xué)習(xí)一樣,既要防止欠擬合,也要防止過(guò)擬合。所謂欠擬合,對(duì)深度學(xué)習(xí)而言,就是訓(xùn)練得不夠,數(shù)據(jù)不足,就好比,你撩妹經(jīng)驗(yàn)不足。要做到擬合,送花當(dāng)然是最基本的,還需要提高其他方面,比如,提高自身說(shuō)話的幽默感等,因?yàn)楸疚闹攸c(diǎn)并不是撩妹,所以就不展開(kāi)講了。這里需要提一點(diǎn),欠擬合固然不好,但過(guò)擬合就更不合適了。過(guò)擬合跟欠擬合相反,一方面,如果過(guò)擬合,她會(huì)覺(jué)得你有陳冠希老師的潛質(zhì),更重要的是,每個(gè)人情況不一樣,就像深度學(xué)習(xí)一樣,訓(xùn)練集效果很好,但測(cè)試集不行!就撩妹而言,她會(huì)覺(jué)得你受前任(訓(xùn)練集)影響很大,這是大忌!如果給她這個(gè)印象,你以后有的煩了,切記切記!

          深度學(xué)習(xí)也是一個(gè)不斷磨合的過(guò)程,剛開(kāi)始定義一個(gè)標(biāo)準(zhǔn)參數(shù)(這些是經(jīng)驗(yàn)值,就好比情人節(jié)和生日必須送花一樣),然后不斷地修正,得出圖1每個(gè)節(jié)點(diǎn)間的權(quán)重。為什么要這樣磨合?試想一下,我們假設(shè)深度學(xué)習(xí)是一個(gè)小孩,我們?cè)趺唇趟磮D識(shí)字?肯定得先把圖片給他看,并且告訴他正確的答案,需要很多圖片,不斷地教他,訓(xùn)練他,這個(gè)訓(xùn)練的過(guò)程,其實(shí)就類似于求解神經(jīng)網(wǎng)絡(luò)權(quán)重的過(guò)程。以后測(cè)試的時(shí)候,你只要給他圖片,他就知道圖里面有什么了。

          所以訓(xùn)練集,其實(shí)就是給小孩看,帶有正確答案的圖片,對(duì)于深度學(xué)習(xí)而言,訓(xùn)練集就是用來(lái)求解神經(jīng)網(wǎng)絡(luò)的權(quán)重,最后形成模型;而測(cè)試集,就是用來(lái)驗(yàn)證模型的準(zhǔn)確度。

          對(duì)于已經(jīng)訓(xùn)練好的模型,如下圖所示,權(quán)重(w1,w2.。.)都已知。

          圖4

          圖5

          我們知道,像上面這樣,從左至右容易算出來(lái)。但反過(guò)來(lái)我們上面講到,測(cè)試集有圖片,也有預(yù)期的正確答案,要反過(guò)來(lái)求w1,w2.。..。.,怎么辦?

          繞了半天,終于該求偏導(dǎo)出場(chǎng)了。目前的情況是:

          1.我們假定一個(gè)神經(jīng)網(wǎng)絡(luò)已經(jīng)定義好,比如有多少層,每層有多少個(gè)節(jié)點(diǎn),也有默認(rèn)的權(quán)重和激活函數(shù)等。輸入(圖像)確定的情況下,只有調(diào)整參數(shù)才能改變輸出的值。怎么調(diào)整,怎么磨合?剛才我們講到,每個(gè)參數(shù)都有一個(gè)默認(rèn)值,我們就對(duì)每個(gè)參數(shù)加上一定的數(shù)值?,然后看看結(jié)果如何?如果參數(shù)調(diào)大,差距也變大,你懂的,那就得減小?,因?yàn)槲覀兊哪繕?biāo)是要讓差距變??;反之亦然。所以為了把參數(shù)調(diào)整到最佳,我們需要了解誤差對(duì)每個(gè)參數(shù)的變化率,這不就是求誤差對(duì)于該參數(shù)的偏導(dǎo)數(shù)嘛。

          2.這里有兩個(gè)點(diǎn):一個(gè)是激活函數(shù),這主要是為了讓整個(gè)網(wǎng)絡(luò)具有非線性特征,因?yàn)槲覀兦懊嬉蔡岬搅?,很多情況下,線性函數(shù)沒(méi)辦法對(duì)輸入進(jìn)行適當(dāng)?shù)姆诸悾ê芏嗲闆r下識(shí)別主要是做分類),那么就要讓網(wǎng)絡(luò)學(xué)出來(lái)一個(gè)非線性函數(shù),這里就需要激活函數(shù),因?yàn)樗旧砭褪欠蔷€性的,所以讓整個(gè)網(wǎng)絡(luò)也具有非線性特征。另外,激活函數(shù)也讓每個(gè)節(jié)點(diǎn)的輸出值在一個(gè)可控的范圍內(nèi),這樣計(jì)算也方便。

          貌似這樣解釋還是很不通俗,其實(shí)還可以用撩妹來(lái)打比方:女生都不喜歡白開(kāi)水一樣的日子,因?yàn)檫@是線性的,生活中當(dāng)然需要一些浪漫情懷了,這個(gè)激活函數(shù)嘛,我感覺(jué)類似于生活中的小浪漫,小驚喜,是不是?相處的每個(gè)階段,需要時(shí)不時(shí)激活一下,制造點(diǎn)小浪漫,小驚喜。比如,一般女生見(jiàn)了可愛(ài)的小杯子,瓷器之類都邁不開(kāi)步子,那就在她生日的時(shí)候送一個(gè)特別樣式,要讓她感動(dòng)得想哭。前面講到男人要幽默,這是為了讓她笑,適當(dāng)?shù)臅r(shí)候還要讓她激動(dòng)得哭。一哭一笑,多整幾個(gè)回合,她就離不開(kāi)你了。因?yàn)槟愕姆蔷€性特征太強(qiáng)了。

          當(dāng)然,過(guò)猶不及,小驚喜也不是越多越好,但完全沒(méi)有就成白開(kāi)水了。就好比每個(gè)layer都可以加激活函數(shù),當(dāng)然,不見(jiàn)得每層都要加激活函數(shù),但完全沒(méi)有,那是不行的。

          關(guān)鍵是怎么求偏導(dǎo)。圖2和圖3分別給了推導(dǎo)的方法,其實(shí)很簡(jiǎn)單,從右至左挨個(gè)求偏導(dǎo)就可以。相鄰層的求偏導(dǎo)其實(shí)很簡(jiǎn)單,因?yàn)槭蔷€性的,所以偏導(dǎo)數(shù)其實(shí)就是參數(shù)本身嘛,就跟求解x?的偏導(dǎo)類似。然后把各個(gè)偏導(dǎo)相乘就可以了。

          這里有兩個(gè)點(diǎn):一個(gè)是激活函數(shù),其實(shí)激活函數(shù)也沒(méi)啥,就是為了讓每個(gè)節(jié)點(diǎn)的輸出都在0到1的區(qū)間,這樣好算賬嘛,所以在結(jié)果上面再做了一層映射,反正都是一對(duì)一的。由于激活函數(shù)的存在,所以在求偏導(dǎo)的時(shí)候,也要把它算進(jìn)去,激活函數(shù),一般用sigmoid,也可以用Relu等。激活函數(shù)的求導(dǎo)其實(shí)也非常簡(jiǎn)單:

          求導(dǎo): f‘(x)=f(x)*[1-f(x)]

          這個(gè)方面,有時(shí)間可以翻看一下高數(shù),如果沒(méi)時(shí)間,直接記住就行了。至于Relu,那就更簡(jiǎn)單了,就是f(x) 當(dāng)x《0的時(shí)候y等于0,其他時(shí)候,y等于x。當(dāng)然,你也可以定義你自己的Relu函數(shù),比如x大于等于0的時(shí)候,y等于0.01x,也可以。

          另一個(gè)是學(xué)習(xí)系數(shù),為什么叫學(xué)習(xí)系數(shù)?剛才我們上面講到?增量,到底每次增加多少合適?是不是等同于偏導(dǎo)數(shù)(變化率)?經(jīng)驗(yàn)告訴我們,需要乘以一個(gè)百分比,這個(gè)就是學(xué)習(xí)系數(shù),而且,隨著訓(xùn)練的深入,這個(gè)系數(shù)是可以變的。

          當(dāng)然,還有一些很重要的基本知識(shí),比如SGD(隨機(jī)梯度下降),mini batch 和 epoch(用于訓(xùn)練集的選擇),限于篇幅,以后再侃吧。其實(shí)參考李宏毅的那篇文章就可以了。其實(shí)上面描述的,主要是關(guān)于怎么調(diào)整參數(shù),屬于初級(jí)階段。上面其實(shí)也提到,在調(diào)參之前,都有默認(rèn)的網(wǎng)絡(luò)模型和參數(shù),如何定義最初始的模型和參數(shù)?就需要進(jìn)一步深入了解。不過(guò)對(duì)于一般做工程而言,只需要在默認(rèn)的網(wǎng)絡(luò)上調(diào)參就可以,相當(dāng)于用算法;對(duì)于學(xué)者和科學(xué)家而言,他們會(huì)發(fā)明算法,這有很大的難度。向他們致敬!



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();