• <sub id="pqc61"><p id="pqc61"></p></sub><sub id="pqc61"></sub>
    在线精品视频一区二区,亚洲中文字幕无码一久久区,正在播放肥臀熟妇在线视频,国内精品视频一区二区三区八戒 ,国产毛片三区二区一区,国产精品一区中文字幕,丰满少妇被猛烈进出69影院,国产成人无码
    您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
    此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
    人工智能開發(fā)者 正文
    發(fā)私信給三川
    發(fā)送

    0

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

    本文作者: 三川 2017-02-19 20:55
    導(dǎo)語:GAN 比你想象的其實(shí)更容易。

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

    編者按:上圖是 Yann LeCun 對 GAN 的贊揚(yáng),意為“GAN 是機(jī)器學(xué)習(xí)過去 10 年發(fā)展中最有意思的想法。”

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

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

    Dev Nag

    什么是 GAN?

    在進(jìn)入技術(shù)層面之前,為照顧新入門的開發(fā)者,雷鋒網(wǎng)先來介紹下什么是 GAN。

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

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

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

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

    實(shí)踐中,Ian Goodfellow 展示的這項(xiàng)技術(shù)在本質(zhì)上是:G 能夠?qū)υ紨?shù)據(jù)集進(jìn)行一種無監(jiān)督學(xué)習(xí),找到以更低維度的方式(lower-dimensional manner)來表示數(shù)據(jù)的某種方法。而無監(jiān)督學(xué)習(xí)之所以重要,就好像雷鋒網(wǎng)反復(fù)引用的 Yann LeCun 的那句話:“無監(jiān)督學(xué)習(xí)是蛋糕的糕體”。這句話中的蛋糕,指的是無數(shù)學(xué)者、開發(fā)者苦苦追尋的“真正的 AI”。

    用 PyTorch 訓(xùn)練 GAN

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

    • R:原始、真實(shí)數(shù)據(jù)集

    • I:作為熵的一項(xiàng)來源,進(jìn)入生成器的隨機(jī)噪音

    • G:生成器,試圖模仿原始數(shù)據(jù)

    • D:判別器,試圖區(qū)別 G 的生成數(shù)據(jù)和 R

    • 我們教 G 糊弄 D、教 D 當(dāng)心 G 的“訓(xùn)練”環(huán)。

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

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

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

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

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

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

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

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

    5.) 最后,訓(xùn)練環(huán)在兩個(gè)模式中變幻:第一步,用被準(zhǔn)確標(biāo)記的真實(shí)數(shù)據(jù) vs. 假數(shù)據(jù)訓(xùn)練 D;隨后,訓(xùn)練 G 來騙過 D,這里是用的不準(zhǔn)確標(biāo)記。道友們,這是正邪之間的較量。

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

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

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

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

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

    兩萬輪訓(xùn)練之后,G 的輸入平均值超過 4,但會返回到相當(dāng)平穩(wěn)、合理的范圍(左圖)。同樣的,標(biāo)準(zhǔn)差一開始在錯(cuò)誤的方向降低,但隨后攀升至理想中的 1.25 區(qū)間(右圖),達(dá)到 R 的層次。

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

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

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

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

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

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

    via medium

    相關(guān)文章:

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

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

    GAN的理解與TensorFlow的實(shí)現(xiàn)

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

    深度學(xué)習(xí)新星:GAN的基本原理、應(yīng)用和走向 | 雷鋒網(wǎng)公開課

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

    分享:
    相關(guān)文章

    用愛救世界
    當(dāng)月熱門文章
    最新文章
    請?zhí)顚懮暾埲速Y料
    姓名
    電話
    郵箱
    微信號
    作品鏈接
    個(gè)人簡介
    為了您的賬戶安全,請驗(yàn)證郵箱
    您的郵箱還未驗(yàn)證,完成可獲20積分喲!
    請驗(yàn)證您的郵箱
    立即驗(yàn)證
    完善賬號信息
    您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
    立即設(shè)置 以后再說
    主站蜘蛛池模板: 国产精品自在线拍国产电影| 成 人色 网 站 欧美大片在线观看| 精品国产乱码久久久人妻| 国产美女久久久| 乌拉特中旗| 色噜噜一区二区三区| 亚洲乱妇老熟女爽到高潮的片| 狠狠噜天天噜日日噜无码| 亚洲综合精品伊人久久| www.中文无码| 最新2021精品视频自拍| 久久精品国产亚洲av麻豆小说| 亚洲男人AV天堂午夜在| 亚洲色吧Av| 久久久国产99久久国产久一| 亚洲综合色丁香婷婷六月图片| 色综合久久婷婷88| sewang网页版入口| 日本狠狠爱| 金门县| 国产高清在线观看av片麻豆| a级国产乱理伦片在线观看al| 麻豆成人传媒一区二区| 非会员区试看120秒6次| 女人被狂躁到高潮视频免费动态图| 人妻?无码?中出| 亚洲熟女av高潮久久| 少妇乱人伦无码视频| 日韩精品一区二区三区中文| 综合亚洲网| 亚洲免费123区| 亚洲高清中文字幕综合网| 男女午夜爽爽的视频| 偷拍精品一区二区三区| 东京热无码国产精品| 久久婷婷五月综合色国产免费观看| 亚洲无码avav| 久久一区av蜜桃人妻| 亚洲国产日韩在线精品频道| 亚洲精品久久7777777国产| 男女无遮挡激情视频|