性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

徐土豆
認(rèn)證:優(yōu)質(zhì)創(chuàng)作者
所在專題目錄 查看專題
《學(xué)習(xí)geometric deep learning筆記系列》第一篇,Non-Euclidean Structure Data之我見
《Geometric Deep Learning學(xué)習(xí)筆記》第二篇, 在Graph上定義卷積操作,圖卷積網(wǎng)絡(luò)
《Geometric Deep Learning學(xué)習(xí)筆記》第三篇,GCN的空間域理解,Message Passing以及其含義
Shift-GCN網(wǎng)絡(luò)論文筆記
Shift-GCN中Shift的實(shí)現(xiàn)細(xì)節(jié)筆記,通過torch.index_select實(shí)現(xiàn)
作者動(dòng)態(tài) 更多
給定計(jì)算預(yù)算下的最佳LLM模型尺寸與預(yù)訓(xùn)練數(shù)據(jù)量分配
2天前
大模型推理時(shí)的尺度擴(kuò)展定律
3天前
世界多胞體與世界模型
1星期前
獎(jiǎng)勵(lì)模型中的尺度擴(kuò)展定律和獎(jiǎng)勵(lì)劫持
1星期前
MeCo——給預(yù)訓(xùn)練數(shù)據(jù)增加源信息,就能減少33%的訓(xùn)練量并且提升效果
2星期前

Shift-GCN網(wǎng)絡(luò)論文筆記

近日筆者在閱讀Shift-GCN[2]的文獻(xiàn),Shift-GCN是在傳統(tǒng)的GCN的基礎(chǔ)上,用Shift卷積算子[1]取代傳統(tǒng)卷積算子而誕生出來的,可以用更少的參數(shù)量和計(jì)算量達(dá)到更好的模型性能,筆者感覺蠻有意思的,特在此筆記。 本文轉(zhuǎn)載自徐飛翔的“Shift-GCN網(wǎng)絡(luò)論文筆記

版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接和本聲明。

Shift-GCN是用于骨骼點(diǎn)序列動(dòng)作識(shí)別的網(wǎng)絡(luò),為了講明其提出的背景,有必要先對ST-GCN網(wǎng)絡(luò)進(jìn)行一定的了解。

ST-GCN網(wǎng)絡(luò)

骨骼點(diǎn)序列數(shù)據(jù)是一種天然的時(shí)空圖結(jié)構(gòu)數(shù)據(jù),具體分析可見[5,6],針對于這類型的數(shù)據(jù),可以用時(shí)空圖卷積進(jìn)行建模,如ST-GCN[4]模型就是一個(gè)很好的代表。簡單來說,ST-GCN是在空間域上采用圖卷積的方式建模,時(shí)間域上用一維卷積進(jìn)行建模。

骨骼點(diǎn)序列可以形式化表達(dá)為一個(gè)時(shí)空圖,其中有著個(gè)關(guān)節(jié)點(diǎn)和幀。骨骼點(diǎn)序列的輸入可以表達(dá)為,其中表示維度。為了表示人體關(guān)節(jié)點(diǎn)之間的連接,我們用鄰接矩陣表達(dá)。按照ST-GCN原論文的策略,將人體的鄰接矩陣劃分為三大部分:1)離心群;2)向心群;3)根節(jié)點(diǎn)。具體的細(xì)節(jié)請參考論文[4]。每個(gè)部分都對應(yīng)著其特定的鄰接矩陣 , 其中表示劃分部分的索引。用符號(hào)分別表示輸入和輸出的特征矩陣,其中是輸入輸出的通道維度。那么,根據(jù)我們之前在GCN系列博文[7,8,9]中介紹過的,我們有最終的人體三大劃分的特征融合為:

其中P = { 根 節(jié) 點(diǎn) , 離 心 群 , 向 心 群 } ,是標(biāo)準(zhǔn)化后的鄰接矩陣,其中,具體這些公式的推導(dǎo),見[7,8,9]。其中的是每個(gè)人體劃分部分的1x1卷積核的參數(shù),需要算法學(xué)習(xí)得出。整個(gè)過程如Fig 1.1所示。

Fig 1.1 STGCN的示意圖,通過不同的鄰接矩陣可以指定不同的身體劃分部分,通過1x1卷積可以融合通道間的信息,最后融合不同劃分部分的信息就形成了新的輸出向量。

ST-GCN的缺點(diǎn)體現(xiàn)在幾方面:

  1. 計(jì)算量大,對于一個(gè)樣本而言,ST-GCN的計(jì)算量在16.2GFLOPs,其中包括4.0GFLOPs的空間域圖卷積操作和12.2GFLOPs的時(shí)間一維卷積操作。
  2. ST-GCN的空間和時(shí)間感知野都是固定而且需要人為預(yù)先設(shè)置的,有些工作嘗試采用可以由網(wǎng)絡(luò)學(xué)習(xí)的鄰接矩陣的圖神經(jīng)網(wǎng)絡(luò)去進(jìn)行建模[10,11],即便如此,網(wǎng)絡(luò)的表達(dá)能力還是受到了傳統(tǒng)的GCN的結(jié)構(gòu)限制。

Shift-GCN針對這兩個(gè)缺點(diǎn)進(jìn)行了改進(jìn)。

Shift-GCN

這一章對Shift-GCN進(jìn)行介紹,Shift-GCN對ST-GCN的改進(jìn)體現(xiàn)在對于空間信息(也就是單幀的信息)的圖卷積改進(jìn),以及時(shí)序建模手段的改進(jìn)(之前的工作是采用一維卷積進(jìn)行建模的)。

Spatial Shift-GCN

Shift-GCN是對ST-GCN的改進(jìn),其啟發(fā)自Shift卷積算子[1],主要想法是利用1x1卷積算子結(jié)合空間shift操作,使得1x1卷積同時(shí)可融合空間域和通道域的信息,具體關(guān)于shift卷積算子的介紹見博文[12],此處不再贅述,采用shift卷積可以大幅度地減少參數(shù)量和計(jì)算量。如Fig 2.1所示,對于單幀而言,類似于傳統(tǒng)的Shift操作,可以分為Graph Shift和1x1 conv兩個(gè)階段。然而,和傳統(tǒng)Shift操作不同的是,之前Shift應(yīng)用在圖片數(shù)據(jù)上,這種數(shù)據(jù)是典型的歐幾里德結(jié)構(gòu)數(shù)據(jù)[7],數(shù)據(jù)節(jié)點(diǎn)的鄰居節(jié)點(diǎn)可以很容易定義出來,因此卷積操作也很容易定義。而圖數(shù)據(jù)的特點(diǎn)決定了其某個(gè)數(shù)據(jù)節(jié)點(diǎn)的鄰居數(shù)量(也即是“度”)都可能不同,因此傳統(tǒng)的卷積在圖數(shù)據(jù)上并不管用,傳統(tǒng)的shift卷積操作也同樣并不能直接在骨骼點(diǎn)數(shù)據(jù)上應(yīng)用。那么就需要重新在骨骼點(diǎn)數(shù)據(jù)上定義shift卷積操作。

作者在[2]中提出了兩種類型的骨骼點(diǎn)Shift卷積操作,分別是:

  1. 局部Shift圖卷積(Local Shift Graph Convolution)
  2. 全局Shift圖卷積(Global Shift Graph Convolution)

下文進(jìn)行簡單介紹。

Fig 2.1 采用了shift卷積算子的GCN,因?yàn)楣趋傈c(diǎn)序列屬于圖數(shù)據(jù),因此需要用特別的手段去定義shift操作。

局部shift圖卷積

在局部shift圖卷積中,依然只是考慮了骨骼點(diǎn)的固有物理連接,這種連接關(guān)系與不同數(shù)據(jù)集的定義有關(guān),具體示例可見博文[13],顯然這并不是最優(yōu)的,因?yàn)楹芸赡苣承﹦?dòng)作會(huì)存在節(jié)點(diǎn)之間的“超距”關(guān)系,舉個(gè)例子,“拍掌”和“看書”這兩個(gè)動(dòng)作更多取決于雙手的距離之間的變化關(guān)系,而雙手在物理連接上并沒有直接相連。

盡管局部shift圖卷積只考慮骨骼點(diǎn)的固有連接,但是作為一個(gè)好的基線,也是一個(gè)很好的嘗試,我們開始討論如何定義局部shift圖卷積。如Fig 2.2所示,為了簡便,我們假設(shè)一個(gè)骨架的骨骼點(diǎn)只有7個(gè),連接方式如圖所示,不同顏色代表不同的節(jié)點(diǎn)。對于其中某個(gè)節(jié)點(diǎn) , 而言,用表示節(jié)點(diǎn)v vv的鄰居節(jié)點(diǎn),其中鄰居節(jié)點(diǎn)的數(shù)量。類似于傳統(tǒng)的Shift卷積中所做的,對于每一個(gè)節(jié)點(diǎn)的特征向量,其中是通道的數(shù)量,我們將通道均勻劃分為份片區(qū),也即是每一份片區(qū)包含有個(gè)通道。我們讓第一份片區(qū)保留本節(jié)點(diǎn)(也即是節(jié)點(diǎn)本身)的特征,而剩下的個(gè)片區(qū)分別從鄰居中通過平移(shift)操作得到,如式子(2.1)所示。用表示單幀的特征,用表示圖數(shù)據(jù)shift操作之后的對應(yīng)特征,其中表示節(jié)點(diǎn)的數(shù)量,表示特征的維度,本例子中

整個(gè)例子的示意圖如Fig 2.2所示,其中不同顏色的節(jié)點(diǎn)和方塊代表了不同的節(jié)點(diǎn)和對應(yīng)的特征。以節(jié)點(diǎn)1和節(jié)點(diǎn)2的shift操作為例子,節(jié)點(diǎn)1的鄰居只有節(jié)點(diǎn)2,因此把節(jié)點(diǎn)1的特征向量均勻劃分為2個(gè)片區(qū),第一個(gè)片區(qū)保持其本身的特征,而片區(qū)2則是從其對應(yīng)的鄰居,節(jié)點(diǎn)2中的特征中平移過去,如Fig 2.2的Shift for node 1所示。類似的,以節(jié)點(diǎn)2為例子,節(jié)點(diǎn)2的鄰居有節(jié)點(diǎn)4,節(jié)點(diǎn)1,節(jié)點(diǎn)3,因此把特征向量均勻劃分為4個(gè)片區(qū),同樣第一個(gè)片區(qū)保持其本身的特征,其他鄰居節(jié)點(diǎn)按照序號(hào)升序排列,片區(qū)2則由排列后的第一個(gè)節(jié)點(diǎn),也就是節(jié)點(diǎn)1的特征平移得到。類似的,片區(qū)3和片區(qū)4分別由節(jié)點(diǎn)3和節(jié)點(diǎn)4的對應(yīng)片區(qū)特征平移得到。如Fig 2.2的Shift for node 2所示。最終對所有的節(jié)點(diǎn)都進(jìn)行如下操作后,我們有如Fig 2.2的The feature after shift所示。

Fig 2.2 局部shift圖卷積操作的示意圖,假設(shè)骨骼點(diǎn)數(shù)據(jù)只有7個(gè)骨骼點(diǎn)節(jié)點(diǎn)。

全局shift圖卷積

局部shift圖卷積操作有兩個(gè)缺點(diǎn):

  1. 只考慮物理固有連接,難以挖掘潛在的“超距”作用的關(guān)系。
  2. 數(shù)據(jù)有可能不能被完全被利用,如Fig 2.2的節(jié)點(diǎn)3的特征為例子,如Fig 2.3所示,節(jié)點(diǎn)3的信息在某些通道遺失了,這是因?yàn)椴煌?jié)點(diǎn)的鄰居數(shù)量不同。

Fig 2.3 紅色虛線框內(nèi)的通道部分完全失去了節(jié)點(diǎn)3的特征信息(也即是紫色方塊)。

為了解決這些問題,作者提出了全局Shift圖卷積,如Fig 2.4所示。其改進(jìn)很簡單,就是去除掉物理固有連接的限制,將單幀的骨骼圖變成完全圖,因此每個(gè)節(jié)點(diǎn)都會(huì)和其他任意節(jié)點(diǎn)之間存在直接關(guān)聯(lián)。給定特征圖,對于第i ii個(gè)通道的平移距離。這樣會(huì)形成類似于螺旋狀的特征結(jié)構(gòu),如Fig 2.4的The feature after shift所示。

Fig 2.4 全局shift圖卷積操作的示意圖,假設(shè)骨骼點(diǎn)數(shù)據(jù)只有7個(gè)骨骼點(diǎn)節(jié)點(diǎn)。其中和局部shift圖卷積操作的區(qū)別在于,當(dāng)前的圖是完全圖,也即是完全連接的圖了。

為了挖掘骨骼完全圖中的人體關(guān)鍵信息,把重要的連接給提取出來,作者在全局shift圖卷積基礎(chǔ)上還使用了注意力機(jī)制,如式子(2.2)所示。

Temporal Shift-GCN

在空間域上的shift圖卷積定義已經(jīng)討論過了,接下來討論在時(shí)間域上的shift圖卷積定義。如Fig 2.5所示,考慮到了時(shí)序之后的特征圖層疊結(jié)果,用符號(hào)表示時(shí)空特征圖,其中有。這種特征圖可以天然地使用傳統(tǒng)的Shift卷積算子,具體過程見[12],我們稱之為naive temporal shift graph convolution。在這種策略中,我們需要將通道均勻劃分為個(gè)片區(qū),每個(gè)片區(qū)有著偏移量為。與[12]策略一樣,移出去的通道就被舍棄了,用0去填充空白的通道。這種策略需要指定u uu的大小,涉及到了人工的設(shè)計(jì),因此作者提出了adaptive temporal shift graph convolution,是一種自適應(yīng)的時(shí)序shift圖卷積,其對于每個(gè)通道,都需要學(xué)習(xí)出一個(gè)可學(xué)習(xí)的時(shí)間偏移參數(shù)。如果該參數(shù)是整數(shù),那么無法傳遞梯度,因此需要放松整數(shù)限制,將其放寬到實(shí)數(shù),利用線性插值的方式進(jìn)行插值計(jì)算,如式子(2.3)所示。

其中是由于將整數(shù)實(shí)數(shù)化之后產(chǎn)生的余量,需要用插值的手段進(jìn)行彌補(bǔ),由于實(shí)數(shù)化后,錨點(diǎn)落在了之間,因此在這個(gè)區(qū)間之間進(jìn)行插值。

Fig 2.5 考慮到時(shí)序后的特征圖層疊結(jié)果。

網(wǎng)絡(luò)

結(jié)合spatial shift-gcn和temporal shift-gcn操作后,其網(wǎng)絡(luò)基本單元類似于ST-GCN的設(shè)計(jì),如Fig 2.6所示。

Fig 2.6 Shift-Conv模塊和Shift-Conv-Shift模塊的設(shè)計(jì)都是參考了ST-GCN和傳統(tǒng)Shift卷積網(wǎng)絡(luò)設(shè)計(jì)的。

Update 20201130:來自一個(gè)知乎朋友的問題:

ID:fightingQ:好巧啊,又跟你看到同一篇論文了。不知道還記得我嗎。這里的naive temporal shift 寫的不詳細(xì)。不知道我理解的對不對,想跟你探討一下。對于每一個(gè)節(jié)點(diǎn)的c個(gè)通道,劃分為u個(gè)部分。每個(gè)部分分別替換為其第-u,,,0,1,u幀處的對應(yīng)特征,其中0指的是節(jié)點(diǎn)本身的這一部分特征。這樣每一個(gè)節(jié)點(diǎn)就會(huì)包含了2u+1幀的信息。在adaptive中,每個(gè)通道都設(shè)置了一個(gè)可學(xué)習(xí)的移動(dòng)參數(shù),但是這個(gè)移動(dòng)參數(shù)是怎么來學(xué)的。我隨意設(shè)置這樣一個(gè)學(xué)習(xí)的shift參數(shù),學(xué)習(xí)的依據(jù)是啥呢?

回答:正如原文所講的,其中的naive temporal shift完全是按照傳統(tǒng)的shift卷積算子操作進(jìn)行計(jì)算的,具體見[1]。我們知道,進(jìn)行通道上的shift操作的目的在于改變卷積的感知野,因此文中提到的超參數(shù)其實(shí)就是控制了每一層的時(shí)序感知野大小,但是這樣有幾個(gè)缺點(diǎn):

  1. 卷積是具有層次結(jié)構(gòu)的,每一層的u uu如果都一樣,那么感知野理論上也是一樣的,這樣不合理,因此卷積的層次結(jié)構(gòu)意味著感知野大小不一定一致。
  2. 需要人工去設(shè)置這個(gè)超參數(shù),對于不同數(shù)據(jù)集的結(jié)果都不一樣,工作量大。

因此,引入了所謂的自適應(yīng)時(shí)序 shift,其出發(fā)點(diǎn)就是通過反向梯度傳播去學(xué)習(xí)每一層的感知野,也就是每一層都有一個(gè),因?yàn)樾枰_保可以求導(dǎo),這個(gè)參數(shù)必須是保證為浮點(diǎn)數(shù)才能存在梯度,因此shift操作被泛化到插值操作,正如式子(2.3)所示。

其實(shí)原論文對這個(gè)自適應(yīng)學(xué)習(xí)出來的參數(shù)進(jìn)行了可視化,如Fig a1所示,作者對于不同的數(shù)據(jù)集(NTU RGBD和NW-UCLA)上進(jìn)行了adaptive temporal shift的每一層的結(jié)果的可視化(具體分析見原論文),簡單來說,頂層(top layer, 也即是輸出層)的值范圍都比較大(表現(xiàn)為值的范圍比較寬廣),意味著輸出層需要的時(shí)序感知野比較大,這一點(diǎn)很容易理解,因?yàn)檩敵鰧有枰嗟臅r(shí)序語義信息,因此感知野比較大是正常的;而底層(bottom layer,也即是輸入層)的值范圍都比較小,這一點(diǎn)也很好理解,輸入層更多的是單幀的底層信息建模(比如紋理,色彩,邊緣信息等),因此時(shí)序感知野比較小是正常的。

通過這種自適應(yīng)的學(xué)習(xí)手段,確保了對不同層的shift系數(shù)的獨(dú)立學(xué)習(xí),因此使得不同層具有不同的時(shí)序感知野。

以上。

Fig a1. 對不同數(shù)據(jù)集上學(xué)習(xí)到的時(shí)序平移系數(shù)進(jìn)行可視化的結(jié)果,(a)為NTU RGBD數(shù)據(jù)集結(jié)果,(b)為NW-UCLA數(shù)據(jù)集的結(jié)果。我們發(fā)現(xiàn)底層(輸入層)的值都偏小,頂層(輸出層)的值偏大。意味著輸入層的感知野需求比較小,而輸出層的感知野需求比較大。

Reference

[1]. Wu, B., Wan, A., Yue, X., Jin, P., Zhao, S., Golmant, N., … & Keutzer, K. (2018). Shift: A zero flop, zero parameter alternative to spatial convolutions. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (pp. 9127-9135).

[2]. Cheng, K., Zhang, Y., He, X., Chen, W., Cheng, J., & Lu, H. (2020). Skeleton-Based Action Recognition With Shift Graph Convolutional Network. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (pp. 183-192).

[3]. https://fesian.blog.csdn.net/article/details/109474701

[4]. Sijie Yan, Yuanjun Xiong, and Dahua Lin. Spatial temporal graph convolutional networks for skeleton-based action recognition. In Thirty-Second AAAI Conference on Artificial Intelligence, 2018.

[5]. https://fesian.blog.csdn.net/article/details/105545703

[6]. https://blog.csdn.net/LoseInVain/article/details/87901764

[7]. https://blog.csdn.net/LoseInVain/article/details/88373506

[8]. https://fesian.blog.csdn.net/article/details/90171863

[9]. https://fesian.blog.csdn.net/article/details/90348807

[10]. Lei Shi, Yifan Zhang, Jian Cheng, and Hanqing Lu. Skeleton-based action recognition with directed graph neural networks. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 7912–7921, 2019

[11]. Lei Shi, Yifan Zhang, Jian Cheng, and Hanqing Lu. Two stream adaptive graph convolutional networks for skeleton based action recognition. In The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), June 2019.

[12]. https://fesian.blog.csdn.net/article/details/109474701

[13]. https://fesian.blog.csdn.net/article/details/108242717

聲明:本內(nèi)容為作者獨(dú)立觀點(diǎn),不代表電子星球立場。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請聯(lián)系:editor@netbroad.com
覺得內(nèi)容不錯(cuò)的朋友,別忘了一鍵三連哦!
贊 1
收藏 3
關(guān)注 52
成為作者 賺取收益
全部留言
0/200
成為第一個(gè)和作者交流的人吧