1909 年,萊特兄弟通過(guò)純粹的工程方法首次把飛機(jī)送上了天,但彼時(shí)的他們并不了解其中的原理。如今,經(jīng)過(guò)幾十年的發(fā)展,飛機(jī)的性能較之當(dāng)年已然不可同日而語(yǔ)。究其原因,主要在于上世紀(jì)四五十年代,人們?cè)诳諝鈩?dòng)力學(xué)方向取得了重大進(jìn)展,能夠在理論上理解飛機(jī)飛行的原理,從而更好地改進(jìn)飛機(jī)設(shè)計(jì)。而機(jī)器學(xué)習(xí)理論的研究也與之類(lèi)似,目的都是希望能在未來(lái)設(shè)計(jì)出更好的機(jī)器學(xué)習(xí)方法,使其性能更好,效率更高。 比之人工智能領(lǐng)域亦然,倘若理論層面持續(xù)空白,勢(shì)頭正勁的所謂風(fēng)口行業(yè)又能走多遠(yuǎn)? 為了探尋當(dāng)前人工智能算法存在的可解釋性缺失、大數(shù)據(jù)依賴(lài)、模型場(chǎng)景化問(wèn)題的答案,尋找機(jī)器學(xué)習(xí)的更多可能,“智源論壇(第5期)——機(jī)器學(xué)習(xí)”系列報(bào)告于 7 月 4 日如約而至。 智源研究項(xiàng)目經(jīng)理 程斌 上午 9:30,本次論壇在“機(jī)器學(xué)習(xí)”方向智源研究項(xiàng)目經(jīng)理,360 集團(tuán)人工智能研究院技術(shù)總監(jiān)程斌的主持下正式開(kāi)始。北京大學(xué)信息學(xué)院智能科學(xué)系教授王立威、北京曠視科技首席科學(xué)家孫劍分別分享了其在這一領(lǐng)域的研究經(jīng)驗(yàn)。 王立威:從經(jīng)驗(yàn)性的積累到理論空白的彌補(bǔ) 國(guó)家自然科學(xué)基金優(yōu)秀青年基金獲得者,“教育部新世紀(jì)優(yōu)秀人才支持計(jì)劃”獲得者,北京大學(xué)信息學(xué)院智能科學(xué)系的王立威針對(duì)深度學(xué)習(xí)的優(yōu)化及神經(jīng)網(wǎng)絡(luò)帶來(lái)了題為《Some recent advances in machine learning theory》的主題報(bào)告,分享了機(jī)器學(xué)習(xí)理論方面的一些新進(jìn)展。 北京大學(xué)信息學(xué)院智能科學(xué)系教授 王立威 事實(shí)上,我們近年來(lái)討論的機(jī)器學(xué)習(xí)乃至廣義上的人工智能都多為深度學(xué)習(xí),是基于 Yoshua Bengio、Geoffrey Hinton 和 Yann LeCun 幾位專(zhuān)家長(zhǎng)期研究而取得的突破。然而若站在一個(gè)相對(duì)冷靜客觀的角度對(duì)近來(lái)的深度學(xué)習(xí)成果加以分析,我們不難發(fā)現(xiàn),眼下我們所掌握的更多是經(jīng)驗(yàn)性的積累,而對(duì)于其理論和理解則可謂缺乏甚至是空白。 深度學(xué)習(xí)的全局最優(yōu)點(diǎn) 在訓(xùn)練神經(jīng)網(wǎng)絡(luò)的過(guò)程中,我們往往是從一個(gè)隨機(jī)的初始點(diǎn)出發(fā),用一階優(yōu)化方法隨機(jī)梯度下降,即可找到一個(gè)近似全局最優(yōu)的點(diǎn)——訓(xùn)練錯(cuò)誤可以接近于零。關(guān)于這個(gè)問(wèn)題,最核心的一點(diǎn)就是過(guò)參數(shù)化,下面將圍繞一些有趣的過(guò)參數(shù)化理論性質(zhì)展開(kāi)分享。 迄今為止,機(jī)器學(xué)習(xí)已經(jīng)發(fā)展了三四十年,之前提出了很多模型,比如線(xiàn)性模型、Boosting等,但至少在圖像、語(yǔ)音等方面,神經(jīng)網(wǎng)絡(luò)更具優(yōu)勢(shì)。從理論層面來(lái)看,神經(jīng)網(wǎng)絡(luò)可以表示豐富的函數(shù),具有很強(qiáng)的逼近能力。這其中包括Universal Approximation Theorem,即任意給定一個(gè)符合一定條件的函數(shù),就一定可以找到一個(gè)神經(jīng)網(wǎng)絡(luò),能夠非常精確地近似于這個(gè)函數(shù)。論簡(jiǎn)而言之,神經(jīng)網(wǎng)絡(luò)可以表示任何函數(shù)。而早在1989年,就已經(jīng)有人通過(guò)對(duì)非常淺層的神經(jīng)網(wǎng)絡(luò)進(jìn)行理解得到了這樣一個(gè)結(jié)論。2017年,我們認(rèn)識(shí)到非常深的神經(jīng)網(wǎng)絡(luò)同樣有這種逼近的能力。所以從表示上來(lái)看,神經(jīng)網(wǎng)絡(luò)是一個(gè)具有很強(qiáng)大表示能力的模型。 如上圖所示,右側(cè)圖像是我們?cè)谒伎忌窠?jīng)網(wǎng)絡(luò)訓(xùn)練做類(lèi)似優(yōu)化問(wèn)題時(shí)的自然反映。從Optimization角度來(lái)看,神經(jīng)網(wǎng)絡(luò)的優(yōu)化是一個(gè)高度非凸的問(wèn)題,圖上有坑坑洼洼的結(jié)構(gòu),每個(gè)坑里面都是一個(gè)局部的最優(yōu)點(diǎn)。針對(duì)這樣一個(gè)高度非凸的問(wèn)題,從一個(gè)隨機(jī)點(diǎn)出發(fā),沿著梯度下降的方向,很容易就走到一個(gè)局部最優(yōu)點(diǎn)。這是過(guò)去經(jīng)典的非凸優(yōu)化理論所經(jīng)常提及的,除非問(wèn)題本身具有很強(qiáng)的特殊性。 以上是我們對(duì)該問(wèn)題給出的“理所應(yīng)當(dāng)”的理解,但實(shí)際卻并非如此——在深度學(xué)習(xí)訓(xùn)練這個(gè)非凸優(yōu)化問(wèn)題里,從一個(gè)隨機(jī)的初始點(diǎn)出發(fā)用隨機(jī)梯度下降經(jīng)??梢哉业饺肿顑?yōu)點(diǎn),這不免令人困惑。 回顧學(xué)者們過(guò)去曾得出的一些結(jié)論,其中就包括對(duì)于線(xiàn)性神經(jīng)網(wǎng)絡(luò)的研究。眾所周知,神經(jīng)網(wǎng)絡(luò)具有逐層結(jié)構(gòu),而且每層有一個(gè)非線(xiàn)性變換,例如最早用 Sigmoid,再到現(xiàn)在的 Relu,但是如果把非線(xiàn)性變換去掉,簡(jiǎn)化成一個(gè)線(xiàn)性網(wǎng)絡(luò),即每層不存在非線(xiàn)性,本質(zhì)上就等價(jià)于一個(gè)單層網(wǎng)絡(luò)。在這種情況下,可以證明所有局部最優(yōu)點(diǎn)即為全局最優(yōu)點(diǎn)。但這樣的結(jié)論與真實(shí)的神經(jīng)網(wǎng)絡(luò)差距很大,不過(guò)也算是一個(gè)啟發(fā),提示我們可以考慮神經(jīng)網(wǎng)絡(luò)的一些特殊性,思考對(duì)于真正的非線(xiàn)性神經(jīng)網(wǎng)絡(luò)而言,其局部最優(yōu)點(diǎn)和全局最優(yōu)點(diǎn)之間是否也存在某種等價(jià)關(guān)系。 除此之外,我們還可以通過(guò)某些特殊的假設(shè),比如只考慮單層網(wǎng)絡(luò),同樣也可以證明即使單層網(wǎng)絡(luò)存在非線(xiàn)性,也仍然可以用梯度下降法找到全局最優(yōu)點(diǎn)。但此處指的是只有一層的網(wǎng)絡(luò),而我們今天面對(duì)的是動(dòng)輒幾十、幾百層的網(wǎng)絡(luò)。簡(jiǎn)而言之,對(duì)于一個(gè)很正常的非線(xiàn)性深度神經(jīng)網(wǎng)絡(luò)而言,只要滿(mǎn)足如下兩個(gè)條件,再利用一階優(yōu)化方法,如梯度下降、隨機(jī)梯度下降,就一定能以極快的速度找到全局最優(yōu)點(diǎn)。此處的收斂速度是所謂的線(xiàn)性收斂速度,只消對(duì)數(shù)步的迭代就能找到全局最優(yōu)點(diǎn): ① 網(wǎng)絡(luò)足夠?qū)挘疵恳粚?Neural 的個(gè)數(shù)足夠大,詳見(jiàn)下圖公式; ② 網(wǎng)絡(luò)權(quán)重的初始化是通過(guò)今天非常常用的高斯隨機(jī)初始化(Gaussian Random Initialization)。 總而言之,一是網(wǎng)絡(luò)足夠?qū)挘怯酶咚闺S機(jī)初始化,在這兩個(gè)假設(shè)條件下只要從隨機(jī)初始化點(diǎn)出發(fā),用一階梯度下降的方法就可以在非??斓牡綌?shù)之內(nèi)找到全局最優(yōu)點(diǎn)。這個(gè)結(jié)論能夠使我們理解實(shí)驗(yàn)中觀測(cè)到的很多現(xiàn)象,其中我們關(guān)注的核心就是為什么能找到全局最優(yōu)點(diǎn)——深度神經(jīng)網(wǎng)絡(luò)充分寬以后,就相當(dāng)于一個(gè)非常特殊的過(guò)參數(shù)化(Over-Parameterization)模型,利用到了神經(jīng)網(wǎng)絡(luò)的一些特殊性質(zhì),和過(guò)去的模型有很大差異。 以上結(jié)論研究的是所謂的全連接網(wǎng)絡(luò),若是研究如今更常用的 ResNet,對(duì)于假設(shè)的限制就會(huì)弱一些,例如網(wǎng)絡(luò)不需要那么寬,而網(wǎng)絡(luò)的收斂速度也會(huì)更快。簡(jiǎn)言之,理論上 ResNet 是一個(gè)更好的結(jié)構(gòu)。值得一提的是,幾乎在同一時(shí)間,包括微軟研究院朱澤園與 CMU 李遠(yuǎn)志的合作團(tuán)隊(duì)以及 UCLA 的顧全全教授團(tuán)隊(duì)在內(nèi)的另外幾個(gè)機(jī)器學(xué)習(xí)研究組也得到了與王立威團(tuán)隊(duì)非常近似的結(jié)論。 如今,這一方向的研究工作在除卻理論的整個(gè)機(jī)器學(xué)習(xí)界都得到了比較廣泛的關(guān)注——希望通過(guò)比較寬的網(wǎng)絡(luò),來(lái)探討神經(jīng)網(wǎng)絡(luò)的部分性質(zhì)。 二階優(yōu)化方法——GGN 隨著理論研究的推進(jìn),我們也迎來(lái)了新問(wèn)題——這些研究可以為機(jī)器學(xué)習(xí)、深度學(xué)習(xí)的算法提供什么幫助,又能否幫助我們?cè)O(shè)計(jì)出更好的算法?著眼理論分析的細(xì)節(jié),我們會(huì)驚訝地發(fā)現(xiàn):網(wǎng)絡(luò)從 input 到 output 是一個(gè)函數(shù),當(dāng)網(wǎng)絡(luò)充分寬時(shí),網(wǎng)絡(luò)的輸出其實(shí)還依賴(lài)于該網(wǎng)絡(luò)的參數(shù),那么網(wǎng)絡(luò)的輸出對(duì)于網(wǎng)絡(luò)的參數(shù)而言,其在局部是近似線(xiàn)性的,這一點(diǎn)與過(guò)去的認(rèn)知有很大差異——過(guò)去認(rèn)為網(wǎng)絡(luò)的輸出對(duì)于參數(shù)一定是高度非線(xiàn)性、高度非凸的。但此前的理論證明,網(wǎng)絡(luò)充分寬后,網(wǎng)絡(luò)的輸出對(duì)于網(wǎng)絡(luò)的參數(shù)在局部?jī)?nèi)是高度線(xiàn)性的,且這個(gè)局部不僅包含了高斯隨機(jī)初始的點(diǎn),還包含全局最優(yōu)點(diǎn)。正是因?yàn)檫@樣的性質(zhì),用一階優(yōu)化方法可以在很短時(shí)間內(nèi)找到全局最優(yōu)的點(diǎn),從而利用這個(gè)觀察設(shè)計(jì)新的算法。 今天大家常用的算法是Stochastic Gradient Descent(SGD),其已然是今天深度學(xué)習(xí)的標(biāo)準(zhǔn)算法。我們用任何一個(gè)今天開(kāi)源的代碼或者從庫(kù)里調(diào)用,配備的都會(huì)是一階優(yōu)化方法。但根據(jù)上面的結(jié)論,我們不難發(fā)現(xiàn),更好的方法是二階優(yōu)化方法。一階優(yōu)化方法只利用了函數(shù)的一階導(dǎo)數(shù)信息,而二階優(yōu)化方法則在一階導(dǎo)數(shù)外,還用到了一些二階導(dǎo)數(shù)信息。以高斯牛頓法這一二階方法為例,其特點(diǎn)在于,特別適用于函數(shù)特別接近于線(xiàn)性的情況,這種情況下它的收斂速度,也就是迭代的輪數(shù)會(huì)非常少。 如前所述,當(dāng)深度神經(jīng)網(wǎng)絡(luò)充分寬時(shí),輸出對(duì)參數(shù)是非常接近線(xiàn)性的,這與高斯牛頓法非常吻合。而既然如此,包括高斯牛頓法在內(nèi)的所有二階優(yōu)化方法在今天的深度學(xué)習(xí)中為什么又無(wú)人選用?究其原因,在于實(shí)際應(yīng)用中存在的困難——雖然其迭代數(shù)很少,但每一步迭代時(shí)二階方法所需的計(jì)算量卻又遠(yuǎn)遠(yuǎn)大于一階方法,這也是該問(wèn)題的核心原因。除此之外,類(lèi)似在過(guò)參數(shù)化時(shí)二階信息矩陣不可逆等問(wèn)題也不容忽視。因此,我們?cè)谶^(guò)去綜合種種因素,慣于將二階優(yōu)化方法排除至選項(xiàng)之外。 在這樣的背景下,王立威及其團(tuán)隊(duì)對(duì)此展開(kāi)研究,在已知二階方法迭代輪數(shù)優(yōu)勢(shì)的情況下(特別在深度神經(jīng)網(wǎng)絡(luò)較寬時(shí),高斯牛頓法的迭代輪數(shù)較之一階方法優(yōu)勢(shì)更甚),面對(duì)上文提到的諸多問(wèn)題,證明存在一個(gè)定理。據(jù)該定理所述,在矩陣不可逆時(shí),可以找到一個(gè)偽逆,并且該偽逆可以通過(guò)極小的計(jì)算代價(jià)實(shí)現(xiàn)。 從理論上可以證明,其所提出的 Gram 高斯牛頓方法(Gram-Gauss-Newton ,GGN))具有非常好的性質(zhì),其一,是該方法的二次收斂速度極快,為雙對(duì)數(shù),迭代輪數(shù)非常少;其二,是可以用求偽逆的辦法證明每一步的迭代計(jì)算量,相比于 SGD 只有非常小的 overlap。故而從理論上看,用 GGN 比 SGD 明顯具有更大優(yōu)勢(shì)。 下圖所呈現(xiàn)的為部分實(shí)驗(yàn)效果,圖中紅線(xiàn)是新方法的收斂速度,左圖橫軸代表時(shí)間,右圖橫軸是 Epoch,另外兩條線(xiàn)都是 SGD 加相應(yīng)的一些其他技術(shù),所以可以看到該方法在收斂速度方面占據(jù)了很大的優(yōu)勢(shì)。 總結(jié) 我們先是通過(guò)一個(gè)純粹的理論分析,證明了當(dāng)網(wǎng)絡(luò)充分寬的時(shí)候,如果用現(xiàn)在的高斯初始化,整個(gè)優(yōu)化展現(xiàn)出一個(gè)和我們的過(guò)去所認(rèn)知極為不同的場(chǎng)景——在局部近似線(xiàn)性,且可以在局部找到一個(gè)全局最優(yōu)點(diǎn)。從這一理論結(jié)果出發(fā),王立威及其團(tuán)隊(duì)設(shè)計(jì)了一個(gè)二階優(yōu)化方法——GGN。也許有一天大家再用深度學(xué)習(xí)去訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)時(shí),SGD 將不再是一個(gè)標(biāo)配的優(yōu)化方法,GGN 這樣的二階優(yōu)化方法可能有機(jī)會(huì)取而代之。 Transformer 結(jié)構(gòu) 在深度學(xué)習(xí)和機(jī)器學(xué)習(xí)中,Transformer 結(jié)構(gòu)可謂是又一個(gè)熱門(mén)話(huà)題。Attention Transformer 這類(lèi)結(jié)構(gòu)在很多問(wèn)題,特別是機(jī)器翻譯上取得了非常好的效果。事實(shí)上,過(guò)去大家用的可能都是 LSTM 這樣的一些結(jié)構(gòu),但隨著 Transformer 的出現(xiàn),也都逐漸成為歷史了。 研究 Transformer,本質(zhì)上還要理解深度神經(jīng)網(wǎng)絡(luò),深度神經(jīng)網(wǎng)絡(luò)為什么是一個(gè)好的結(jié)構(gòu)?從數(shù)學(xué)層面來(lái)看,深度神經(jīng)網(wǎng)絡(luò)從某種程度上可以看作在解常微分方程,其為常微分方程數(shù)值解的一個(gè) solver。近一兩年來(lái),這一觀點(diǎn)已經(jīng)成為機(jī)器學(xué)習(xí)理論里大家非??粗氐囊粋€(gè)方法。NIPS 2018 的 Best Paper 就花落這樣一篇論文——從解常微分方程的角度去看深度神經(jīng)網(wǎng)絡(luò)。 談及常微分方程,自然會(huì)想到 ResNet,它是一個(gè)非常典型的常微分方程數(shù)值解的方法。換言之,ResNet 和解常微分方程數(shù)值解法存在一個(gè)非常明確的對(duì)應(yīng)關(guān)系。ResNet 比較簡(jiǎn)單,但是 Transformer 卻是一個(gè)較為復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu),其主要包含兩個(gè)部分,分別是 Multi-Head Self Attention 結(jié)構(gòu)和 FFN 結(jié)構(gòu),這兩部分組成一個(gè) block,而這個(gè) block 就是這種迭代,銜接下去。所以我們要從解常微分方程數(shù)值解的角度去理解這樣一種很復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu),從而幫助我們?cè)O(shè)計(jì)出更好的網(wǎng)絡(luò)結(jié)構(gòu)。Multi-Head Self Attention 實(shí)際上是一種不同 Neural 之間有互相連接、互相作用的結(jié)構(gòu);而 FFN 這部分則是每一個(gè) Neural 自己作用,互相之間沒(méi)有作用。 既然要從解常微分方程的角度來(lái)看 Transformer,首先要考慮多粒子的動(dòng)態(tài)系統(tǒng)(Multi-particle Dynamic System),這是在物理中非常常見(jiàn)的一種動(dòng)態(tài)系統(tǒng)。這種動(dòng)態(tài)系統(tǒng)的常微分方程,叫做對(duì)流擴(kuò)散方程(Convection-diffusion Equation),對(duì)流擴(kuò)散方程是微分方程中最最常見(jiàn)的一類(lèi)方程。多粒子動(dòng)態(tài)系統(tǒng)中的對(duì)流方程如圖所示,比如粒子的位置對(duì)時(shí)間的導(dǎo)數(shù)是兩個(gè)函數(shù)的和,第一個(gè)函數(shù)是 F,第二個(gè)函數(shù)是 G, F 函數(shù)是 N 個(gè)粒子共同作用的一個(gè)函數(shù),是 N 元函數(shù),而后面的 G 是對(duì)每個(gè)粒子的單獨(dú)作用。這與 Transformer 結(jié)構(gòu)中的 Multi-Head Self Attention 與 FFN 形成了一種很自然的契合,因此我們可以用這種多粒子的對(duì)流擴(kuò)散方程來(lái)解釋 Transformer結(jié)構(gòu)的含義。 當(dāng)然,僅僅從這個(gè)角度去理解 Transformer 的含義并非我們的最終目的,我們想要的是從這個(gè)理解角度出發(fā),探索設(shè)計(jì)出更好的網(wǎng)絡(luò)結(jié)構(gòu)。Transformer 的結(jié)構(gòu)實(shí)際上對(duì)應(yīng)著對(duì)流擴(kuò)散方程的某一種數(shù)值解法——Lie-Trotter splitting scheme,這是一種很常見(jiàn)的常微分方程數(shù)值解。眾所周知,微分方程要數(shù)值解就要將其離散化,這就是一種離散化的方法。如果把 Lie-Trotter splitting scheme 對(duì)應(yīng)到現(xiàn)在的 Transformer 結(jié)構(gòu)上,也會(huì)是一個(gè)很自然的對(duì)應(yīng)。 但在常微分方程數(shù)值解領(lǐng)域里,對(duì)此早已有非常深入的研究,且相關(guān)研究早已有上百年的歷史,而 Lie-Trotter splitting scheme 事實(shí)上是一種早已被淘汰掉的數(shù)值解法。相較而言,Strang splitting 是一種比較好的數(shù)值解。Lie splitting 是一階的近似方法,而 Strang splitting 是一種二階的近似方法。在實(shí)際中去解常微分方程的時(shí)候, 比起無(wú)人問(wèn)津的 Lie splitting,用到的都是 Strang splitting。 這些理論分析的意義就在于如果把 Strang splitting 這種常微分方程的數(shù)值解法對(duì)應(yīng)回某一種神經(jīng)網(wǎng)絡(luò)的話(huà),這個(gè)網(wǎng)絡(luò)應(yīng)該如下圖所示: 如前所述,傳統(tǒng)網(wǎng)絡(luò)由兩部分組成,第一部分是 Multi-Head Self Attention,第二部分是 FFN。但若用新的數(shù)值解則如右側(cè)所示,表示原本 FFN 的部分首先應(yīng)該在最底層做半步?半部,接下來(lái)再放 Multi-Head Self Attention 模塊,而后再放半步 FFN 模塊——一種三明治結(jié)構(gòu),這樣對(duì)應(yīng)的是 Strang splitting 數(shù)值解的方程。 這相當(dāng)于從理論上啟發(fā)我們?cè)O(shè)計(jì)新的結(jié)構(gòu),而這種新的 Transformer 結(jié)構(gòu)叫馬卡龍,它的效果比過(guò)去傳統(tǒng)的兩層 Transformer 能提高約 1 個(gè)百分點(diǎn)。而 Google 最近提出的新結(jié)構(gòu) BERT 則消耗了海量的數(shù)據(jù)、非常多的 GPU 以及訓(xùn)練時(shí)間才使原本的 Transformer 性能有所提高。如果在訓(xùn)練數(shù)據(jù)相同的情況下,二者的性能更是基本相同,但是 Google 的工作訓(xùn)練實(shí)驗(yàn)一次需要花費(fèi)電費(fèi) 25 萬(wàn)美元。而馬卡龍則在“人力”思考的基礎(chǔ)上,用數(shù)學(xué)的方法設(shè)計(jì)出了一個(gè)更好的網(wǎng)絡(luò)。 總結(jié) 上述工作也屬于一種理論上的方法,從純粹的數(shù)學(xué)角度出發(fā),將 Deep Neural Networks 看作一種 Ordinary Differential Equation 的 Numerical solver。我們通過(guò)找常微分方程更好的數(shù)值解的方法,將其對(duì)應(yīng)回一種更好的網(wǎng)絡(luò)結(jié)構(gòu)。這種新的 Transformer 結(jié)構(gòu)的性能較之傳統(tǒng)有了顯著提升。 近一兩年來(lái),特別是以谷歌為代表的一些企業(yè)在大力推動(dòng)所謂的 AutoML,倡導(dǎo)不再去設(shè)計(jì)網(wǎng)絡(luò),即減少人在設(shè)計(jì)網(wǎng)絡(luò)這個(gè)環(huán)節(jié)里面的比重,希望用純 Learning 的方法來(lái)找出一些網(wǎng)絡(luò)的結(jié)構(gòu)。但是我們?cè)谶@里面給大家提供了一個(gè)新的途徑——仍然是人設(shè)計(jì)的方法,但不是純粹憑經(jīng)驗(yàn)設(shè)計(jì),而是將網(wǎng)絡(luò)結(jié)構(gòu)和一些數(shù)學(xué)問(wèn)題等同起來(lái),例如此前談到的把網(wǎng)絡(luò)結(jié)構(gòu)和微分方程數(shù)值解等同起來(lái)——我們通過(guò)利用過(guò)去幾百年來(lái)積累的強(qiáng)大的數(shù)學(xué)工具,去設(shè)計(jì)這種更好的網(wǎng)絡(luò)。這也是一個(gè)我們很有必要去探討的途徑。 PGD-based Adversarial training算法 關(guān)于神經(jīng)網(wǎng)絡(luò),有一張我們常見(jiàn)的圖: 左邊豬的圖像加一點(diǎn)非常小的noise (noisy image),但將此處的noise乘以0.005后再進(jìn)行疊加,從而得到右圖,人眼無(wú)法判斷出左右兩張圖的區(qū)別,但是Neural network可以識(shí)別出左圖為“豬”,同時(shí)卻又得出右圖跟“豬”毫無(wú)關(guān)聯(lián)的結(jié)論,這是眼下深度學(xué)習(xí)遇到的一個(gè)很大的困難。 對(duì)于這個(gè)問(wèn)題,今天大量的研究都是所謂的 attack 和 defense,用到了諸如 Algorithm training 等各種方法,試圖增強(qiáng)深度學(xué)習(xí)網(wǎng)路的魯棒性,但是效果比較差。更有甚者,雖然在這個(gè)方向已經(jīng)有很多機(jī)器學(xué)習(xí)工作者開(kāi)始展開(kāi)理論研究,但不幸的是,直到今天大量的理論研究給出的都是負(fù)面的結(jié)果,例如《Adversarially Robust Generalization Requires More Data》,這是去年NIPS上發(fā)表的一篇很有代表性的論文,它證明了如果想要使神經(jīng)網(wǎng)絡(luò)對(duì)于對(duì)抗樣本是 robust,那么必須要有非常多的 training data,即如果想要達(dá)到正常的 accuracy,所需要的訓(xùn)練數(shù)據(jù)量可能要有一個(gè)指數(shù)的增長(zhǎng)。 我們首先要從理論上分析,誠(chéng)如研究結(jié)論所示,要想得到一個(gè)對(duì)對(duì)抗樣本 robust 的 Classifier,確實(shí)需要更多的 data,但是我們證明了只需要更多的 unlabeled data,不需要更多的 labled data。 事實(shí)上,今天數(shù)據(jù)之所以不容易獲取,主要是因?yàn)閷?duì)數(shù)據(jù)做標(biāo)注的代價(jià)很高。如果是不需要標(biāo)注的數(shù)據(jù),那資源可謂極其豐富。所以如果能用少量的標(biāo)注數(shù)據(jù)加上大量的無(wú)標(biāo)注數(shù)據(jù),就可以做到對(duì)于對(duì)抗樣本是 robust,這項(xiàng)工作就是極具吸引力的。 而所謂“對(duì)對(duì)抗樣本 robust”,指的是對(duì)于一張正常圖片(原始圖片),如果在其周?chē)徲蚶锶我庹乙粡垐D片的話(huà),這兩張圖片的 label 應(yīng)該是相同的。關(guān)于這一點(diǎn),我們其實(shí)根本不需要知道此處的 label 是什么,這就是我們核心的想法。 基于這一想法,我們可以建立一套完整的理論,當(dāng)目標(biāo)是讓 robust accuracy 達(dá)到最高,就可以通過(guò)數(shù)學(xué)定義去定義 robust accuracy。同時(shí)還可以從理論上證明 test data 上的 robust accuracy 可以完全學(xué)習(xí)里面一些理論的分析。 Robust error 可以分成兩項(xiàng),一項(xiàng)和我們傳統(tǒng)的正常 learning error 完全相同;另一項(xiàng)是前面的第一項(xiàng),可視作一種 consistence,即一張?jiān)紙D片與其鄰域內(nèi)看起來(lái)非常像的圖片,它們的 label 應(yīng)是相同的,可以用大量的 unlabled data 來(lái)進(jìn)行訓(xùn)練。 基于上面的分析,可以設(shè)計(jì)一個(gè)新的算法,叫做 PGD-based Adversarial training。這個(gè)算法在正常的 training 基礎(chǔ)上增加一些 unlabeled data,而后在優(yōu)化的時(shí)候,不僅計(jì)算正常的分類(lèi) error,還把 unlabeled data 周邊鄰域里的圖像標(biāo)簽是否一致也記作另一組 error,連同此前的 consistence error,一起去做 training。 總結(jié) 如果想得到一個(gè)對(duì)對(duì)抗樣本 robust 的分類(lèi)器(Classifier),并不像很多之前的工作一樣必須要很多 labeled data,實(shí)際上我們可以憑借少量 labeled data,再加上足夠多的 unlabeled data 來(lái)解決——unlabel data 的獲取當(dāng)然要比 labeled data 容易很多。 孫劍:幾乎與人工智能相伴而生,計(jì)算機(jī)視覺(jué)的應(yīng)用場(chǎng)景廣度不容小覷 北京曠視科技首席科學(xué)家,西安交通大學(xué)人工智能學(xué)院院長(zhǎng)孫劍圍繞《云、端、芯上的視覺(jué)計(jì)算》這一主題展開(kāi)了分享,在介紹其團(tuán)隊(duì)在該領(lǐng)域所做的工作之外,還站在應(yīng)用層面進(jìn)行了簡(jiǎn)單的分析。 北京曠視科技首席科學(xué)家 孫劍 長(zhǎng)期以來(lái),計(jì)算機(jī)視覺(jué)當(dāng)屬 AI 領(lǐng)域的一大支柱,與之并立的還有 Speech 和 NLP,以及一些通用的人工智能研究。所謂計(jì)算機(jī)視覺(jué),其核心就是在回答一個(gè)問(wèn)題——機(jī)器如何才能讀懂照片或視頻?與此同時(shí),我們還一直在思考的是,作為一個(gè)初創(chuàng)公司或企業(yè),基于當(dāng)前的現(xiàn)狀又能做些什么? 事實(shí)上,人們對(duì)于計(jì)算機(jī)視覺(jué)的研究早在人工智能萌芽的約 5 至 8 年后遍開(kāi)始了。其中的代表人物就包括人工智能的奠基者之一——Marvin Minsky。面對(duì)復(fù)雜的人工智能研究,他在某個(gè)夏天決定先找一些簡(jiǎn)單的問(wèn)題來(lái)著手切入,于是便帶上幾個(gè)新招的暑期實(shí)習(xí)生開(kāi)始動(dòng)手了。他計(jì)劃在一個(gè)機(jī)械臂上裝入攝像頭,同時(shí)在另一邊擺上幾個(gè)積木,任務(wù)是讓機(jī)械臂將積木擺成其“看”到的人擺出樣子。這項(xiàng)看似簡(jiǎn)單的研究在實(shí)操過(guò)程中卻困難重重,面對(duì)超出想象的難度等級(jí),Minsky 也在幾年后放棄了這個(gè)方向。但作為幾乎與人工智能相伴而生的研究課題,計(jì)算機(jī)視覺(jué)于智能領(lǐng)域的意義自然非凡,倘若再擴(kuò)展到應(yīng)用層面來(lái)看,其用途更是不容小覷。 現(xiàn)如今,我們周邊環(huán)繞著大量各種各樣的 camera,因此于計(jì)算機(jī)視覺(jué)的應(yīng)用而言,如何才能讀懂所有攝像頭的 input?這些攝像頭就相當(dāng)于我們的眼睛,而計(jì)算機(jī)視覺(jué)就是需要讀懂這些眼睛的大腦。除此之外,我們要求的輸出內(nèi)容不僅是簡(jiǎn)單的意思翻譯,可能還需要了解圖像、文字等更多信息,例如某樣?xùn)|西在哪里,是什么樣的場(chǎng)景,場(chǎng)景里都有誰(shuí),他們的動(dòng)作又是什么……因此,不光輸入的場(chǎng)景多種多樣,對(duì)輸出的信息也有諸多要求。如此一來(lái),需要應(yīng)用到計(jì)算機(jī)視覺(jué)的場(chǎng)景也會(huì)很多,這也就解釋了今天國(guó)內(nèi)外計(jì)算機(jī)視覺(jué)相關(guān)的公司不僅數(shù)量大而且體量還不小的原因。 計(jì)算機(jī)視覺(jué)包含較多應(yīng)用,在研究方面一般會(huì)歸結(jié)成幾個(gè)核心的問(wèn)題,包括分類(lèi)、檢測(cè)、分割,分別是對(duì)一張圖的整體、一張圖的不同區(qū)域和一張圖的每個(gè)像素做語(yǔ)義識(shí)別。另外如果輸入的是視頻,我們還需要利用時(shí)間順序及密度等因素做出更高效的識(shí)別。其中最核心的是分類(lèi)問(wèn)題,因?yàn)樗呛竺嫒齻€(gè)任務(wù)的核心和基礎(chǔ)。而這些問(wèn)題的最大難度就在于如何研究表示照片在圖像中的存儲(chǔ)形式,以及存儲(chǔ)之后又該如何操作這個(gè)圖像的表示。David Marr 便是其間的研究代表人物之一。 David Marr 在其 80 年代的著作《視覺(jué)》一書(shū)中提出了計(jì)算機(jī)視覺(jué)的幾層構(gòu)架,描述了視覺(jué)的抽象過(guò)程,提出對(duì)于輸入圖應(yīng)該先檢測(cè)邊緣,形成 2.5 D sketch,然后再恢復(fù) 3D。但 MIT 教授 Marvin Minsky 在談及他的這一構(gòu)想時(shí)表示,這個(gè)理論很好,但是忽略了核心問(wèn)題的研究——如何表述一張圖像。 計(jì)算機(jī)視覺(jué)的早期圖像表示模型是 Part-based,比如人體可以分解成頭、胳膊、腿;人臉可以分解成眉毛、眼睛、鼻子,這樣就可以通過(guò) Part 這種組合式的方法表示物體。如果一個(gè)物體有結(jié)構(gòu),這種組合式方法很合適,但很多自然場(chǎng)景的物體沒(méi)有這么強(qiáng)的結(jié)構(gòu)就不合適了。 此后流行的方法是 Feature-Based 方式,這類(lèi)表示的方法可能抽出幾百上千的 Feature,最后變成非常高的向量,這個(gè)向量最后尋找其特征的表示。此方法是在深度學(xué)習(xí)之前統(tǒng)治圖象識(shí)別領(lǐng)域的方法,其不但可以用作圖象,對(duì)特殊的物體及人臉識(shí)別也較為有效。它最早用在 Surface 人臉的功能上,其特性是可以對(duì)圖象做一些不同的變化,但是同時(shí)也有兩大缺點(diǎn):第一,這個(gè)方法整體上是從輸入向量到另外高維向量的非線(xiàn)性變換,這個(gè)向量的變換次數(shù)是有限的,如果真正算它的非線(xiàn)性變換至多有三、四次,性能不會(huì)提高;第二,其中大多數(shù)參數(shù)是人工設(shè)計(jì)的,包括 Feature,但人設(shè)計(jì)復(fù)雜系統(tǒng)的能力是有限的。 今天的主流方法是深度神經(jīng)網(wǎng)絡(luò),這兩個(gè)特性就被改變了,整個(gè)非線(xiàn)性變換非常長(zhǎng),可以做非常多次,所以系統(tǒng)的表示能力非常強(qiáng);第二是所有的參數(shù)聯(lián)合訓(xùn)練。這兩點(diǎn)讓深度神經(jīng)網(wǎng)絡(luò)真正能夠取得非常好的效果,也包括當(dāng)時(shí)我們?cè)谖④浱岢龅?152 層的殘差網(wǎng)絡(luò) ResNet,第一次在 ImageNet 上超過(guò)了人的性能。 至于 ResNet 為什么能夠工作的問(wèn)題,至今也沒(méi)有一個(gè)明確答案,這個(gè)過(guò)程中當(dāng)然有過(guò)很多解釋。其中,最直觀的解釋是說(shuō)當(dāng)你的非線(xiàn)性變換層數(shù)非常多,相鄰兩層變換的差別就非常小,與其直接學(xué)習(xí)這個(gè)映射,不如學(xué)習(xí)映射的變化,這樣的方式就讓整個(gè)學(xué)習(xí)過(guò)程,特別是訓(xùn)練優(yōu)化過(guò)程變得更容易。 除此之外,還有一個(gè)解釋來(lái)自《Deep Residual Learning For Image Recognition》這篇論文(Kaiming He,Xiangyu Zhang,Shaoqing Ren,Jian Sun. Deep Residual Learning For Image Recognition. CVPR 2016.)的第二作者張祥雨,他認(rèn)為 ResNet 的整個(gè)學(xué)習(xí)過(guò)程是一個(gè)由淺到深的動(dòng)態(tài)過(guò)程,在訓(xùn)練初期等效訓(xùn)練一個(gè)淺層網(wǎng)絡(luò),在訓(xùn)練后期等效訓(xùn)練一個(gè)深層網(wǎng)絡(luò)。 論文第一作者何愷明有另外一個(gè)更“科學(xué)”的解釋?zhuān)J(rèn)為整個(gè)訓(xùn)練過(guò)程相當(dāng)于深度學(xué)習(xí)的梯度下降過(guò)程中,最為困難的梯度消失問(wèn)題被 ResNet 解決了,該解釋也發(fā)表在 ECCV 2016 的一篇論文(Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Identity Mapping in Deep Residual Networks. ECCV 2016.)中,并在該論文中第一次訓(xùn)練了一個(gè) 1001 層的神經(jīng)網(wǎng)絡(luò)。 還有一些同行提出的解釋。一種是把 ResNet 和 RNN 關(guān)聯(lián)起來(lái),認(rèn)為如果有 Weight Share, ResNet 可以看作是一種 RNN。還有一種解釋把 ResNet 看成是指數(shù)多個(gè)不同深度網(wǎng)絡(luò)的集成。用“集成”這個(gè)詞其實(shí)有些問(wèn)題,因?yàn)橐话阄覀冏黾伤惴ú宦?lián)合訓(xùn)練,但這里面整個(gè) ResNet 里指數(shù)多個(gè)網(wǎng)絡(luò)是聯(lián)合訓(xùn)練的,所以很難定義它是不是集成。 孫劍博士在分享過(guò)程中還特別提到了其個(gè)人比較認(rèn)同的一種解釋——Iterative Refinement,認(rèn)為網(wǎng)絡(luò)初期的層學(xué)習(xí)表示,后期很多層不斷迭代和 Refine 這個(gè)表示。這跟人理解看圖識(shí)字很相似,一個(gè)不容易理解的東西你要看一會(huì),基于當(dāng)前一些已看內(nèi)容的理解,反復(fù)看才能看懂。 還有從優(yōu)化觀點(diǎn)的解釋?zhuān)绻挥?ResNet 這種構(gòu)造,系統(tǒng)的損失函數(shù)會(huì)非??涌油萃莺透叩筒黄?,所以很難優(yōu)化。我們知道整個(gè)網(wǎng)絡(luò)訓(xùn)練是非凸的優(yōu)化問(wèn)題,如果是這種不光滑的損失函數(shù),訓(xùn)練很難跳出局部極小;如果使用 ResNet,就可以比較容易抵達(dá)一個(gè)很好的局部極小。最近研究表明,局部極小區(qū)域的面積和平坦性和一個(gè)方法的推廣能力非常強(qiáng)相關(guān)。 由是觀之,深度學(xué)習(xí)從完全不 work 或是不能呈現(xiàn),發(fā)展到今天所有人都可以非常高效、精確地呈現(xiàn)結(jié)果,實(shí)際上經(jīng)歷了很多這樣的過(guò)程。其間當(dāng)然還涉及諸多計(jì)算、數(shù)據(jù),以及一些細(xì)節(jié)上的問(wèn)題,像是初始化方法的使用也不容忽視。因?yàn)閷?duì)于一個(gè)非常復(fù)雜的邊緣系統(tǒng)而言,一個(gè)有效的初始化可謂不可或缺。此外還有非線(xiàn)性單元的問(wèn)題,我們之前慣用Sigmoid非線(xiàn)性單元,但這個(gè)單元對(duì)收斂性是有障礙的,因此在實(shí)際中常用的都是一種叫做分段線(xiàn)性的非線(xiàn)性化單元,這種方式可以讓整個(gè)收斂非常流暢——這些都是“細(xì)節(jié)”。我們都說(shuō)網(wǎng)絡(luò)結(jié)構(gòu)讓ResNet對(duì)優(yōu)化更友好,但它并沒(méi)有解決一個(gè)真正的深度學(xué)習(xí)系統(tǒng)可能會(huì)撞上的其他問(wèn)題,例如網(wǎng)絡(luò)的表示能力問(wèn)題、推廣能力問(wèn)題等。因此,正是因?yàn)橛羞@些前人做了各種各樣大大小小的詳細(xì)改進(jìn),才使得我們今天的深度學(xué)習(xí)一步步成長(zhǎng)為一個(gè)相當(dāng)強(qiáng)大的有監(jiān)督的學(xué)習(xí)工具。 多層 ResNet 學(xué)習(xí)高度非線(xiàn)性映射的能力非常強(qiáng)。2017年年底,ResNet 成功應(yīng)用于 DeepMind 的 AlphaGo Zero 系統(tǒng)中,從而使整個(gè)系統(tǒng)得到了簡(jiǎn)化,用一個(gè)40 或 80 層的網(wǎng)絡(luò)就可以學(xué)到從棋盤(pán)圖像到落子位置這樣一個(gè)高度復(fù)雜的映射。在實(shí)際應(yīng)用中,隨著網(wǎng)絡(luò)與數(shù)據(jù)越來(lái)越大,會(huì)逐漸呈現(xiàn)出這樣一種特性:在一定問(wèn)題上以及特定領(lǐng)域中,深度學(xué)習(xí)在很多場(chǎng)景下超過(guò)了人的能力,例如一些圖像識(shí)別、人臉識(shí)別任務(wù)。從學(xué)術(shù)上來(lái)說(shuō),這也讓研究員的工作實(shí)現(xiàn)了轉(zhuǎn)變,他們?cè)絹?lái)越多地從以前設(shè)計(jì) Feature 直接轉(zhuǎn)變到了設(shè)計(jì)網(wǎng)絡(luò)的結(jié)構(gòu)。 2012 年開(kāi)始有各種各樣的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)出現(xiàn)。如果從計(jì)算平臺(tái)的角度看這些工作,大概可以分成三類(lèi):第一類(lèi)是在“云”上,像 GoogleNet、ResNet,其目標(biāo)是向著最高精度方向走,有 GPU、TPU 可以訓(xùn)練非常大的模型,來(lái)探知我們的認(rèn)知邊界;第二類(lèi)平臺(tái)是在“端”上,特別是一些嵌入式設(shè)備,這些設(shè)備上的計(jì)算能力,內(nèi)存訪(fǎng)問(wèn)都有限制,但很多真實(shí)的場(chǎng)景就是如此,那你怎么去做這上面的研究工作呢?谷歌在去年提出 MobileNet 運(yùn)行在移動(dòng)端設(shè)備上,曠視科技提出了 ShuffleNet,其目標(biāo)是在一個(gè)給定計(jì)算量的設(shè)備上得到最好的效果。 一個(gè)網(wǎng)絡(luò)的最基本結(jié)構(gòu)是多個(gè) 3×3 的卷積,ResNet 加了一個(gè)跳轉(zhuǎn)連接,我們?cè)?ResNet 中還引入一個(gè) Bottleneck 結(jié)構(gòu),先做 1×1,再做 3×3,再回到 1×1,這樣可以提高卷積的效率。 2017 年有一項(xiàng)工作叫 ResNeXt,它在 3x3 的基礎(chǔ)上引入分組卷積的方法,可以很好地提高卷積的有效性;谷歌的 MobileNet 是一個(gè) 3x3 分層卷積的方式,每個(gè)層各卷各的,這種方式非常有效,特別是在低端設(shè)備上。ShuffleNet 結(jié)合分組卷積和分層卷積的思想,對(duì) 1×1 Conv 分組;但是如果只分組的話(huà),組間的信息不會(huì)交換,這樣會(huì)影響特征學(xué)習(xí),因此我們通過(guò)引入 Shuffle 操作,讓不同分組的信息更好地交換,然后做 3×3 的分層卷積,再回到 1×1 分組卷積,這就是 ShuffleNet 的核心思想。和其它方法相比,在相同的精度下,ShuffleNet 在真實(shí)設(shè)備上的速度要比 AlexNet 快 20 倍左右。 我們還需要將神經(jīng)網(wǎng)絡(luò)運(yùn)行在芯片上,這不光對(duì)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)有要求,還要對(duì)網(wǎng)絡(luò)內(nèi)部精度的表示做限制,現(xiàn)在最流行的方法是做低精度化,比如 BNN 和 XNOR Net,還有曠視科技提出的 DorefaNet。低精度方法是指神經(jīng)網(wǎng)絡(luò)的權(quán)重或激活值用低精度表示,比如 1 位,2 位,4 位。如果可以用低精度表示兩個(gè)向量,那么卷積計(jì)算就可以通過(guò)芯片上非常簡(jiǎn)單的位運(yùn)算完成計(jì)算。 上述分類(lèi)問(wèn)題網(wǎng)絡(luò)設(shè)計(jì)需要考慮不同的平臺(tái),其它問(wèn)題多是以分類(lèi)為基礎(chǔ),比如檢測(cè),上圖是檢測(cè)最近幾年的發(fā)展路程,它們都是先應(yīng)用基礎(chǔ)分類(lèi)網(wǎng)絡(luò),然后構(gòu)建不同的物體檢測(cè)框架。 今年,曠視科技與北京智源研究院聯(lián)合推出了 Objects365,該數(shù)據(jù)集包含 365 類(lèi),遠(yuǎn)超 COCO 的 80 多類(lèi),并包含 60 余萬(wàn)張照片,以及超 1000 萬(wàn)個(gè)物體框,是目前最大的物體檢測(cè)數(shù)據(jù)集。 最后,除了算法的演進(jìn),也要關(guān)注如何利用今天快速增長(zhǎng)的計(jì)算能力。眼下,我們的計(jì)算力增速已遠(yuǎn)超波爾定律,而計(jì)算能力快速增長(zhǎng)的原因則在于計(jì)算結(jié)構(gòu)的轉(zhuǎn)變,即可以將所有計(jì)算都換成神經(jīng)網(wǎng)絡(luò)向量和矩陣的計(jì)算,這些計(jì)算最大的好處是能夠突破帶寬瓶頸,把所有數(shù)據(jù)同時(shí)拉進(jìn)來(lái)進(jìn)行計(jì)算后再傳回去,遠(yuǎn)超現(xiàn)在的傳統(tǒng) CPU 體系結(jié)構(gòu)構(gòu)架,所以增長(zhǎng)非常快,這也將會(huì)是一個(gè)快速發(fā)展的趨勢(shì)。 (部分圖片和內(nèi)容來(lái)源于網(wǎng)絡(luò)) 延展閱讀:基于小樣本學(xué)習(xí)的計(jì)算機(jī)視覺(jué)應(yīng)用BAAI 北京智源人工智能研究院 眾所周知,深度學(xué)習(xí)離不開(kāi)樣本。如果要用深度學(xué)習(xí)去學(xué)習(xí)一個(gè)目標(biāo)分類(lèi)器,就需要特別多的樣本。以識(shí)別清華的“清”為例,常規(guī)操作是要收集關(guān)于“清”這個(gè)字的不同字體、傾斜和旋轉(zhuǎn)情況,以及不同的噪聲、背景、陰影——各種各樣的字都要去學(xué)習(xí)才能得到很好的分類(lèi)器。而樣本多了,問(wèn)題也就簡(jiǎn)單了。 我們?cè)缭?2013 年便做過(guò)類(lèi)似的工作,彼時(shí)深度學(xué)習(xí)剛在視覺(jué)研究領(lǐng)域得到認(rèn)可不久,又恰逢團(tuán)隊(duì)于 2012 年接到了國(guó)家自然科學(xué)基金委員會(huì)一個(gè)關(guān)于交通標(biāo)識(shí)識(shí)別的項(xiàng)目,其初衷是想支持一些團(tuán)隊(duì)的無(wú)人車(chē)研究工作。雖然車(chē)在機(jī)械層面的自動(dòng)控制等問(wèn)題的研究從 2008 年起的兩三年內(nèi)就陸續(xù)有了成果,但基金委方面認(rèn)為還需要打造一個(gè)交通標(biāo)識(shí)識(shí)別系統(tǒng),讓車(chē)輛在行進(jìn)過(guò)程中“知道”道路前方有什么樣的標(biāo)識(shí)。 到這一步問(wèn)題似乎已經(jīng)解決了,然事實(shí)并非如此——標(biāo)注數(shù)據(jù)依舊是負(fù)擔(dān)大壓力重,彼時(shí)沒(méi)有公司支持的我們,只能在基金委的資金支持下自己想辦法獲取數(shù)據(jù)并標(biāo)注,為此耗費(fèi)了很長(zhǎng)一段時(shí)間。 近年來(lái),機(jī)器學(xué)習(xí)領(lǐng)域一直不乏數(shù)據(jù)標(biāo)注方面的研究,下圖是在 12306 網(wǎng)站購(gòu)買(mǎi)火車(chē)票的體驗(yàn),其進(jìn)入頁(yè)面后用戶(hù)驗(yàn)證的過(guò)程就是在做圖像標(biāo)注,這個(gè)方法叫 Crowdsourcing(眾包)。而機(jī)器學(xué)習(xí)領(lǐng)域大約在九、十年就有類(lèi)似的研究,即在眾包的形式下如何做機(jī)器學(xué)習(xí)。 半監(jiān)督學(xué)習(xí)方法可以用于任何地方,與應(yīng)用無(wú)關(guān),但在視覺(jué)領(lǐng)域里半監(jiān)督學(xué)習(xí)有一個(gè)特別好的應(yīng)用,即交互式的圖像分割。而圖像分割工作又實(shí)屬相當(dāng)困難,在計(jì)算機(jī)視覺(jué)領(lǐng)域歷經(jīng) 40 余載研究但仍突破不大。 圖像分割的工作可以用下圖來(lái)進(jìn)行說(shuō)明,假設(shè)需要將圖中雕塑從圖像分形里摳出來(lái),看似比較困難,但在半監(jiān)督情況下可以實(shí)現(xiàn)——在中間一排,用鼠標(biāo)左鍵劃線(xiàn),告訴計(jì)算機(jī)這是想要的地方;用右鍵劃藍(lán)線(xiàn),告訴計(jì)算機(jī)這是不想要的地方,然后進(jìn)行分割。從機(jī)器學(xué)習(xí)的角度看這屬于半監(jiān)督學(xué)習(xí),從視覺(jué)的角度看這是交互,交互是圖像分割。 再如右圖所示,如果只需要保留前面的南瓜,而不要背景的南瓜,非監(jiān)督學(xué)習(xí)就可以把這項(xiàng)工作做得非常完美。同理,非監(jiān)督學(xué)習(xí)進(jìn)行圖像分割也適用于困難頗多的醫(yī)學(xué)圖像領(lǐng)域。 在此基礎(chǔ)上,圖像分割在視覺(jué)領(lǐng)域中還有很多有趣的應(yīng)用,例如要把兩朵玫瑰進(jìn)行分割并且改變其中一朵玫瑰的顏色,或是把草地上的動(dòng)物抹掉進(jìn)行背景填充,這都屬于半監(jiān)督學(xué)習(xí)的范疇。 下面一個(gè)問(wèn)題是多示例學(xué)習(xí),其研究的問(wèn)題如下圖所示:假如要進(jìn)行人臉檢測(cè),已知左邊圖像上有人臉,右邊那張圖像沒(méi)有人臉,在這種情況下能否做好人臉檢測(cè)呢?我們通常的做法是畫(huà)出人臉的框架,并摳出來(lái)進(jìn)行訓(xùn)練。但是這樣做存在一定的難度,因?yàn)橹辽俨煌四樋蚣艿拇笮∥恢檬遣灰粯拥模叭四槨北旧砭蜎](méi)有一個(gè)明確和清晰的唯一定義。 類(lèi)似的,假設(shè)我們有幾個(gè)包,每個(gè)包里面有一個(gè)樣本,現(xiàn)已知這里面每一個(gè)都含有我們要的樣本,但下面還有一個(gè)包不是我要的樣本,能不能根據(jù)已有信息把我要的樣本找出來(lái)?這有點(diǎn)像做游戲,這樣的問(wèn)題有一個(gè)經(jīng)典解法,即默認(rèn)當(dāng)我們把所有樣本收集起來(lái)時(shí),其在特征空間里會(huì)聚集在某些地方,密度最高的那些區(qū)域通常是我們要學(xué)的概念,在這個(gè)假設(shè)基礎(chǔ)上就可以做學(xué)習(xí)。這個(gè)例子的本質(zhì)是先建立一個(gè)目標(biāo)函數(shù),然后再對(duì)它進(jìn)行求解。 我們也做過(guò)一些多事例學(xué)習(xí)的工作,但現(xiàn)在很多人談及深度學(xué)習(xí)就認(rèn)為一定要把樣本十分精準(zhǔn)地標(biāo)出來(lái),其實(shí)不必如此。我們前三年還有一項(xiàng)工作工作,是對(duì)葉片上的病蟲(chóng)害進(jìn)行監(jiān)測(cè),只要一批數(shù)據(jù)有病蟲(chóng)害,另一批沒(méi)有病蟲(chóng)害,就可以據(jù)此找到病蟲(chóng)害區(qū)域,這就是用好多示例學(xué)習(xí)思想的一個(gè)實(shí)際案例,而且有趣的是,這一方法相當(dāng)于成功跳過(guò)了最困難的數(shù)據(jù)標(biāo)注環(huán)節(jié)。 另一個(gè)與數(shù)據(jù)標(biāo)注有關(guān)的問(wèn)題叫 Active learning,其思路類(lèi)似于給學(xué)生上課時(shí)不要按部就班地從頭至尾一點(diǎn)點(diǎn)講解,最好是先講一個(gè)大概,然后詢(xún)問(wèn)學(xué)生沒(méi)有聽(tīng)懂的地方,再就沒(méi)聽(tīng)懂的地方細(xì)說(shuō)。對(duì)應(yīng)到 Active learning 中來(lái)看,就是當(dāng)我們只有少量樣本的時(shí)候,可以訓(xùn)練一個(gè)分類(lèi)器,那么為了得到更多的標(biāo)注樣本,從而使得這個(gè)分類(lèi)器性能更好,我們應(yīng)該標(biāo)注哪些樣本? 如上圖所示,毫無(wú)疑問(wèn)在整個(gè)圖像中再給更多左下角和右上角的樣本其實(shí)意義不大,都能猜到那個(gè)地方不是×就是?,而且信息很充足。其實(shí)最容易出錯(cuò)的地方是在分界線(xiàn)附近,這個(gè)方法告訴我們,如果要標(biāo)樣本,在分界線(xiàn)附近的那些地方是最有價(jià)值的,只消標(biāo)少量樣本就可以達(dá)到很高的學(xué)習(xí)準(zhǔn)確率。該辦法經(jīng)證明可以迅速縮小解空間,繼而很快集中到所要的那個(gè)解,且在解空間上每標(biāo)一個(gè)樣本,就相當(dāng)于對(duì)整個(gè)解空間做劃分。Active learning 實(shí)際上與學(xué)習(xí)范式有關(guān),其與學(xué)習(xí)模型和學(xué)習(xí)方法相結(jié)合,是減少標(biāo)注樣本的一個(gè)高效方法。 另一項(xiàng)值得一提的工作叫 Co-Training,也頗有意義,其來(lái)源于 1998 年發(fā)布的一篇論文。彼時(shí),一位 CMU 的老師發(fā)表提出要將教師網(wǎng)頁(yè)和學(xué)生網(wǎng)頁(yè)進(jìn)行分類(lèi),這確乎可行,畢竟前者關(guān)心的是科研、經(jīng)費(fèi)、學(xué)生培養(yǎng)、上課等,而后者關(guān)心的則是課題、選課,游戲、電影等——二者的關(guān)注點(diǎn)不同。 既然任務(wù)可行,我們又該如何處理? 首先,我們可以考慮設(shè)計(jì)一個(gè)分類(lèi)器,這個(gè)分類(lèi)器僅根據(jù)內(nèi)容進(jìn)行分類(lèi),例如課程介紹、基金申請(qǐng)介紹、項(xiàng)目介紹,從中找出關(guān)鍵詞做分類(lèi),以?xún)?nèi)容為重;另一個(gè)重要的分類(lèi)指標(biāo)是 link,即老師和學(xué)生關(guān)心的網(wǎng)頁(yè)不同——學(xué)生可能會(huì)指向一些游戲,老師則可能會(huì)指向一些像是基金委、科技部這類(lèi)的網(wǎng)站,所以也可以根據(jù) link 來(lái)分類(lèi)。但是 link 和內(nèi)容之間孰重孰輕也不易權(quán)衡,因此很難放在一個(gè)空間里設(shè)計(jì)分類(lèi)器。 因此,就需將其分為兩部分:先用內(nèi)容設(shè)計(jì)一個(gè)分類(lèi)器 C1,再用 link 設(shè)計(jì)一個(gè)分類(lèi)器 C2。設(shè)計(jì)好后標(biāo)一些樣本,并用這些樣本來(lái)訓(xùn)練第一個(gè)分類(lèi)器,得到結(jié)果后用同樣的樣本去訓(xùn)練第二個(gè)分類(lèi)器,就得到了兩個(gè)分類(lèi)器。此時(shí)還有很多沒(méi)有標(biāo)注的數(shù)據(jù),用第一個(gè)分類(lèi)器試一下這些沒(méi)有標(biāo)的網(wǎng)頁(yè),明確是“學(xué)生”還是“老師”,再轉(zhuǎn)而用這些確認(rèn)的數(shù)據(jù)訓(xùn)練 C2。同樣也可以交換次序,先由 C2 確認(rèn)然后再訓(xùn)練 C1——如此輪換操作,得以提升整個(gè)分類(lèi)器 C1 和 C2 的性能。這項(xiàng)工作獲得了 ICML 2008 的十年最佳論文獎(jiǎng),影響力不容小覷,也因其思路簡(jiǎn)單,頗受人們喜歡。 此外,機(jī)器學(xué)習(xí)里還有一些其他的方法和工作,涉及到如何在有限樣本的情況下提升學(xué)習(xí)的準(zhǔn)確性,例如稀疏學(xué)習(xí)(Sparse Learning)、Low Rank 以及 Transfer Learning。其中,稀疏學(xué)習(xí)的思路是考慮到一些稀疏的特性,把一些稀疏優(yōu)化的技術(shù)用到學(xué)習(xí)里,稀疏學(xué)習(xí)其實(shí)不只是用在機(jī)器學(xué)習(xí)里去減少標(biāo)注量、提高準(zhǔn)確率,還可以用在別的地方。 2010 年前后,我們做了一項(xiàng)名為“圖像分離”的工作,即“混疊圖像分離”。如下所示,左邊一列有三張圖像,現(xiàn)將這幾張圖像混疊成中間第二列的三張圖像,混疊的意思就是指兩個(gè)圖像的純粹相加。當(dāng)然,混疊時(shí)這幾張圖像之間會(huì)有位置上的差異,或者說(shuō)混疊的系數(shù)不一樣,也可能會(huì)有位置的不同,以及一些平移等變化。 當(dāng)初我們的設(shè)想是希望在只有中間這一列圖像的情況下,能夠得到左邊這一列圖像。這個(gè)問(wèn)題在圖像里難度非常高,人類(lèi)能隱隱約約能感覺(jué)到一點(diǎn)不同圖像的信息,卻解決不了分離任務(wù),于是我們就用到了稀疏性——考慮一個(gè)物體雖然在整個(gè)圖像上到處都是,但是其邊緣是很稀疏的,這是非常重要的信息,我們通過(guò)邊緣的稀疏性去計(jì)算物體之間的關(guān)系,最后右邊一列是我們反解出來(lái)的圖像,和左邊一列達(dá)成了非常好的對(duì)應(yīng)。當(dāng)然,混疊圖像分離通常無(wú)法保證圖像質(zhì)量,但正確分離后能看出圖像的大概即可。 這個(gè)問(wèn)題還不止于此,原則上,一張圖像混疊的圖像要多,否則可提供信息很少。換言之,可以混疊四五張圖像,一般混疊圖像越多恢復(fù)出來(lái)的可能性越大。除此之外,我們還可以通過(guò)這個(gè)方法來(lái)做欠定,即用四張圖像混疊成兩張圖像,只有中間兩張圖像就可以把這四張圖像也恢復(fù)出來(lái)。當(dāng)然,中間圖像越少,恢復(fù)出來(lái)的質(zhì)量就會(huì)越?jīng)]那么好,如下所示,底層圖像的質(zhì)量和最上排仍存在一定差距。 在利用了稀疏特性后,會(huì)發(fā)現(xiàn)如果有類(lèi)似下圖樹(shù)木花草這樣的紋理圖像,很難看到如汽車(chē)、飛機(jī)等物體圖像那樣的清晰邊緣,還能否進(jìn)行分離?答案是肯定的——我們對(duì)稀疏性要求沒(méi)有那么高,如第一行兩張圖像混疊成第二行,最后我們把它分離成底部一行,仍然可以分離得很好。 早前所有人做這個(gè)工作都是在合成問(wèn)題上展開(kāi),也就是指給定上面兩張清晰的圖像,進(jìn)行人為的混合,混合以后再把它分離出來(lái)。其原因有二,一是我們知道標(biāo)準(zhǔn)答案,清楚兩張原始圖像是什么樣的;二是我們?cè)诨旌蠒r(shí)嚴(yán)格按照模型操作,比如線(xiàn)性疊加,而且難度已經(jīng)足夠了,所以沒(méi)有人做真實(shí)圖像測(cè)試。 那么真實(shí)圖像的操作又當(dāng)如何?于是我們創(chuàng)造了這樣的數(shù)據(jù): 假設(shè)我們面對(duì)一面玻璃,玻璃另一邊有一個(gè)張貼畫(huà),我們?cè)谶@里拍那個(gè)張貼畫(huà),所以拍的時(shí)候(如上左圖),我們既可以看到張貼畫(huà)的圖案,同時(shí)也可以看到拍攝人自己的反光,所以這是一個(gè)很真實(shí)的圖像,我們得到兩張圖像之后可以做分離。中間那一列用經(jīng)典的方法做就完全做不到,用我們的方法就可以把這兩張圖像分離開(kāi),這是我們第一次在真實(shí)圖像上嘗試。 這個(gè)現(xiàn)象其實(shí)在另外一個(gè)情況下也有可能出現(xiàn),就是在電影電視中,一個(gè)鏡頭的淡出另外一個(gè)鏡頭的淡入,此二者也會(huì)混疊,這樣的一些圖像也可以用稀疏的方式進(jìn)行分離,但這里并不是為了提高我們分類(lèi)的準(zhǔn)確性。 以上就是在深度學(xué)習(xí)之前,機(jī)器學(xué)習(xí)對(duì)小樣本問(wèn)題做的事。進(jìn)入深入學(xué)習(xí)以后,又出現(xiàn)了一些新辦法。起初在 2013-2015 那幾年,大家都熱血沸騰地去辦數(shù)據(jù)標(biāo)注公司,結(jié)果發(fā)現(xiàn)難度很大,因此該領(lǐng)域近年來(lái)以另外一種形式出現(xiàn)——叫做 Few-shot Learning。它提出了一個(gè)比較有意思的范式,該范式告訴我們,以下圖為例,前三行可以收集到大量的類(lèi)別,比如對(duì)各種各樣的樹(shù)木、植物進(jìn)行分類(lèi),但有時(shí)我們發(fā)現(xiàn)在某些類(lèi)別我們只能得到有限的三五張圖像,比如左下角這三類(lèi)。而一個(gè)非常實(shí)際的問(wèn)題在于,以后見(jiàn)到這三五類(lèi)圖像的時(shí)候我們能否識(shí)別好。 DualTriNet 實(shí)際上是對(duì)數(shù)據(jù)很少的類(lèi)別做 feature-levelaugmentation,它由 EncoderTriNet 和 DecoderTriNet 組成,如上圖所示。Encoder 的輸入為 ResNet 關(guān)于一張輸入圖像的各層特征圖,輸出為該圖像對(duì)應(yīng)的語(yǔ)義向量,通過(guò)對(duì)該語(yǔ)義向量進(jìn)行增廣之后(增廣的手段包括對(duì)語(yǔ)義向量加隨機(jī)高斯噪聲等),便形成了新的語(yǔ)義向量,該語(yǔ)義向量被認(rèn)為是屬于同類(lèi)的其他圖像的語(yǔ)義向量。通過(guò) Decoder 網(wǎng)絡(luò)對(duì)增廣的語(yǔ)義向量進(jìn)行反解碼,形成各層的特征圖,最后用原特征圖和增廣得到的特征圖對(duì) ResNet 進(jìn)行充分訓(xùn)練。由于可以無(wú)限增廣,所以可以達(dá)到增加訓(xùn)練數(shù)據(jù)量的效果。 但是,在語(yǔ)義空間的構(gòu)造過(guò)程中,這個(gè)算法需要用到額外的媒介信息,比如類(lèi)別層面的 word2vec 或 attributevector 信息,以此來(lái)構(gòu)建任務(wù)類(lèi)別(包括訓(xùn)練類(lèi)和測(cè)試類(lèi))之間新的語(yǔ)義關(guān)系,從而來(lái)指導(dǎo)語(yǔ)義向量的解碼過(guò)程。 本質(zhì)上來(lái)說(shuō),基于數(shù)據(jù)增廣的 few-shotlearning 方法并沒(méi)有擺脫基于大量數(shù)據(jù)的學(xué)習(xí)框架,且增廣得到的特征或數(shù)據(jù)并不能完全擬合真實(shí)數(shù)據(jù)的分布。 Prototypicalnets 的主要思路是為每一類(lèi)生成一個(gè)原型表征,這個(gè)表征可以通過(guò)對(duì)該類(lèi)僅有的幾個(gè)樣本的 embedding 進(jìn)行平均而得到,如果每一類(lèi)只有一個(gè)訓(xùn)練樣本,那該僅有的單樣本的 embedding 自然就是該類(lèi)的原型表征。 對(duì)于測(cè)試樣本,會(huì)計(jì)算該測(cè)試樣本的 embedding 與每類(lèi)原型表征點(diǎn)的距離,然后用 softmax 形式形成類(lèi)別預(yù)測(cè)的概率分布,進(jìn)而進(jìn)行訓(xùn)練或預(yù)測(cè)。 embedding 的生成過(guò)程通過(guò)一個(gè) CNN 實(shí)現(xiàn),整個(gè)網(wǎng)絡(luò)的訓(xùn)練也借鑒了 matchingnetwork 提出的 episodictraining 策略。 該方法的問(wèn)題在于:embeddings 之間距離度量的選擇會(huì)很大程度地影響算法性能,另外,當(dāng)任務(wù)類(lèi)別數(shù)量增加或單類(lèi)樣本增加時(shí),不同類(lèi)之間的 prototyperepresentation 區(qū)分度會(huì)有所降低,這種在 embedding 空間的最近鄰分類(lèi)策略將難以應(yīng)付。 MAML 算法是一種經(jīng)典的基于元學(xué)習(xí)思路去解決 few-shotlearning 任務(wù)的算法。將每個(gè) few-shotlearning 任務(wù)視為一個(gè) task,那么 MAML 的思路是學(xué)一個(gè)兼顧眾多獨(dú)立 task 的模型參數(shù)初始值,以期能在新的 task 的幾個(gè)樣本上只需經(jīng)過(guò)數(shù)步的 fine-tune 操作就能使模型在該任務(wù)上達(dá)到較好的泛化性能(如左上圖,三個(gè)方向代表三個(gè)不同的 few-shotlearningtasks)。 本質(zhì)上,MAML 是尋找到了一些對(duì) task 化敏感的參數(shù),使得當(dāng)梯度方向改變時(shí),小的參數(shù)變動(dòng)能夠帶來(lái)較大的損失函數(shù)變化,從這一點(diǎn)上增強(qiáng)模型對(duì)諸多小樣本學(xué)習(xí) tasks 的平均泛化能力。 先進(jìn)制造業(yè)+工業(yè)互聯(lián)網(wǎng) 產(chǎn)業(yè)智能官 AI-CPS 加入知識(shí)星球“產(chǎn)業(yè)智能研究院”:先進(jìn)制造業(yè)OT(自動(dòng)化+機(jī)器人+工藝+精益)和工業(yè)互聯(lián)網(wǎng)IT(云計(jì)算+大數(shù)據(jù)+物聯(lián)網(wǎng)+區(qū)塊鏈+人工智能)產(chǎn)業(yè)智能化技術(shù)深度融合,在場(chǎng)景中構(gòu)建“狀態(tài)感知-實(shí)時(shí)分析-自主決策-精準(zhǔn)執(zhí)行-學(xué)習(xí)提升”的產(chǎn)業(yè)智能化平臺(tái);實(shí)現(xiàn)產(chǎn)業(yè)轉(zhuǎn)型升級(jí)、DT驅(qū)動(dòng)業(yè)務(wù)、價(jià)值創(chuàng)新創(chuàng)造的產(chǎn)業(yè)互聯(lián)生態(tài)鏈。 版權(quán)聲明:產(chǎn)業(yè)智能官(ID:AI-CPS)推薦的文章,除非確實(shí)無(wú)法確認(rèn),我們都會(huì)注明作者和來(lái)源,涉權(quán)煩請(qǐng)聯(lián)系協(xié)商解決,聯(lián)系、投稿郵箱:erp_vip@hotmail.com。 |
|