姓名:張剛 學(xué)號:17021210979
【嵌牛導(dǎo)讀】:個性化推薦系統(tǒng)確實(shí)很會“察言觀色”,針對不同的用戶垫卤,主動推送不同的3D打印內(nèi)容威彰。但如果你認(rèn)為它真正有了“人工智能”,那你就錯了穴肘。其實(shí)歇盼,這些推薦系統(tǒng)背后的運(yùn)行原理主要基于概率統(tǒng)計(jì)、矩陣或圖模型评抚,計(jì)算機(jī)對這些數(shù)值運(yùn)算確實(shí)很擅長豹缀,但由于采用的只是“經(jīng)驗(yàn)主義”的實(shí)用方法(也即管用就行),而非以“理性主義”的原則真正探求智能產(chǎn)生的原理慨代,所以距離真正的人工智能還很遠(yuǎn)邢笙。AI(Artificial Intelligence),也就是人工智能侍匙,就像長生不老和星際漫游一樣氮惯,是人類最美好的夢想之一。雖然計(jì)算機(jī)技術(shù)已經(jīng)取得了長足的進(jìn)步,但是到目前為止筐骇,還沒有一臺計(jì)算機(jī)能產(chǎn)生“自我”的意識债鸡。
【嵌牛導(dǎo)讀】:計(jì)算機(jī)如何像人的大腦一樣深層次地思考
【嵌牛鼻子】:圖靈測試? ?深度學(xué)習(xí)? ?神經(jīng)網(wǎng)絡(luò)? ?無監(jiān)督學(xué)習(xí)? ?大數(shù)據(jù)
圖靈測試(Turing Testing)江滨,是計(jì)算機(jī)是否真正具有人工智能的試金石铛纬。“計(jì)算機(jī)科學(xué)之父”及“人工智能之父”英國數(shù)學(xué)家阿蘭·圖靈(1912—1954)在1950年的一篇著名論文《機(jī)器會思考嗎唬滑?》里告唆,提出圖靈測試的設(shè)想。即把一個人和一臺計(jì)算機(jī)分別隔離在兩間屋子晶密,然后讓屋外的一個提問者對兩者進(jìn)行問答測試擒悬。如果提問者無法判斷哪邊是人,哪邊是機(jī)器稻艰,那就證明計(jì)算機(jī)已具備人的智能懂牧。
直到深度學(xué)習(xí)(Deep Learning)的出現(xiàn),讓人們看到了一絲曙光尊勿,至少僧凤,(表象意義下的)圖靈測試已不再是那么遙不可及了。2013年4月元扔,《麻省理工學(xué)院技術(shù)評論》雜志將深度學(xué)習(xí)列為2013年十大突破性技術(shù)(Breakthrough Technology)之首躯保。有了深度學(xué)習(xí),推薦系統(tǒng)可以更加深度地挖掘你內(nèi)心的需求澎语,并從海量的3D模型庫中挑選出最合適的供你打印途事。
讓我們先來看看人類的大腦是如何工作的。1981年的諾貝爾醫(yī)學(xué)獎擅羞,頒發(fā)給了David Hubel和Torsten Wiesel尸变,以及Roger Sperry。前兩位的主要貢獻(xiàn)是减俏,發(fā)現(xiàn)了人的視覺系統(tǒng)的信息處理是分級的召烂。從視網(wǎng)膜(Retina)出發(fā),經(jīng)過低級的V1區(qū)提取邊緣特征垄懂,到V2區(qū)的基本形狀或目標(biāo)的局部骑晶,再到高層的整個目標(biāo)(如判定為一張人臉),以及到更高層的PFC(前額葉皮層)進(jìn)行分類判斷等草慧。也就是說高層的特征是低層特征的組合桶蛔,從低層到高層的特征表達(dá)越來越抽象和概念化,也即越來越能表現(xiàn)語義或者意圖漫谷。
這個發(fā)現(xiàn)激發(fā)了人們對于神經(jīng)系統(tǒng)的進(jìn)一步思考仔雷。大腦的工作過程,或許是一個不斷迭代、不斷抽象概念化的過程碟婆。例如电抚,從原始信號攝入開始(瞳孔攝入像素),接著做初步處理(大腦皮層某些細(xì)胞發(fā)現(xiàn)邊緣和方向)竖共,然后抽象(大腦判定眼前物體的形狀蝙叛,比如是橢圓形的),然后進(jìn)一步抽象(大腦進(jìn)一步判定該物體是張人臉)公给,最后識別眼前的這個人──正是大明星劉德華借帘。這個過程其實(shí)和我們的常識是相吻合的,因?yàn)閺?fù)雜的圖形淌铐,往往就是由一些基本結(jié)構(gòu)組合而成的肺然。同時我們還可以看出:大腦是一個深度架構(gòu),認(rèn)知過程也是深度的腿准。
而深度學(xué)習(xí)(Deep Learning)际起,恰恰就是通過組合低層特征形成更加抽象的高層特征(或?qū)傩灶悇e)。例如吐葱,在計(jì)算機(jī)視覺領(lǐng)域街望,深度學(xué)習(xí)算法從原始圖像去學(xué)習(xí)得到一個低層次表達(dá),例如邊緣檢測器唇撬、小波濾波器等它匕,然后在這些低層次表達(dá)的基礎(chǔ)上,通過線性或者非線性組合窖认,來獲得一個高層次的表達(dá)豫柬。此外,不僅圖像存在這個規(guī)律扑浸,聲音也是類似的烧给。比如,研究人員從某個聲音庫中通過算法自動發(fā)現(xiàn)了20種基本的聲音結(jié)構(gòu)喝噪,其余的聲音都可以由這20種基本結(jié)構(gòu)來合成础嫡!
在進(jìn)一步闡述深度學(xué)習(xí)之前,我們需要了解什么是機(jī)器學(xué)習(xí)(Machine Learning)酝惧。機(jī)器學(xué)習(xí)是人工智能的一個分支榴鼎,而在很多時候,幾乎成為人工智能的代名詞晚唇。簡單來說巫财,機(jī)器學(xué)習(xí)就是通過算法,使得機(jī)器能從大量歷史數(shù)據(jù)中學(xué)習(xí)規(guī)律哩陕,從而對新的樣本做智能識別或?qū)ξ磥碜鲱A(yù)測平项。
而深度學(xué)習(xí)又是機(jī)器學(xué)習(xí)研究中的一個新的領(lǐng)域赫舒,其動機(jī)在于建立可以模擬人腦進(jìn)行分析學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò),它模仿人腦的機(jī)制來解釋數(shù)據(jù)闽瓢,例如接癌,圖像、聲音和文本扣讼。深度學(xué)習(xí)是無監(jiān)督學(xué)習(xí)的一種缺猛。
深度學(xué)習(xí)之所以被稱為“深度”,是因?yàn)橹暗臋C(jī)器學(xué)習(xí)方法都是淺層學(xué)習(xí)届谈。深度學(xué)習(xí)可以簡單理解為傳統(tǒng)神經(jīng)網(wǎng)絡(luò)(Neural Network)的發(fā)展枯夜。大約二三十年前弯汰,神經(jīng)網(wǎng)絡(luò)曾經(jīng)是機(jī)器學(xué)習(xí)領(lǐng)域特別熱門的一個方向艰山,這種基于統(tǒng)計(jì)的機(jī)器學(xué)習(xí)方法比起過去基于人工規(guī)則的專家系統(tǒng),在很多方面顯示出優(yōu)越性咏闪。深度學(xué)習(xí)與傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)之間有相同的地方曙搬。二者的相同之處在于,深度學(xué)習(xí)采用了與神經(jīng)網(wǎng)絡(luò)相似的分層結(jié)構(gòu):系統(tǒng)是一個包括輸入層鸽嫂、隱層(可單層纵装、可多層)、輸出層的多層網(wǎng)絡(luò)据某,只有相鄰層節(jié)點(diǎn)(單元)之間有連接橡娄,而同一層以及跨層節(jié)點(diǎn)之間相互無連接。這種分層結(jié)構(gòu)癣籽,比較接近人類大腦的結(jié)構(gòu)(但不得不說挽唉,實(shí)際上相差還是很遠(yuǎn)的,考慮到人腦是個異常復(fù)雜的結(jié)構(gòu)筷狼,很多機(jī)理我們目前都是未知的)瓶籽。
人類大腦由千億個神經(jīng)元組成,同時每個神經(jīng)元平均連接到其它幾千個神經(jīng)元埂材,這樣形成一個龐大的神經(jīng)元網(wǎng)絡(luò)塑顺。通過這種連接方式,神經(jīng)元可以收發(fā)不同數(shù)量的能量俏险,但它們對能量的接受并不是立即作出響應(yīng)严拒,而是先累加起來,只有當(dāng)累加的總和達(dá)到某個臨界閾值時才把能量發(fā)送給其它的神經(jīng)元竖独。而人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks, ANN)將人類神經(jīng)網(wǎng)絡(luò)作了數(shù)學(xué)上的抽象裤唠,如圖4-47所示,將其抽象為輸入層预鬓、輸出層以及中間的若干隱層(Hidden Layer巧骚,用于層次化地對內(nèi)在特征進(jìn)行降維和抽象表達(dá))赊颠,其中每層都有若干結(jié)點(diǎn)及連接這些點(diǎn)的邊,通過在訓(xùn)練數(shù)據(jù)集上學(xué)習(xí)出邊的權(quán)重(Weight)來建立模型劈彪。邊所表征的函數(shù)(通常為非線性函數(shù))的不同竣蹦,對應(yīng)于不同的神經(jīng)網(wǎng)絡(luò)。例如沧奴,第6章6.4.1節(jié)所介紹的感知機(jī)就是一種最簡單的痘括、不含任何隱層的前向(Feedforward)人工神經(jīng)網(wǎng)絡(luò),其中的函數(shù)被稱為傳遞函數(shù)(Transfer Function)滔吠、而門限截止函數(shù)則被用作激活函數(shù)(Activation Function)纲菌。在上世紀(jì)七八十年代,這種在人工智能領(lǐng)域被稱為聯(lián)結(jié)主義學(xué)派(Connectionism)的方法曾盛極一時疮绷。
但是后來翰舌,因?yàn)槔碚摲治龅碾y度,加上訓(xùn)練方法需要很多經(jīng)驗(yàn)和技巧冬骚,以及巨大的計(jì)算量和優(yōu)化求解難度椅贱,神經(jīng)網(wǎng)絡(luò)慢慢淡出了科研領(lǐng)域的主流方向。值得指出的是只冻,神經(jīng)網(wǎng)絡(luò)(如采用誤差反向傳播算法:Back Propagation庇麦,簡稱BP算法,通過梯度下降方法在訓(xùn)練過程中修正權(quán)重使得網(wǎng)絡(luò)誤差最邢驳隆)在層次深的情況下性能變得很不理想(傳播時容易出現(xiàn)所謂的梯度彌散Gradient Diffusion或稱之為梯度消失山橄,根源在于非凸目標(biāo)代價函數(shù)導(dǎo)致求解陷入局部最優(yōu),且這種情況隨著網(wǎng)絡(luò)層數(shù)的增加而更加嚴(yán)重舍悯,即隨著梯度的逐層不斷消散導(dǎo)致其對網(wǎng)絡(luò)權(quán)重調(diào)整的作用越來越泻嚼狻),所以只能轉(zhuǎn)而處理淺層結(jié)構(gòu)(小于等于3)贱呐,從而限制了性能丧诺。于是,20世紀(jì)90年代奄薇,有更多各式各樣的淺層模型相繼被提出驳阎,比如只有一層隱層節(jié)點(diǎn)的支撐向量機(jī)(SVM,Support Vector Machine)和Boosting馁蒂,以及沒有隱層節(jié)點(diǎn)的最大熵方法(例如LR呵晚,Logistic Regression)等,在很多應(yīng)用領(lǐng)域取代了傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)沫屡。
顯然饵隙,這些淺層結(jié)構(gòu)算法有很多局限性:在有限樣本和計(jì)算單元情況下對復(fù)雜函數(shù)的表示能力有限,針對復(fù)雜分類問題其泛化能力受到一定的制約沮脖。更重要的是金矛,淺層模型有一個特點(diǎn)芯急,就是需要依靠人工來抽取樣本的特征。然而驶俊,手工地選取特征是一件非常費(fèi)力的事情娶耍,能不能選取好很大程度上靠經(jīng)驗(yàn)和運(yùn)氣。既然手工選取特征不太好饼酿,那么能不能自動地學(xué)習(xí)一些特征呢榕酒?
實(shí)際生活中,人們?yōu)榱藢?shí)現(xiàn)對象的分類故俐,首先必須做的事情是如何來表達(dá)一個對象想鹰,即必須抽取一些特征來表示一個對象。例如药版,區(qū)分人和猴子的一個重要特征是是否有尾巴辑舷。特征選取的好壞對最終結(jié)果的影響非常大。
答案是能刚陡!深度學(xué)習(xí)框架將特征和分類器結(jié)合到一個框架中惩妇,用數(shù)據(jù)去學(xué)習(xí)特征,在使用中減少了手工設(shè)計(jì)特征的巨大工作量筐乳。看它的一個別名:無監(jiān)督特征學(xué)習(xí)(Unsupervised Feature Learning)乔妈,就可以顧名思義了蝙云。無監(jiān)督(Unsupervised)學(xué)習(xí)的意思就是不需要通過人工方式進(jìn)行樣本類別的標(biāo)注來完成學(xué)習(xí)。因此路召,深度學(xué)習(xí)是一種可以自動地學(xué)習(xí)特征的方法勃刨。
準(zhǔn)確地說,深度學(xué)習(xí)首先利用無監(jiān)督學(xué)習(xí)對每一層網(wǎng)絡(luò)進(jìn)行逐層預(yù)訓(xùn)練(Layerwise Pre-Training)股淡;每次用無監(jiān)督學(xué)習(xí)只訓(xùn)練一層身隐,并將訓(xùn)練結(jié)果作為更高一層的輸入;最后用監(jiān)督學(xué)習(xí)去調(diào)整(微調(diào)唯灵,F(xiàn)ine-Tune)所有層贾铝。
深度學(xué)習(xí)通過學(xué)習(xí)一種深層非線性網(wǎng)絡(luò)結(jié)構(gòu),只需簡單的網(wǎng)絡(luò)結(jié)構(gòu)即可實(shí)現(xiàn)復(fù)雜函數(shù)的逼近埠帕,并展現(xiàn)了強(qiáng)大的從大量無標(biāo)注樣本集中學(xué)習(xí)數(shù)據(jù)集本質(zhì)特征的能力垢揩。深度學(xué)習(xí)能夠獲得可更好地表示數(shù)據(jù)的特征,同時由于模型的層次深(通常有5層敛瓷、6層叁巨,甚至10多層的隱層節(jié)點(diǎn),“深”的好處是可以控制隱層節(jié)點(diǎn)的數(shù)目為輸入節(jié)點(diǎn)數(shù)目的多項(xiàng)式倍而非多達(dá)指數(shù)倍)呐籽、表達(dá)能力強(qiáng)锋勺,因此有能力表示大規(guī)模數(shù)據(jù)蚀瘸。對于圖像、語音這種特征不明顯(需要手工設(shè)計(jì)且很多沒有直觀的物理含義)的問題庶橱,深度模型能夠在大規(guī)模訓(xùn)練數(shù)據(jù)上取得更好的效果苍姜。尤其是在語音識別方面,深度學(xué)習(xí)使得錯誤率下降了大約30%悬包,取得了顯著的進(jìn)步衙猪。相比于傳統(tǒng)的神經(jīng)網(wǎng)絡(luò),深度神經(jīng)網(wǎng)絡(luò)作出了重大的改進(jìn)布近,在訓(xùn)練上的難度(如梯度彌散問題)可以通過“逐層預(yù)訓(xùn)練”來有效降低垫释。注意,深度學(xué)習(xí)不是萬金油撑瞧,像很多其他方法一樣棵譬,它需要結(jié)合特定領(lǐng)域的先驗(yàn)知識,需要和其他模型結(jié)合才能得到最好的結(jié)果预伺。當(dāng)然订咸,還少不了需要針對自己的項(xiàng)目去仔細(xì)地調(diào)參數(shù),這也往往令人詬病酬诀。此外脏嚷,類似于神經(jīng)網(wǎng)絡(luò),深度學(xué)習(xí)的另一局限性是可解釋性不強(qiáng)瞒御,像個“黑箱子”一樣不知為什么能取得好的效果父叙,以及不知如何有針對性地去具體改進(jìn),而這有可能成為產(chǎn)品升級過程中的阻礙肴裙。
深度學(xué)習(xí)通過很多數(shù)學(xué)和工程技巧增加(堆棧疊加:Stack)隱層的層數(shù)趾唱,如果隱層足夠多(也就是深),選擇適當(dāng)?shù)倪B接函數(shù)和架構(gòu)蜻懦,就能獲得很強(qiáng)的表達(dá)能力甜癞。但是,常用的模型訓(xùn)練算法反向傳播(Back Propagation)仍然對計(jì)算量有很高的要求宛乃。而近年來悠咱,得益于大數(shù)據(jù)、計(jì)算機(jī)速度的提升烤惊、基于MapReduce的大規(guī)模集群技術(shù)的興起乔煞、GPU的應(yīng)用以及眾多優(yōu)化算法的出現(xiàn),耗時數(shù)月的訓(xùn)練過程可縮短為數(shù)天甚至數(shù)小時柒室,深度學(xué)習(xí)才在實(shí)踐中有了用武之地渡贾。
值得一提的是,深度學(xué)習(xí)的誕生并非一帆風(fēng)順雄右。雖然Yahn Lecun在1993年提出的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network:CNN)是第一個真正成功訓(xùn)練多層網(wǎng)絡(luò)結(jié)構(gòu)的學(xué)習(xí)算法空骚,但應(yīng)用效果一直欠佳?直到2006年纺讲,Geoffrey Hinton基于深度置信網(wǎng)(Deep Belief Net:DBN)——其由一系列受限波爾茲曼機(jī)(Restricted Boltzmann Machine:RBM)組成,提出非監(jiān)督貪心逐層訓(xùn)練(Layerwise Pre-Training)算法囤屹,應(yīng)用效果才取得突破性進(jìn)展熬甚,其與之后Ruslan Salakhutdinov提出的深度波爾茲曼機(jī)(Deep Boltzmann Machine:DBM)重新點(diǎn)燃了人工智能領(lǐng)域?qū)τ谏窠?jīng)網(wǎng)絡(luò)(Neural Network)和波爾茲曼機(jī)(Boltzmann Machine)的熱情,才由此掀起了深度學(xué)習(xí)的浪潮肋坚。從目前的最新研究進(jìn)展來看乡括,只要數(shù)據(jù)足夠大、隱層足夠深智厌,即便不加“Pre-Training”預(yù)處理诲泌,深度學(xué)習(xí)也可以取得很好的結(jié)果,反映了大數(shù)據(jù)和深度學(xué)習(xí)相輔相成的內(nèi)在聯(lián)系铣鹏。此外敷扫,雖說非監(jiān)督(如DBM方法)是深度學(xué)習(xí)的一個優(yōu)勢,深度學(xué)習(xí)當(dāng)然也可用于帶監(jiān)督的情況(也即給予了用戶手動標(biāo)注的機(jī)會)诚卸,實(shí)際上帶監(jiān)督的CNN方法目前就應(yīng)用得越來越多葵第,乃至正在超越DBM。
2012年6月合溺,《紐約時報》披露了Google Brain項(xiàng)目卒密,吸引了公眾的廣泛關(guān)注。這個項(xiàng)目是由著名的斯坦福大學(xué)的機(jī)器學(xué)習(xí)教授Andrew Ng和在大規(guī)模計(jì)算機(jī)系統(tǒng)方面的世界頂尖專家Jeff Dean共同主導(dǎo)辫愉,用16,000個CPU Core的并行計(jì)算平臺去訓(xùn)練含有10億個節(jié)點(diǎn)的深度神經(jīng)網(wǎng)絡(luò)(DNN栅受,Deep Neural Networks),使其能夠自我訓(xùn)練恭朗,對2萬個不同物體的1,400萬張圖片進(jìn)行辨識。在開始分析數(shù)據(jù)前依疼,并不需要向系統(tǒng)手工輸入任何諸如“臉痰腮、肢體、貓的長相是什么樣子”這類特征律罢。Jeff Dean說:“我們在訓(xùn)練的時候從來不會告訴機(jī)器:‘這是一只貓’(即無標(biāo)注樣本)膀值。系統(tǒng)其實(shí)是自己發(fā)明或領(lǐng)悟了‘貓’的概念∥蠹”
2014年3月沧踏,同樣也是基于深度學(xué)習(xí)方法,F(xiàn)acebook的DeepFace項(xiàng)目使得人臉識別技術(shù)的識別率已經(jīng)達(dá)到了97.25%巾钉,只比人類識別97.5%的正確率略低那么一點(diǎn)點(diǎn)翘狱,準(zhǔn)確率幾乎可媲美人類。該項(xiàng)目利用了9層的神經(jīng)網(wǎng)絡(luò)來獲得臉部表征砰苍,神經(jīng)網(wǎng)絡(luò)處理的參數(shù)高達(dá)1.2億潦匈。
最后我們再回到大數(shù)據(jù)這個時代背景上來阱高。當(dāng)坐擁海量的大數(shù)據(jù),我們無論是做推薦系統(tǒng)還是3D模型檢索(見第6章的6.4節(jié)“眾里尋她千百度──海量3D模型的檢索”)茬缩,以前用簡單的線性數(shù)學(xué)模型赤惊,一般也能獲得還不錯的結(jié)果。因此我們沾沾自喜起來凰锡,認(rèn)為還是大數(shù)據(jù)更重要未舟,而智能算法用簡單直接的就OK了,不需要也沒必要弄得很復(fù)雜掂为。而當(dāng)深度學(xué)習(xí)出現(xiàn)后裕膀,它的一系列輝煌戰(zhàn)績讓我們意識到:也許是時候該“鳥槍換炮”了。簡而言之菩掏,在大數(shù)據(jù)情況下魂角,也許只有比較復(fù)雜的模型,或者說表達(dá)能力強(qiáng)的模型智绸,才能充分發(fā)掘海量數(shù)據(jù)中蘊(yùn)藏的有價值信息野揪。更重要的是,深度學(xué)習(xí)可以自動學(xué)習(xí)特征瞧栗,而不必像以前那樣還要請專家手工構(gòu)造特征斯稳,極大地推進(jìn)了智能自動化。
深度學(xué)習(xí)(即所謂“深度”)應(yīng)大數(shù)據(jù)(即所謂“廣度”)而生迹恐,給大數(shù)據(jù)提供了一個深度思考的大腦挣惰,而3D打印(即所謂“力度”)給了智能數(shù)字化一個強(qiáng)健的軀體殴边,三者共同引發(fā)了“大數(shù)據(jù)+深度模型+3D打印”浪潮的來臨憎茂。