宅中地 - 每日更新
宅中地 - 每日更新

贊助商廣告

X

當AI學會「看見」情緒的模糊地帶——西班牙巴斯克大學團隊打造的表情識別新系統

2026年07月27日 首頁 » 熱門科技

這項由西班牙巴斯克大學(UPV/EHU)、義大利薩倫托大學與義大利國家研究委員會應用科學與智能系統研究所(CNR)、以及馬來西亞克蘭丹大學數據科學與計算學院聯合開展的研究,以預印本形式於2026年7月14日發布在學術平台arXiv上,編號為arXiv:2607.13250。這項研究的核心是為第11屆ABAW(野外情感行為分析)競賽提交的解決方案,名為AffectFlow-DINO,致力於讓AI更真實地"理解"人臉上的情緒信號。

一、情緒識別為什麼這麼難?

每個人都有過這樣的體驗:在一張模糊的照片裡,你看到一個人嘴角微微上揚,卻說不清楚他到底是在笑還是只是放鬆了肌肉。人臉上的情緒信號天生就帶有模糊性,尤其是在現實生活中拍攝的照片裡——光線不好、角度刁鑽、遮擋嚴重,或者表情本身就很細微。這對人眼來說已經夠難了,對AI系統來說更是一個巨大的挑戰。

現有的AI情緒識別系統大多像一個過於自信的學生:給它一張臉,它會毫不猶豫地說"這是憤怒,可信度99%"——即便這張臉其實可能是憤怒、也可能是厭惡、還可能是強忍著悲傷。這種"非此即彼"的確定性判斷,恰恰忽略了人類情緒本身的複雜性和不確定性。

研究團隊面對的是一個特別複雜的任務:不只是識別一個情緒,而是同時完成三件事。第一件是估計"效價"(valence,即情緒的積極或消極程度)和"喚起度"(arousal,即情緒的強烈程度)這兩個連續的數值,數值範圍在-1到1之間,就像給一段音樂打"悲傷程度"和"激昂程度"的分數。第二件是把人臉表情分成八種類別:中性、憤怒、厭惡、恐懼、高興、悲傷、驚訝和"其他"。第三件是檢測十二種動作單元(Action Units,簡稱AU),也就是面部肌肉的具體運動,比如眉毛上揚、嘴角下拉等,每一種都是獨立的"是否激活"判斷。

這三件事必須同時完成,而且使用的是同一批照片。更麻煩的是,這批數據極度不平衡——"高興"和"中性"的樣本多得要命,"恐懼"和"厭惡"卻少到可憐,前者是後者的八倍以上。對於動作單元來說,情況更為極端:有一種AU在68%的照片裡都是激活狀態,而另一種卻只有不到3%的照片裡出現,兩者相差了整整29倍。

二、一個懂得"也許"的AI

研究團隊提出了一個核心思路,可以用一個比喻來理解:普通的AI識別系統像一個只會說"是"或"否"的裁判,而他們新設計的系統更像一個有經驗的法醫鑑定師,會說"根據現有證據,最可能的結論是A,但B和C也有相當的可能性,這張臉的表情存在一定的模糊空間"。

為了實現這個思路,研究團隊引入了一種叫做"條件整流流"(Conditional Rectified Flow)的技術。這個名字聽起來很深奧,但核心想法其實相當直觀。把AI的預測過程比作一場從噪聲出發的旅程:系統先隨機生成一團"情緒噪聲",然後通過學習好的路徑,把這團噪聲一步步引導到最終的預測結果。整流流的特點是,這條引導路徑儘可能地走直線,不繞彎子,這讓整個過程既快又穩定。

更關鍵的是,由於起點是隨機的,每次旅程可以從不同的噪聲出發,最終到達的位置會略有不同,形成一個預測的"分布範圍"。系統在推理時會同時運行多條旅程(默認是16條),然後對結果取平均,就像問了16位專家同樣的問題再匯總答案一樣。這種方法既給出了具體的預測,又給出了預測的不確定性範圍——當多條旅程的終點高度集中時,說明這張臉的情緒比較明確;當終點分散時,說明這張臉確實很難讀懂。

整個預測結果被打包成一個22維的向量,裡面同時包含了效價、喚起度、8種表情的概率,以及12種動作單元的激活狀態。這22個維度被當作一個整體,在同一個空間裡完成整流流的傳輸,讓不同類型的情緒資訊可以相互影響和約束。

三、系統的搭建方式

在技術實現上,研究團隊構建的系統分成了幾個緊密配合的部分,就像一條流水線。

第一個環節是視覺編碼器,使用的是一個叫做DINOv3 ViT-S/16的預訓練模型。這是一種基於"視覺變換器"(Vision Transformer)架構的模型,通過一種叫做DINO的自監督學習方式預訓練,能夠把一張224×224的人臉圖片轉換成一個包含豐富語義資訊的特徵向量。研究團隊選擇它而非另一種常見預訓練方式(MAE,掩碼自編碼器)的原因是:DINO的訓練方式讓它特別善於捕捉空間上局部化的特徵,而面部動作單元恰恰就是這樣的信號——眉毛上揚是眉毛那塊區域的變化,不是整張臉的變化。在早期實驗中,視覺編碼器的參數是凍結不動的,後續才進行微調。

第二個環節是共享投影頭,把編碼器輸出的特徵向量通過一個線性變換和激活函數映射到768維的工作空間,形成一個統一的"情緒嵌入"表示。

第三個環節是三個獨立的確定性預測頭,分別對應效價-喚起度回歸(輸出在-1到1之間)、表情分類(輸出8個類別的概率)、以及動作單元檢測(輸出12個二分類結果)。每個預測頭都是一個兩層的MLP(多層感知機),帶有層歸一化、GELU激活函數和Dropout正則化。這三個頭的預測結果會直接計算損失函數並反向傳播梯度。

第四個環節就是核心創新——條件整流流頭。它接受圖像嵌入、當前時間步的"噪聲-目標插值"以及時間步的正弦編碼作為輸入,學習預測當前位置到目標位置的"速度向量"。訓練時,對於每個樣本,系統會隨機採樣一個時間點t(0到1之間的均勻分布)和一個隨機噪聲,構造出插值狀態,然後讓流網路學習從這個狀態到真實目標的方向。損失函數是預測速度與真實速度之間的均方誤差,同時使用一個二值掩碼來處理標註缺失的問題——如果某張圖沒有表情標註,那麼表情相關的速度維度就不計入損失,這樣缺失的標註不會干擾整個學習過程。

訓練的總體目標是兩部分的加權和:確定性多任務損失加上β倍的流損失。通過大量實驗,研究團隊發現β取0.5或1.0時效果最好,最終選用β=1.0作為默認值。

四、數據的倒三角難題

研究使用的數據集叫做s-Aff-Wild2,這是專門為這類挑戰提供的野外人臉圖像數據集。訓練集包含142,382幀,但標註並不完整:有103,917幀有效價-喚起度標註,90,645幀有表情標註,103,316幀有動作單元標註。更麻煩的是,同時擁有三種標註的幀只占總數的36.6%,這意味著大部分時候,系統只能從部分信號中學習。

驗證集包含26,876幀,效價-喚起度和動作單元的標註是完整的,但表情標註只覆蓋了15,440幀。

數據的嚴重不平衡是這個任務最棘手的地方。在表情類別上,"其他"類占27.4%,"中性"占26.5%,"高興"占20%,三者合計超過七成;而"恐懼"只有3.4%,"厭惡"只有3.5%,二者加起來還不到7%。對動作單元來說,AU25(嘴唇分開)在68%的有效訓練行中是激活狀態,而AU15(嘴角下拉)和AU23(嘴唇收緊)的正樣本率只有2-5%,整體不平衡比高達29:1。

這種不平衡對普通的訓練方式來說是致命的:損失函數會被多數類主導,少數類的學習信號被淹沒。系統在"高興"和"中性"上表現很好,但對"恐懼"幾乎視而不見——不是因為學不會,而是因為"恐懼"的樣本太少,訓練時根本沒機會充分學習。

五、一系列實驗揭示的規律

研究團隊進行了系統性的消融實驗,覆蓋了26種不同的設計選擇,逐步解開了每個組件的貢獻。這些實驗的結果像一個逐步拼圖的過程,每塊拼圖都揭示了一個規律。

最基礎的對比是三種訓練方式的比較。只用確定性監督(沒有流損失)的模型在驗證集上得到PMT L = 0.793;只用流損失(沒有確定性任務損失)的模型得到0.773;兩者聯合訓練的AffectFlow得到0.826。兩種不匹配的"反常實驗"——用流模型去做確定性解碼,或者用確定性模型去做流解碼——都會造成系統崩潰(分別是0.402和0.408),清楚地說明兩種訓練目標和兩種解碼方式必須配套使用。這個結果揭示了一個重要機制:確定性損失幫助共享嵌入學習到更好的情緒區分特徵,進而提升流模型的質量;而流損失則在不損害確定性頭的前提下,額外學會了概率分布。

在效價-喚起度預測上,流解碼比確定性解碼有顯著提升,效價CCC(協同相關係數,衡量連續預測質量的指標,越接近1越好)從0.232提升到0.290,提升幅度達0.058。這個規律在所有實驗中都保持一致:連續型目標(效價和喚起度)從分布平均中受益最多,因為這類信號本身就有多義性,取多次預測的平均會平滑掉隨機誤差,趨近真實值。

流損失權重β的實驗顯示,β在0.5到1.0之間是一個穩定的平台區,效果沒有明顯差別;一旦β升到2.0,流目標過於主導,總體性能反而下降。推理效率實驗顯示,採樣數N從1增加到8時效果有明顯改善,但從8到32幾乎沒有變化,說明整流流的直線軌跡特性讓它只需少數步驟就能穩定。歐拉積分步數T從10到50的變化影響也很小,表明這個輕量級的流模型並不需要太多積分步驟。

六、凍結的編碼器撐不住,微調才是關鍵

在凍結視覺編碼器的情況下,最好的成績已經被逼到了極限。研究團隊決定嘗試用一個很小的學習率(1e-5,是主學習率1e-4的十分之一)對視覺編碼器進行端到端微調,讓它適應情緒識別這個具體任務。結果是立竿見影的:PMT L從凍結骨幹網路時的最好結果0.831一躍升至1.045,是整個研究中單步最大的提升。

然而微調帶來了一個意外:微調後,確定性解碼(1.045)反而比流解碼(0.928)表現更好,與凍結情況下的規律相反。研究團隊分析認為,這是因為骨幹網路適應後,確定性頭變得更強,而流頭的參數沒有同步更新,處於"跟不上"的狀態。

解決方案是在微調過程中重新激活流目標,也就是說,在低學習率微調骨幹網路的同時,也讓流損失繼續起作用。當β=0.5時,流重調版本的確定性解碼達到1.062;當β=1.0時,確定性解碼進一步提升到1.073,主要受益於效價CCC的大幅改善(從0.308提升到0.387)。加上每個AU獨立閾值校準後,這個版本達到1.123,是該研究在基礎配置下的最高成績。

在β=1.0的情況下,流解碼反而比β=0.5時稍差(0.931對比0.956),說明更強的流目標讓確定性頭受益,但同時讓流的分布"形狀"發生了變化,不那麼適合直接用流採樣來解碼。研究團隊觀察到,在所有經過微調的變體中,確定性解碼都優於流解碼,這表明流目標更像是一種幫助共享表示更好地結構化的正則化工具,而非最終解碼時的必選路徑。

七、用"逆向加權"對抗不平衡

面對嚴重的類別不平衡,研究團隊嘗試了一系列方法,結果有喜有憂。

在處理表情不平衡方面,他們先後嘗試了四種修改:直接增大表情損失的權重、使用焦點損失(Focal Loss,這種方法會自動降低簡單樣本的權重、提升難樣本的權重)、給每個任務單獨設一個投影頭,以及把這些方法組合起來。結果這四種方法全部失敗——不僅沒能提升表情識別的宏平均F1,還反而拉低了效價-喚起度的預測質量。核心原因在於:不管損失函數怎麼變形,只要樣本本身的分布沒變,訓練時多數類的梯度信號就會持續壓制少數類。

真正有效的是使用加權隨機採樣器(WeightedRandomSampler),也就是在每個epoch里,給少數類的樣本更高的被抽到的概率。這種結構性的數據採樣改變真正解決了梯度被多數類淹沒的問題,使表情宏平均F1從0.212提升到0.251,是所有凍結骨幹網路實驗中表情識別的最好結果。

對動作單元來說,研究團隊為每個AU的二分類損失設置了正樣本權重,權重等於負樣本數量除以正樣本數量。AU15的正樣本權重因此高達41,AU23則是33.7。這種方法把AU的平均F1從0.384提升到了0.427,是有效的。不過,當這種方法與流解碼結合時會出現問題:經過正樣本加權訓練後,模型預測的概率分布形狀發生了系統性偏移,而流模型學到的是未加權狀態下的目標分布,兩者不兼容,導致流解碼的性能大幅下降。這說明,一旦使用流模型,訓練時的分布特性必須與流模型的假設保持一致。

八、不需要重訓練,後校準能拯救被壓制的信號

整個研究中最令人印象深刻的發現之一,來自一個完全無需重新訓練的後處理步驟:閾值校準。

普通的動作單元檢測默認使用0.5作為判定閾值,也就是說,如果sigmoid函數輸出的概率超過50%,就判定為"激活"。但研究團隊發現,對於那些極少激活的AU來說,由於訓練時正樣本太少,模型學到的概率值系統性地偏低。AU15的sigmoid輸出幾乎永遠不會超過0.5,哪怕模型確實學到了一些區分信號。這就像一個明明知道答案的學生,因為太過保守,每次答題都把正確答案壓在心裡不說出來。

解決方法是在驗證集上單獨為每個AU搜索最優閾值,找到能最大化F1的臨界點。AU15的最優閾值可能只有0.1,AU25(經常激活的)最優閾值可能是0.55。這種每個AU獨立校準的方式,讓平均AU F1提升了約0.06個百分點,而且對所有檢查點都有效,AU15的F1從接近0直接恢復到10.8%,AU23從0.5%恢復到18.9%。

完全相同的邏輯也被應用到了表情識別上。對表情來說,問題不是閾值,而是logit分數的相對大小。系統的默認預測方式是取8個類別中logit最大的那個,但由於訓練時"其他"和"中性"的樣本壓倒性地多,這兩個類的logit系統性地比其他類大,導致系統幾乎從不預測"恐懼"或"悲傷"。後校準的做法是在驗證集上為每個類別學習一個獨立的加權係數,相當於給弱勢類別"人為補償"。

校準的效果極其顯著:恐懼的F1從3.8%跳升到33.1%,提升了29個百分點;悲傷從17.1%提升到28.2%;厭惡從46.5%提升到50.7%。而高興和"其他"這樣的多數類幾乎沒有變化。宏平均F1(PEXP R)從0.296提升到0.350,整體PMT L從1.123提升到1.177,這是全研究最好的驗證集結果。

這個發現驗證了一個重要的觀點:嚴重的類別不平衡會壓制模型學到的信號,但不會抹除它。模型確實學會了識別"恐懼"表情的特徵,只是被壓制在了表層之下。閾值校準相當於一把鑰匙,把這些潛藏的信號重新釋放出來,而且完全不需要重新訓練,是一種極高性價比的改進手段。

九、更大的骨幹網路和翻轉增強的得失

研究團隊還對比了用更大的ViT-B/16(擁有86M參數,而ViT-S/16隻有約22M參數)替代默認骨幹網路的效果。結果是效價預測明顯改善(CCC-V從0.387提升到0.416),AU平均F1校準後也略有提升(0.507 vs. 0.502),但表情識別的宏平均F1下降了0.041(從0.296降到0.255)。這種效價改善與表情下降之間的權衡,導致總體校準後PMT L(1.116)低於ViT-S的最好結果(1.123)。研究團隊推測,ViT-B在20個epoch內難以充分適應表情識別任務,需要更長的訓練或更仔細的調參。

水平翻轉測試時增強(TTA)的效果則完全是負面的,所有三個子任務的得分都下降了。原因很直觀:面部動作單元有很強的空間方向性,比如"嘴角一側下拉"在水平翻轉後會變成另一側,打亂了模型對方向性AU的判斷,導致預測一致性下降。

十、整體成果的全景

綜合所有實驗,研究團隊構建了一條清晰的性能提升路徑。從最基礎的確定性預測(PMT L = 0.793)出發,加入整流流後升到0.826,引入每AU獨立閾值校準後升到0.888;骨幹網路微調是最大的單步跳躍,直接到達1.045,加上AU校準達到1.101;在微調的同時重調流頭(β=1.0)進一步升到1.073,再加AU校準達到1.123;最後加入表情後校準,達到全研究最高點1.177。整個過程相比官方基線的0.45提升了超過0.72,也就是提升了約160%。

研究團隊還發現,"廚房水槽"式的組合(把類別加權交叉熵和AU正樣本加權同時用於微調)並沒有進一步改善,與單純微調(1.045)相比得到1.041,說明這類不平衡處理策略在骨幹網路凍結時有效,但一旦整個模型端到端優化,它們反而會干擾梯度分配,拉低效價-喚起度的性能。微調之後,流頭重調是比樣本重加權更有效的提升路徑。

與此同時,補丁軟池化(Patch Soft-Pool,PSP)方法,也就是在CLS token的基礎上額外學習196個空間補丁token的加權平均,讓凍結骨幹網路下的確定性預測達到0.859,是凍結情況下最好的未校準結果,說明空間資訊對動作單元檢測確實有幫助,但沒有與骨幹網路微調結合測試。

說到底,這項研究告訴我們一件很有意思的事:讓AI承認自己"不確定",反而能讓它預測得更准。通過把情緒識別建模為一個概率分布而非單一答案,研究團隊構建的系統在效價-喚起度這類本身就模糊的目標上獲得了實實在在的提升。而那些被類別不平衡壓制在底層的少數類信號,並沒有真的消失——只是需要一把正確的鑰匙才能找到。這對於我們思考AI系統如何面對現實世界中的模糊性和不平衡性,提供了一個清晰而實用的參考框架。未來,如果能在這個基礎上加入時序資訊(畢竟表情是隨時間變化的,不是一張靜止的圖片),以及更充分的多任務聯合縮放訓練,與當前頂尖水平之間的差距或許可以進一步縮小。

有興趣深入了解技術細節的讀者,可以通過arXiv編號2607.13250查詢完整論文。

Q&A

Q1:AffectFlow-DINO和普通表情識別AI有什麼區別?

A:普通表情識別AI只給出一個確定答案,比如"這是憤怒"。AffectFlow-DINO則會同時運行多次預測,取平均值,並且能感知預測的不確定程度。這讓它在表情本身模糊的情況下表現更穩定,尤其是效價(情緒積極/消極程度)的預測質量明顯更好。

Q2:後校準是什麼意思,為什麼不用重訓練就能提升效果?

A:後校準是指在模型訓練完成後,只在驗證數據上調整判斷的"門檻",比如把某個動作單元的激活閾值從0.5調低到0.1。模型其實已經學到了識別稀有類別的能力,只是默認設置讓它"不敢說"。調整門檻相當於告訴它"放開膽子說",不改模型參數,卻能直接把恐懼表情的F1從3.8%拉到33.1%。

Q3:動作單元識別為什麼這麼難,數據不平衡具體影響有多大?

A:動作單元指的是面部具體肌肉的運動,比如嘴唇分開(AU25)或嘴角下拉(AU15)。在訓練數據里,AU25出現在68%的樣本里,而AU15隻出現在2.4%里,兩者相差29倍。用同一套標準訓練下來,模型對AU25很熟悉,對AU15幾乎視而不見,在默認閾值下AU15的F1接近零。後校準能把它恢復到10.8%,說明信號其實存在,只是被淹沒了。

宅中地 - Facebook 分享 宅中地 - Twitter 分享 宅中地 - Whatsapp 分享 宅中地 - Line 分享
相關內容
Copyright ©2026 | 服務條款 | DMCA | 聯絡我們
宅中地 - 每日更新