分享不確定估計學習小結

2021-10-09 05:44:21 字數 4951 閱讀 6869

什麼是不確定性估計

以人臉識別為例,輸入一張人臉影象,得到乙個特徵向量embedding,將此特徵向量與底庫中的特徵向量計算相似度,從而根據此相似度來判斷兩張人臉影象是否屬於同乙個id。假設相似度很高(95%),則認為這兩張人臉影象屬於同乙個人。這種將一張輸入影象x對映到高維空間中的乙個點embedding的方式,可以被稱為確定性**(deterministic prediction)。

但以同樣的人臉系統、相同的底庫來看,假設我們輸入一張很模糊的人臉或者一張貓的,此時系統可能會給出同樣是95%的相似度。然而,在這種情形下,這種相似度得分並不能反映出兩張是屬於同一id的,即這個相似度結果不可信。因此,我們不僅需要乙個相似度得分,還需要乙個能判斷此相似度是否可信的得分。具體而言,假設在此種情形下,即使兩種的相似度得分是95%,但只有10%的得分認為該相似度得分可行,那麼做出判斷就需要更加謹慎。

再舉乙個例子,假設我們使用了cifar100來訓練了乙個分類模型,現在使用者隨意找了張不屬於此100類的(例如貓),輸入到該分類模型中,那麼這個「貓」必然會分類到cifar100中的其中乙個類別,例如認為是飛機。從模型來看,這個分類置信度得分可能很高,堅定認為這個「貓」就是「飛機」;從人的認識來看,此次分類結果是失敗的。面對這種情況,我們希望模型不僅能給出分類的置信度得分,還希望模型能給出乙個判斷此次置信度得分是否可信的判斷。這種情況,有點類似out-of-distribution(離群點檢測)或者異常檢測等。

從上面幾個案例來看,無論是相似度得分還是置信度得分,都不一定可信,即模型對於給出的判斷具有一定程度的「不確定性」。那麼,我們就希望知道模型對於此次判斷有多少把握,對於「不確定性」得分高的判斷(即把握度低),我們可以進行額外的處理操作。

兩種不確定性

一般而言,不確定性可以分類兩種[2]:

1.資料的不確定性:也被稱為偶然(aleatoric)不確定性,它描述的是資料中內在的雜訊,即無法避免的誤差,這個現象不能通過增加取樣資料來削弱。例如有時候拍照的手稍微顫抖畫面便會模糊,這種資料是不能通過增加拍照次數來消除的。因此解決這個問題的方法一般是提公升資料採集時候的穩定性,或者提公升衡量指標的精度以囊括各類客觀影響因素。

2.模型的不確定性:也被稱為認知(epistemic)不確定性。它指出,模型自身對輸入資料的估計可能因為訓練不佳、訓練資料不夠等原因而不準確,與某一單獨的資料無關。因此,認知不確定性測量的,是訓練過程本身所估計的模型引數的不確定性。這種不確定性是可以通過有針對性的調整(增加訓練資料等方式)來緩解甚至解決的。

模型不確定性

對於深度學習模型而言,其權重是固定的,所以,對某個樣本而言,輸出類別也是固定的。那我們該如何引入不確定性呢?主要的方式是貝葉斯神經網路bnn和模型融合。

貝葉斯神經網路bnn

在bnn網路中,認為每乙個權重wi

和偏置b不再是某個具體的數值,而是乙個概率分布。在訓練與推理階段,需要對每個權重wi和偏置b

進行取樣,得到一組引數,然後像非貝葉斯神經網路那樣進行使用即可。

通過這種方法可以建模各個引數本身存在的不確定性。但是由於在實際應用中參數量十分巨大,要嚴格根據貝葉斯公式計算後驗概率幾乎不現實,因此為了將網路應用於大型資料集,就需要高效的近似計算方法。

給定乙個訓練集d=(x1,y1),(x2,y2),…,(xm,ym)

,那麼貝葉斯公式可以寫成如下形式:

p(w|x,y)=p(y|x,w)p(w)∫p(y|x,w)p(w)dw(1)

其中,我們想要得到的是w

的後驗概率p(w|x,y),先驗概率p(w)是我們可以根據經驗也好瞎猜也好是知道的,例如初始時將p(w)設成標準正態分佈,似然p(y|x,w)是乙個關於w的函式。當w等於某個值時,式(1)的分子很容易就能算出來,但我們想要得到後驗概率p(w|x,y),按理還要將分母算出來。但事實是,分母這個積分要對w的取值空間上進行,我們知道神經網路的單個權重的取值空間可以是實數集r

,而這些權重一起構成的空間將相當複雜,基本沒法積分。所以問題就出現在分母上[1]。

因此,通常有三種解決方法:

馬爾科夫鏈蒙特卡洛取樣法(mcmc-sampling)。用mcmc方式來近似分布的積分;

變分推斷。直接用乙個簡單點的分布q

去近似後驗概率的分布p,即不管分母怎麼積分,直接最小化分布q和p

之間的差異,如可以使用kl散度計算;

蒙特卡洛dropout。這個是近年來運用比較多的方式。可以直觀理解標準神經網路經過dropout之後,在每一層隨機取消一些神經元,把連線變稀疏的網路。可以證明,在假設每乙個神經元都服從乙個離散的伯努利分布的情況下,經dropout方法處理的神經網路的優化過程實際上等價於在乙個貝葉斯網路中進行變分推斷。在推理時,也需要開啟dropout,並且推理時需要多次對同一輸入進行前向傳播,然後可以計算平均和統計方差。

模型融合

其大致思路是對乙個資料集d進行多次隨機取樣,得到n個不同的資料集。使用這n個不同的資料集來n個模型,由於資料集不同,所以這n個模型也不一樣。最終對這n個不同模型的推理結果進行綜合,其均值可以作為**結果,方差可以作為不確定性。

上述兩種方法在工程實現上都存在著嚴重的問題,通過蒙特卡洛dropout的話,需要對同一輸入進行多次推理;通過模型融合的話,需要經過多個模型。無論在視訊記憶體占用或者推理時間上,都難以接受。

資料不確定性

直接**不確定性

在**《learning confidence for out-of-distribution detection in neural networks》中,提出了一種新的方法:直接學習神經網路中的置信度估計。如下圖所示,在模型的輸出處,不僅輸出類別置信度,還輸出置信度估計(經過sigmoid後,範圍在[0,1]

)。用此置信度估計來判斷類別概率是否可信,這個置信度估計的閾值設定應該是乙個經驗值。

的值會佔主導。

此方法思想和做法都很簡單,同時也取得了很不錯的效果。

pfe該方法出自於**《probabilistic face embeddings》中,其核心思想是,用概率分布來代替傳統的embedding特徵。pfe引入了不確定性,認為輸出向量是乙個概率分布,具有均值μ

和方差σ,而不再是確定的向量。如下圖所示,左圖傳統的方法,**出來的embedding是固定的數值,其會帶來乙個問題:如果輸入比較模糊,那麼該影象對應的embedding可能會發生偏移,產生錯誤識別;右圖是pfe的方法,認為網路**出來的特徵是乙個分布(橢圓形),均值代表影象的embedding,方差描述了模型對輸入的不確定度。該方法希望同時估計μ和σ,並且σ

能夠根據輸入影象的質量、包含雜訊的程度進行自適應的學習。

文中給出了乙個在人臉識別中的例子,如下圖所示,(a)表示同一id,但相似度較低的,可以看出,其主要原因是姿態過大,遮擋或者模糊;(b)是不同id,但相似度很高的。

其具體的做法也比較簡單,基於原有的人臉識別系統,固定其不變化,認為embedding就是均值μ

;同時新增乙個分支,用於**方差σ

;最後使用乙個新的計算相似度的方法mutual likelihood score(mls):

s(xi,xj)=−12∑l=1d⎛⎝(μ(l)i−μ(l)j)2σ2(l)i+σ2(l)j+log(σ2(l)i+σ2(l)j)⎞⎠−const(3)

**中給出了乙個使用傳統余弦相似度和mls的對比圖,如下圖所示。藍色線條表示對兩張相同中的一張施加高斯模糊後,兩張的相似度變化;紅色線條表示對兩張不同的共同使用高斯模糊後,兩張的相似度變化。左圖是傳統方法和利用余弦相似度的結果,隨著模糊程度增加,相同的相似度越來越低,不同id的的相似度越來越高,表明模糊很容易誤識別成另外乙個id;右圖是pfe方法和利用mls計算距離,可以看到隨著模糊程度增大,相同的距離不會變得很小,不同id的的距離也不會變得很大,表明pfe的方法對於低質量的更具有優勢。

但是,pfe依然存在以下不足:

需要額外儲存方差資訊;

mls計算比較複雜;

資料的不確定性並沒有真正用於影響模型中特徵的學習。

對於pfe,我還存在一點疑問:對於封閉場景而言,註冊照一般是高畫質。如果用模糊來進行識別,當然是希望模糊與高畫質的相似度盡可能為0,這樣能降低誤識別的風險。如果用pfe來處理這種封閉場景的話,一方面會降低識別率,同時也會增加誤識別的風險。所以,pfe這種方式一般是適合公開場景?較為模糊的場景?

dul在**中,使用了兩種方法來實現這個原理:基於分類的和基於回歸的。

基於分類的dul
如下圖所示,在模型的backbone後會有兩條分支,分別用於**均值μ

和方差σ。對於每個樣本的每一次迭代而言,都隨機取樣乙個ϵ。通過這種方式得到的新樣本特徵si=μi+ϵσi就是遵從均值μ、方差為σ的高斯分布採出的值,它可以模擬乙個服從高斯分布的特徵。通過這種簡單的重新取樣的技巧,就可以很好進行模型訓練。在測試的時候不再需要取樣,僅需要將已經得到的均值μ作為特徵來計算相似度即可。

同時,損失函式也進行了相應的修改:

lcls=lsoftmax+λlkl=1n∑in−logewyisi∑ccewcsi−12(1+logσ2−μ2−σ2)(4)

當不確定度σ較小時,lkl就會增加;當σ較大時,會對μ造成較大影響,從而使lsoftmax增加。因此較大的σ對應著質量較差的,較小的σ對應著高質量的。

基於回歸的dul
如下圖所示,利用乙個已經訓練好的人臉識別系統,凍結其backbone,利用其分類層中的權重矩陣w,其中,w∈rd×c,wi∈w可以被認為相同類別的embedding的中心。後續步驟與基於分類的dul一致,然後新訓練兩條分支,一條分支用於**均值 ,回歸wc的樣本類中心;另一條分支用於**方差。

同時,損失函式變為了:

lreg=−1n∑in((wc−μi∈c)22σ2i+12lnσ2i+12ln2π)(5)

應該是乙個可以運用的資訊,但文中只給出利用方差構成的調和平均數示意圖,如下圖所示。或許方差可以用於對抗性場景,例如假臉攻擊,out-of-distribution檢測。

綜上所述,在計算機視覺中引入不確定估計,讓我們知道模型對於**結果的把握程度,對可信ai系統有一定幫助,同時也能有助於提高面向公開場景的模型的效能。但是該理論發展還不夠迅速,還存在很多疑問,感覺使用起來不是特別廣泛,這方面的**還是值得持續關注。

不確定性學習(2)

續上。定義的常量 不確定性很小的一些量,比如 一些物理常量,我們認為他們是確定的,因此為定義的常量。決策變數 決策者可以直接控制的數量,也稱為控制變數或者政策變數。決策變數根據定義沒有真值,其值的確定依賴於決策者。價值引數 代表了決策者以及其代表人群的偏好。價值引數不應該被認為經驗數量 將價值引數的...

基於不確定性主動學習的基本過程

主動學習 active learning 主動學習也是一種監督學習 與傳統監督學習不同的是,傳統監督學習直接利用外界提供的已標註樣例進行訓練,即訓練集合由已標註樣例構成 而主動學習則主動選擇所需要的樣例,從大量無類別樣例中挑選認為最有價值的樣例進行標註,標註後的樣例加入到訓練集,學習過程同傳統監督學...

空間資料與空間分析不確定性原理 學習筆記(1)

史文中教授的 principle of modelling uncertainties in spatial data and analysis 確實寫的不錯。具有系統化,內容邏輯性強的特點。是gis中不可多得的好書。已經開始看了一部分了,同時做些摘錄,以供加深理解。認知的侷限性和不確定性 某些屬性...