<label id="jgr5k"></label>
    <legend id="jgr5k"><track id="jgr5k"></track></legend>

    <sub id="jgr5k"></sub>
  1. <u id="jgr5k"></u>
      久草国产视频,91资源总站,在线免费看AV,丁香婷婷社区,久久精品99久久久久久久久,色天使av,无码探花,香蕉av在线
      您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
      此為臨時鏈接,僅用于文章預覽,將在時失效
      人工智能開發者 正文
      發私信給三川
      發送

      0

      GAN 很復雜?如何用不到 50 行代碼訓練 GAN(基于 PyTorch)

      本文作者: 三川 2017-02-19 20:55
      導語:GAN 比你想象的其實更容易。

      GAN 很復雜?如何用不到 50 行代碼訓練 GAN(基于 PyTorch)

      編者按:上圖是 Yann LeCun 對 GAN 的贊揚,意為“GAN 是機器學習過去 10 年發展中最有意思的想法?!?/em>

      本文作者為前谷歌高級工程師、AI 初創公司 Wavefront 創始人兼 CTO Dev Nag,介紹了他是如何用不到五十行代碼,在 PyTorch 平臺上完成對 GAN 的訓練。雷鋒網編譯整理。

      GAN 很復雜?如何用不到 50 行代碼訓練 GAN(基于 PyTorch)

      Dev Nag

      什么是 GAN?

      在進入技術層面之前,為照顧新入門的開發者,雷鋒網先來介紹下什么是 GAN。

      2014 年,Ian Goodfellow 和他在蒙特利爾大學的同事發表了一篇震撼學界的論文。沒錯,我說的就是《Generative Adversarial Nets》,這標志著生成對抗網絡(GAN)的誕生,而這是通過對計算圖和博弈論的創新性結合。他們的研究展示,給定充分的建模能力,兩個博弈模型能夠通過簡單的反向傳播(backpropagation)來協同訓練。

      這兩個模型的角色定位十分鮮明。給定真實數據集 R,G 是生成器(generator),它的任務是生成能以假亂真的假數據;而 D 是判別器 (discriminator),它從真實數據集或者 G 那里獲取數據, 然后做出判別真假的標記。Ian Goodfellow 的比喻是,G 就像一個贗品作坊,想要讓做出來的東西盡可能接近真品,蒙混過關。而 D 就是文物鑒定專家,要能區分出真品和高仿(但在這個例子中,造假者 G 看不到原始數據,而只有 D 的鑒定結果——前者是在盲干)。

      GAN 很復雜?如何用不到 50 行代碼訓練 GAN(基于 PyTorch)

      理想情況下,D 和 G 都會隨著不斷訓練,做得越來越好——直到 G 基本上成為了一個“贗品制造大師”,而 D 因無法正確區分兩種數據分布輸給 G。

      實踐中,Ian Goodfellow 展示的這項技術在本質上是:G 能夠對原始數據集進行一種無監督學習,找到以更低維度的方式(lower-dimensional manner)來表示數據的某種方法。而無監督學習之所以重要,就好像雷鋒網反復引用的 Yann LeCun 的那句話:“無監督學習是蛋糕的糕體”。這句話中的蛋糕,指的是無數學者、開發者苦苦追尋的“真正的 AI”。

      用 PyTorch 訓練 GAN

      Dev Nag:在表面上,GAN 這門如此強大、復雜的技術,看起來需要編寫天量的代碼來執行,但事實未必如此。我們使用 PyTorch,能夠在 50 行代碼以內創建出簡單的 GAN 模型。這之中,其實只有五個部分需要考慮:

      • R:原始、真實數據集

      • I:作為熵的一項來源,進入生成器的隨機噪音

      • G:生成器,試圖模仿原始數據

      • D:判別器,試圖區別 G 的生成數據和 R

      • 我們教 G 糊弄 D、教 D 當心 G 的“訓練”環。

      1.) R:在我們的例子里,從最簡單的 R 著手——貝爾曲線(bell curve)。它把平均數(mean)和標準差(standard deviation)作為輸入,然后輸出能提供樣本數據正確圖形(從 Gaussian 用這些參數獲得 )的函數。在我們的代碼例子中,我們使用 4 的平均數和 1.25 的標準差。

      GAN 很復雜?如何用不到 50 行代碼訓練 GAN(基于 PyTorch)

      2.) I:生成器的輸入是隨機的,為提高點難度,我們使用均勻分布(uniform distribution )而非標準分布。這意味著,我們的 Model G 不能簡單地改變輸入(放大/縮小、平移)來復制 R,而需要用非線性的方式來改造數據。

      GAN 很復雜?如何用不到 50 行代碼訓練 GAN(基于 PyTorch)

      3.) G: 該生成器是個標準的前饋圖(feedforward graph)——兩層隱層,三個線性映射(linear maps)。我們使用了 ELU (exponential linear unit)。G 將從 I 獲得平均分布的數據樣本,然后找到某種方式來模仿 R 中標準分布的樣本。

      GAN 很復雜?如何用不到 50 行代碼訓練 GAN(基于 PyTorch)

      4.) D: 判別器的代碼和 G 的生成器代碼很接近。一個有兩層隱層和三個線性映射的前饋圖。它會從 R 或 G 那里獲得樣本,然后輸出 0 或 1 的判別值,對應反例和正例。這幾乎是神經網絡的最弱版本了。

      GAN 很復雜?如何用不到 50 行代碼訓練 GAN(基于 PyTorch)

      5.) 最后,訓練環在兩個模式中變幻:第一步,用被準確標記的真實數據 vs. 假數據訓練 D;隨后,訓練 G 來騙過 D,這里是用的不準確標記。道友們,這是正邪之間的較量。

      GAN 很復雜?如何用不到 50 行代碼訓練 GAN(基于 PyTorch)

      即便你從沒接觸過 PyTorch,大概也能明白發生了什么。在第一部分(綠色),我們讓兩種類型的數據經過 D,并對 D 的猜測 vs. 真實標記執行不同的評判標準。這是 “forward” 那一步;隨后我們需要 “backward()” 來計算梯度,然后把這用來在 d_optimizer step() 中更新 D 的參數。這里,G 被使用但尚未被訓練。

      在最后的部分(紅色),我們對 G 執行同樣的操作——注意我們要讓 G 的輸出穿過 D (這其實是送給造假者一個鑒定專家來練手)。但在這一步,我們并不優化、或者改變 D。我們不想讓鑒定者 D 學習到錯誤的標記。因此,我們只執行 g_optimizer.step()。

      這就完成了。據雷鋒網了解,還有一些其他的樣板代碼,但是對于 GAN 來說只需要這五個部分,沒有其他的了。

      在 D 和 G 之間幾千輪交手之后,我們會得到什么?判別器 D 會快速改進,而 G 的進展要緩慢許多。但當模型達到一定性能之后,G 才有了個配得上的對手,并開始提升,巨幅提升。

      兩萬輪訓練之后,G 的輸入平均值超過 4,但會返回到相當平穩、合理的范圍(左圖)。同樣的,標準差一開始在錯誤的方向降低,但隨后攀升至理想中的 1.25 區間(右圖),達到 R 的層次。

      GAN 很復雜?如何用不到 50 行代碼訓練 GAN(基于 PyTorch)

      所以,基礎數據最終會與 R 吻合。那么,那些比 R 更高的時候呢?數據分布的形狀看起來合理嗎?畢竟,你一定可以得到有 4.0 的平均值和 1.25 標準差值的均勻分布,但那不會真的符合 R。我們一起來看看 G 生成的最終分布。

      GAN 很復雜?如何用不到 50 行代碼訓練 GAN(基于 PyTorch)

      結果是不錯的。左側的尾巴比右側長一些,但偏離程度和峰值與原始 Gaussian 十分相近。G 接近完美地再現了原始分布 R——D 落于下風,無法分辨真相和假相。而這就是我們想要得到的結果——使用不到 50 行代碼。

      該說的都說完了,老司機請上 GitHub 把玩全套代碼。

      地址:https://github.com/devnag/pytorch-generative-adversarial-networks

      via medium

      相關文章:

      用GANs尋找潛在藥物,抗癌新藥指日可待

      LS-GAN作者詮釋新型GAN:條條大路通羅馬,把GAN建立在Lipschitz密度上

      GAN的理解與TensorFlow的實現

      GAN學習指南:從原理入門到制作生成Demo,總共分幾步?

      深度學習新星:GAN的基本原理、應用和走向 | 雷鋒網公開課

      雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知。

      GAN 很復雜?如何用不到 50 行代碼訓練 GAN(基于 PyTorch)

      分享:
      相關文章

      用愛救世界
      當月熱門文章
      最新文章
      請填寫申請人資料
      姓名
      電話
      郵箱
      微信號
      作品鏈接
      個人簡介
      為了您的賬戶安全,請驗證郵箱
      您的郵箱還未驗證,完成可獲20積分喲!
      請驗證您的郵箱
      完善賬號信息
      您的賬號已經綁定,現在您可以設置密碼以方便用郵箱登錄
      主站蜘蛛池模板: 久久青青草原亚洲AV无码麻豆| 亚洲成人无码中文字幕| 国产成人A码男人的天堂国产乱| 男人的天堂av网站| 欧美日韩不卡视频合集| 亚洲精品成人a在线观看| 国产美女白丝袜精品_a不卡| 蜜桃av无码免费看永久| 一本无码中文字幕| 玉龙| 日本一卡二卡不卡视频查询| 一级内射片在线网站观看视频| 午夜a福利| 好紧好爽午夜视频| 亚洲欧洲美洲无码精品va| 亚洲已满18点击进入在线看片 | 亚洲av无码专区国产不卡顿| 少妇群交换乱p过程| 亚洲人成网站在线播放942| 少妇人妻系列无码专区视频| 久久久久人妻精品区一| 国产乱妇乱子视频在播放| 浪荡干片网在线观看| 松原市| 国产精品久久精品| 无码黑人精品一区二区| 亚洲性av网站| 国产成人精品2021| 亚洲粉嫩av一区二区黑人| 日韩无码毛片| 邵阳市| 在线观看视频一区二区三区| 在线成人AV| 精品人妻久久久久久888| 欧美白丰满老太aaa片| 手机看片1024人妻| 1024国产视频| 久久精品国产一区二区小说| 国产成人AV区一区二区三| 天干天干天啪啪夜爽爽99| 中文字幕少妇人妻|