認識人和魚(yú)的AI,能識別美人魚(yú)嗎?阿里CVPR論文試用因果推理方法解答
學(xué)過(guò)人類(lèi)照片和魚(yú)類(lèi)照片的 AI,第一次見(jiàn)到美人魚(yú)的照片會(huì )作何反應?人臉和魚(yú)身它都很熟悉,但它無(wú)法想象一個(gè)從沒(méi)見(jiàn)過(guò)的事物。近期,阿里巴巴達摩院將因果推理方法引入計算機視覺(jué)領(lǐng)域,嘗試克服機器學(xué)習方法的缺陷,讓 AI 想象從未見(jiàn)過(guò)的事物,相關(guān)論文已被計算機視覺(jué)頂會(huì ) CVPR 2021 收錄。
論文鏈接:https://arxiv.org/pdf/2103.00887.pdf
代碼鏈接:https://github.com/yue-zhongqi/gcm-cf
計算機視覺(jué)(CV,Computer Vision)是研究如何讓機器「看」的科學(xué),通過(guò)將非結構化的圖像和視頻數據進(jìn)行結構化的特征表達,讓 AI 理解視覺(jué)信息。深度學(xué)習出現后,AI 在 CV 領(lǐng)域的很多任務(wù)上表現出了超越人類(lèi)的能力。不過(guò),比起人類(lèi)的視覺(jué)理解能力,AI 仍是非?!傅途S」的存在。
通過(guò)人和魚(yú)的形象來(lái)想象美人魚(yú),對人來(lái)說(shuō)輕而易舉,AI 卻極有可能把美人魚(yú)胡亂歸入「人」或「魚(yú)」中的一類(lèi)。因為它們缺乏「想象」這一高級別認知能力?,F階段的機器學(xué)習技術(shù)本質(zhì)是通過(guò)觀(guān)測數據進(jìn)行擬合,這導致 AI 只認得學(xué)過(guò)的事物,遇到超越訓練數據的對象,往往容易陷入「人工智障」。
圖靈獎得主、因果關(guān)系演算法創(chuàng )立者朱迪 · 珀爾認為,人類(lèi)的想象能力源于我們自帶因果推理技能的大腦。人類(lèi)善問(wèn)「為什么」,也就是尋求事物的因果關(guān)系。借助這套認知系統,我們用「小數據」就能處理現實(shí)世界無(wú)限的「大任務(wù)」。而 AI 卻只能用「大數據」來(lái)處理「小任務(wù)」,如果 AI 能夠學(xué)會(huì )因果推理,就有望打破「智商天花板」,甚至通向強人工智能。
因果推理理論極大地啟發(fā)了研究者,其與機器學(xué)習的結合日益受到關(guān)注。在工業(yè)界,達摩院城市大腦實(shí)驗室最早將因果推理方法引入 CV 領(lǐng)域,用因果推理模型賦能機器學(xué)習模型,讓視覺(jué) AI 更智能。今年,該團隊與南洋理工大學(xué)合作了《反事實(shí)的零次和開(kāi)集識別》(Counterfactual Zero-Shot and Open-Set Visual Recognition)等三篇采用因果推理方法的論文,均被 CVPR 2021 收錄。
左為現有方法的 AI「想象」結果,中為達摩院論文提出的算法核心,右為基于達摩院框架完成的想象結果。在左右二圖中,紅色代表訓練集里面的樣本,藍色是 AI 未見(jiàn)過(guò)類(lèi)別的樣本,綠色是 AI 對未見(jiàn)過(guò)類(lèi)別的想象。
零次學(xué)習是指讓機器分類(lèi)沒(méi)見(jiàn)過(guò)的對象類(lèi)別,開(kāi)集識別要求讓機器把沒(méi)見(jiàn)過(guò)的對象類(lèi)別標成「不認識」,兩個(gè)任務(wù)都依賴(lài)想象能力?!斗词聦?shí)的零次和開(kāi)集識別》提出了一種基于反事實(shí)的算法框架,通過(guò)解耦樣本特征(比如對象的姿勢)和類(lèi)別特征(比如是否有羽毛),再基于樣本特征進(jìn)行反事實(shí)生成。在常用數據集上,該算法的準確率超出現有頂尖方法 2.2% 到 4.3%。論文作者岳中琪指出,AI 認知智能的進(jìn)化剛剛開(kāi)始,業(yè)界的探索仍處在早期階段,今后他們將不斷提升和優(yōu)化相關(guān)算法。
城市大腦實(shí)驗室介紹稱(chēng),數據驅動(dòng)的機器學(xué)習模型普遍面臨數據不均衡問(wèn)題,「以城市為例,它的信息呈長(cháng)尾分布,相比海量的正常信息,交通事故、車(chē)輛違規、突發(fā)災害等異常信息的發(fā)生概率很小,樣本稀少,盡管可以通過(guò)大量增加少見(jiàn)樣本的辦法來(lái)部分解決問(wèn)題,但這么做成本高、效率低?!?/p>
基于自研算法,只需使用正常信息樣本,就能讓 AI 獲得無(wú)偏見(jiàn)的異常檢測結果。一旦出現緊急情況,比如某輛車(chē)和某個(gè)行人發(fā)生異常交互,城市大腦不必不懂裝懂或視而不見(jiàn),而是可以實(shí)時(shí)識別和反饋信息?!刮磥?lái),這一技術(shù)有望應用于城市基礎視覺(jué)算法體系優(yōu)化、極少樣本城市異常事件感知能力優(yōu)化乃至多模態(tài)語(yǔ)義搜索、智能圖文生成等領(lǐng)域。
CVPR 是計算機視覺(jué)領(lǐng)域三大頂會(huì )之一,CVPR 2021 會(huì )議將于 6 月 19 日至 25 日在線(xiàn)舉行。今年大會(huì )收錄論文 1663 篇,接受率 27%。阿里巴巴集團入選論文 41 篇,是 2020 年的 2.6 倍。
在下文中,《反事實(shí)的零次和開(kāi)集識別》論文一作岳中琪對他們的論文進(jìn)行了解析。
《反事實(shí)的零次和開(kāi)集識別》論文解析
現有的零次學(xué)習和開(kāi)集識別中,見(jiàn)過(guò)和未見(jiàn)過(guò)類(lèi)別間識別率嚴重失衡,我們發(fā)現這種失衡是由于對未見(jiàn)過(guò)類(lèi)別樣本失真的想象。由此,我們提出了一種反事實(shí)框架,通過(guò)基于樣本特征的反事實(shí)生成保真,在各個(gè)評估數據集下取得了穩定的提升。這項工作的主要優(yōu)勢在于:
我們提出的 GCM-CF 是一個(gè)見(jiàn)過(guò) / 未見(jiàn)過(guò)類(lèi)別的二元分類(lèi)器,二元分類(lèi)后可以適用任何監督學(xué)習(在見(jiàn)過(guò)類(lèi)別上)和零次學(xué)習算法(在未見(jiàn)過(guò)類(lèi)別上);
我們提出的反事實(shí)生成框架適用于各種生成模型,例如基于 VAE、GAN 或是 Flow 的;
我們提供了一種易于實(shí)現的兩組概念間解耦的算法
接下來(lái)我會(huì )具體介紹我們針對的任務(wù)、提出的框架和對應的算法。
零次學(xué)習和開(kāi)集識別
很多人都認識羚羊和貘這兩種動(dòng)物(如上圖所示),那么一個(gè)鼻子像貘的羚羊長(cháng)什么樣呢?可能大家能想象出一個(gè)類(lèi)似于圖右的動(dòng)物(它叫高鼻羚羊)。在上面的過(guò)程中,我們就是在做零次學(xué)習(Zero-Shot Learning, ZSL):雖然我們沒(méi)見(jiàn)過(guò)高鼻羚羊,但是通過(guò)現有的關(guān)于羚羊和貘的知識,我們就能想象出來(lái)這個(gè)未見(jiàn)類(lèi)別的樣子,相當于認識了這個(gè)動(dòng)物。事實(shí)上,這種將已有知識泛化到未見(jiàn)事物上的能力,正是人能夠快速學(xué)習的一個(gè)重要原因。
我們再來(lái)看一個(gè)路牌的例子,我們很容易就認出左邊的兩個(gè)路牌是熟悉的、見(jiàn)過(guò)的,而右邊的則是一個(gè)很奇怪的沒(méi)見(jiàn)過(guò)的路牌。人類(lèi)很容易就能完成這樣的開(kāi)集識別(Open-Set Recognition, OSR),因為我們不僅熟悉見(jiàn)過(guò)的樣本,也有對未知世界的認知能力,使得我們知道見(jiàn)過(guò)和未見(jiàn)之間的邊界。
在機器學(xué)習當中,這兩個(gè)任務(wù)的定義如上圖所示。零次學(xué)習訓練集提供類(lèi)別集合 S。對于上面的圖片,除了每張圖片的類(lèi)別標簽,每個(gè)類(lèi)別還額外有一個(gè)屬性特征 (attribute) 來(lái)描述這個(gè)類(lèi)的特點(diǎn)(比如有翅膀,圓臉等等)。測試的時(shí)候有兩種設定:在 Conventional ZSL 下全部是未見(jiàn)類(lèi)別 U 中的圖片(S∩U=?),并且測試的時(shí)候也會(huì )給定 U 類(lèi)別的 dense label。而在 Generalized ZSL 中,測試集會(huì )有 S 和 U 中的圖片。開(kāi)集識別的訓練集則和普通的監督學(xué)習沒(méi)有差別,只是在測試的時(shí)候會(huì )有訓練未見(jiàn)過(guò)類(lèi)別的樣本。分類(lèi)器除了正確識別見(jiàn)過(guò)的類(lèi),還要將未見(jiàn)過(guò)的類(lèi)標成「未知」。
現有的 ZSL 和 OSR 的主要方法是基于生成的,比如 ZSL 中用未見(jiàn)類(lèi)別的屬性特征生成圖片,然后在 image space 中進(jìn)行比較。然而,生成模型會(huì )自然地偏向見(jiàn)過(guò)的訓練集,使得對于未見(jiàn)類(lèi)別的想象失真了(這其實(shí)是因為屬性特征的 entanglement,這里我不詳細展開(kāi),大家可以參考一下論文)。比如訓練的時(shí)候見(jiàn)過(guò)大象的長(cháng)鼻子,而去想象沒(méi)見(jiàn)過(guò)的貘的長(cháng)鼻子的時(shí)候,就會(huì )想象成大象的鼻子。左邊的圖展現了這種失真:紅色是訓練集里面的樣本,藍色是 ground-truth 的未見(jiàn)過(guò)類(lèi)別的樣本,綠色是現有方法對未見(jiàn)過(guò)類(lèi)別的想象,這些想象已經(jīng)脫離了樣本空間,既不像見(jiàn)過(guò)的類(lèi),也不像沒(méi)見(jiàn)過(guò)的類(lèi)(綠色的點(diǎn)偏離了藍色和紅色的點(diǎn))。這就解釋了為什么見(jiàn)過(guò)和未見(jiàn)過(guò)類(lèi)別的識別率會(huì )失衡了:用綠色和紅色樣本學(xué)習的分類(lèi)器(黑色虛線(xiàn))犧牲了未見(jiàn)過(guò)類(lèi)的 recall 來(lái)提高見(jiàn)過(guò)類(lèi)的 recall。
反事實(shí)生成框架
那么如何在想像的時(shí)候保真?我們來(lái)思考一下人是怎么想像的:在想像一個(gè)古代生物的樣子時(shí),我們會(huì )基于它的化石骨架(圖左);在想象動(dòng)畫(huà)世界的一個(gè)場(chǎng)景時(shí),我們會(huì )參考現實(shí)世界(圖右)。這些想象的本質(zhì)其實(shí)是一種反事實(shí)推理(counterfactual inference),給定這樣的化石(fact),如果它還活著(zhù)(counterfact),會(huì )是什么樣子呢?給定現實(shí)世界的某個(gè)場(chǎng)景,如果這個(gè)場(chǎng)景到了動(dòng)畫(huà)世界,它是什么樣子呢?我們的想象,通過(guò)建立在 fact 的基石上,就變得合情合理而非天馬行空。
那么可否在 ZSL 和 OSR 當中利用反事實(shí)產(chǎn)生合理的想象呢?我們首先為這兩個(gè)任務(wù)構建了一個(gè)基于因果的生成模型 Generative Causal Model (GCM),我們假設觀(guān)測到的圖片 X 是由樣本特征 Z(和類(lèi)別無(wú)關(guān),比如物體的 pose 等)和類(lèi)別特征 Y(比如有羽毛,圓臉等)生成的?,F有的基于生成的方法其實(shí)在學(xué)習 P(X|Z,Y),然后把 Y 的值設為某個(gè)類(lèi)的特征(比如 ZSL 中的 dense label),把 Z 設成高斯噪聲,就可以生成很多這個(gè)類(lèi)的樣本了。
反事實(shí)生成和現有生成模型的最大區別就是基于特定的樣本特征 Z=z(fact)來(lái)進(jìn)行生成,而非高斯噪聲。具體過(guò)程如上圖所示,對于一個(gè)圖片 x,我們通過(guò) encoder z(?)拿到這個(gè)圖片的樣本特征 Z=z(x)(比如 front-view,walking 等),基于這個(gè)樣本特征 Z(fact)和不同的類(lèi)別特征 Y(counterfact),我們可以生成不同類(lèi)別的反事實(shí)圖片 x ?(front-view,walking 的貓,羊和雞等等)。直覺(jué)上我們知道,因為反事實(shí)生成的貓、羊和雞的圖片和 x 不像,x 肯定不屬于這三個(gè)類(lèi)別。這種直覺(jué)其實(shí)是有理論支持的 --- 叫做反事實(shí)一致性(Counterfactual Consistency Rule),通俗的解釋就是 counterfact 和 fact 重合時(shí),得到的結果就是 factual 的結果,比如 fact 是昨天吃冰淇凌拉肚子,那么反事實(shí)問(wèn)題「如果我昨天吃冰淇凌會(huì )怎么樣呢?」的答案就是拉肚子。那么如何通過(guò) consistency rule 解決 ZSL 和 OSR 呢?
GCM-CF 算法
我們的 GCM-CF 算法流程如上圖所示,它本質(zhì)上是一個(gè)基于 consistency rule 的二元分類(lèi)器,去判斷某個(gè)樣本是屬于見(jiàn)過(guò)還是沒(méi)見(jiàn)過(guò)的類(lèi)。
訓練的時(shí)候我們學(xué)習一個(gè) GCM。測試的時(shí)候,對于每個(gè)樣本 X=x,我們用上一節介紹的步驟進(jìn)行反事實(shí)生成:用這個(gè)樣本自己的 Z=z(x),拼上不同的類(lèi)別特征 Y=y,然后用 P(X|Z=z(x),Y=y)生成 x ?。這樣生成的樣本可以證明是「保真」(Counterfactual Faithful)的,也就是在樣本空間里面,那么我們就能夠用樣本空間當中的量度去比較 x 和生成的 x ?,從而用 consistency rule 判斷 x 是屬于見(jiàn)過(guò)的還是沒(méi)見(jiàn)過(guò)的類(lèi)。
具體到任務(wù)中,在 ZSL 里面,我們用未見(jiàn)過(guò)類(lèi)別的 attribute(圖中 Y_U)生成反事實(shí)樣本,然后用訓練集的樣本(見(jiàn)過(guò)的類(lèi))和生成的樣本(未見(jiàn)過(guò)的類(lèi))訓練一個(gè)線(xiàn)性分類(lèi)器,對輸入樣本 X=x 進(jìn)行分類(lèi)后,我們取見(jiàn)過(guò)類(lèi)和未見(jiàn)過(guò)類(lèi)概率的 top-K 的平均值。如果未見(jiàn)過(guò)類(lèi)上的平均值較小,我們就認為樣本 X=x 不像未見(jiàn)過(guò)的類(lèi)(not consistent),把這個(gè)樣本標注成屬于見(jiàn)過(guò)的類(lèi),并使用在見(jiàn)過(guò)類(lèi)的樣本上面監督學(xué)習的分類(lèi)器來(lái)分類(lèi)(這其實(shí)是基于 consistency rule 的換質(zhì)位推理,具體見(jiàn)論文);反之如果 consistent,就標注為為見(jiàn)過(guò)的類(lèi),然后用任何 Conventional ZSL 的算法對其分類(lèi)。在 OSR 里面,因為沒(méi)有未見(jiàn)類(lèi)別的信息,我們用見(jiàn)過(guò)類(lèi)的 one-hot label(圖中 Y_S)作為 Y 生成反事實(shí)樣本,如果 x 和生成的樣本在歐式距離下都很遠(not consistent),就認為 x 屬于未見(jiàn)過(guò)的類(lèi),并標為「未知」,反之則用監督學(xué)習的分類(lèi)器即可。
可以看到,算法的核心要求是生成保真的樣本,這樣才能用 consistency rule 做推理。這個(gè)性質(zhì)可以由 Counterfactual Faithfulness Theorem 來(lái)保證,簡(jiǎn)單來(lái)說(shuō)就是:保真生成的充要條件是樣本特征和類(lèi)別特征之間解耦(disentangle)。我們通過(guò)三個(gè) loss 實(shí)現:
β-VAE loss:這個(gè) loss 要求 encode 得到的 Z=z(x),和樣本自己的 Y=y,可以重構樣本 X=x,并且 encode 出來(lái)的 Z 要非常符合 isotropic Gaussian 分布。這樣通過(guò)使 Z 的分布和 Y 無(wú)關(guān)實(shí)現解耦;
Contrastive loss:反事實(shí)生成的樣本中,x 只和自己類(lèi)別特征生成的樣本像,和其他類(lèi)別特征生成的樣本都遠。這個(gè)避免了生成模型只用 Z 里面的信息進(jìn)行生成而忽略了 Y,從而進(jìn)一步把 Y 的信息從 Z 里解耦;
GAN loss:這個(gè) loss 直接要求反事實(shí)生成的樣本被 discriminator 認為是真實(shí)的,通過(guò)充要條件,用保真來(lái)進(jìn)一步解耦。
實(shí)驗
在介紹實(shí)驗前,值得注意的是 ZSL 常用的 Proposed Split 官方給的數據集之前有一個(gè)數據泄露的 bug,這使得一些方法在見(jiàn)過(guò)類(lèi)別(S)的表現特別高。去年的時(shí)候官方網(wǎng)站上放出了 Proposed Split V2,解決了這個(gè) bug。我們下面的實(shí)驗都是在改過(guò)的數據集上跑的。
減輕見(jiàn)過(guò)和未見(jiàn)過(guò)類(lèi)別識別率的失衡
下面的 tsne 顯示了反事實(shí)生成的結果,可以看到通過(guò) condition 樣本特征(藍星是未見(jiàn)類(lèi)的樣本,紅星是見(jiàn)過(guò)的),生成的未見(jiàn)類(lèi)別的樣本確實(shí)保真了(在藍點(diǎn)中間),得到的 decision boundary(黑線(xiàn))也 balanced 了。這在 ZSL 的 4 個(gè)常用數據集上也體現了出來(lái),我們的方法大幅提高了未見(jiàn)類(lèi)別 (U) 的準確率,從而使得整體的準確率 H(harmonic mean)提高了,達到了 SOTA 的表現?,F有的方法其實(shí)也有一個(gè)簡(jiǎn)單的解決失衡的辦法,就是直接調整見(jiàn)過(guò)類(lèi)別的 logits,通過(guò)改變調整的幅度,我們可以得到一個(gè)見(jiàn)過(guò)類(lèi)別和未見(jiàn)過(guò)類(lèi)別的曲線(xiàn),可以看到我們的方法(紅線(xiàn))在各個(gè)調整幅度下都更高,說(shuō)明它能從根本上減輕失衡,這是簡(jiǎn)單的調整所不能完成的。
強大的見(jiàn)過(guò) / 未見(jiàn)過(guò)類(lèi)別的分類(lèi)器
我們的方法能夠適用任何的 conventional ZSL 算法,我們測試了 inference-based 的 RelationNet,和三個(gè)基于不同生成網(wǎng)絡(luò )的 generation-based 的方法,發(fā)現加上我們的方法都獲得了提高,并且超過(guò)了用現在 SOTA 的 TF-VAEGAN 作為見(jiàn)過(guò) / 未見(jiàn)過(guò)的分類(lèi)器的表現。
強大的開(kāi)集分類(lèi)器
我們在常用的幾個(gè)數據集上做了開(kāi)集識別的實(shí)驗(用的 F1 指標),并取得了 SOTA 的表現。因為開(kāi)集識別中未見(jiàn)過(guò)類(lèi)別的數量是未知的,所以好的分類(lèi)器必須在數量少和多的情況下都好。在右圖中我們畫(huà)了 F1 分數和未見(jiàn)過(guò)類(lèi)別的數量(從少到多)的曲線(xiàn),我們的方法(藍色)在每個(gè)情況下都是最好,并且在未見(jiàn)類(lèi)別測試中,很多時(shí)候(藍色曲線(xiàn)末尾)F1 基本沒(méi)有下降,體現了較強的魯棒性。
結語(yǔ)
這篇工作是我們對于解耦表示(disentangled representation)的一點(diǎn)點(diǎn)探究和摸索,把難以實(shí)現的所有 factor full disentangle,放寬成為兩組概念(樣本特征和類(lèi)別特征)之間的 disentangle,并借著(zhù) disentangle 帶來(lái)的 faithfulness 性質(zhì),使我們提出的反事實(shí)生成框架變?yōu)榭赡?。這也從一個(gè)側面反映了解耦是因果推理的一個(gè)重要的前提,當不同的概念被區分開(kāi)(比如解耦的表示)時(shí),我們就可以基于它們之間的因果關(guān)系進(jìn)行推理,得到魯棒、穩定、可泛化的結論。
我也看到一些對于解耦的悲觀(guān)和質(zhì)疑。確實(shí),目前就連解耦的定義都沒(méi)有定論,更不要說(shuō)方法、evaluation 等等了。但這些困難也是可預見(jiàn)的:解耦在幫助機器跨越一個(gè)層級,從學(xué)習觀(guān)測到的數據中的規律,到探究這些數據產(chǎn)生的原因 --- 就像人知道太陽(yáng)每天會(huì )升起的規律是容易的,但明白為什么太陽(yáng)會(huì )升起卻花了幾千年。這里也鼓勵大家多多關(guān)注、探索解耦這個(gè)領(lǐng)域,說(shuō)不定帶來(lái)下一個(gè)突破的就是你啊。
最后附上我們論文的引用:
@inproceedings{yue2021counterfactual, title={Counterfactual Zero-Shot and Open-Set Visual Recognition}, author={Yue, Zhongqi and Wang, Tan and Zhang, Hanwang and Sun, Qianru and Hua, Xian-Sheng}, booktitle= {CVPR}, year={2021} }
*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。