RLE重铸回归方法的荣光后,回归和热图的异同究竟在何方?
?作者 |?曾逸飛
學校 |?西安電子科技大學
研究方向 |?姿態估計與捕捉
問題來源
在 2D 姿態識別領域,基于高斯熱圖的方法自 2014 年提出以來,向來是獨領風騷,霸占了各大榜單整整七年之久。在此期間,甚至逼得回歸方法另立門派,單獨建立了基于 regression 的性能榜單,可見兩個方法之間的性能差異之大。
然而,對于高斯熱圖所擁有的優勢何在,卻向來是眾說紛紜,缺少一個統一的答案。其中比較令人信服的理由有以下幾個方面:
優勢1:全卷積的結構能夠完整地保留位置信息,因此高斯熱圖的空間泛化能力更強。而回歸方法因為最后需要將圖片向量展開成一個長長的一維向量,reshape 過程中會對位置信息有所丟失。除此之外,全聯接網絡需要將位置信息轉化為坐標值,對于這種隱晦的信息轉化過程,其非線性是極強的,因此不好訓練和收斂。
優勢2:關節點之間存在相互聯系。以脖子和肩膀為例,這兩個地方常常會挨得比較近,因此空間上是存在相關性的。高斯熱圖可以在一張圖中保留這種相關性,因此已知脖子的位置可以幫助估計肩膀,而已知肩膀的位置也能幫助估計脖子。但是,回歸坐標時是對 k 個坐標點分別回歸的,沒辦法照顧到這種關節間的相關性。
優勢3:高斯熱圖有點類似分類問題中的軟標注。它在目標位置上加上了一個漸進的分布過程,這能幫助網絡更平滑地找到梯度下降的過程。同時軟標注也減輕了在標注有誤情況下的過擬合情況。(軟標注的提出和作用具體可以看 Szegedy 的這篇 [1]?經典文章)
然而,最近?RLE [2](殘差似然估計)用回歸的策略重回 SOTA 巔峰,做到和 HRNet 幾乎持平,這就不由得令人對上述的理由進行了重新的思考。
上面三點中,哪些優勢是 RLE 在回歸的基礎上做到的呢?
上面三點中,哪些針對熱圖優勢解釋才是真正的核心所在?或者說哪些特性造成了二者在前幾年間的巨大差距?
在 RLE 補齊缺陷后,回歸和熱圖的核心還存在差異嗎?可不可以完成方法上的互相借鑒呢?
下面就讓我們來一探究竟。
還沒有讀過 RLE 的文章可以簡單讀一下我這篇零基礎的核心思路講解,熟悉一下 RLE 文章的概況,不然下面牽涉到相關知識可能會讀起來比較困難:
https://zhuanlan.zhihu.com/p/440567782
RLE和熱圖的共同優勢
首先簡單介紹一下 RLE 的核心思想:
數據集對關節的標注點是不能做到完美的。因此當標注值和真實的關節值存在偏差 時,RLE 學習這個偏差 的概率密度函數 。然后設計似然函數 ,作為損失函數訓練回歸網絡。為了更好的收斂,RLE 模仿殘差塊(Residual Block)學習殘差的思想,去學習偏差密度函數 較之于簡單分布的殘差 或者 ,以期學習分布的過程更快更好地收斂。
如果你第一次看到 RLE,對這段話存在很多問號的話,這是也正常的。這個時候還是推薦去讀讀論文,或者讀讀上面提到的文章,以對這段話想表達的意思多做熟悉。如果你可以很清楚的明白其核心思想,那我們不妨開始思考:
RLE的這個過程,做到了高斯熱圖三點優勢中的哪個(哪些)優勢呢?
簡單起見,我們就一條一條地對著看好了:
優勢1:高斯熱圖空間泛化性強,而回歸策略會丟失空間信息。——RLE 仍然是用的回歸,在 reshape 過程中仍然會丟失空間信息,但它依然可以做到和熱圖方法平分秋色。所以這條優勢可能不是那么重要。
優勢2:高斯熱圖能在一張圖中捕捉關節間的相關性,回歸的過程則缺少關節間相關性的捕捉。——RLE 仍然沒有顯式地捕捉這種關節間的關系,但這不影響它是熱圖方法旗鼓相當的對手。所以這條優勢可能也不是那么重要。
優勢3:高斯熱圖相當于一種軟標注,它鼓勵了一種漸進平滑的回歸過程,也能減少對噪聲數據的過擬合,而直接回歸則沒有這樣的過程。——RLE就恰恰是在回歸完成后,通過去學習標注和預測間的差值分布 ,從而建立起損失函數,以幫助回歸的。同時,因為學習的是標注的誤差情況,RLE 把你標注過程中出現的問題的規律都找出來了,也很自然能減少對那些標注不好的數據的過擬合。不難發現,RLE 和熱圖方法存在的一個很顯著的共性就是:二者都強調了坐標的周圍分布, 也都減輕了對標注的過擬合情況。
從上面的逐條比對中,我們不難發現,兩個方法的重要共性就是坐標周圍的分布情況。RLE 也好,熱圖也好,都是在這個分布上做了一些文章。熱圖顯式地將這個分布標注出來,作為學習目標。而 RLE 則相對不那么直接地利用學習到的分布,用它建立了損失函數,來幫助網絡更好的回歸。
分布很重要,然后呢?
現在我們意識到,對于 2D 姿態識別而言,關節點周圍的分布是一件重要的事情。RLE 在行文和實驗中,也多次強調了這一點。下面是在不同分布情況下訓練 resnet 得到的不同的效果,其中的差異可謂是巨大:
▲ 不同假設的分布下訓練出來的結果
不同假設條件下的分布作為受控的變量,RLE 組織了一系列對比實驗。從恒方差的高斯/拉普拉斯分布,到變方差的高斯/拉普拉斯分布,最后再到不同初始分布下的 RLE 學習到的分布,同一個 backbone 下性能差異可謂云泥之別。普遍而言,拉普拉斯分布更加符合關節標注的稀疏特性,因此往往可以取得更好的效果。但隨著分布的靈活度和可變性的增加,二者的差距也在不斷的減少。由于 RLE 采用的 flow 方法對分布具有非常出色的學習能力,因此最后兩種分布的差異已經減少到只剩 0.5%mAP 了。
那么現在我們既然知道了分布的形式很重要,總得利用這個性質來做點什么吧?考慮到傳統的熱圖是采用的分布是高斯分布,一個樸素且自然的想法就是:
將熱圖中的高斯分布改成拉普拉斯分布,再去訓練網絡。這不就讓訓練過程更符合數據特征了嗎?
于是我就在 SimpleBaseline 的基礎上改了兩行:
#?Copyright?(c)?Microsoft #?Licensed?under?the?MIT?License. #?Written?by?Bin?Xiao?(Bin.Xiao@microsoft.com) #?文件名:JointDataset.py #?line:211左右#原高斯分布代碼: #g?=?np.exp(-?((x?-?x0)?**?2?+?(y?-?y0)?**?2)?/?(2?*?self.sigma?**?2))#改成拉普拉斯分布: from?scipy.special?import?kn g=1/np.pi*kn(0,np.sqrt(2*((x-x0)**2+(y-y0)**2))/?(2?*?self.sigma?**?2)) g[g>1]=1生成的拉普拉斯熱圖在關節周圍看上去是這樣的:
▲ 拉普拉斯分布
同一樣本同一關節下,和高斯熱圖的對比圖是這樣的:
▲?圖中的分布有兩層,上面較寬的是高斯,上面被包含住的是拉普拉斯,拉普拉斯從高斯一半的地方切出來了
直覺上講,用了更符合數據特征的拉普拉斯分布,效果理應更好才對。于是我在 Colab 上訓練了四天兩夜,含辛茹苦地呵護電腦的網絡環境,終于跑完了 150 個 epoch 的 resnet50,效果卻恰恰相反(模型鏈接在這里 [3])。用這種策略訓練出來的模型,除了 AP.5 以外,均不如高斯分布下的熱圖。
▲ 實驗中的截圖
即使是將損失函數換成更契合分布形式的 l1 loss 也沒有讓情況更加好轉。更換損失函數后,訓練出來的模型也只是堪堪接近 0.69mAP。這不由得讓人納悶:
為什么對回歸方法而言的靈丹妙藥,到了熱圖方法上就不見成效了呢?
這個問題的答案就牽涉到這篇文章的核心所在了:
即使二者都是在網絡架構的最后模塊利用了“分布”這一工具,但它們在利用過程中采取的“先驗假設”不同,這也決定了它們對分布的利用方式存在“根本性”的不一致。
下面兩個模塊將著重闡釋這一核心觀點。
RLE和熱圖使用分布時的核心差異
要想明白高斯熱圖和RLE的核心差異,以及探索它們潛在的先驗的不同,我們至少要從其工作流程入手吧。那好,我們先來看高斯熱圖的工作流程:
高斯熱圖:先在標注好的目標點 周圍生成高斯形狀的分布 ,我們的模型生成的熱圖? 就是要逼近這個分布。逼近的指標就由每個像素點點總均方誤差 來衡量好了。
這種思路的潛臺詞就是:
高斯熱圖的先驗假設:每一個人工標注的點 都是正確的,我們只要用模型盡量逼近標注點就可以了。
看完高斯熱圖的先驗假設,我們再來看看 RLE 運作中秉持的思路是什么:
RLE: 先通過我的模型 回歸出坐標點 和偏差量 。如果坐標 和標注 相差得很厲害,相差到遠遠大于了偏差量 和我的標注誤差的分布函 所預測的范圍,那么一方面我肯定要去優化一下我的回歸模型 ,但另一方面在收集到新的誤差 后,我還必須再去優化一下我建立的標注誤差的分布函數 。
這個思路的潛臺詞是:
RLE 的先驗假設:每一個人工標注的點 都可能有偏差,所以我們要做的不僅僅是去逼近標注點,還必須去認識到這個標注偏差的分布形式。不然一旦預測有問題,對另一個潛在的問題源視而不見,而全都賴成模型的不好,模型也沒辦法很好的知錯能改(梯度下降)。
看下來兩個策略的先驗假設,你覺得哪個更加有道理呢?第二個顯然要中肯不少。事實上,標注的偏差在其他 cv 領域中應該也存在,但在 2D 姿態識別中,面對每一個關節都要做到像素級別的正確標注,這個難度其實是相當大的。圖像分割領域可能也會有像素上標注偏差,但這種偏差一般存在在物體的邊界處。除去一些小物體外,roi 的得分大頭應該還是在邊界的內部,所以問題可能還沒那么明顯。但對于姿態識別,關節標注的誤差分布問題則應該成為我們考慮的對象。
那現在我們先假裝確立了這樣一條簡化過的原則:
標注 離真實存在的點 存在誤差。其分布近似于拉普拉斯分布。
在此原則上,我們能不能通過一個簡單的實驗,從而給出第二部分中的拉普拉斯熱圖性能不升反降的解釋呢?這是可以的做到的。這個實驗只要用蒙特卡羅法模擬標記-預測的過程就好了。
我們先假設存在一個真正的關節點 ,不失一般性把它設成原點 。
現在由于我們標注得不太好,標注的點 在 周圍以拉普拉斯的形式分布。我們按照出現的概率拋硬幣采樣,得到采樣值 作為一次仿真中的標記點。
由于我們模型受到訓練,可以做到以高斯/拉普拉斯的形式逼近采樣點 ,但這種逼近不會 100% 正確,所以我們按照高斯/拉普拉斯的概率分布,以采樣點 為中心再拋一次硬幣,從而仿真出這次模型預測的值 。
最后我們重復進行大量的仿真,從而計算高斯和拉普拉斯兩種分布下,預測點 相對于 的均方誤差或者 l1 誤差。
簡單的圖片闡釋如下:
簡單的代碼如下:
import?numpy?as?np iteration=100000 mse_gau_sum=0#初始化高斯熱圖的總mse誤差 mse_lap_sum=0#初始化拉普拉斯熱圖的總mse誤差 l1_gau_sum=0#初始化高斯熱圖的總l1誤差 l1_lap_sum=0#初始化拉普拉斯熱圖的總l1誤差 for?i?in?np.arange(iteration):sample=np.random.laplace(loc=0.0,?scale=1.0)#第一次采樣,取出(x_sample)pred_gau=np.random.normal(loc=sample,?scale=1.0)#第二次高斯采樣,取出(x_pred1)pred_lap=np.random.laplace(loc=sample,?scale=1.0)#第二次拉普拉斯采樣,取出(x_pred2)#loss累加mse_gau_sum+=pred_gau**2mse_lap_sum+=pred_lap**2l1_gau_sum+=abs(pred_gau)l1_lap_sum+=abs(pred_lap) #誤差的累加除以迭代總次數 mse_gau=mse_gau_sum/iteration mse_lap=mse_lap_sum/iteration l1_gau=l1_gau_sum/iteration l1_lap=l1_lap_sum/iteration結果如下表所示:
可以看出,在標注存在拉普拉斯形式的誤差時,并不應該給標注點設置拉普拉斯熱圖。因為這種情況下,拉普拉斯熱圖的誤差其實要大于高斯熱圖,因此采用高斯熱圖才是實際上更好的選擇。這也就解釋了第二部分中,采取拉普拉斯熱圖后效果不升反降的原因了。
定性一點來講,其實這是因為拉普拉斯分布的預測比高斯分布更加自信。但在標注本身存在誤差的情況下,這種自信反而對預測真實值不利。倒是溫和一些的高斯分布,在對標注的錯誤不知情的情況下,平均預測出的結果離真實值更近。
核心差異可以解釋的其他現象
其實在明白二者存在先驗假設上的核心差異之前,我還曾經對 RLE 中的一個實驗結果的疑問久久不能釋懷。
▲ heatmap+regression的混合性能測試
簡單來講,這組實驗是在回歸的網絡之外,又額外接了幾個 deconv 層生成 heatmap。然后將這個 heatmap 生成的 loss 以一定比例加到 regression 的 loss 中。最后根據加權后的 loss 對網絡的參數進行訓練。然而,這么做不但沒有讓模型效果變好,反而使模型的效果下降。
這個時候很容易想到的解釋是,heatmap loss 的效果很差,所以污染了 regression loss 的效果。但這個時候,實驗中最難以解釋的事情發生了:隨著 heatmap loss 的增大,得到的 AP 先降再升,呈現出U型的曲線。如果模型性能的下降單純是因為 heatmap 效果差,那其實可以預見的是 AP 隨著 heatmap loss 的增大單調下降。但是事實和這個相反,這就很讓人困惑:
一來,集成損失函數得到的效果非但沒有變好,反而是變差了。二來,這又不是因為集成進來的部分本身質量差。
但當我認識到二者深層的矛盾性后,其實這兩點奇怪現象的原因也就不言自明了。
“集成后的效果不降反升”,這是因為二者根本的要達成的目標本來就是南轅北轍。當 RLE 想要努力逼近 ground truth 時,heatmap loss 卻拉住了 RLE,讓它去逼近 annotation,這就帶來了效果的下降。
“這又不是因為集成進來的部分本身質量差”,這是因為 heatmap loss 本身可以達到的效果是和 RLE 相當的,所以當它的比例提高的時候,其實模型的主體就從 RLE 過渡到了 heatmap loss,因此效果會迎來回暖。
形象一點講的話,heatmap loss 和 RLE loss 本身就像是兩根朝著不同方向拉的繩子。當只有一條繩子作用時效果最好,當加入了另一者后效果會下降,降到二者旗鼓相當時迎來效果的最低點。再往后的話,如果提高加入者的權重,效果就會回暖,也就是說這個時候繩子朝著加入者的方向偏去了,所以打破了平衡拉扯時的最低點。
總結
最后的最后,來簡單總結一下這篇文章的大體內容:
首先通過目前兩大 SOTA 方法的優勢對比,篩選出了對于 2D 姿態估計較為重要的事物: 坐標點周圍的分布。通過利用這種分布,我們既可以做到幫助網絡平滑收斂,也能減少過擬合。
然后根據 RLE 中 laplace 分布的較好表現提出了樸素的猜想:是否將拉普拉斯分布應用到熱圖上后,模型也可以得到更好的表現呢?然而,實驗卻給出了否定的回答。
通過探索熱圖和 RLE 對于標注假設的不同,用簡單的實驗解釋了上述現象。并得到了二者的核心差異所在:雖然都是利用坐標周圍的分布訓練模型,但熱圖假定標注是正確無疑的,RLE 則假定標注沒法盡善盡美,而是和真實值之間存在偏移。
最后利用上述猜想,回答了一個令人困擾的疑問:為什么組合后的 loss 其效果呈現出獨特的 U 型分布。
參考文獻
[1] https://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/Szegedy_Rethinking_the_Inception_CVPR_2016_paper.pdf
[2] https://arxiv.org/abs/2107.11291
[3]?https://drive.google.com/file/d/1--fJjwS9V_YljuUaLdRvVZk4CCR-RJt_/view?usp=sharing
特別鳴謝
感謝 TCCI 天橋腦科學研究院對于 PaperWeekly 的支持。TCCI 關注大腦探知、大腦功能和大腦健康。
更多閱讀
#投 稿?通 道#
?讓你的文字被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學術熱點剖析、科研心得或競賽經驗講解等。我們的目的只有一個,讓知識真正流動起來。
📝?稿件基本要求:
? 文章確系個人原創作品,未曾在公開渠道發表,如為其他平臺已發表或待發表的文章,請明確標注?
? 稿件建議以?markdown?格式撰寫,文中配圖以附件形式發送,要求圖片清晰,無版權問題
? PaperWeekly 尊重原作者署名權,并將為每篇被采納的原創首發稿件,提供業內具有競爭力稿酬,具體依據文章閱讀量和文章質量階梯制結算
📬?投稿通道:
? 投稿郵箱:hr@paperweekly.site?
? 來稿請備注即時聯系方式(微信),以便我們在稿件選用的第一時間聯系作者
? 您也可以直接添加小編微信(pwbot02)快速投稿,備注:姓名-投稿
△長按添加PaperWeekly小編
🔍
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
·
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的RLE重铸回归方法的荣光后,回归和热图的异同究竟在何方?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Uber上市估值1200亿美元 市场态度
- 下一篇: 直播预告 | AAAI 2022论文解读