論文筆記:Towards Diverse and Natural Image Descriptions via a Conditional GAN
ICCV 2017
Paper: http://openaccess.thecvf.com/content_ICCV_2017/papers/Dai_Towards_Diverse_and_ICCV_2017_paper.pdf
Implementation(Torch): https://github.com/doubledaibo/gancaption_iccv2017
本文的目標是想產生高質量的圖像描述語句:more Natural and Diverse !
所以本文采用了 Conditional GAN 來實現這一想法,通過控制 random noise vector Z 來生成具有多樣性的語句。
其實模型的整體思路和 seqGAN 是一致的,就是利用 Generator 來產生一個句子,然后交給 Discriminator 來進行判斷。
不同之處在於,與 NLP 中的文本生成不同,Image Caption 需要根據圖像的內容進行句子的產生,然后就變成了 Conditional GAN 了。文章的寫作也是重點體現 CGAN 的作用。
如上圖所示,作者也將 random noise Z 添加進去,以控制產生文本的多樣性,基於這兩個條件,提取特征,輸入給 LSTM,每一個時刻輸出一個單詞,直到遇到表示句子停止的單詞符號為止(例如,[End])。這樣就生成了一個句子。
然后作者用 LSTM 提取生成的句子和 Ground Truth 句子的向量,然后塞給 Discriminator,進行判斷。
重點來了,因為文本的生成是離散的符號生成問題,原本用於圖像生成的 CGAN 並不能直接用於此任務。因為梯度的些許改變,也許並不能改變其輸出。
所以,這里需要強化學習技術 Policy Gradient 來進行轉換,將判別器的得分輸出,轉變為 智能體的獎賞 r,優化產生器的參數,使其輸出的句子能夠獲得最大的獎勵,從而使得最終獲得較好的文本生成效果。這樣就把文本的生成問題,看做是強化學習中的動作選擇問題(Action Selection)。
如上圖所示,當給你某一段生成的部分句子,由於交給判別器進行打分,需要完成的一句話。所以,文章采用蒙特卡洛 Rollout 的方法,將句子進行補充完整。然后才交給判別器進行打分,獲得獎勵信號。根據得到的獎勵信號,再進行梯度的調整,進而完成產生器 G 的優化。
所以,期望累積獎賞為:
其梯度為:
其中,$\pi$ 那一項是強化學習中的策略(Policy),將條件 f(I), Z 以及接下來的單詞 $S_{1:t-1}$ 作為輸入,並且產生一個在拓展詞匯表中的條件分布(a conditional distribution over the extended vocabulary),即:產生的所有單詞加一個表示語句結束的符號,記為 e。獎勵是 ,該得分是由判別器 E 給出的。
此外,作者也將該模型拓展到產生段落文字的應用場景(利用 Hierarchical LSTM design)。