摘要:但是在傳統(tǒng)的機(jī)器學(xué)習(xí)中,特征和算法都是人工定義的。傳統(tǒng)的深度學(xué)習(xí)中,是由人來決定要解決什么問題,人來決定用什么目標(biāo)函數(shù)做評(píng)估。
隨著柯潔與AlphaGo結(jié)束以后,大家是不是對(duì)人工智能的底層奧秘越來越有興趣?
深度學(xué)習(xí)已經(jīng)在圖像分類、檢測等諸多領(lǐng)域取得了突破性的成績。但是它也存在一些問題。
首先,它與傳統(tǒng)的機(jī)器學(xué)習(xí)方法一樣,通常假設(shè)訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù)服從同樣的分布,或者是在訓(xùn)練數(shù)據(jù)上的預(yù)測結(jié)果與在測試數(shù)據(jù)上的預(yù)測結(jié)果服從同樣的分布,而實(shí)際上這兩者存在一定的偏差。另一個(gè)問題是深度學(xué)習(xí)的模型(比如卷積神經(jīng)網(wǎng)絡(luò))有時(shí)候并不能很好地學(xué)到訓(xùn)練數(shù)據(jù)中的一些特征。深度對(duì)抗學(xué)習(xí)(deep adversarial learning)就是為了解決上述問題而被提出的一種方法。
學(xué)習(xí)的過程可以看做是我們要得到一個(gè)模型,為了建模真實(shí)的數(shù)據(jù)分布,生成器學(xué)習(xí)生成實(shí)際的數(shù)據(jù)樣本,而鑒別器學(xué)習(xí)確定這些樣本是否是真實(shí)的。如果這個(gè)鑒別器的水平很高,而它無法分清它們之間的區(qū)別,那么就說明我們需要的模型具有很好的表達(dá)或者預(yù)測能力。
本文回顧了從傳統(tǒng)機(jī)器學(xué)習(xí),到wGAN的邏輯發(fā)展過程,讓讀者對(duì)歷史發(fā)展有個(gè)清晰的認(rèn)識(shí),并提供了wGAN的代碼實(shí)現(xiàn),是一篇很好的學(xué)習(xí)wGAN的入門材料。
對(duì)抗學(xué)習(xí)是深度學(xué)習(xí)中最火的一個(gè)領(lǐng)域。網(wǎng)站arxiv-sanity的最近最流行的研究領(lǐng)域列表上,許多都是對(duì)抗學(xué)習(xí),本文同樣也是一篇講對(duì)抗學(xué)習(xí)的文章。
?
在這篇文章中,我們主要學(xué)習(xí)以下三個(gè)方面的內(nèi)容:
為什么我們應(yīng)該關(guān)注對(duì)抗學(xué)習(xí)
生成對(duì)抗網(wǎng)絡(luò)GANs(General Adversarial Networks) 和 它面臨的挑戰(zhàn)
能解決這些挑戰(zhàn)的Wasserstein GAN和 改進(jìn)的穩(wěn)定訓(xùn)練Wasserstein GAN的方法,還包括了代碼實(shí)現(xiàn)。
從傳統(tǒng)機(jī)器學(xué)習(xí)到深度學(xué)習(xí)
我在UIUC上“模擬信號(hào)與系統(tǒng)”課程的時(shí)候,教授在一開始就信誓旦旦的說:“這個(gè)課程將是你們上的最重要的課程,抽象是工程里面最重要的概念?!?
康奈爾大學(xué)的課程里面也有“解決復(fù)雜問題的方法就是抽象,也就是隱藏細(xì)節(jié)信息。抽象屏蔽掉無用的細(xì)節(jié)。為了設(shè)計(jì)一個(gè)復(fù)雜系統(tǒng),你必須找出哪些是你想暴露給其他人的,哪些是你想隱藏起來的。暴露給其他人的部分,其他人可以進(jìn)行設(shè)計(jì)。暴露的部分就是抽象?!?/p>
?
深度神經(jīng)網(wǎng)絡(luò)中的每層就是數(shù)據(jù)的抽象表示,層和層之間有依賴關(guān)系,最終形成一個(gè)層次結(jié)構(gòu)。每一層都是上一層的一個(gè)更高級(jí)的抽象。給定一組原始數(shù)據(jù)和要解決的問題,然后定義一個(gè)目標(biāo)函數(shù)來評(píng)估網(wǎng)絡(luò)輸出的答案,最終神經(jīng)網(wǎng)絡(luò)就能通過學(xué)習(xí)到一個(gè)最優(yōu)的解。
?
因此,特征是神經(jīng)網(wǎng)絡(luò)自己學(xué)習(xí)得來的。但是在傳統(tǒng)的機(jī)器學(xué)習(xí)中,特征和算法都是人工定義的。
?
現(xiàn)在的數(shù)據(jù)的特征、結(jié)構(gòu)、模式都是網(wǎng)絡(luò)自我學(xué)習(xí)的,而不是像傳統(tǒng)機(jī)器學(xué)習(xí)那樣人工定義。所以以前無法實(shí)現(xiàn)的AI的算法現(xiàn)在可行了,并且在某些方面超過了人類。
?
從深度學(xué)習(xí)到深度對(duì)抗學(xué)習(xí)
很多年前,我學(xué)習(xí)過拳擊。我的拳擊教練不讓新手問問題,說新手不知道問什么問題,連問的問題都是錯(cuò)誤的,會(huì)得到?jīng)]用的答案,會(huì)專注于錯(cuò)誤的東西,越學(xué)越錯(cuò)。
?
Robert Half說過“會(huì)問問題和會(huì)解題一樣,都需要一定的水平”
對(duì)抗學(xué)習(xí)的奇妙之處在于所有的東西都是從數(shù)據(jù)中學(xué)習(xí)得到的,包括要解決的問題,最終的答案以及評(píng)估答案的標(biāo)準(zhǔn)—目標(biāo)函數(shù)。傳統(tǒng)的深度學(xué)習(xí)中,是由人來決定要解決什么問題,人來決定用什么目標(biāo)函數(shù)做評(píng)估。
?
Deep‘ Mind公司用AlphaGo證明了深度對(duì)抗學(xué)習(xí)的厲害之處。在圍棋比賽中,AlphaGo可以自己創(chuàng)造新的下法和招數(shù)。這開創(chuàng)了圍棋的新紀(jì)元,突破了過去幾千年的一個(gè)瓶頸,達(dá)到了新的高度。AlphaGo能做到這點(diǎn)是因?yàn)樗茏约航o自己打分,可以隨時(shí)計(jì)算當(dāng)前的局勢的分?jǐn)?shù),而不用預(yù)先人工定義和預(yù)編程。這樣,AlphaGo自己和自己下了幾百萬局的比賽。聽起來很像對(duì)抗學(xué)習(xí)吧?
?
AlphaGo不僅僅是暴力破解,而是真正掌握了圍棋比賽,學(xué)到了圍棋的招式。之所以這樣,是因?yàn)樗鼪]有被人類束縛,既沒有得到人類先驗(yàn)的輸入,也不受我們對(duì)問題域理解的局限。無法想象,當(dāng)我們把這些成果應(yīng)用到實(shí)際生活中,AI會(huì)如何改造農(nóng)業(yè)、醫(yī)療等等。但是這一定會(huì)發(fā)生。
生成對(duì)抗網(wǎng)絡(luò)GAN
Richard Feynman說“如果要真正理解一個(gè)東西,我們必須要能夠把它創(chuàng)造出來?!?/p>
正是這句話激勵(lì)著我開始學(xué)習(xí)GANs。GANs的訓(xùn)練過程就是兩個(gè)神經(jīng)網(wǎng)絡(luò)自己在作對(duì)抗,通過對(duì)抗不斷的學(xué)習(xí)。當(dāng)然學(xué)習(xí)是在原始數(shù)據(jù)的基礎(chǔ)上學(xué)習(xí)。
生成器通過對(duì)原始數(shù)據(jù)的分布進(jìn)行建模,學(xué)習(xí)如何生成近似數(shù)據(jù);而判別器用來判斷數(shù)據(jù)是生成器生成的數(shù)據(jù)還是原始的真實(shí)的數(shù)據(jù)。這樣生成器就能重新創(chuàng)造出原始數(shù)據(jù)的近似。我們相信為了能夠理解一個(gè)東西,我們要能重新創(chuàng)造這個(gè)東西,所以GAN是非常有價(jià)值的,我們的努力也是值得的。
如果我們能成功使得GAN達(dá)到納什均衡(完美的判別器也不能識(shí)別數(shù)據(jù)到底是真實(shí)數(shù)據(jù)還是生成數(shù)據(jù)),我們就能夠把這個(gè)成果應(yīng)用到幾乎任何事情上,并且還能夠有較好的性能。
存在的問題
GANs很難優(yōu)化,并且訓(xùn)練過程不穩(wěn)定。網(wǎng)絡(luò)結(jié)構(gòu)必須設(shè)計(jì)的非常好,生成器和判別器之間必須有個(gè)很好的協(xié)調(diào),才能使得訓(xùn)練過程收斂。這些問題中,最顯著的就是失去樣本多樣性(mode dropping, 即生成器只從很小一部分的數(shù)據(jù)集中學(xué)習(xí))。還有由于GANs的學(xué)習(xí)曲線基本沒什么意義,因此很難調(diào)試。
?
雖然如此,仍然通過GANs得到了較先進(jìn)的一些成果。但是就是因?yàn)檫@些問題,GANs的應(yīng)用被限制住了。
解決方法
Alex J. Champandard說“一個(gè)月內(nèi),傳統(tǒng)的訓(xùn)練GANs的方法會(huì)被當(dāng)做黑暗時(shí)代的方法”。
?
GANs的訓(xùn)練目標(biāo)是生成數(shù)據(jù)和真實(shí)數(shù)據(jù)的分布的距離差的最小化。
最開始使用的是Jensen-Shannon散度。但是,Wasserstein GAN(wGAN)文章在理論和實(shí)際兩個(gè)方面,都證明了最小化推土距離EMD(Earth Mover’s distance)才是解決上述問題的最優(yōu)方法。當(dāng)然在實(shí)際計(jì)算中,由于EMD的計(jì)算量過大,因此使用的是EMD的合理的近似值。
為了使得近似值有效,wGAN在判別器(在wGAN中使用了critic一詞,和GAN中的discriminator是同一個(gè)意思)中使用了權(quán)重剪裁(weight clipping)。但是正是權(quán)重剪裁導(dǎo)致了上述的問題。
?
后來對(duì)wGAN的訓(xùn)練方法進(jìn)行了改進(jìn),它通過在判別器引入梯度懲罰(gradient penalty)使得訓(xùn)練穩(wěn)定。梯度懲罰只要簡單的加到總損失函數(shù)中的Wasserstein距離就可以了。
?
歷史上第一次,終于可以訓(xùn)練GAN而幾乎不用超參數(shù)調(diào)優(yōu)了。其中包括了101層的殘差網(wǎng)絡(luò)和基于離散數(shù)據(jù)的語言模型。
?
Wasserstein距離的一個(gè)優(yōu)勢就是當(dāng)判別器改進(jìn)的時(shí)候,生成器能收到改進(jìn)的梯度。但是在使用Jensen-Shannon散度的時(shí)候,當(dāng)判別器改進(jìn)的時(shí)候,產(chǎn)生了梯度消失,生成器無法學(xué)習(xí)改進(jìn)。這個(gè)也是產(chǎn)生訓(xùn)練不穩(wěn)定的主要原因。
?
如果想對(duì)這個(gè)理論有深入理解,我建議讀一下下面兩個(gè)文章:
Wasserstein GAN
Wasserstein GANs的改進(jìn)的訓(xùn)練方法
?
隨著新的目標(biāo)函數(shù)的引入,我看待GANs的方式也發(fā)生了變化:
?
傳統(tǒng)的GAN(Jensen-Shannon散度)下,生成器和判別器是競爭關(guān)系,如下圖。
在wGAN(Wasserstein距離)下,生成器和判別器是協(xié)作關(guān)系,如下圖。
代碼實(shí)現(xiàn)
結(jié)論
對(duì)抗學(xué)習(xí)的網(wǎng)絡(luò)不受我們對(duì)問題域理解的任何限制,沒有任何先驗(yàn)知識(shí),網(wǎng)絡(luò)就是從數(shù)據(jù)中學(xué)習(xí)。
商業(yè)智能與數(shù)據(jù)分析群
興趣范圍包括各種讓數(shù)據(jù)產(chǎn)生價(jià)值的辦法,實(shí)際應(yīng)用案例分享與討論,分析工具,ETL工具,數(shù)據(jù)倉庫,數(shù)據(jù)挖掘工具,報(bào)表系統(tǒng)等全方位知識(shí)
QQ群:81035754
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/4564.html
摘要:月日至日,由麥思博主辦的第屆軟件工作坊在深圳華僑城洲際大酒店盛大召開,位來自互聯(lián)網(wǎng)行業(yè)的一線大咖與超過位中高層技術(shù)管理精英匯聚交流,共同探討最前沿技術(shù)熱點(diǎn)與技術(shù)思維。軟件工作坊的每一屆舉辦在技術(shù)交流案例分析達(dá)成共識(shí)上都取得了豐碩的成果。 6月24日至25日,由麥思博(msup)主辦的第35屆MPD軟件工作坊在深圳華僑城洲際大酒店盛大召開,25位來自互聯(lián)網(wǎng)行業(yè)的一線大咖與超過500位中高...
摘要:前面兩個(gè)期望的采樣我們都熟悉,第一個(gè)期望是從真樣本集里面采,第二個(gè)期望是從生成器的噪聲輸入分布采樣后,再由生成器映射到樣本空間。 Wasserstein GAN進(jìn)展:從weight clipping到gradient penalty,更加先進(jìn)的Lipschitz限制手法前段時(shí)間,Wasserstein ?GAN以其精巧的理論分析、簡單至極的算法實(shí)現(xiàn)、出色的實(shí)驗(yàn)效果,在GAN研究圈內(nèi)掀起了一陣...
摘要:隨后深度學(xué)習(xí)的研究大放異彩,廣泛應(yīng)用在了圖像處理和語音識(shí)別領(lǐng)域。比如的學(xué)生就用深度學(xué)習(xí)算法贏得年的。深度學(xué)習(xí)和人工智能的春天離人工智能最近的互聯(lián)網(wǎng)公司敏銳嗅到了這一機(jī)遇。 多倫多大學(xué)計(jì)算機(jī)系教授Geoffrey Hinton是Deep Learning的開山鼻祖,我們來講講他的故事。他有個(gè)傳奇的姑姑不過先來說說他姑姑吧,他姑姑Joan Hinton是一個(gè)與中國有關(guān)的具有傳奇經(jīng)歷的人物,中文名...
閱讀 2366·2021-11-25 09:43
閱讀 2874·2021-11-24 09:39
閱讀 2937·2019-08-30 11:10
閱讀 1146·2019-08-29 16:34
閱讀 610·2019-08-29 13:25
閱讀 3369·2019-08-29 11:21
閱讀 2872·2019-08-26 11:39
閱讀 2404·2019-08-26 11:34