【讀點paper】irgan

paper: 《IRGAN: A Minimax Game for Unifying Generative and Discriminative Information Retrieval Models》dom

看了有一陣子發現有些忘記了,仍是記在這裏。函數

瞭解IRGAN首先要了解GAN:Generative Adverserial Net。原來的模型通常分爲生成模型和判別模型。性能

生成模型:學習聯合機率密度分佈P(X,Y),生成模型能夠學習X,Y的聯合分佈,也能夠經過貝葉斯公式推導出P(Y|X)。學習

               生成模型求解思路:聯合分佈->求解類別先驗機率和類別條件機率優化

               常見的生成模型像樸素貝葉斯,HMM,LDAspa

判別模型:直接學習決策函數或者條件機率分佈P(Y|X)的模型稱之爲判別模型,判別模型不關心總體的分佈只關心各組X之間Y的差別。.net

               判別模型求解思路:條件分佈->模型參數後驗機率最大->(似然函數\cdot 參數先驗)最大->最大似然orm

               常見的判別模型像決策樹,SVM,CRFblog

參考博客:https://blog.csdn.net/zouxy09/article/details/8195017遊戲

 

GAN巧妙的同時使用了這兩種模型,生成模型用來刻畫數據的分佈,判別模型用來判別一個sample是生成模型生成的仍是來自原數據。生成模型的目標函數是最大話判別模型犯錯的機率,而判別模型的目標函數是最大化判別模型的正確率。就像一場警察和小偷的遊戲。最終判別模型的結果會無限接近於1/2.

G(z; θ):假設z是噪聲變量,生成模型須要一個先驗機率P(z). G是由θ參數的可微函數。訓練目標是最小化log(1-D(G(z)))

D(x; θ):   x是真實數據,D表明x是真實數據的機率。咱們訓練D來最大化正確label的機率

總的公式是:

 

固然每次G迭代後D都迭代性能開銷不行。因此k步優化D而後再一步優化G。固然假如G變化比較慢的話每一次D都能達到較優解。

論文上有一個小例子解釋訓練的過程:

 其中綠色實線是生成模型生成數據分佈,藍色虛線是判別的決策面,黑色虛線是真實數據的分佈。最下面的橫線是z抽樣的domain,中間的橫線是部分真實數據的domain。黑色向上的箭頭表示z的抽樣到真實數據的投射,而生成模型會根據這個這個投射學習到x的分佈。圖(a)中考慮到生成分佈的影響,D的決策面部分是不許的。圖(b)判別模型學習到了二者分佈之間的diff(收斂到了D*(x)=pdata(x)/(pdata(x)+pg(x)))圖(c)更新過G後,繼續作判別。圖(d) 最終G的分佈和真實分佈重合,而後判別的最後結果是1/2.

 論文後有對收斂結果的論證。這邊就不贅述了。

 

GAN的結果是做用在圖片上的。IRGAN借用了GAN的思想。

生成模型:負責從候選池中選擇相關的文檔

相關文章
相關標籤/搜索