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

2021-10-06 11:33:07 字數 759 閱讀 7742

最初的 gans 僅僅定義在實數領域,gans 通過訓練出的生成器來產生合成資料,然後在合成資料上執行判別器,判別器的輸出梯度將會告訴你,如何通過略微改變合成資料而使其更加現實。一般來說只有在資料連續的情況下,你才可以略微改變合成的資料,而如果資料是離散的,則不能簡單的通過改變合成資料。例如,如果你輸出了一張,其畫素值是1.0,那麼接下來你可以將這個值改為1.0001。如果輸出了乙個單詞「penguin」,那麼接下來可以將penguin對應的高維向量加0.001,但可能不存在改變後對應的單詞。 因為所有的自然語言處理(nlp)的基礎都是離散值,如「單詞」、「字母」或者「音節」。

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

文字資料相比較資料來說是離散的,因為對於文字來說,通常需要將乙個詞對映為乙個高維的向量,最終**的輸出是乙個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最終輸出的判別沒有意義。

另外就是gan的損失函式是js散度,js散度不適合衡量不相交分布之間的距離。

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

參考

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

最初的 gans 僅僅定義在實數領域,gans 通過訓練出的生成器來產生合成資料,然後在合成資料上執行判別器,判別器的輸出梯度將會告訴你,如何通過略微改變合成資料而使其更加現實。一般來說只有在資料連續的情況下,你才可以略微改變合成的資料,而如果資料是離散的,則不能簡單的通過改變合成資料。例如,如果你...

機器學習 為什麼離散化,離散化的優勢

1,為什麼離散化 2,離散化的優勢 1,特徵離散化 連續特徵離散化的基本假設,是預設連續特徵不同區間的取值對結果的貢獻是不一樣的。特徵的連續值在不同的區間的重要性是不一樣的,所以希望連續特徵在不同的區間有不同的權重,實現的方法就是對特徵進行劃分區間,每個區間為乙個新的特徵。常用做法,就是先對特徵進行...

為什麼使用one hot編碼來處理離散型特徵

from sklearn import preprocessing enc preprocessing.onehotencoder enc.fit 0,0,3 1,1,0 0,2,1 1,0,2 這裡一共有4個資料,3種特徵 array enc.transform 0,1,3 toarray 這裡使...