NVIDIA前資深架構(gòu)師解讀:如今人工智能處于什么階段?
我在NVIDIA研究深度學(xué)習(xí)已達(dá)四年之久,作為一名解決方案架構(gòu)師,專門(mén)研究深度學(xué)習(xí)相關(guān)技術(shù),為客戶提供可能的解決方案,并加以實(shí)施。
在我加入NVIDIA時(shí),人工智能已經(jīng)成為一個(gè)非常普遍的應(yīng)用術(shù)語(yǔ),但經(jīng)常被模棱兩可的使用,甚至錯(cuò)誤的被描述為深度學(xué)習(xí)和機(jī)器學(xué)習(xí)。我想從一些簡(jiǎn)單的定義出發(fā),去一步步深入解讀其中含義,不足之處,以及采用新構(gòu)架創(chuàng)建更完整能力“AI”的一些步驟。
機(jī)器學(xué)習(xí)——將函數(shù)與數(shù)據(jù)進(jìn)行擬合,并使用這些函數(shù)對(duì)數(shù)據(jù)進(jìn)行分組或?qū)ξ磥?lái)數(shù)據(jù)進(jìn)行預(yù)測(cè)。(抱歉,我大大簡(jiǎn)化了概念。)
深度學(xué)習(xí)——將函數(shù)與數(shù)據(jù)進(jìn)行擬合,如下圖所示,函數(shù)就是節(jié)點(diǎn)層,用于和前后節(jié)點(diǎn)相連,其中擬合的參數(shù)是這些連接節(jié)點(diǎn)的權(quán)重。
深度學(xué)習(xí)就是如今經(jīng)常被成為AI的概念,但實(shí)際上只是非常精細(xì)的模式識(shí)別和統(tǒng)計(jì)建模。最常見(jiàn)的技術(shù)/算法是卷積神經(jīng)網(wǎng)絡(luò)(CNNs)、遞歸神經(jīng)網(wǎng)絡(luò)(RNNs)和強(qiáng)化學(xué)習(xí)(RL)。
卷積神經(jīng)網(wǎng)絡(luò)(CNNs)具有分層結(jié)構(gòu),通過(guò)(訓(xùn)練過(guò)的)卷積濾波器將圖像采樣到一個(gè)低分辨率的映射中,該映射表示每個(gè)點(diǎn)上卷積運(yùn)算的值。從圖像中來(lái)看,它是從高分辨像素到特征(邊緣、圓形、……),再到粗糙特征(臉上的鼻子、眼睛、嘴唇……),然后再到能夠識(shí)別圖像內(nèi)容的完整連接層。CNNs很酷的一點(diǎn)是,其卷積濾波器是隨機(jī)初始化的,當(dāng)你訓(xùn)練網(wǎng)絡(luò)時(shí),你實(shí)際是在訓(xùn)練卷積濾波器。幾十年來(lái),計(jì)算機(jī)視覺(jué)研究人員一直在手工制作類(lèi)似的濾波器,但無(wú)法像CNNs那樣的精準(zhǔn)結(jié)果。此外,CNN的輸出可以是2D圖而不是單個(gè)值,從而為我們提供圖像分割。CNNs還可以用于許多其他類(lèi)型的1D、2D甚至3D數(shù)據(jù)。
遞歸神經(jīng)網(wǎng)絡(luò)(RNN)適用于順序或時(shí)間序列數(shù)據(jù)?;旧?,RNN中的每個(gè)“神經(jīng)”節(jié)點(diǎn)都是存儲(chǔ)門(mén),通常是LSTM(長(zhǎng)短期記憶)或者長(zhǎng)短期的存儲(chǔ)單元。當(dāng)他們被連接到層神經(jīng)網(wǎng)絡(luò)時(shí),RNN將狀態(tài)在自身網(wǎng)絡(luò)中循環(huán)傳遞,因此可以接受更廣泛的時(shí)間序列結(jié)構(gòu)輸入。比如:語(yǔ)言處理或者翻譯,以及信號(hào)處理,文本到語(yǔ)音,語(yǔ)音到文本……
強(qiáng)化學(xué)習(xí)是第三種主要的深度學(xué)習(xí)(DL)方法,強(qiáng)調(diào)如何基于環(huán)境而行動(dòng),以取得最大化的預(yù)期利益。一個(gè)例子就是迷宮,其中每個(gè)單元都存在各自的“狀態(tài)”,擁有四個(gè)移動(dòng)的方向,在每個(gè)單元格某方向的移動(dòng)的概率來(lái)形成策略。
通過(guò)反復(fù)運(yùn)行狀態(tài)和可能的操作,并獎(jiǎng)勵(lì)產(chǎn)生良好結(jié)果的操作序列(通過(guò)增加策略中這些操作的概率),懲罰產(chǎn)生負(fù)面結(jié)果的操作(降低概率)。隨著時(shí)間的推移,你會(huì)得到一個(gè)最優(yōu)的策略,它有最高的可能性來(lái)取得一個(gè)成功的結(jié)果。通常在訓(xùn)練的時(shí)候,你會(huì)對(duì)更早的行為的懲罰/獎(jiǎng)勵(lì)打折扣。
在我們的迷宮事例中,先允許代理穿過(guò)迷宮,選擇一個(gè)方向,使用已有的概率策略,當(dāng)它達(dá)到死胡同時(shí),懲罰它選擇的路徑(降低每個(gè)單元移動(dòng)該方向的概率)。如果找到了出口,我們則增加每個(gè)單元移動(dòng)方向的概率作為獎(jiǎng)勵(lì)。隨著時(shí)間的推移,代理通過(guò)學(xué)習(xí),找到了最快方式。強(qiáng)化學(xué)習(xí)的這種變化就是AlphaGo AI和Atari電子游戲AI的核心。
最后值得關(guān)注的是GANs(生成對(duì)抗網(wǎng)絡(luò)),它更多的是一門(mén)技術(shù)而不是架構(gòu)。目前它與CNNs一起用于制作圖像鑒別器和發(fā)生器。鑒別器是經(jīng)過(guò)訓(xùn)練以識(shí)別圖像的CNN,生成器是一個(gè)反向網(wǎng)絡(luò),它采用隨機(jī)種子生成圖像。鑒別器評(píng)估發(fā)生器的輸出并向發(fā)生器發(fā)送關(guān)于如何改進(jìn)的信號(hào),發(fā)生器依次向鑒別器發(fā)送信號(hào)以提高其準(zhǔn)確性,在零和博弈游戲(zero-sum game)中反復(fù)往返,直到兩者收斂到最佳質(zhì)量。這是一種向神經(jīng)系統(tǒng)提供自我強(qiáng)化反饋的方法。
當(dāng)然,所有這些方法以及其他方法都有豐富的變化和組合,但是一旦你嘗試將它們用于特定問(wèn)題之外的問(wèn)題時(shí),這些技術(shù)有時(shí)不會(huì)有效。對(duì)于實(shí)際問(wèn)題,即使你可以擴(kuò)展和重新設(shè)計(jì)網(wǎng)絡(luò)拓?fù)洳?duì)其進(jìn)行調(diào)整,它們有時(shí)也表現(xiàn)不加。往往我們只是沒(méi)有足夠的數(shù)據(jù)來(lái)訓(xùn)練它們,以使得它們?cè)诓渴鹬懈泳珳?zhǔn)。
同樣,許多應(yīng)用需要將多種DL技術(shù)結(jié)合在一起并找到融合它們的方法。一個(gè)簡(jiǎn)單的例子就是視頻標(biāo)記——你通過(guò)CNN傳送視頻幀,在頂部有一個(gè)RNN來(lái)捕捉這些視頻中的那些隨著和時(shí)間有關(guān)的行為。曾經(jīng)我?guī)椭芯咳藛T使用這種技術(shù)來(lái)識(shí)別四肢癱瘓者的面部表情,向他們輪椅和機(jī)器假肢發(fā)出命令,每個(gè)指令對(duì)應(yīng)不同的面部表情/手勢(shì)。這起到了一定的效果,但當(dāng)你擴(kuò)大規(guī)模時(shí),開(kāi)發(fā)和訓(xùn)練它可能會(huì)花費(fèi)更多時(shí)間,且變得非常棘手。因?yàn)槟悻F(xiàn)在必須調(diào)整交織在一起的兩種不同類(lèi)型的DL網(wǎng)絡(luò),有時(shí)很難知道這些調(diào)整會(huì)產(chǎn)生什么影響。
現(xiàn)在想象一下,你有多個(gè)CNN/RNN網(wǎng)絡(luò)提供輸出,一個(gè)深度強(qiáng)化學(xué)習(xí)引擎對(duì)輸入狀態(tài)做出決策,然后驅(qū)動(dòng)生成網(wǎng)絡(luò)產(chǎn)生輸出。其實(shí)是很多特定的DL技術(shù)組合在一起來(lái)完成一組任務(wù)。你可以說(shuō)這是“魔鬼式”的瘋狂調(diào)參。它會(huì)奏效嗎?我不知道,如此一來(lái),它將耗費(fèi)大量資金和時(shí)間才開(kāi)始工作,并且不確定它是否能夠很好的訓(xùn)練,甚至在現(xiàn)實(shí)條件下進(jìn)行訓(xùn)練。
我個(gè)人觀點(diǎn)是,我們目前的DL技術(shù)各自代表一個(gè)子集,用來(lái)簡(jiǎn)化大腦網(wǎng)絡(luò)和神經(jīng)系統(tǒng)的工作。雖然我們稱之為“神經(jīng)”,但實(shí)際上并不是,它們都是專門(mén)用于特定的任務(wù)。
事實(shí)上,大多訓(xùn)練DL或者人工智能的人都沒(méi)有意識(shí)到,如今深度學(xué)習(xí)中的“神經(jīng)網(wǎng)絡(luò)”和“神經(jīng)元”只是更大、更豐富的合成神經(jīng)元、神經(jīng)網(wǎng)絡(luò)和方法。我們今天在DL中使用的大多數(shù)人分層我網(wǎng)絡(luò)和CNN屬于前饋神經(jīng)網(wǎng)絡(luò)的較小一部分,只是簡(jiǎn)單地對(duì)每個(gè)節(jié)點(diǎn)處進(jìn)行加權(quán)輸入求和,應(yīng)用簡(jiǎn)單的傳遞函數(shù),將結(jié)果傳遞給下一層。
這并不是大腦處理工作的方式,甚至RNN和強(qiáng)化學(xué)習(xí)也沒(méi)有給我們真正的人工智能,只是將非常大和復(fù)雜函數(shù)的參數(shù)擬合到大量數(shù)據(jù),并使用統(tǒng)計(jì)數(shù)據(jù)找到模式并做出決定。
上圖頂部和左側(cè)的方法,特別是SNNs(Spiking Neural Networks),給出了一個(gè)更準(zhǔn)確的模型,來(lái)運(yùn)行真正的神經(jīng)元工作方式。就像“數(shù)積分-火-模型”、Izhikevich脈沖神經(jīng)元模型那樣高效。像“Hodgkin-Huxley”一樣接近模擬生物神經(jīng)元的行為。
在真實(shí)的神經(jīng)元中,時(shí)域信號(hào)脈沖沿著樹(shù)突傳播,然后獨(dú)立到達(dá)神經(jīng)元體,并在其內(nèi)部的時(shí)間和空間中被整合(一些激發(fā)、一些抑制)。當(dāng)神經(jīng)元體被觸發(fā)時(shí),它就會(huì)在軸突上產(chǎn)生一系列依賴時(shí)間的脈沖,這些脈沖在分支時(shí)分裂,并需要時(shí)間到達(dá)突觸。當(dāng)化學(xué)神經(jīng)遞質(zhì)信號(hào)經(jīng)過(guò)突觸并最終觸發(fā)突觸后樹(shù)突中的信號(hào)時(shí),突觸本身就表現(xiàn)出非線性、延遲、依賴時(shí)間依賴的整合。在這一過(guò)程中,如果兩邊的神經(jīng)元在一定的時(shí)間間隔內(nèi)一起點(diǎn)燃,也就是學(xué)習(xí)過(guò)程中的突觸即學(xué)習(xí),即學(xué)習(xí),就會(huì)得到加強(qiáng)。我們可能永遠(yuǎn)無(wú)法在硬件或軟件中完全復(fù)制真實(shí)生物神經(jīng)元的所有電化學(xué)過(guò)程,但是我們可以尋找足夠復(fù)雜的模型來(lái)代表我們的尖峰人工神經(jīng)網(wǎng)絡(luò)中需要的許多有用行為。
這將讓我們更像人工智能,因?yàn)檎嬲拇竽X從信號(hào)通過(guò)神經(jīng)元、軸突、突觸和樹(shù)突的傳遞,獲得了更多的計(jì)算、感官處理和身體控制能力,從而在復(fù)雜的依賴時(shí)間的電路中穿行,這種復(fù)雜的電路甚至可以有反饋回路,以制造定時(shí)器或振蕩器等電路,類(lèi)似于可重復(fù)的級(jí)聯(lián)模式激活的神經(jīng)回路,向肌肉/致動(dòng)信號(hào)的群體發(fā)送特定的依賴模式。這些網(wǎng)絡(luò)也是通過(guò)直接加強(qiáng)神經(jīng)元之間的聯(lián)系來(lái)學(xué)習(xí)的,這些被稱為Hebbian學(xué)習(xí)。為了進(jìn)行更復(fù)雜的人工智能和決策,它們比我們?cè)谏厦娴睦又惺褂玫腃NNs、靜態(tài)的RNN甚至是深度強(qiáng)化學(xué)習(xí)都要強(qiáng)大得多。
但是有一個(gè)巨大的缺點(diǎn)——目前還沒(méi)有一種方法可以把這類(lèi)網(wǎng)絡(luò)安裝到數(shù)據(jù)上來(lái)“訓(xùn)練”它們。沒(méi)有反向傳播,也沒(méi)有調(diào)整神經(jīng)元之間突觸權(quán)重的梯度下降操作。突觸只是增強(qiáng)或減弱,因此尖峰神經(jīng)網(wǎng)絡(luò)在運(yùn)作的過(guò)程中學(xué)習(xí),使用Hebbian學(xué)習(xí)來(lái)進(jìn)行操作,這在實(shí)踐上可能有效訓(xùn)練我們的合成網(wǎng)絡(luò),因?yàn)樗麄兪紫缺仨毥Y(jié)構(gòu)正確,以達(dá)到一個(gè)有用的解決方案。這是一個(gè)正在進(jìn)行的研究領(lǐng)域,在這一領(lǐng)域的突破可能是非常重要的。
我認(rèn)為,如果我們可以開(kāi)始解決這些問(wèn)題,走向更加功能性更強(qiáng)的神經(jīng)結(jié)構(gòu),更加充分地展示大腦、神經(jīng)系統(tǒng)和真正的神經(jīng)元的工作和學(xué)習(xí)方式,我們就可以開(kāi)始將今天使用的那種單一的、更靈活的深度學(xué)習(xí)方法整合到這些功能更強(qiáng)大和靈活的架構(gòu)中,這些架構(gòu)以更優(yōu)雅的設(shè)計(jì)來(lái)處理多種功能。而且通過(guò)這些模型,我們將開(kāi)啟新的神經(jīng)計(jì)算形式,我們將能夠?qū)⑺鼈儜?yīng)用到計(jì)算機(jī)視覺(jué)、機(jī)器人運(yùn)動(dòng)控制、聽(tīng)覺(jué)、言語(yǔ),甚至是更像人腦的認(rèn)知等任務(wù)中去。
簡(jiǎn)單總結(jié)一句話:“我們還沒(méi)有達(dá)到人類(lèi)層面的認(rèn)知。”