<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 年發展中最有意思的想法。”

      本文作者為前谷歌高級工程師、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毛片久久| 精品无码人妻一区二区三区| 成人欧美一区二区三区白人| 97无码精品人妻免費一区二区| 免费久久人人爽人人爽AV| 精品xxx| 麻豆国产人妻欲求不满| 极品美女扒开粉嫩小泬图片| 亚洲二页| 色噜噜狠狠大色综合| 国产一区二区视频啪啪视频 | 国产精品成人国产乱| 最近中文字幕在线中文视频| 日日日操| 人妻系列一区| 欧美熟妇色XXXx欧美老妇多毛| 久久久噜噜噜久久| 国产精品无码一本二本三本色| 欧美福利极品| 国产成人综合日韩亚洲| 最近免费中文字幕大全| 亚洲熟妇中文字幕五十中出| 国产愉拍精品手机| 晋宁县| 国产精品99久久久久久董美香| 熟女人妻AV| 亚洲国产无线乱码在线观看| 蜜臀久久99精品久久久酒店新书| 亚洲精品成人av无码A| 国产一级小视频| 免费无码av片在线观看网址| 欧美粗大猛烈老熟妇| 定边县| 97久久精品无码一区二区天美| 国产精品成人三级| 娇小萝被两个黑人用半米长| 91制片厂天美传媒网站进入| 中文人妻不卡| 91人妻人人澡人人爽人人精品| 99久久精品午夜一区二区|