人人都要学一点深度学习(1)- 为什么我们需要它
人人都要學(xué)一點(diǎn)深度學(xué)習(xí)(1)- 為什么我們需要它
版權(quán)聲明
本文由@leftnoteasy發(fā)布于 http://leftnoteasy.cnblogs.com, 如需全文轉(zhuǎn)載或有其他問(wèn)題請(qǐng)聯(lián)系wheeleast (at) gmail.com。
1.開(kāi)篇
1.1 為什么我開(kāi)始寫(xiě)這個(gè)系列博客
說(shuō)五年前我還在某A云公司的時(shí)候,身在一個(gè)機(jī)器學(xué)習(xí)算法組,對(duì)機(jī)器學(xué)習(xí)懷有濃厚的興趣。花了好多的時(shí)間來(lái)試圖搞清楚各種流行的機(jī)器學(xué)習(xí)算法,經(jīng)常周末也跟同事探討公式的推倒和背后的意義。寫(xiě)博客的主要?jiǎng)恿κ亲屪约耗軌蚋玫睦斫鈾C(jī)器學(xué)習(xí)。
后來(lái)堅(jiān)持了沒(méi)有太久的時(shí)間就換到大數(shù)據(jù)方向了,最主要的原因是覺(jué)得自己數(shù)學(xué)天賦太差,尤其是數(shù)學(xué)。當(dāng)初學(xué)習(xí)的時(shí)候主要參考的PRML,Andrew Moore的PPT,Andrew Ng的公開(kāi)課,plukids博客,另外加上淘寶斌強(qiáng)哥的各種悉心指導(dǎo)。但是學(xué)了好久,公式能大概看懂是怎么回事,不過(guò)自己徒手推出來(lái)實(shí)在是太艱難了。PRML的習(xí)題,甚至是具體數(shù)學(xué)的習(xí)題,都很難做得出來(lái)。
后面的發(fā)生的事情就理所當(dāng)然了,既然很難在這個(gè)領(lǐng)域做到核心(我的理解是具有及其好的數(shù)學(xué)天賦作為后盾才能做到機(jī)器學(xué)習(xí)的核心),那么為什么不換一個(gè)更適合自己的方向呢?恩好吧,基礎(chǔ)數(shù)據(jù)架構(gòu)(Infra)看起來(lái)是個(gè)不錯(cuò)的方向,不需要理解太多的數(shù)學(xué)(除了真的需要去實(shí)現(xiàn)Paxos)。做Infra如果有架構(gòu)設(shè)計(jì)的基礎(chǔ),另外加上勤奮,多多少少還是能做出一些東西的。
為什么我又要重新開(kāi)始寫(xiě)機(jī)器學(xué)習(xí)相關(guān)的文章了?最主要的原因是現(xiàn)在的機(jī)器學(xué)習(xí)和五年前、十年前區(qū)別很大。最大的不同是,自從深度學(xué)習(xí)成為了機(jī)器學(xué)習(xí)舞臺(tái)上最重要的一個(gè)角色起,機(jī)器學(xué)習(xí)變得更加真實(shí)了,利用深度學(xué)習(xí)可以做出很多很有意思的真實(shí)世界的應(yīng)用,而這些東西在幾年前的門(mén)檻要高得多。我在本文之后會(huì)更詳細(xì)的展開(kāi)此點(diǎn)。
此外這幾年的工具發(fā)展神速,利用TensorFlow、MXNet或者其他類似的工具可以很容易的開(kāi)始自己的pet project,也不用理解太多背后的細(xì)節(jié)。而在幾年前能用的現(xiàn)成工具寥寥無(wú)幾,而且十分的碎片化,比如說(shuō)如果想要做分類器吧,需要用libsvm,需要搞跨語(yǔ)言調(diào)用。如果要換個(gè)算法的話,那可是要命的事情了。當(dāng)然這些東西對(duì)于大公司來(lái)說(shuō)都不是事兒,但是對(duì)于個(gè)人學(xué)習(xí)者來(lái)說(shuō)需要投入的經(jīng)歷太多了,遠(yuǎn)不是業(yè)余時(shí)間可以承擔(dān)的。
1.2 What to expect?
差不多關(guān)注了幾個(gè)月的深度學(xué)習(xí),雖然沒(méi)有花太多時(shí)間來(lái)寫(xiě)代碼,但是各種各樣的博客、視頻、公開(kāi)課還是看了一些。這個(gè)系列和幾個(gè)我看過(guò)的主要內(nèi)容的差異:
- 首先這個(gè)不是一個(gè)科普雜文,現(xiàn)在已經(jīng)有很多旁征博引豐富多彩老少皆宜的雜文,比如說(shuō)王川的深度學(xué)習(xí)到底有多深系列,我準(zhǔn)備少些一些歷史和背景花絮,多寫(xiě)一些技術(shù)。
- 其次這個(gè)不是一個(gè)系統(tǒng)的深度學(xué)習(xí)教程,現(xiàn)在已經(jīng)有非常多非常好的相關(guān)公開(kāi)課,比如說(shuō)Stanford的CS231N\CS224D,Hilton的,Udacity的等等。我不準(zhǔn)備寫(xiě)得面面俱到。
- 另外我會(huì)盡量少的涉及數(shù)學(xué),因?yàn)槲也豢赡馨褦?shù)學(xué)推導(dǎo)過(guò)程寫(xiě)得比Ian Goodfellow的Deep Learning書(shū)寫(xiě)得更清楚。但是我會(huì)盡量把最重要的部分寫(xiě)出來(lái)。
所以我希望寫(xiě)出的是,當(dāng)看過(guò)網(wǎng)上的博客、公開(kāi)課和書(shū)后,什么地方是最難理解的。
2. 深度學(xué)習(xí)為什么是革命性的
啰里啰嗦了這么多,開(kāi)始正文了。此篇博客嚴(yán)重參考了來(lái)自[1]第一章Introduction的內(nèi)容,包括圖片和內(nèi)容。
2.1 前深度學(xué)習(xí)的世界
深度學(xué)習(xí)不是一個(gè)新概念,它已經(jīng)存在好幾十年了,具體可以參考[1]/[2],這里所說(shuō)的深度學(xué)習(xí)世界大抵是在最近幾年深度學(xué)習(xí)刷新各個(gè)機(jī)器學(xué)習(xí)領(lǐng)域之后了。
前深度學(xué)習(xí)世界的特征就是:在人類強(qiáng)的地方很弱,在人類弱的地方可能很強(qiáng)。人類強(qiáng)的地方比如說(shuō)圖像識(shí)別(貓還是狗);圖片語(yǔ)義分割(參考[3])比如看出一個(gè)圖片中哪部分是樹(shù)、哪部分是房子。人類弱的地方比如說(shuō)下棋、語(yǔ)法標(biāo)記(一個(gè)句子里面哪些是助詞哪些是動(dòng)詞)。
這個(gè)最主要的原因是,那種對(duì)于人類來(lái)說(shuō)簡(jiǎn)單的東西(在萬(wàn)千世界中識(shí)別出一只貓)沒(méi)辦法用一個(gè)正式的數(shù)學(xué)公式去描述[1]。
比如說(shuō)你無(wú)法用數(shù)學(xué)公式去定義一個(gè)貓的形狀。因?yàn)椴煌慕嵌取㈩伾⒕嚯x、光線的組合讓這個(gè)基本上沒(méi)有辦法做到。
所以在這個(gè)基礎(chǔ)上談智能實(shí)在是鏡中月水中花:你連一個(gè)貓都不認(rèn)識(shí),怎么能夠取代人類?因?yàn)槿祟惖氖澜邕h(yuǎn)遠(yuǎn)比圍棋要復(fù)雜得多。
[1] 里面還有一個(gè)有趣的例子,關(guān)于1989年時(shí)候著名的專家系統(tǒng)Cyc:
Its inference engine detected an inconsistency in the story: it knew that people do not have electrical parts, but because Fred was holding an electric razor, it believed the entity “FredWhileShaving” contained electrical parts. It therefore asked whether Fred was still a person while he was shaving.
... 它的推論引擎發(fā)現(xiàn)了一個(gè)前后矛盾的地方:它知道人是沒(méi)有電驅(qū)動(dòng)的模塊,但是因?yàn)镕red拿起了一個(gè)電動(dòng)剃須刀,所以這個(gè)引擎認(rèn)為"一個(gè)正在剃胡子的Fred"有了一個(gè)電驅(qū)動(dòng)的模塊。然后這個(gè)系統(tǒng)就問(wèn)起這個(gè)Fred到底還是不是一個(gè)人啊。
此外,前機(jī)器學(xué)習(xí)時(shí)代一個(gè)重要的特征是要設(shè)計(jì)特征,比如說(shuō)如果要做一個(gè)淘寶的商品自動(dòng)分類器,特征可能有商品的題目、描述、圖片等等;特征還需要進(jìn)行嚴(yán)格的預(yù)處理,比如說(shuō)要過(guò)濾掉描述里面親包郵啊這種無(wú)意義的話,而且對(duì)正文里面的描述也要進(jìn)行重點(diǎn)抽取才能夠符合訓(xùn)練的標(biāo)準(zhǔn)。等到特征選擇、清理好了之后才能夠運(yùn)行出有意義的結(jié)果。而且如果需要重新選擇特征,或者更改特征,那就需要重新重頭來(lái)過(guò)。
曾經(jīng)有些公司甚至有"特征抽取工程師"這樣的職位,以前阿里同事做分類器的時(shí)候,就要特別注意不要把成人玩具分到兒童玩具的類目里面,萬(wàn)一被抓到把柄了那可就要丟工作了。
2.2 深度學(xué)習(xí)帶來(lái)了什么
深度學(xué)習(xí)最重要的東西就是自帶了特征學(xué)習(xí)(representation learning,有時(shí)候也被翻譯為表征學(xué)習(xí)),簡(jiǎn)單來(lái)說(shuō)就是,不需要進(jìn)行特別的特征抽取。從這個(gè)來(lái)說(shuō),深度學(xué)習(xí)相對(duì)傳統(tǒng)機(jī)器學(xué)習(xí)來(lái)說(shuō)就有了太多的優(yōu)勢(shì),因?yàn)橐粋€(gè)設(shè)計(jì)好的系統(tǒng)能夠被相對(duì)容易地移植到新的任務(wù)上去。
參考最近DeepMind發(fā)布的一個(gè)深度增強(qiáng)學(xué)習(xí)的無(wú)監(jiān)督系統(tǒng)玩復(fù)雜任務(wù)游戲游戲的例子[4]。系統(tǒng)從游戲的屏幕像素開(kāi)始自我學(xué)習(xí),到學(xué)會(huì)玩一個(gè)復(fù)雜游戲并超過(guò)人類的專業(yè)玩家,并沒(méi)有進(jìn)行特別的人工特征抽取,這個(gè)在傳統(tǒng)的機(jī)器學(xué)習(xí)方式上看起來(lái)是很難想象的。
此外深度學(xué)習(xí)另外的一個(gè)優(yōu)勢(shì)是,可以表述相對(duì)與淺度學(xué)習(xí)更復(fù)雜的東西,這里不準(zhǔn)備展開(kāi)描述,不然就要提到XOR,維度詛咒(The Curse of Dimensionality)等等相對(duì)枯燥而且很難說(shuō)清楚的理論知識(shí)了。簡(jiǎn)單來(lái)說(shuō),提升維度當(dāng)然是一個(gè)很厲害人人都想的東西,參考三體中的降維打擊。但是與此同時(shí)也帶來(lái)了很多計(jì)算上的挑戰(zhàn),得益于這幾年神經(jīng)科學(xué),算法研究和硬件(特別是GPU)提升,我們可以嘗試越來(lái)越深的模型。
3. 現(xiàn)在(2016)的深度學(xué)習(xí)究竟在什么位置
同樣,主要參考了[1]的綜述部分:
首先衡量深度網(wǎng)絡(luò)的復(fù)雜程度主要有兩個(gè)方面:1. 網(wǎng)絡(luò)中一共有多少個(gè)神經(jīng)元,2. 每個(gè)神經(jīng)元平均與多少個(gè)其他的神經(jīng)元連接。
首先是連接的數(shù)量:
每個(gè)藍(lán)色的小點(diǎn)表示一些里程碑級(jí)別的系統(tǒng)公布的結(jié)果,比如說(shuō)10. 就是GoogLeNet (Szegedy et al., 2014a)
從這點(diǎn)看來(lái),似乎還是挺樂(lè)觀的,比如說(shuō)10. 已經(jīng)很接近人類了,但是看看下面。。。
神經(jīng)元的數(shù)量:
可以看到,目前最先進(jìn)的系統(tǒng)所模擬的神經(jīng)元的數(shù)量處于蜜蜂和青蛙之間。藍(lán)色的線表示預(yù)估的增長(zhǎng)曲線,如果在沒(méi)有革命性的進(jìn)步前,系統(tǒng)差不多可以到2050年的時(shí)候模擬人類同樣的神經(jīng)元的數(shù)目,所以革命之路還很漫長(zhǎng)。
但是從另一方面來(lái)說(shuō),神經(jīng)元的數(shù)目也不是唯一的衡量標(biāo)準(zhǔn),就像是玩星際一樣,APM 150的意識(shí)派也可以完虐500的抽經(jīng)流選手。我們可以教一個(gè)神經(jīng)元如此少的系統(tǒng)玩復(fù)雜的電子游戲,但是我們沒(méi)有辦法教一個(gè)青蛙玩這種游戲。所以也不用悲觀,也許西部世界似的人工智能會(huì)到來(lái)得比想象中更早。
引用
[1] Deep Learning: Ian Goodfellow, Yoshua Bengio, Aaron Courville
[2] 王川的深度學(xué)習(xí)到底有多深系列
[3] http://stackoverflow.com/questions/33947823/what-is-semantic-segmentation-compared-to-segmentation-and-scene-labeling
[4] https://deepmind.com/blog/reinforcement-learning-unsupervised-auxiliary-tasks/
轉(zhuǎn)載于:https://www.cnblogs.com/LeftNotEasy/p/deep-learning-for-everybody-1-why-we-need-it.html
總結(jié)
以上是生活随笔為你收集整理的人人都要学一点深度学习(1)- 为什么我们需要它的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: PCL点云库:Kd树
- 下一篇: HTTP请求常见状态码