日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

国科大高级人工智能6-GAN

發布時間:2024/7/5 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 国科大高级人工智能6-GAN 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 生成式模型的基礎:極大似然估計
  • GANs
    • 最終版本
    • 問題
      • 非飽和博弈
  • DCGAN
  • 不同類型的GAN
    • conditional GAN
    • 無監督條件GAN--cycle GAN
  • 對抗學習

https://blog.csdn.net/suyebiubiu/category_9372769.html

生成式模型的基礎:極大似然估計

  • θ?=argmaxθExpdatalogPmodel(x∣θ)\theta^*=argmax_\theta E_{x~p_{data}}logP_{model}(x|\theta)θ?=argmaxθ?Ex?pdata??logPmodel?(xθ)

  • 生成式模型都源于極大似然估計

    • 顯示概率分布
      • 馬爾科夫鏈/BM
    • 隱式概率分布
      • GSN
      • GAN—唯一一個從數據觀測一步到位的模型

        以前比較強大的模型都源于HMM模型
  • 人工智能兩個階段

    • 感知階段
    • 認知階段
  • GAN(生成式模型

    • 生成數據樣本的能力
    • 反應了他的理解(不能產生就沒有理解)

GANs

  • 和以前模型的的區別

    • 使用了 latent code(缺省編碼)
    • 數據會逐漸統一 (unlike variational methods)
    • 不需要馬爾可夫鏈
    • 被認為可以生成最好的樣本
      • (沒有辦法評價No good way to quantify this
  • 核心思想:博弈論的納什均衡——對抗達到平衡(共同進步)

    • 生成器:盡量生成真實的分布——努力讓判別器認不出來
      • 輸入向量,輸出圖或序列。。。
      • 不同的向量表示不同的特征
      • 想要發現數據的分布Pdata(x)P_{data}(x)Pdata?(x)
        • 假設一個分布Pdata(x;θ),用極大似然去找θP_{data}(x;\theta),用極大似然去找\thetaPdata?(x;θ),θ
    • 判別器:區分是生成的還是真實的(努力讓他能認出生成器生成的數據)
      • 輸入:圖片
      • 輸出:標量評分
        • 分越大,越真實–1
        • 分小則假–0.1
  • 算法

  • 固定生成器G,從真假圖中采樣,來更新(訓練)判別器D–>D1

    • 版本1:$對V(G_0,D)找到D_0^* $===>D1
    • 版本2:實際使用最小化交叉熵來進行二分類
      • 原來:V(G,D)=ExPdata[log(D(x))]+ExPG[log(1?D(x))](G固定)原來:V(G,D)=E_{x~P_{data}}[log(D(x))]+E_{x~P_{G}}[log(1-D(x))] (G固定)V(G,D)=Ex?Pdata??[log(D(x))]+Ex?PG??[log(1?D(x))](G
        • 目標函數==》maxV~=1mΣi=1mlog(D(xi))+1mΣi=1mlog(D(x~i))\tilde{V}=\frac{1}{m}\Sigma_{i=1}^{m}log(D(x^i))+\frac{1}{m}\Sigma_{i=1}^{m}log(D(\tilde{x}^i))V~=m1?Σi=1m?log(D(xi))+m1?Σi=1m?log(D(x~i))——均值代替期望
        • 原來是對概率求和–>期望–>均值(Σi=1mlogPG(xi;θ)\Sigma_{i=1}^mlog P_G(x^i;\theta)Σi=1m?logPG?(xi;θ)
      • 多迭代幾次:$\theta_d<–\theta_d+\eta d \tilde{V} $
  • 固定D1,訓練生成器G–>G1

    • v1:θG←θG?η?V(G,D0?)?θG\theta_G \leftarrow \theta_G-\eta \frac{\partial V(G,D_0^*)}{\partial \theta_G}θG?θG??η?θG??V(G,D0??)?===>找到G1
    • v2:假設D0?≈D1????也就是G變化很小(更新不能太頻繁D_0^*\approx D_1^*---也就是G變化很小(更新不能太頻繁D0??D1?????G
      • V~=1mΣi=1mlog(D(G(zi))),z來自Pprior(z)\tilde{V}=\frac{1}{m}\Sigma_{i=1}^{m}log(D(G(z^i))),z來自P_{prior}(z)V~=m1?Σi=1m?log(D(G(zi))),zPprior?(z)–目標函數是一樣的
        • 1mΣi=1mlog(D(xi))\frac{1}{m}\Sigma_{i=1}^{m}log(D(x^i))m1?Σi=1m?log(D(xi))與生成器無關,可以不考慮
      • $\theta_G<–\theta_G- \eta d \tilde{V} $
  • 重復到平衡

  • 生成器

    • 極大似然估計L=Πi=1mPG(xi;θ),L=\Pi_{i=1}^mP_G(x^i;\theta),L=Πi=1m?PG?(xi;θ),
      • θ?=argmaxθΠi=1mPG(xi;θ)\theta^*=argmax_\theta \Pi_{i=1}^mP_G(x^i;\theta)θ?=argmaxθ?Πi=1m?PG?(xi;θ)
      • θ?=argmaxθΣi=1mlogPG(xi;θ)\theta^*=argmax_\theta \Sigma_{i=1}^mlog P_G(x^i;\theta)θ?=argmaxθ?Σi=1m?logPG?(xi;θ)
      • θ?=argmaxθExPdata(logPG(xi;θ))\theta^*=argmax_\theta E_{x~Pdata}(log P_G(x^i;\theta) )θ?=argmaxθ?Ex?Pdata?(logPG?(xi;θ))—求和近似于期望
      • =argmaxθ∫xPdata(x)logPG(x;θ)dx?∫xPdata(x)logPdata(xi)dx=argmax_\theta \displaystyle \int_x P_{data}(x)log P_G(x;\theta)dx-\displaystyle \int_x P_{data}(x)log P_{data}(x^i)dx=argmaxθ?x?Pdata?(x)logPG?(x;θ)dx?x?Pdata?(x)logPdata?(xi)dx—后面的只與真實數據有關
      • =argminθKL(Pdata∣∣PG)=argmin_\theta KL(P_{data}||P_G)=argminθ?KL(Pdata?PG?)----=最小化KL散度(就是最小化他倆的差別KL=Div
    • 如何產生通用的PGP_GPG??(通過神經網絡
      • G?=argminθKL(Pdata∣∣PG)G^* =argmin_\theta KL(P_{data}||P_G)G?=argminθ?KL(Pdata?PG?)
      • Pdata(從真實數據中),PG(生成的采樣)未知??通過采樣得到P_{data}(從真實數據中),P_G(生成的采樣)未知--通過采樣得到Pdata?,PG???
      • $D^*=-2log2+2JSD(P_{data}||P_G) $
      • G?=argminGKL(Pdata∣∣PG)=argminGmaxDV(G,D)G^*=argmin_G KL(P_{data}||P_G)=argmin_G max_D V(G,D)G?=argminG?KL(Pdata?PG?)=argminG?maxD?V(G,D)
  • 判別器

    • 希望判別器通過區分,以Pdata和以PG采樣得到的數據
    • 目標函數:V(G,D)=ExPdata[log(D(x))]+ExPG[log(1?D(x))](G固定)V(G,D)=E_{x~P_{data}}[log(D(x))]+E_{x~P_{G}}[log(1-D(x))] (G固定)V(G,D)=Ex?Pdata??[log(D(x))]+Ex?PG??[log(1?D(x))](G真實的+虛假的
      • =∫xPdata(x)logD(x)dx+∫xPG(x)log(1?D(x))dx=\displaystyle \int_x P_{data}(x)log D(x) dx +\displaystyle \int_x P_{G}(x)log (1-D(x)) dx=x?Pdata?(x)logD(x)dx+x?PG?(x)log(1?D(x))dx
      • =∫x(Pdata(x)logD(x)+PG(x)log(1?D(x)))dx=\displaystyle \int_x (P_{data}(x)log D(x)+ P_{G}(x)log (1-D(x))) dx=x?(Pdata?(x)logD(x)+PG?(x)log(1?D(x)))dx
        • 假設D(x)能夠是任何函數–
        • 所以D要足夠強–深度神經網絡
        • 最大化(Pdata(x)logD(x)dx+PG(x)log(1?D(x)))(P_{data}(x)log D(x) dx + P_{G}(x)log (1-D(x)))(Pdata?(x)logD(x)dx+PG?(x)log(1?D(x)))
          • 求導:
            • d(f(D))dD=a?1D+b?11?D?(?1)=0\frac{d(f(D))}{dD}=a*\frac{1}{D}+b*\frac{1}{1-D}*(-1)=0dDd(f(D))?=a?D1?+b?1?D1??(?1)=0
            • a?1D?=b?11?D?a*\frac{1}{D^*}=b*\frac{1}{1-D^*}a?D?1?=b?1?D?1?
            • D?(x)=aa+b=Pdata(x)Pdata(x)+PG(x)D^*(x)=\frac{a}{a+b}=\frac{P_{data}(x)}{P_{data}(x)+P_{G}(x)}D?x=a+ba?=Pdata?(x)+PG?(x)Pdata?(x)?(在(0,1)之間
        • 帶入$G^* $
          • D?=maxDV(G,D)=V(G,D?)=ExPdata[log(Pdata(x)Pdata(x)+PG(x))]+ExPG[log(PG(x)Pdata(x)+PG(x))]D^*=max_DV(G,D)=V(G,D^*)=E_{x~P_{data}}[log(\frac{P_{data}(x)}{P_{data}(x)+P_{G}(x)})]+E_{x~P_{G}}[log(\frac{P_{G}(x)}{P_{data}(x)+P_{G}(x)})]D?=maxD?V(G,D)=V(G,D?)=Ex?Pdata??[log(Pdata?(x)+PG?(x)Pdata?(x)?)]+Ex?PG??[log(Pdata?(x)+PG?(x)PG?(x)?)]
          • =?2log2+∫x(Pdata(x)logPG(x)(Pdata(x)+PG(x))/2+PG(x)log(PG(x)(Pdata(x)+PG(x))/2))dx=-2log2+\displaystyle \int_x (P_{data}(x)log \frac{P_{G}(x)}{(P_{data}(x)+P_{G}(x))/2} + P_{G}(x)log (\frac{P_{G}(x)}{(P_{data}(x)+P_{G}(x))/2)}) dx=?2log2+x?(Pdata?(x)log(Pdata?(x)+PG?(x))/2PG?(x)?+PG?(x)log((Pdata?(x)+PG?(x))/2)PG?(x)?)dx
          • =?2log2+KL(Pdata∣∣Pdata(x)+PG(x)2)+KL(PG∣∣Pdata(x)+PG(x)2)=-2log2+KL(P_{data}||\frac{P_{data}(x)+P_{G}(x)}{2})+KL(P_{G}||\frac{P_{data}(x)+P_{G}(x)}{2})=?2log2+KL(Pdata?2Pdata?(x)+PG?(x)?)+KL(PG?2Pdata?(x)+PG?(x)?)
          • =?2log2+2JSD(Pdata∣∣PG)=-2log2+2JSD(P_{data}||P_G)=?2log2+2JSD(Pdata?PG?)
          • JSD(Pdata∣∣PG)=12D(P∣∣M)+12D(Q∣∣M),M=12(P+Q)JSD(P_{data}||P_G)=\frac{1}{2}D(P||M)+\frac{1}{2}D(Q||M),M=\frac{1}{2}(P+Q)JSD(Pdata?PG?)=21?D(PM)+21?D(QM),M=21?(P+Q)
    • 訓練:D?=argmaxDV(D,G)D^*=argmax_DV(D,G)D?=argmaxD?V(D,G)


最終版本

  • 訓練:SGD,同時訓練兩組數據——深度神經網絡
    • 真實的
    • 生成的
  • 優化
    • 可以一組訓練跑一次時,另一組跑k次

問題

  • 在開始的時候,訓練較慢

非飽和博弈

  • 更換后,極值點不變
  • 原來D=1/2時,就無法訓練了,而這個里面,D=1/2時仍然可以對生成器進行訓練

DCGAN

  • 反卷積生成圖像

不同類型的GAN

  • 傳統GAN–
    • 沒有任何條件的,
    • 給定一個圖片,生成類似的圖片
  • 有條件的GAN
    • 給定圖片+圖片里的信息(條件)
    • 傳統的神經網絡,容易輸出一個圖片的平均(不對)–用GAN
  • 無監督有條件的GAN
    • 給定兩個領域的圖片
    • 由一個領域的圖片可以生成另外一個領域的圖片
    • 真實圖片–》漫畫風?
  • conditional GAN

    • 生成器
      • 不僅要生成火車,還要滿足條件
    • 判別器
      • 判別是不是真實圖片
      • 判別是不是滿足條件
      • 對于真實的圖片,不滿足條件也輸出0

    無監督條件GAN–cycle GAN

    • 直接使用會趨向于直接拿過來一個梵高的畫
    • 需要用一個網絡,使得X≈YX \approx YXY
    • 也可以用生成器的逆過程反過來生成X’,X≈X′X \approx X'XX

    對抗學習

    • 區別
      • 一般機器學習只有一個機制點
      • 對抗學習基于博弈論
        • 有兩個player
        • 一個取極大一個取極小—求個鞍點
    • 用于
      • 白天–>黑天
        • 沒有真實對應的信息,只能通過對抗GAN網絡生成—視頻
      • 加噪音–讓圖片不可識別–安全(攻擊分類器)
      • 通過將對抗的x’加入分類其中,提高分類器的能力(穩定性)
    • 損失函數
      • 分類器loss(θ)=C(y0,ytrue)小,y0=fθ(x)loss(\theta)=C(y0,y_{true})小,y0=f_{\theta}(x)loss(θ)=C(y0,ytrue?),y0=fθ?(x)
      • 對抗的就是loss(x′)=?C(y0,ytrue)+C(y′,yfalse,y0=fθ(x‘)loss(x')=-C(y0,y_{true})+C(y',y_{false},y0=f_{\theta}(x‘)loss(x)=?C(y0,ytrue?)+C(y,yfalse?,y0=fθ?(x)–優化x’
      • 約束:d(x0,x′)<=?d(x0,x')<=\epsilond(x0,x)<=?看著原圖沒啥變化
      • 得到一個x’

    總結

    以上是生活随笔為你收集整理的国科大高级人工智能6-GAN的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。