智源論壇 | 清華大學(xué)張長(zhǎng)水:基于小樣本學(xué)習(xí)的計(jì)算機(jī)視覺(jué)應(yīng)用

本文為智源論壇第 5 期機(jī)器學(xué)習(xí)系列報(bào)告會(huì)的要點(diǎn)回顧第二彈。
7 月 10 日,清華大學(xué)自動(dòng)化系教授張長(zhǎng)水在智源論壇上同大家分享了其“關(guān)于小樣本學(xué)習(xí)的一些思路”。作為國(guó)內(nèi)機(jī)器學(xué)習(xí)領(lǐng)域的前沿開(kāi)拓者,張長(zhǎng)水教授的專(zhuān)業(yè)方向包括機(jī)器學(xué)習(xí)、人工智能、模式識(shí)別、計(jì)算機(jī)視覺(jué)等,他不僅僅在學(xué)術(shù)領(lǐng)域取得了非常高的成就,同時(shí)也培養(yǎng)了一大批優(yōu)秀的機(jī)器學(xué)習(xí)人才。2018 年,張長(zhǎng)水博士因?qū)Α靶盘?hào)處理中的半監(jiān)督學(xué)習(xí)”方面的貢獻(xiàn)當(dāng)選國(guó)際電氣與電子工程師協(xié)會(huì)會(huì)士(IEEE Fellow)。目前在 TPAMI 等期刊擔(dān)任編委(Associate Editor)。
在此次分享中,張長(zhǎng)水教授重點(diǎn)介紹了半監(jiān)督學(xué)習(xí)在樣本需求大、數(shù)據(jù)標(biāo)注難的深度學(xué)習(xí)研究環(huán)境下的意義,包括其團(tuán)隊(duì)在解決計(jì)算機(jī)視覺(jué)問(wèn)題中的一些機(jī)器學(xué)習(xí)方法,以及當(dāng)前研究中存在問(wèn)題的進(jìn)展。更多細(xì)節(jié)回顧,參見(jiàn)以下正文部分。


眾所周知,深度學(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í)。
當(dāng)時(shí)用深度學(xué)習(xí)方法去研發(fā)交通標(biāo)識(shí)識(shí)別系統(tǒng)的效果不錯(cuò),單張圖像識(shí)別率約為 99.5%。如下圖右側(cè)所示,我們?cè)谄?chē)的擋風(fēng)玻璃上安裝了攝像頭,類(lèi)似于現(xiàn)在的行車(chē)記錄儀。但從車(chē)的角度來(lái)說(shuō)卻完全不能滿(mǎn)足要求,因?yàn)檫@意味著一千張圖像里就會(huì)有四五張分錯(cuò)。在一秒鐘 24 張圖像,一小時(shí) 3600 秒的實(shí)際情況面前,這樣的誤差顯然不容忽視。

前面說(shuō)的是“單張圖片”的情況,但若是在視頻流過(guò)來(lái)之時(shí),遠(yuǎn)處的標(biāo)識(shí)就會(huì)隨著走近逐漸變得很大很清晰,所以連續(xù)的一張一個(gè)交通標(biāo)識(shí)會(huì)在視頻里出現(xiàn)很多次,信息關(guān)聯(lián)后錯(cuò)誤率也不會(huì)太大,所以在參與“智能車(chē)未來(lái)挑戰(zhàn)賽”時(shí)候的效果就非常好。然而由于這部分工作實(shí)際上和一些地圖應(yīng)用的功能重合了,所以基金委真正需要的是地圖導(dǎo)航應(yīng)用不能告訴我們的信息,特別是紅綠燈。因此我們改道研究針對(duì)路上標(biāo)識(shí)的識(shí)別,達(dá)到了 99.49% 的識(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í)。

這也是一個(gè)大家長(zhǎng)期以來(lái)持續(xù)關(guān)注的難題,一方面是因?yàn)檫@個(gè)過(guò)程可能會(huì)有噪聲;另一方面是獲取數(shù)據(jù)本身就很難。以交通標(biāo)識(shí)的識(shí)別為例,需要對(duì)每一張交通標(biāo)識(shí)的各種表現(xiàn)進(jìn)行收集,但像是“連續(xù)急轉(zhuǎn)彎標(biāo)識(shí)”這樣的圖像在數(shù)據(jù)里出現(xiàn)的次數(shù)特別少,數(shù)據(jù)獲取也就相對(duì)比較困難——現(xiàn)實(shí)確乎給當(dāng)前的我們提出了諸多難題。

為了應(yīng)對(duì)這些問(wèn)題,在機(jī)器學(xué)習(xí)方面還有一項(xiàng)較早的研究工作——半監(jiān)督學(xué)習(xí),其大約在 1998 年走入研究人員的視野,關(guān)注度也自此不斷上漲,并一直持續(xù)到 2010 年前后,其間各種各樣的半監(jiān)督學(xué)習(xí)類(lèi)工作迭出。
何為半監(jiān)督學(xué)習(xí)?做機(jī)器學(xué)習(xí)時(shí),如果有大量監(jiān)督樣本無(wú)疑能學(xué)得很好,但數(shù)據(jù)標(biāo)注又很困難;非監(jiān)督學(xué)習(xí)用到了很多未標(biāo)注數(shù)據(jù),我們學(xué)到的又不一定正確。而所謂半監(jiān)督學(xué)習(xí)就是采此二者之長(zhǎng),運(yùn)用一部分標(biāo)注好的樣本和大量沒(méi)有標(biāo)注的樣本,一部分有監(jiān)督一部無(wú)監(jiān)督。
如下所示,左上角的圖是由各個(gè)樣本點(diǎn)構(gòu)成的,而該圖即是他們之間的關(guān)系,所有黑色的點(diǎn)之間是沒(méi)有標(biāo)注的。當(dāng)給定一個(gè)藍(lán)色樣本和紅色樣本時(shí),憑借其標(biāo)簽沿著該圖進(jìn)行傳播,最后到右下角,就可以給定所有樣本標(biāo)簽,這就是半監(jiān)督學(xué)習(xí)的一個(gè)例子。

運(yùn)用這個(gè)方法時(shí)會(huì)有這樣的情況:構(gòu)造一個(gè)目標(biāo)函數(shù),并通過(guò)不斷迭代的方法給出一個(gè)解,最后這個(gè)解會(huì)收斂,收斂結(jié)果是上圖中的最底下一行。這是我們團(tuán)隊(duì)早期在 2009 年左右的一項(xiàng)工作,借此我們了解到半監(jiān)督學(xué)習(xí)一定會(huì)收斂,同時(shí)還分析了它和已有的流形學(xué)習(xí)之間存在的關(guān)系。
半監(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 余載研究但仍突破不大。
分割之難,在于對(duì)同一個(gè)圖像而言,人與人之間的需求不盡相同,根本不可能給出一個(gè)滿(mǎn)足所有人要求的統(tǒng)一算法。當(dāng)然從機(jī)器學(xué)習(xí)的角度來(lái)看,這就是聚類(lèi)問(wèn)題,但非監(jiān)督學(xué)習(xí)永遠(yuǎn)無(wú)法保證其正確性,所以用上監(jiān)督學(xué)習(xí)就能做得非常完美。
圖像分割的工作可以用下圖來(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è)明確和清晰的唯一定義。

對(duì)此我們有一個(gè)思路,就是給機(jī)器一個(gè)很弱的標(biāo)簽,即整張圖像有人臉,但不告知具體位置,同時(shí)告知右邊圖像沒(méi)有人臉。在這種情況下能不能做機(jī)器學(xué)習(xí),這是我們關(guān)心的問(wèn)題。人們稱(chēng)之為“多示例學(xué)習(xí)”,其含義是其中有很多例子,已知有的是人臉,有的不是,同時(shí)還有很多圖像中一個(gè)人臉都沒(méi)有,能否在這樣的條件下做學(xué)習(xí)?
類(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è)高效方法。
除此之外,還有 Multi-Label Learning。以下圖為例,對(duì)于其中這張圖像我們會(huì)有一個(gè)標(biāo)注,這張標(biāo)注可能是關(guān)于城市的,可能是汽車(chē)、樓房,也可能是道路、人、樹(shù)。這些標(biāo)簽之間彼此關(guān)聯(lián)(如下圖右側(cè)關(guān)系樹(shù)所示),一張圖像會(huì)用不同的標(biāo)簽,而我們則應(yīng)充分利用這些標(biāo)簽之間的關(guān)系,從而使我們的預(yù)測(cè)結(jié)果更為準(zhǔn)確——這就是“多標(biāo)簽學(xué)習(xí)”。

另一項(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)答案,清楚兩張?jiān)紙D像是什么樣的;二是我們?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í)別好。

針對(duì)這一問(wèn)題,近幾年有一些典型的工作:第一類(lèi)是通過(guò)樣本的生成完成工作,其做法是一些圖像經(jīng)過(guò)卷積神經(jīng)網(wǎng)絡(luò)后,到了特征空間,同時(shí)在特征空間做一些擾動(dòng),加一些噪聲,生成各種各樣的圖像,使它的泛化性能更好;另外一類(lèi)工作是當(dāng)只有左下角那幾張圖像時(shí),給每一張圖像算一個(gè)圓心,即做一個(gè)平均,算完圓心以后如果新來(lái)一個(gè)樣本 X,可以計(jì)算 X 領(lǐng)域內(nèi)這三個(gè)圓形樣本之間的距離,它與誰(shuí)的距離近就分成哪一類(lèi),通過(guò)求解對(duì)新的 query 進(jìn)行分類(lèi)。該方法的好處在于適用于只有一個(gè)樣本的場(chǎng)景,即所謂的 One-shot Learning。但是其效果也比較受限,因?yàn)樗玫男畔⑻?,所以效果沒(méi)那么好;還有一類(lèi)方法叫“元學(xué)習(xí)”,其思路是將每一個(gè)分類(lèi)項(xiàng)目當(dāng)成不同的任務(wù),同時(shí)研究這些分類(lèi)任務(wù)之間的共同點(diǎn),并希望通過(guò)這些學(xué)到的共同點(diǎn)在以后遇見(jiàn)新問(wèn)題時(shí),能夠根據(jù)少量的樣本做調(diào)整,從而實(shí)現(xiàn)對(duì)新的類(lèi)別進(jìn)行分類(lèi)的目的——這便是眼下主流的三類(lèi)思路,以下為詳解:

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 的平均泛化能力。
