如何融合深度学习特征向量?
文 | 土豆@知乎
本文已獲作者授權,禁止二次轉載
前言
在深度學習中,經常會存在需要特征融合的地方[1],而最基本的融合方法無非是:(1) 按點逐位相加(point-wise addition) 和 (2) 進行向量拼接(concatenate)。這兩種方式有著異同,也有著關聯,接下來進行簡單討論。
Point-wise addition
逐個位相加,用數學表達為: 現有特征向量 , ,為了融合這兩個特征向量,直接進行對應元素的相加,既是
進行這個操作的前提當然是這兩個向量的維度是相同的,如果是不同維度,則可以通過線性變換 轉換成同維向量,其中 。
Concatenate
向量拼接,則是一個更為通用的特征融合方法,數學表達為:現有特征向量, ,將其在同一個階[2]的進行拼接,有融合特征向量。拼接完后,經常可以用線性映射,轉換成,進行這一步的操作目的是能夠和前者point-wise addition的進行同維度的比較。
兩者關聯與異同
前面介紹的兩種操作,其實是有聯系的,結論先拋出了,就是:point-wise addition 是 concatenate的特殊形式,前者可以用學習的方式,用后者表示出來,用另一種說法就是,point-wise addition 是 concatenate加了一定先驗假設的結果。為什么這樣說呢?我們先觀察一種情況:
比較兩種特征融合的方式,并且進行線性映射后的結果,有:
Addition:
其中每一個可以表達成:
,用矩陣形式表達就是:
舉個具體的例子,, 那么最后結果容易算出是。
Concatenate:
還是用矩陣的形式對其進行表達,不過這個時候我們的,可以發現這個情況下參數量比上者多得多。
這個時候我們可以發現,通過學習過程中的自動參數調整,在concatenate的情況下,總是有辦法表達成Addition中的結果的,原因就是可以通過設置Concatenate情形下的的某些值相同,還是舉原來的具體例子說明:
,此時只需要,就可以表達成和Addition完全一樣的結果,讀者可以自行驗證。
就結論而言,因為Concatenate情況下參數量完全足以cover住Addition的,因此通過學習過程,完全是可以進行表達的,因此后者是前者的特殊形式,是添加了先驗知識的特征融合方法。
那么,這個先驗知識是什么呢?筆者認為因為Addition是在相同維度的特征空間中進行的,相加代表特征向量的平移,因此這個先驗知識可能是假設這兩類特征具有相似性,比如模態比較接近,性質比較相同的特征。當然這個只是筆者猜測,并無文獻參考,歡迎各位斧正,謝謝。
有朋友問:
“point-wise addition 是 concatenate的特殊形式”的結果似乎只在均將融合后的特征線性映射成標量后才成立,但是這兩種融合方法之后不一定要經過這種處理吧?而且,這種線性映射會減少大量信息,似乎不甚合理?
我覺得這個問題其實是不成立的,因為原文里面舉的例子是映射成為標量只是為了舉例方便而已,實際上,映射成其他高維矢量也是沒問題的,比如說:在Pointwise addition的情況,那么假設其,我們有:
在concatenate的情況中,我們有:
那么如果需要退化到addition的情況的話,我們的可以為:
因為我們有八個未知量,而只有兩個方程,因此這是個病態問題,其實我們有多組解的,不管怎么樣,我們總是可以用concatenate去退化到addition的情況的,不管是映射到標量還是矢量。
后臺回復關鍵詞【入群】
加入賣萌屋NLP/IR/Rec與求職討論群
后臺回復關鍵詞【頂會】
獲取ACL、CIKM等各大頂會論文集!
?
[1] Li K, Zou C, Bu S, et al. Multi-modal feature fusion for geographic image annotation[J]. Pattern Recognition, 2018, 73: 1-14.
[2] https://blog.csdn.net/dcrmg/article/details/
79017146
總結
以上是生活随笔為你收集整理的如何融合深度学习特征向量?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Jarvis:一个值得关注的多模态端到端
- 下一篇: 梳理百年深度学习发展史-七月在线机器学习