文獻引用
Amirian J, Hayet J B, Pettre J. Social Ways: Learning Multi-Modal Distributions of Pedestrian Trajectories with GANs[J]. 2019.
文章是繼Social LSTM、Social GAN模型后的進一步提升,在理想的監控俯瞰數據庫ETH、UCY上進行數據的預測。重點貢獻有:
- 引入了注意力機制使模型自主分配對交互信息的關注。
- 舍棄了L2代價函數,引入基於互信息的Information Loss,增強了模型對多合理軌跡的預測能力。
- 提供了一種能夠驗證各模型的多軌跡預測能力的小型合成場景和軌跡生成效果的判斷指標。
模型框架
如上圖所示,文章的基本框架是GAN網絡,在不考慮batch批處理的情況下,模型逐一為每個行人預測軌跡。
- 在Generator中,對於待預測行人\(i\),首先會將所有行人的已知軌跡進行編碼,而后基於\(i\)和其他行人之間的地理和運動信息,引入注意力機制使得模型對其他行人的交互信息自主適應。行人\(i\)的軌跡編碼、注意力池化后的交互信息、噪音、latent code(新引入內容,之后會講到)四種輸入作為Decoder的輸入,解碼出行人\(i\)的預測軌跡。
- 在Discriminator中,會對生成軌跡/真實軌跡進行判別,判別的結果作為Generator/Discriminator的代價函數。
- 模型框架具體來說是InfoGAN,InfoGAN網絡解決的是在無監督的情況下通過修改latent code傾向從而控制GAN的生成分布,與GAN相比其強調latent code對生成的控制性,與cGAN相比其強調能夠在有潛在類別的數據中無監督(無數據標簽)學習。因而GAN網絡中新引入了Latent Code和Information Loss兩個結構。
HighLight 1 - 注意力機制
注意力機制采用Key-Value-Query型定義,從認知角度引入合適的手工指標,基於這些指標使模型能夠對周圍軌跡產生不同的注意力。
- Key = Value = \(H_t\)(除目標行人\(i\)外,其他的行人的軌跡編碼信息)。
- Query:\(f^{ij}\)由三種運動地理運動信息合成
- \(i\)和\(j\)之間的歐式距離
- \(i\)和\(j\)之間運動方向的夾角。
- 以當前運動姿態,\(i\)和\(j\)未來將會出現的最短距離。
HighLight 2 - InfoGAN
原文[推薦閱讀] Chen X, Duan Y, Houthooft R, et al. InfoGAN: Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets[J]. 2016.
InfoGAN模型解讀:https://www.jiqizhixin.com/articles/2018-10-29-21,內容過簡練,建議閱讀原文。
模型結構
InfoGAN的模型結構相較於GAN的改進是較小的,在上文的模型中,首先是在輸入中新增了Latent Code,而后棄用了SGAN中的L2損失函數,在Discriminator在加入了一個子網絡\(Q\)產生Information Loss。
原理簡介
-
Motivation: InfoGAN訓練后的理想狀態是通過調整Latent Code(潛碼)——\(c\)輸入控制生成的分布。然而GAN自由靈活性很高,網絡很容易直接忽視Latent Code的存在,因此必須調整代價函數使網絡重視Latent Code的存在。InfoGAN提出使用互信息\(I\)作為優化目標,\(I\)越大則潛碼和生成的關系越大:
\[I(X;Y) = H(X) - H(X|Y) \]對於互信息\(I(X;Y)\),其本意是指在已知\(Y\)的情況下,\(X\)的不確定性下降程度,當兩者結合得非常緊密時,互信息將變得非常大。因此我們希望\(I(c;G(z,c))\)能夠盡可能大,這樣潛碼就能控制Generator的生成了。
-
Restriction:
-
\(H(c)\)是信息熵的計算,文章中在此假定\(H(c)\)是一個固定的值,因此優化目標轉化為令\(H(c|x)\)最大化。
知識補充:
- 信息熵的計算公式:\(H(X) = E[I(x_i)] = - \sum_{i=1}^NP(x_i)logP(x_i)\)
- 具體計算:\(H(c|x)=-E_{x \sim G(z,c)}[E_{c'\sim P(c|x)}[logP(c'|x)]]\)
-
需要后驗概率\(P(c|x)\),要獲取其非常困難,因此使用\(Q(c|x)\)(輔助分布)來近似求解后驗的概率\(P(c|x)\),並且作者通過數學推導了在互信息的計算中\(P(c|x)\)和\(Q(c|x)\)間的關系:
[!] 這里請務必留意將“=“變為”>=“時移除的部分是P和Q的KL散度,KL散度是用於衡量P和Q之間分布差異性的指標。這將為后文解釋優化的合理性提供重要支撐。
-
-
我們繼續與\(P(c|x)\)的斗爭,之前我們求出了\(I(c;G(z,c))\)的下界:
\[E_{x\sim G(z,c)}[E_{c'\sim P(c|x)}[logQ(c'|x)]] + H(c) \]下界中相較原式\(E[.]\)中的\(P(c|x)\)被替代了,但是求期望的隨機變量\(c'\)的分布中依然涉及\(P(c'|x)\),要進一步替換,作者用了如下公式:
\[E_{x\sim X,y\sim Y | x}[f(x,y)] = E_{x\sim X, y\sim Y|x,x'\sim X|y}[f(x',y)] \]至此,\(P(c|x)\)被徹底干掉了,從而變得可以被實現:
\[E_{x\sim G(z,c)}[E_{c'\sim P(c|x)}[logQ(c'|x)]] + H(c) = E_{c \sim P(c),x \sim G(z,c)}[logQ(c|x)] + H(c) \]
-
Target:作者將最大化\(I(c;G(z,c))\)的目標轉移為最大化\(I\)的下界
\[L_1(G,Q)=E_{c \sim P(c),x \sim G(z,c)}[logQ(c|x)] + H(c) \][敲黑板]!!!
為什么最大化互信息可以變為最大化互信息的下界呢?這就是InfoGAN最精華、最巧妙的地方!
我們從訓練調整參數的角度來看這個問題,InfoGAN網絡的參數可分為Generator、Discriminator和Q三個部分,訓練時(Generator)(Discriminator+Q)迭代訓練,由於Discriminator與互信息無關,我們先不考慮,因此G和Q實際在兩個迭代中完成:
- 訓練Q時:G的參數固定,因此互信息\(I\)是不變的,這時候訓練Q就是為了減小互信息下界和互信息的差異。而我們前文重點說道,差異恰好就是P和Q的KL散度,即分布差異,實現了調整Q的參數擬合P的過程。
- 訓練G時:在Q不斷擬合P的過程中,互信息\(I\)的下界也越來越接近互信息\(I\)(直至等於)。在這種條件下,訓練G增大互信息的下界等同於增大互信息。
一句話來說,G和Q在計算互信息時有着不同的目標(提升互信息\增強擬合),但是卻都通過最大化L1(G,Q)損失函數實現了。(在原文中,作者也提到了這種方式類似於"Wake-Sleep Algorithm" - 同樣的訓練目標,最終兩個權重都正確更新了)
-
Implement:
最終加入了GAN原有的損失函數后,總優化目標變化為:
\[min_{G,Q}max_DV_1(D,G)=V(D,G) - \mu L_1(G,Q) \]Q是含有待定參數的分布器。
- 在InfoGAN實現時,Q實際輸出的是假設的正則分布的參數,並隨着Discriminator進行訓練,負似然對數作為損失函數。
- 在Social Ways模型在實現時,Q實際上是一個latent code reconstructor(潛碼恢復器)。Information Loss實指Q所恢復的潛碼\(\hat c\)和真實潛碼\(c\)之間的MSE。
HighLight 3 - 多軌跡預測的生成場景
GAN模型引入軌跡預測的重要目的就是有助於生成多條軌跡(分布),文章為探究不同類GAN模型對多軌跡的預測能力,特地人工生成了一個測試場景(如下圖):
- 藍色為已知軌跡,紅色為待預測軌跡。
- 從六個方向上產生軌跡,並在每個方向軌跡上又產生三個具體的分支。
不同的baseline模型在不同的迭代周期產生的預測結果如下圖所示,從而驗證了InfoGAN對多合理軌跡預測的有效性,其能夠在更短的迭代周期中識別出多種可能性的軌跡:
此外,文章還使用了1-Nearest Neighbor classifier和Earth Mover's Distance兩種方法對真實未來軌跡和生成軌跡的質量進行評估:
- 對於1-Nearest Neighbor classifier,越接近50%越好。
- 對於EMD,越低越好。