<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          可以估計(jì)不確定性的神經(jīng)網(wǎng)絡(luò):SDE-Net

          共 4912字,需瀏覽 10分鐘

           ·

          2022-06-17 19:12

          點(diǎn)擊上方小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂

          重磅干貨,第一時間送達(dá)

          作者丨段易通@知乎
          來源丨h(huán)ttps://zhuanlan.zhihu.com/p/234834189
          隨著深度學(xué)習(xí)技術(shù)的不斷發(fā)展,DNN模型的預(yù)測能力變得越來越強(qiáng),然而在一些情況下這卻并不是我們想要的,比如說給模型一個與訓(xùn)練集完全不相關(guān)的測試樣本,我們希望模型能夠承認(rèn)自己的“無知”,而不是強(qiáng)行給出一個預(yù)測結(jié)果,這種能力對于自動駕駛或者醫(yī)療診斷等重視風(fēng)險的任務(wù)是至關(guān)重要的。因此,為了達(dá)到這個目的,我們的模型需要具有量化不確定性的能力,對于那些它沒有把握的樣本,模型應(yīng)該給出較高的不確定性,這樣就能指導(dǎo)我們更好地利用模型的預(yù)測結(jié)果。
          之前我介紹過可以預(yù)測概率分布的DeepAR模型,其實(shí)這次介紹的SDE-Net與它的目標(biāo)是一致的,都是令模型在預(yù)測的基礎(chǔ)上還能夠度量預(yù)測結(jié)果的不確定性,不過SDE-Net的實(shí)現(xiàn)這個目標(biāo)的思路與DeepAR不同,下面就來具體介紹。
          段易通:概率自回歸預(yù)測——DeepAR模型淺析
          https://zhuanlan.zhihu.com/p/201030350

          不確定性

          上文中已經(jīng)提到,我們的目的是要量化不確定性,那么我們當(dāng)然要先知道是什么導(dǎo)致了模型的不確定性、并且要了解不確定性產(chǎn)生的來源有哪些,論文中認(rèn)為模型預(yù)測的不確定性來自于兩個方面:
          • aleatoric uncertainty:來自于任務(wù)本身所固有的自然隨機(jī)性(比如說label噪聲等)
          • epistemic uncertainty:由于缺乏訓(xùn)練數(shù)據(jù)所導(dǎo)致的,模型對于訓(xùn)練數(shù)據(jù)分布之外的樣本是無知的
          對于aleatoric uncertainty,它是由任務(wù)本身天然決定的,可以設(shè)想一個所有標(biāo)簽都是噪聲的訓(xùn)練集,用這樣的數(shù)據(jù)集訓(xùn)練出來的模型,它的預(yù)測結(jié)果顯然是不可信的,即不確定度很大;而對于epistemic uncertainty,它是由于模型的認(rèn)知不足造成的,在面對訓(xùn)練集分布之外的數(shù)據(jù)時,模型的預(yù)測結(jié)果會具有較高的不確定度。
          下圖是對兩種不確定度對模型預(yù)測結(jié)果影響的示意圖,我們這里用到的是概率模型(比如說DeepAR或者后面要說的SDE-Net,輸出的是一個隨機(jī)變量而不是一個定值,因此通過模型得到的其實(shí)是一個概率分布)。其中左邊的simplex corner代表分類任務(wù)(三分類),右邊的二維坐標(biāo)代表回歸任務(wù),其中橫軸代表predictive mean 、縱軸是predictive variance (不太明白這里 的含義,求解惑~)。

          SDE量化不確定性


          我們知道,神經(jīng)網(wǎng)絡(luò)尤其是ResNet可以看做是由常微分方程(ODE)控制的一個動力學(xué)系統(tǒng)(具體可以看ResNet的相關(guān)資料,或者我的這篇文章,https://zhuanlan.zhihu.com/p/92254686),相鄰層之間的輸入輸出關(guān)系為:
          其中 是第t層的隱藏狀態(tài),如果我們令 ,上式可以寫做: ,如果我們讓 ,那么就有:
          ResNet其實(shí)可以看做是離散化的動力學(xué)系統(tǒng),不過控制方程是一個ODE,所以神經(jīng)網(wǎng)絡(luò)得到是只是一個確定性結(jié)果。為了讓模型可以估計(jì)不確定性,我們自然就想到是不是可以改用一個隨機(jī)微分方程(SDE)來控制dynamic呢?這就是論文的核心思想,其實(shí)也很簡單,就是在原有ODE的基礎(chǔ)上再加上一個隨機(jī)項(xiàng),這里采用的是標(biāo)準(zhǔn)布朗運(yùn)動,那么dynamic的形式就變?yōu)椋?/span>
          這里 就是標(biāo)準(zhǔn)布朗運(yùn)動,可以看出函數(shù) 控制的就是dynamic的波動,我們就用它來代表模型對于epistemic uncertainty的估計(jì),下圖是 的大小對于dynamic的影響。

          模型構(gòu)造

          這樣一來,我們就利用SDE來描述了隱層狀態(tài)的dynamic,并通過隨機(jī)過程的方差來量化估計(jì)epistemic uncertainty。為了使模型具有良好的預(yù)測精度和可靠的不確定性估計(jì),論文的SDE-Net模型用了兩個單獨(dú)的神經(jīng)網(wǎng)絡(luò)來表示分別dynamic的漂移擴(kuò)散,如下圖所示:
          可以看出,對于分布內(nèi)的測試樣本,diffusion net計(jì)算出的不確定度很小,因此drift net占主導(dǎo)地位,我們可以獲得置信度很高的預(yù)測結(jié)果;但是對于分布外的樣本,計(jì)算出的不確定度很大,因此diffusion net占主導(dǎo)地位,得到的結(jié)果幾乎就是隨機(jī)分布的結(jié)果。
          對于SDE-Net的兩個神經(jīng)網(wǎng)絡(luò),論文采用了如下的目標(biāo)函數(shù)來進(jìn)行訓(xùn)練
          其中 是任務(wù)的損失函數(shù),T是隨機(jī)過程的末時刻(即網(wǎng)絡(luò)的輸出層), 分別是訓(xùn)練集分布內(nèi)與分布外(OOD)的數(shù)據(jù),OOD數(shù)據(jù)可以通過給原數(shù)據(jù)加噪聲做變換的方式獲得,也可以直接用另一個任務(wù)目標(biāo)不相關(guān)的數(shù)據(jù)集。
          可以看出,目標(biāo)函數(shù)一共分為三部分,前兩項(xiàng)是關(guān)于分布內(nèi)樣本的目標(biāo)函數(shù),其目的是保證在常規(guī)的損失最小化的基礎(chǔ)上,還要使得這些樣本的不確定度估計(jì)較小,后一項(xiàng)是關(guān)于OOD數(shù)據(jù)的,對于這些樣本,我們不關(guān)注其loss的大小,而是只令模型對于OOD樣本的不確定度增加
          需要注意的是,這里SDE-Net中每一層的參數(shù)都是共享的,而且擴(kuò)散項(xiàng)的方差僅由起始點(diǎn)x0決定,這樣可以使模型訓(xùn)練起來更容易。
          訓(xùn)練好模型之后,我們可以通過多次采樣的方法,來得到多個輸出 ,這種采樣計(jì)算的思路與傳統(tǒng)的集成方法具有相似之處,但是傳統(tǒng)方法需要訓(xùn)練多個模型,而SDE-Net只需訓(xùn)練一次即可通過布朗運(yùn)動的隨機(jī)性得到多個輸出樣本,從而大大減小了訓(xùn)練成本。

          理論分析

          論文還對模型做了一些理論分析,內(nèi)容不多,就直接放原文了

          模型訓(xùn)練

          考慮到模型的層數(shù)是有限的,因此我們需要將SDE離散化,形式如下:
          其中時間區(qū)間為 ,模型一共有N層,因此 。
          總的來看,SDE-Net的訓(xùn)練算法如下:
          簡單概括一下這個算法,首先我們從分布內(nèi)采樣出一批訓(xùn)練數(shù)據(jù),然后通過一個降采樣層得到輸入 ,接著就根據(jù)SDE-Net來控制隱層狀態(tài)的dynamic,并在最后接一個全連接層得到模型的輸出 ,這樣我們就可以通過計(jì)算loss的梯度來更新降采樣層、drift net以及全連接層的參數(shù);另外,我們還要從分布外采樣出一批數(shù)據(jù)(OOD數(shù)據(jù)),然后根據(jù)分布內(nèi)外的數(shù)據(jù)分別對diffusion net的參數(shù)做梯度下降和梯度上升。

          實(shí)驗(yàn)

          論文的實(shí)驗(yàn)研究了不確定性估計(jì)在model robustness和label efficiency中的作用,實(shí)驗(yàn)采用的對比模型有:Threshold、MC-dropout、DeepEnsemble、Prior network(PN)、Bayes by Backpropagation (BBP)、preconditioned Stochastic gradient Langevin dynamics(p-SGLD);其中PN和SDE-Net需要額外的OOD數(shù)據(jù),這里通過對原有的數(shù)據(jù)樣本上加上高斯噪聲來進(jìn)行構(gòu)造、或者直接采用另一個數(shù)據(jù)集,至于其它的一些具體設(shè)定可以看論文的實(shí)驗(yàn)和補(bǔ)充材料部分。
          1.OOD檢測
          就像在文章開頭提到的,讓模型有“自知之明”是非常重要的,因此第一個任務(wù)就是評估模型識別OOD樣本的能力,實(shí)驗(yàn)中使用的metric如下所示,這些metrics都是值越大越好:
          1. True negative rate (TNR) at 95% true positive rate (TPR)
          2. Area under the receiver operating characteristic curve (AUROC)
          3. Area under the precision-recall curve (AUPR)
          4. Detection accuracy
          實(shí)驗(yàn)結(jié)果如下所示:
          分類任務(wù)
          回歸任務(wù)
          從表中可以看出,SDE-Net的性能基本超越了其它所有模型。另外,下圖是提高模型層數(shù)或者ensemble數(shù)量對OOD檢測的影響,可以看出SDE-Net不需要像一些其它模型那樣必須大量堆疊才能達(dá)到最優(yōu)性能。
          2.誤分類檢測
          如果模型預(yù)測的不確定性很大,那么就說明模型對預(yù)測結(jié)果是沒有把握的,樣本可能被分類錯誤。因此這個任務(wù)的目的是利用預(yù)測的不確定性來找出模型分類錯誤的樣本,其結(jié)果如下:
          雖然P-SGLD的效果也不錯,不過它的計(jì)算成本很高,因此在實(shí)際情況中SDE-Net可能會是一個更好的選擇。
          3.對抗樣本檢測
          我們知道,在樣本中加入一些很小的對抗擾動后,正常的DNNs會變得非常容易出錯,因此這個任務(wù)的目標(biāo)就是從樣本集中找出對抗樣本,這里采用了兩種對抗攻擊方式Fast Gradient-Sign Method (FGSM)和Projected Gradient Descent (PGD)來產(chǎn)生對抗樣本,實(shí)驗(yàn)結(jié)果如下:
          4.主動學(xué)習(xí)
          假設(shè)一開始樣本集里有標(biāo)注的樣本很少,模型需要自己挑一些信息量大的樣本出來讓專家進(jìn)行標(biāo)注,這就是主動學(xué)習(xí)的思想。直觀上來看,挑選信息量大的樣本可以顯著減少用于模型訓(xùn)練的數(shù)據(jù)量,而信息量小的樣本會增加訓(xùn)練成本、甚至?xí)?dǎo)致過擬合。最后一個任務(wù)就是關(guān)于主動學(xué)習(xí)的,論文設(shè)定acquisition function(不了解的同學(xué)可以學(xué)習(xí)一下相關(guān)知識點(diǎn))的形式為:
          該式的意思就是讓模型選擇那些具有較高的epistemic uncertainty但數(shù)據(jù)具有較低的low aleatoric noise的樣本,結(jié)果如下,可以看出SDE-Net選擇的樣本都是信息量比較大樣本,因此RMSE下降的更快。

          總結(jié)

          ResNet可以對應(yīng)為一個離散ODE,這篇文章受到該思路的啟發(fā),構(gòu)建了一個可以被看做離散SDE的SDE-Net模型,模型由兩個神經(jīng)網(wǎng)絡(luò)drift net和diffusion net構(gòu)成,其中drift net與傳統(tǒng)模型類似,是為了預(yù)測模型的輸出結(jié)果,而diffusion net則用來估計(jì)預(yù)測的不確定性,估計(jì)出的不確定性可以應(yīng)用于OOD樣本檢測、誤分類檢測、主動學(xué)習(xí)等多個任務(wù),而可以估計(jì)不確定性的SDE-Net也更加適合于一些關(guān)注風(fēng)險的實(shí)際應(yīng)用領(lǐng)域。
          個人感覺,論文中通過SDE來評估不確定性的想法很有意思,確實(shí)有一定的可取之處;不過模型為了訓(xùn)練diffusion net網(wǎng)絡(luò),專門構(gòu)建了用于梯度上升的OOD數(shù)據(jù)集,這樣的數(shù)據(jù)集無論怎么構(gòu)建,都很難代表整個訓(xùn)練集以外的分布,因此不可避免地會引入一些bias,而這就可能會影響模型對于不確定度的估計(jì)。

          參考文獻(xiàn)

          [1] SDE-Net: Equipping Deep Neural Networks with Uncertainty Estimates
          https://arxiv.org/abs/2008.10546

          好消息!

          小白學(xué)視覺知識星球

          開始面向外開放啦??????




          下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程
          在「小白學(xué)視覺」公眾號后臺回復(fù):擴(kuò)展模塊中文教程即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺、目標(biāo)跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。

          下載2:Python視覺實(shí)戰(zhàn)項(xiàng)目52講
          小白學(xué)視覺公眾號后臺回復(fù):Python視覺實(shí)戰(zhàn)項(xiàng)目,即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計(jì)數(shù)、添加眼線、車牌識別、字符識別、情緒檢測、文本內(nèi)容提取、面部識別等31個視覺實(shí)戰(zhàn)項(xiàng)目,助力快速學(xué)校計(jì)算機(jī)視覺。

          下載3:OpenCV實(shí)戰(zhàn)項(xiàng)目20講
          小白學(xué)視覺公眾號后臺回復(fù):OpenCV實(shí)戰(zhàn)項(xiàng)目20講,即可下載含有20個基于OpenCV實(shí)現(xiàn)20個實(shí)戰(zhàn)項(xiàng)目,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。

          交流群


          歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器自動駕駛、計(jì)算攝影、檢測、分割、識別、醫(yī)學(xué)影像、GAN、算法競賽等微信群(以后會逐漸細(xì)分),請掃描下面微信號加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進(jìn)入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~


          瀏覽 40
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  成人啪啪视频在线 | 国产天堂视频 | 亚洲精品91 | 亚洲一级A片 | 少妇高潮视频 |