1. 程式人生 > >為什麼GAN不能處理離散的資料?

為什麼GAN不能處理離散的資料?

最近我們小組的一個任務是要學習兩個分佈資料之間的對映關係,我們的資料形式是D_1=\{a_1,a_2,...,a_n\},D_2=\{b_1,b_2,...b_m\},其中a_i,b_j分別是d維的資料,我們想到了用GAN來學習這兩個分佈之間的對映關係,後來發現效果不太好,迭代一次該模型就對真樣本資料和假樣本資料傻傻分不清,真假概率都為0.5,後來查詢到GAN原來不適合處理離散的資料樣本,所以來寫個筆記記錄一下:

為什麼GAN不適合處理文字資料

1. 文字資料相比較圖片資料來說是離散的,因為對於文字來說,通常需要將一個詞對映為一個高維的向量,最終預測的輸出是一個one-hot向量,假設softmax的輸出是(0.2, 0.3, 0.1,0.2,0.15,0.05)那麼變為onehot是(0,1,0,0,0,0),如果softmax輸出是(0.2, 0.25, 0.2, 0.1,0.15,0.1 ),one-hot仍然是(0, 1, 0, 0, 0, 0),所以對於生成器來說,G輸出了不同的結果但是D給出了同樣的判別結果,並不能將梯度更新資訊很好的傳遞到G中去,所以D最終輸出的判別沒有意義。

2. 另外就是GAN的損失函式是JS散度,JS散度不適合衡量不想交分佈之間的距離。

(WGAN雖然使用wassertein距離代替了JS散度,但是在生成文字上能力還是有限,GAN在生成文字上的應用有seq-GAN,和強化學習結合的產物)