科普:深度學(xué)習(xí)真的那么難嗎?
今天,面對(duì)AI如此重要的江湖地位,深度學(xué)習(xí)作為重要的一個(gè)研究分支,幾乎出現(xiàn)在當(dāng)下所有熱門的AI應(yīng)用領(lǐng)域,其中包含語(yǔ)義理解、圖像識(shí)別、語(yǔ)音識(shí)別,自然語(yǔ)言處理等等,更有人認(rèn)為當(dāng)前的人工智能等同于深度學(xué)習(xí)領(lǐng)域。
如果在這個(gè)人工智能的時(shí)代,作為一個(gè)有理想抱負(fù)的程序員,或者學(xué)生、愛(ài)好者,不懂深度學(xué)習(xí)這個(gè)超熱的話題,似乎已經(jīng)跟時(shí)代脫節(jié)了。
但是,深度學(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ò)與在西門子從事人工智能領(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ó)人寫的書(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ù)。