轉(zhuǎn)載自 https://mp.weixin.qq.com/s/OXXtPoBrCADbwxVyEbfbYg
25. 初識(shí)生成式對(duì)抗網(wǎng)絡(luò)(GANs)
場景描述
2014年的一天缩焦,Goodfellow與好友相約到酒吧聊天。也許平日里工作壓力太大责静,腦細(xì)胞已耗盡了創(chuàng)作的激情袁滥,在酒吧的片刻放松催生了一個(gè)絕妙的學(xué)術(shù)點(diǎn)子,然后就有了GANs的傳說灾螃。GANs全稱為生成式對(duì)抗網(wǎng)絡(luò)题翻,是一個(gè)訓(xùn)練生成模型的新框架。
GANs自提出之日起腰鬼,就迅速風(fēng)靡深度學(xué)習(xí)的各個(gè)角落嵌赠,GANs的變種更是雨后春筍般進(jìn)入人們的視野,諸如:WGAN垃喊、InfoGAN猾普、f-GANs、BiGAN本谜、DCGAN初家、IRGAN等等。
GANs之火乌助,就連任何初入深度學(xué)習(xí)的新手都能略說一二溜在。GANs剛提出時(shí)沒有華麗的數(shù)學(xué)推演,描繪出的是一幅魅力感極強(qiáng)的故事畫面他托,恰好契合了東方文化中太極圖的深刻含義——萬物在相生相克中演化掖肋,聽起來很有意思。想象GANs框架是一幅太極圖赏参,“太極生兩儀”志笼,這里“兩儀”就是生成器和判別器,生成器負(fù)責(zé)“生”把篓,判別器負(fù)責(zé)“滅”纫溃,這一生一滅間有了萬物。具體說來韧掩,生成器在初始混沌中孕育有形萬物紊浩,判別器甄別過濾有形萬物,扮演一種末日大審判的角色》凰回到嚴(yán)謹(jǐn)?shù)膶W(xué)術(shù)語言上费彼,生成器從一個(gè)先驗(yàn)分布中采得隨機(jī)信號(hào),經(jīng)過神經(jīng)網(wǎng)絡(luò)的“妙手”轉(zhuǎn)換口芍,得到一個(gè)模擬真實(shí)數(shù)據(jù)的樣本箍铲;判別器既接收來自生成器的模擬樣本,也接收來自實(shí)際數(shù)據(jù)集的真實(shí)樣本鬓椭,我們不告訴判別器這個(gè)樣本是哪里來的虹钮,需要它判斷樣本的來源。判別器試圖區(qū)分這兩類樣本膘融,生成器則試圖造出迷惑判別器的模擬樣本,兩者自然構(gòu)成一對(duì)“冤家”祭玉,置身于一種對(duì)抗的環(huán)境氧映。然而,對(duì)抗不是目的脱货,在對(duì)抗中讓雙方能力各有所長才是目的岛都,理想情況下最終達(dá)到一種平衡,使得雙方的能力以臻完美振峻,彼此都沒有了更進(jìn)一步的空間臼疫。
問題描述
關(guān)于GANs,從基本理論到具體模型再到實(shí)驗(yàn)設(shè)計(jì)扣孟,我們依次思考三個(gè)問題:
(1)GANs可看作一個(gè)雙人minimax游戲烫堤,請給出游戲的value function。我們知道在理想情況下最終會(huì)達(dá)到一個(gè)納什均衡點(diǎn)凤价,此時(shí)生成器表示為G鸽斟,判別器表示為D,請給出解(G, D)和value function的值利诺;在未達(dá)到均衡時(shí)富蓄,我們將生成器G固定,去尋找當(dāng)前下最優(yōu)的判別器DG慢逾,請給出DG和此時(shí)的value function立倍。至此的答案都很容易在原論文中找到,這里進(jìn)一步發(fā)問侣滩,倘若固定D口注,我們將G優(yōu)化到底,那么解GD*和此時(shí)的value function是什么胜卤?
(2)發(fā)明GANs的初衷是為了更好地對(duì)概率生成模型作估計(jì)尚揣,我們知道在應(yīng)用傳統(tǒng)概率生成模型(如:馬爾科夫場龄恋、貝葉斯網(wǎng))時(shí)會(huì)涉及大量難以完成的概率推斷計(jì)算颠悬,GANs是如何避開這類計(jì)算的省有?
(3)實(shí)驗(yàn)中訓(xùn)練GANs的過程會(huì)如描述的那么完美嗎,求解的最小化目標(biāo)函數(shù)
在訓(xùn)練中會(huì)遇到什么問題扛门,你有什么解決方案?
解答與分析
(1)
在minimax游戲里,判別器的目標(biāo)是將來自實(shí)際數(shù)據(jù)集的樣本識(shí)別為真實(shí)樣本悔醋,同時(shí)將來自生成器的樣本識(shí)別為模擬樣本。簡單地看兽叮,這是一個(gè)二分類問題芬骄,損失函數(shù)自然是negative log-likelihood,也稱為categorical cross-entropy loss或cross-entropy loss鹦聪,即:
其中账阻,D(x)表示判別器D預(yù)測x為真實(shí)樣本的概率,p(data|x)和p(g|x)分別表示x為真實(shí)樣本和模擬樣本的后驗(yàn)概率泽本。另外淘太,p(x) = Psrc(s = data)P(x|data) + Psrc(s = g)P(x|g), 這里的P(x|data)即pdata(x)表示從實(shí)際數(shù)據(jù)集獲取樣本x的概率,P(x|g)即pg(x)表示從生成器生成樣本x的概率规丽。由于假定實(shí)際數(shù)據(jù)集的和生成器的樣本各占一半蒲牧,即Psrc(s = data)* =* Psrc(s = g) = 1/2,我們可以得到
因此赌莺,判別器最小化L(D)的過程可以化作最大化如下value function:
同時(shí)冰抢,作為另一方的生成器G最小化該value function,故這個(gè)minimax游戲可表示為:
我們發(fā)現(xiàn)在優(yōu)化G的過程中艘狭,最小化value function本質(zhì)是在最小化生成器樣本分布pg與真實(shí)樣本分布pdata的Jensen-Shannon divergence JSD(pdata||pg)挎扰。
進(jìn)一步考慮最終達(dá)到的均衡點(diǎn),JSD(pdata||pg)的最小值在pdata = pg取到零巢音,故最優(yōu)解G滿足x = G(z)~pdata(x)鼓鲁,D滿足D(x)≡1/2,此時(shí)value function的值為V(G, D) =﹣㏒4港谊。
進(jìn)一步骇吭,在訓(xùn)練時(shí)如果給定D求解當(dāng)下最優(yōu)的G,我們可以得到什么歧寺?
我們不妨假設(shè)G'表示前一步的生成器燥狰,給出的D是G'下的最優(yōu)判別器
,即
那么斜筐,當(dāng)前G的最小化目標(biāo)變?yōu)?/p>
(2)
傳統(tǒng)概率生成模型要定義一個(gè)描述概率分布的表達(dá)式P(X)龙致,通常是一個(gè)聯(lián)合概率分布的密度函數(shù)P(X1,X2,…, XN),然后基于此表達(dá)式做最大似然估計(jì)顷链。這個(gè)過程少不了做概率推斷計(jì)算目代,如:計(jì)算邊緣概率P(Xi),計(jì)算條件概率P(Xi|Xj),計(jì)算作分母的partition function等榛了。當(dāng)隨機(jī)變量很多時(shí)在讶,概率模型會(huì)變得十分復(fù)雜,做概率計(jì)算變得非常困難霜大,即使做大量近似計(jì)算构哺,效果常不盡人意。而GANs在刻畫概率生成模型時(shí)战坤,并不對(duì)概率密度函數(shù)P(X)直接建模曙强,而是通過直接制造樣本X,間接地體現(xiàn)出分布P(X)途茫,就是說我們實(shí)際上看不到P(X)的一個(gè)表達(dá)式碟嘴。那么怎么做呢?
我們知道囊卜,如果有兩個(gè)隨機(jī)變量Z和X臀防,且它們之間存在某種映射關(guān)系,X = f(Z)边败,那么它們各自的概率分布PX(X)和PZ(Z)也存在某種映射關(guān)系。當(dāng)Z, X∈R都是一維隨機(jī)變量時(shí)捎废,
當(dāng)Z, X是高維隨機(jī)變量時(shí)笑窜,導(dǎo)數(shù)變成Jacobian矩陣,為PX=* J PZ登疗。因此排截,已知Z的分布,我們對(duì)隨機(jī)變量之間的轉(zhuǎn)換函數(shù)f直接建模辐益,就唯一確定了X*的分布断傲。
這樣,不僅避開了大量復(fù)雜的概率計(jì)算智政,而且給了f更大的發(fā)揮空間认罩,我們可以用神經(jīng)網(wǎng)絡(luò)來刻畫f。我們知道续捂,近些年神經(jīng)網(wǎng)絡(luò)領(lǐng)域大踏步向前發(fā)展垦垂,涌現(xiàn)出一批新技術(shù)來優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),除了經(jīng)典的CNN和RNN結(jié)構(gòu)牙瓢,ReLu激活函數(shù)劫拗、Batch Normalization、Dropout等矾克,都可以自由地添加到生成器的網(wǎng)絡(luò)中页慷,大大增強(qiáng)了生成器的表達(dá)能力。
(3)
在實(shí)際訓(xùn)練中,早期階段的生成器G很差酒繁,生成的模擬樣本很容易被判別器D識(shí)別滓彰,使得D回傳給的G梯度非常非常小,達(dá)不到訓(xùn)練G的目的欲逃,這個(gè)現(xiàn)象稱為優(yōu)化飽和找蜜。為什么會(huì)出現(xiàn)這種現(xiàn)象呢?回答這個(gè)問題前稳析,我們將判別器D的sigmoid輸出層的前一層記為o洗做,那么D(x)可表示成D(x) = sigmod(o(x)),當(dāng)輸入的是一個(gè)真實(shí)樣本時(shí)x~pdata彰居,當(dāng)輸入的是一個(gè)模擬樣本時(shí)x = G(z;θg), z~pz诚纸。我們看判別器D的導(dǎo)數(shù)形式
訓(xùn)練生成器的loss項(xiàng)的導(dǎo)數(shù)形式為
此時(shí)生成器獲得的導(dǎo)數(shù)基本為零,這說明判別器強(qiáng)大后對(duì)生成器的幫助反而變得微乎其微陈惰。怎么辦呢畦徘?
26. 隱馬爾科夫模型
場景描述
序列標(biāo)注(sequence labeling)是對(duì)一個(gè)序列的每個(gè)元素給出標(biāo)簽的機(jī)器學(xué)習(xí)任務(wù)。序列標(biāo)注模型被應(yīng)用于文本處理相關(guān)領(lǐng)域抬闯,包括中文分詞井辆、詞性標(biāo)注、語義角色標(biāo)注溶握、命名實(shí)體識(shí)別杯缺、語音識(shí)別等。我們前面已經(jīng)提到過用RNN等深度學(xué)習(xí)模型解決序列標(biāo)注問題睡榆,接下來我們還將回顧序列標(biāo)注的一系列經(jīng)典模型萍肆。
問題描述
簡述如何對(duì)中文分詞問題用隱馬爾科夫模型進(jìn)行建模,給定一批語料胀屿,如何對(duì)模型進(jìn)行訓(xùn)練塘揣。
解答與分析
背景:隱馬爾科夫模型是機(jī)器學(xué)習(xí)中一個(gè)經(jīng)典的生成式模型,描述了由隱狀態(tài)的馬爾科夫鏈隨機(jī)生成觀測狀態(tài)序列的過程宿崭,常用于解決序列標(biāo)注問題亲铡,在自然語言處理、語音識(shí)別等領(lǐng)域有廣泛的應(yīng)用葡兑。
在談隱馬爾科夫模型之前奴愉,先簡單談一談馬爾科夫過程。馬爾科夫過程是滿足無后效性的隨機(jī)過程铁孵。假設(shè)一個(gè)隨機(jī)過程中锭硼,tn時(shí)刻的狀態(tài)xn的條件分布,僅僅與其前一個(gè)狀態(tài)xn-1有關(guān)蜕劝,即P(xn|x1, x2 … xn-1)=P(xn|xn-1)檀头,則將其稱為馬爾科夫過程轰异,時(shí)間和狀態(tài)的取值都是離散的馬爾科夫過程也稱為馬爾科夫鏈。
隱馬爾科夫模型是對(duì)含有未知參數(shù)(隱狀態(tài))的馬爾科夫鏈進(jìn)行建模的生成模型暑始。在簡單的馬爾科夫模型中搭独,所有狀態(tài)對(duì)于觀測者都是可見的,因此在馬爾科夫模型里僅僅包括狀態(tài)間的轉(zhuǎn)移概率廊镜,而在隱馬爾科夫模型中牙肝,隱狀態(tài)xi對(duì)于觀測者而言是不可見的,觀測者能觀測到的只有每個(gè)隱狀態(tài)xi對(duì)應(yīng)的輸出yi嗤朴,而觀測狀態(tài)yi的概率分布僅僅取決于對(duì)應(yīng)的隱狀態(tài)xi配椭。在隱馬爾科夫模型中,參數(shù)包括了隱狀態(tài)間的轉(zhuǎn)移概率雹姊、隱狀態(tài)到觀測狀態(tài)的輸出概率股缸、隱狀態(tài)x的取值空間、觀測狀態(tài)y的取值空間以及初試狀態(tài)的概率分布吱雏。
下面我們用一個(gè)簡單的例子來說明隱馬爾科夫模型的建模過程敦姻。
假設(shè)現(xiàn)在我們有3個(gè)不同的葫蘆,每個(gè)葫蘆里有好藥壞藥若干歧杏,現(xiàn)在我們從這3個(gè)葫蘆中按以下規(guī)則倒出藥來:
隨機(jī)挑選一個(gè)葫蘆
從葫蘆里倒出一顆藥镰惦,記錄是好藥還是壞藥后將藥放回
從當(dāng)前葫蘆依照一定的概率轉(zhuǎn)移到下一個(gè)葫蘆
重復(fù)步驟2-3
在整個(gè)過程中,我們并不知道每次拿到的是哪一個(gè)葫蘆犬绒。
用隱馬爾科夫模型來描述以上過程旺入,隱狀態(tài)就是當(dāng)前是哪一個(gè)葫蘆,隱狀態(tài)的取值空間為{葫蘆1懂更,葫蘆2,葫蘆3}急膀,觀測狀態(tài)的取值空間為{好藥沮协,壞藥},初始狀態(tài)的概率分布就是第1步隨機(jī)挑選葫蘆的概率分布卓嫂,隱狀態(tài)間的轉(zhuǎn)移概率就是從當(dāng)前葫蘆轉(zhuǎn)移到下一個(gè)葫蘆的概率慷暂,而隱狀態(tài)到觀測狀態(tài)的輸出概率就是每個(gè)葫蘆里好藥和壞藥的概率。記錄下來的藥的順序就是觀測狀態(tài)的序列晨雳,而每次拿到的葫蘆的順序就是隱狀態(tài)的序列行瑞。
隱馬爾科夫模型包括三個(gè)基本問題:概率計(jì)算問題、預(yù)測問題餐禁、學(xué)習(xí)問題血久。
概率計(jì)算問題:已知模型的所有參數(shù),計(jì)算觀測序列Y出現(xiàn)的概率帮非。概率計(jì)算問題可使用前向和后向算法求解氧吐。
預(yù)測問題:已知模型所有參數(shù)和觀測序列Y讹蘑,計(jì)算最可能的隱狀態(tài)序列X≈耍可使用維特比算法來求解最可能的狀態(tài)序列座慰,維特比算法是一個(gè)經(jīng)典的動(dòng)態(tài)規(guī)劃算法。
學(xué)習(xí)問題:已知觀測序列Y翠拣,求解使得該觀測序列概率最大的模型參數(shù)版仔。 使用Baum-Welch算法進(jìn)行參數(shù)的學(xué)習(xí),Baum-Welch算法是期望最大化算法(EM algorithm)的一個(gè)特例误墓。
上面提到的問題和算法在此不多做介紹蛮粮,感興趣的讀者可以查閱相關(guān)資料。下面回到我們開頭的問題优烧。隱馬爾科夫模型通常用來解決序列標(biāo)注問題蝉揍,因此我們也可以將分詞問題轉(zhuǎn)化為一個(gè)序列標(biāo)注問題來進(jìn)行建模。
例如可以對(duì)中文句子中的每個(gè)字做以下標(biāo)注:B表示一個(gè)詞的開頭一個(gè)字畦娄,E表示一個(gè)詞的結(jié)尾一個(gè)字又沾,M表示一個(gè)詞中間的字,S表示一個(gè)單字詞熙卡,則隱狀態(tài)的取值空間為{B, E, M, S}杖刷,同時(shí)對(duì)隱狀態(tài)的轉(zhuǎn)移概率可以給出一些先驗(yàn)知識(shí):B和M后面只能是M或者E,S和E后面只能是B或者S驳癌。而每個(gè)字就是模型中的觀測狀態(tài)滑燃,取值空間為語料中的所有中文字。
完成建模之后颓鲜,使用語料進(jìn)行訓(xùn)練可以分有監(jiān)督訓(xùn)練和無監(jiān)督訓(xùn)練表窘。有監(jiān)督訓(xùn)練即對(duì)語料進(jìn)行標(biāo)注,相當(dāng)于得到了語料的所有隱狀態(tài)信息甜滨,可以用簡單的計(jì)數(shù)法來對(duì)模型進(jìn)行極大似然估計(jì)乐严。無監(jiān)督訓(xùn)練可以用上文提到的Baum-Welch算法。
27. 自組織映射神經(jīng)網(wǎng)絡(luò)
場景描述
自組織映射算法是無監(jiān)督學(xué)習(xí)方法中一類重要方法衣摩,可以用作聚類昂验、高維可視化、數(shù)據(jù)壓縮艾扮、特征提取等多種用途既琴。在深度神經(jīng)網(wǎng)絡(luò)大為流行的今天,談及自組織映射神經(jīng)網(wǎng)絡(luò)(Self-Organizing Map, SOM)依然是一件非常有意義的事情泡嘴,這主要是由于自組織映射神經(jīng)網(wǎng)絡(luò)融入了大量人腦神經(jīng)元的信號(hào)處理機(jī)制的特點(diǎn)甫恩。具體而言,在人腦的感知通道上酌予,神經(jīng)元的組織是有序排列的填物;同時(shí)纹腌,大腦皮層會(huì)對(duì)外界特定時(shí)空信息的輸入在特定區(qū)域產(chǎn)生興奮,而且相類似的外界信息輸入產(chǎn)生對(duì)應(yīng)興奮的大腦皮層區(qū)域也連續(xù)映像的滞磺。此外升薯,在生物神經(jīng)系統(tǒng)中,還存在著一種“側(cè)抑制”現(xiàn)象击困,這種抑制作用會(huì)使神經(jīng)細(xì)胞之間出現(xiàn)競爭涎劈,其結(jié)果是某些獲勝,而另一些則失敗阅茶,表現(xiàn)形式是獲勝神經(jīng)細(xì)胞興奮蛛枚,失敗神經(jīng)細(xì)胞抑制。自組織神經(jīng)網(wǎng)絡(luò)就是對(duì)上述生物神經(jīng)系統(tǒng)功能的一種人工神經(jīng)網(wǎng)絡(luò)模擬脸哀,該模型由芬蘭赫爾辛基大學(xué)教授Teuvo Kohonen于1981年提出蹦浦,因此有時(shí)也稱為Kohonen網(wǎng)絡(luò)。
問題描述
自組織映射神經(jīng)網(wǎng)絡(luò)是如何工作的撞蜂?它有什么樣的特點(diǎn)盲镶?
解答與分析
自組織映射算法是無監(jiān)督學(xué)習(xí)方法中一類重要方法,可以用作聚類蝌诡、高維可視化溉贿、數(shù)據(jù)壓縮、特征提取等多種用途浦旱。在深度神經(jīng)網(wǎng)絡(luò)大為流行的今天宇色,談及自組織映射神經(jīng)網(wǎng)絡(luò)依然是一件非常有意義的事情,這主要是由于自組織映射神經(jīng)網(wǎng)絡(luò)融入了大量人腦神經(jīng)元的信號(hào)處理機(jī)制的特點(diǎn)颁湖。該模型由芬蘭赫爾辛基大學(xué)教授Teuvo Kohonen于1981年提出宣蠕,因此有時(shí)也稱為Kohonen網(wǎng)絡(luò)。
生物學(xué)研究表明甥捺,在人腦的感知通道上抢蚀,神經(jīng)元組織是有序排列的;同時(shí)涎永,大腦皮層會(huì)對(duì)外界特定時(shí)空信息的輸入在特定區(qū)域產(chǎn)生興奮思币,而且相類似的外界信息輸入產(chǎn)生對(duì)應(yīng)興奮的大腦皮層區(qū)域也連續(xù)映像的鹿响。例如羡微,生物視網(wǎng)膜中有許多特定的細(xì)胞對(duì)特定的圖形比較敏感,當(dāng)視網(wǎng)膜中有若干個(gè)接收單元同時(shí)受特定模式刺激時(shí)惶我,就使大腦皮層中的特定神經(jīng)元開始興奮妈倔,且輸入模式接近時(shí)與之對(duì)應(yīng)的興奮神經(jīng)元也接近;在聽覺通道上绸贡,神經(jīng)元在結(jié)構(gòu)排列上與頻率的關(guān)系十分密切盯蝴,對(duì)于某個(gè)頻率毅哗,特定的神經(jīng)元具有最大的響應(yīng),位置相鄰的神經(jīng)元具有相近的頻率特征捧挺,而遠(yuǎn)離的神經(jīng)元具有的頻率特征差別也較大虑绵。大腦皮層中神經(jīng)元的這種響應(yīng)特點(diǎn)不是先天安排好的,而是通過后天的學(xué)習(xí)自組織形成的闽烙。
在生物神經(jīng)系統(tǒng)中翅睛,還存在著一種側(cè)抑制現(xiàn)象,即一個(gè)神經(jīng)細(xì)胞興奮以后黑竞,會(huì)對(duì)周圍其它神經(jīng)細(xì)胞產(chǎn)生抑制作用捕发。這種抑制作用會(huì)使神經(jīng)細(xì)胞之間出現(xiàn)競爭,其結(jié)果是某些獲勝很魂,而另一些則失敗扎酷。表現(xiàn)形式是獲勝神經(jīng)細(xì)胞興奮,失敗神經(jīng)細(xì)胞抑制遏匆。自組織神經(jīng)網(wǎng)絡(luò)就是對(duì)上述生物神經(jīng)系統(tǒng)功能的一種人工神經(jīng)網(wǎng)絡(luò)模擬法挨。
自組織映射神經(jīng)網(wǎng)絡(luò)本質(zhì)上是一個(gè)兩層的神經(jīng)網(wǎng)絡(luò),包含輸入層和競爭層(輸出層)拉岁。輸入層模擬感知外界輸入信息的視網(wǎng)膜坷剧,輸出層模擬做出響應(yīng)的大腦皮層。競爭層中神經(jīng)元的個(gè)數(shù)通常是聚類的個(gè)數(shù)喊暖,代表每一個(gè)需要聚成的類惫企。訓(xùn)練時(shí)采用“競爭學(xué)習(xí)”的方式,每個(gè)輸入的樣例在競爭層中找到一個(gè)和它最匹配的節(jié)點(diǎn)陵叽,稱為它的激活節(jié)點(diǎn)狞尔,也叫“winning neuron”;緊接著用隨機(jī)梯度下降法更新激活節(jié)點(diǎn)的參數(shù)巩掺;同時(shí)偏序,和激活節(jié)點(diǎn)臨近的點(diǎn)也根據(jù)它們距離激活節(jié)點(diǎn)的遠(yuǎn)近而適當(dāng)?shù)馗聟?shù)。這種競爭可以通過神經(jīng)元之間的橫向抑制連接(負(fù)反饋路徑)來實(shí)現(xiàn)胖替。SOM的競爭層節(jié)點(diǎn)是有拓?fù)潢P(guān)系的研儒。這個(gè)拓?fù)潢P(guān)系依據(jù)需求確定,如果想要一維的模型独令,那么隱藏節(jié)點(diǎn)可以是“一維線陣”端朵;如果想要二維的拓?fù)潢P(guān)系,那么就行成一個(gè)“二維平面陣”燃箭,也如圖(1)所示冲呢,也有更高維度的拓?fù)潢P(guān)系的,比如“三維柵格陣”招狸,但并不常見敬拓。
圖1. SOM常見的兩種網(wǎng)絡(luò)結(jié)構(gòu)
自組織映射神經(jīng)網(wǎng)絡(luò)的自組織學(xué)習(xí)過程也可以歸納為以下四個(gè)子過程邻薯,其中假設(shè)輸入空間是D維,輸入模式為:x={xi, i=1, …, D}乘凸,輸入單元i和神經(jīng)元j之間在計(jì)算層的連接權(quán)重為:w={wi,j, j=1, …, N, i=1, …, D}厕诡,其中N是神經(jīng)元的總數(shù):
基于自組織映射神經(jīng)網(wǎng)絡(luò),通常會(huì)引發(fā)以下常見的幾個(gè)問題:
-
SOM具有什么樣的顯著特點(diǎn)营勤,為什么木人?
保序映射。SOM網(wǎng)絡(luò)可以將任意維輸入模式在輸出層映射為一維或者二維圖形冀偶,并保持拓?fù)浣Y(jié)構(gòu)不變醒第。這種拓?fù)溆成涫沟谩拜敵鰧由窠?jīng)元的空間位置對(duì)應(yīng)于輸入空間的特定域或特征”。由其學(xué)習(xí)過程可以看出进鸠,每個(gè)學(xué)習(xí)權(quán)重更新的效果等同于將獲勝的神經(jīng)元及其鄰居的權(quán)向量wi向輸入向量x移動(dòng)稠曼,同時(shí)對(duì)該過程的迭代進(jìn)行會(huì)使得網(wǎng)絡(luò)的拓?fù)溆行颉?/p>
-
怎樣設(shè)計(jì)自組織映射神經(jīng)網(wǎng)絡(luò)并設(shè)定網(wǎng)絡(luò)訓(xùn)練參數(shù)?
自組織映射神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)和參數(shù)主要包括以下幾個(gè)部分:
輸出層神經(jīng)元數(shù)量設(shè)定:和訓(xùn)練集樣本的類別數(shù)相關(guān)客年。若不清楚類別數(shù)量霞幅,則盡可能先設(shè)定較多的節(jié)點(diǎn)數(shù),以便較好的映射樣本的拓?fù)浣Y(jié)構(gòu)量瓜,如果分類過細(xì)再酌情減少輸出節(jié)點(diǎn)司恳。這樣可能會(huì)帶來少量從未更新過權(quán)值的 “死節(jié)點(diǎn)”,但此問題一般可通過重新初始化權(quán)值得到解決绍傲。
輸出層節(jié)點(diǎn)排列的設(shè)計(jì):輸出層的節(jié)點(diǎn)排列成哪種形式取決于實(shí)際應(yīng)用的需要惶翻,排列形式應(yīng)盡量直觀反映出實(shí)際問題的物理意義撩笆。例如诽表,對(duì)于一般的分類問題胰挑,一個(gè)輸出節(jié)點(diǎn)節(jié)能代表一個(gè)模式類,用一維線陣意義明確結(jié)構(gòu)簡單杠纵;對(duì)于顏色空間或者旅行路徑類的問題荠耽,二維平面則比較直觀。
權(quán)值初始化問題:可以隨機(jī)初始化比藻,但盡量使權(quán)值的初始位置與輸入樣本的大概分布區(qū)域充分重合铝量,避免出現(xiàn)大量的初始“死節(jié)點(diǎn)”。一種簡單易行的方法是從訓(xùn)練集中隨機(jī)抽取m個(gè)輸入樣本作為初始權(quán)值银亲。
拓?fù)溧徲虻脑O(shè)計(jì):拓?fù)漕I(lǐng)域設(shè)計(jì)原則是使領(lǐng)域不斷縮小慢叨,這樣輸出平面上相鄰神經(jīng)元對(duì)應(yīng)的權(quán)向量之間既有區(qū)別又有相當(dāng)?shù)南嗨菩裕瑥亩WC當(dāng)獲勝節(jié)點(diǎn)對(duì)某一類模式產(chǎn)生最大響應(yīng)時(shí)群凶,其領(lǐng)域節(jié)點(diǎn)也能產(chǎn)生較大響應(yīng)插爹。領(lǐng)域的形狀可以是正方形哄辣、六邊形或者菱形请梢。優(yōu)勢領(lǐng)域的大小用領(lǐng)域的半徑表示赠尾,通常憑借經(jīng)驗(yàn)來選擇。
學(xué)習(xí)率的設(shè)計(jì):學(xué)習(xí)率是一個(gè)遞減的函數(shù)毅弧,可以結(jié)合拓?fù)溧徲虻母乱黄鹂紤]气嫁,也可分開。在訓(xùn)練開始時(shí)够坐,學(xué)習(xí)率可以選取較大的值寸宵,之后以較快的速度下降,這樣有利于很快捕捉到輸入向量的大致結(jié)構(gòu)元咙,然后學(xué)習(xí)率在較小的值上緩降至0值梯影,這樣可以精細(xì)地調(diào)整權(quán)值使之符合輸入空間的樣本分布結(jié)構(gòu)。
-
自組織映射神經(jīng)網(wǎng)絡(luò)中的競爭學(xué)習(xí)是怎樣實(shí)現(xiàn)的庶香?
網(wǎng)絡(luò)的競爭層各神經(jīng)元競爭對(duì)輸入模式的響應(yīng)機(jī)會(huì)甲棍,獲勝的神經(jīng)元將使得相關(guān)的各權(quán)重向更加有利于它競爭的方向調(diào)整,即以獲勝神經(jīng)元為中心赶掖,對(duì)近鄰的神經(jīng)元表現(xiàn)出興奮性側(cè)反饋感猛,而對(duì)遠(yuǎn)鄰的神經(jīng)元表現(xiàn)出抑制性側(cè)反饋,近鄰者互相激勵(lì)奢赂,遠(yuǎn)鄰者相互抑制陪白。近鄰和遠(yuǎn)鄰均有一定的范圍,對(duì)更遠(yuǎn)鄰的神經(jīng)元?jiǎng)t表現(xiàn)弱激勵(lì)的作用膳灶。這種交互作用的方式以曲線可視化則類似于“墨西哥帽”咱士,如圖2所示。
圖2. 神經(jīng)元的激勵(lì)交互方式
-
SOM對(duì)比K-means有何不同點(diǎn)轧钓?
(1)K-Means需要事先定下類的個(gè)數(shù)司致,也就是K的值; SOM則不用聋迎,隱藏層中的某些節(jié)點(diǎn)可以沒有任何輸入數(shù)據(jù)屬于它脂矫。所以,K-Means受初始化的影響要比較大霉晕。
(2)K-means為每個(gè)輸入數(shù)據(jù)找到一個(gè)最相似的類后庭再,只更新這個(gè)類的參數(shù);SOM則會(huì)更新臨近的節(jié)點(diǎn)牺堰。所以拄轻,K-mean受noise data的影響比較大,SOM的準(zhǔn)確性可能會(huì)比k-means低(因?yàn)橐哺铝伺R近節(jié)點(diǎn))伟葫;
(3) SOM的可視化比較好恨搓,具有優(yōu)雅的拓?fù)潢P(guān)系圖。
28. 概率圖模型
場景描述
概率圖模型(Probabilistic Graphical Model)主要分為兩種(如圖1所示),即貝葉斯網(wǎng)絡(luò)(Bayesian Network)和馬爾可夫網(wǎng)絡(luò)(Markov Network)斧抱;其中貝葉斯概率圖模型可以用一個(gè)有向圖結(jié)構(gòu)表示常拓,馬爾可夫概率圖模型可以表示成一個(gè)無向圖的網(wǎng)絡(luò)結(jié)構(gòu)。概率圖模型適用于對(duì)實(shí)體間的依賴關(guān)系進(jìn)行建模辉浦,有向邊用來建模單向的依賴弄抬,無向邊用來建模雙方的相互依賴關(guān)系。概率圖模型包括樸素貝葉斯模型宪郊、最大熵模型掂恕、隱馬爾可夫模型、條件隨機(jī)場弛槐、主題模型等懊亡,在諸多機(jī)器學(xué)習(xí)場景中有著廣泛的應(yīng)用。
圖1
問題描述
能否寫出圖1中貝葉斯網(wǎng)絡(luò)的聯(lián)合概率分布乎串?
寫出圖1所示的馬爾可夫網(wǎng)絡(luò)的聯(lián)合概率分布斋配。
解釋樸素貝葉斯模型的原理,并給出概率圖模型表示灌闺。
解釋最大熵模型的原理艰争,并給出概率圖模型表示。
知識(shí)點(diǎn):概率圖桂对、貝葉斯網(wǎng)絡(luò)甩卓、馬爾可夫網(wǎng)絡(luò)
解答與分析
1. 能否寫出圖1中貝葉斯網(wǎng)絡(luò)的聯(lián)合概率分布?
如圖所示的貝葉斯網(wǎng)絡(luò)中蕉斜,在給定A的條件下B和C是條件獨(dú)立的逾柿,因此:
在給定B和C的條件下A和D是條件獨(dú)立的,因此:
于是有:
2. 寫出圖1所示的馬爾可夫網(wǎng)絡(luò)的聯(lián)合概率分布宅此。
在馬爾可夫網(wǎng)絡(luò)中机错,聯(lián)合概率分布的定義為:
對(duì)于圖中所有節(jié)點(diǎn)x={x1, x2, …, xn}所構(gòu)成的一個(gè)子集,如果在這個(gè)子集中父腕,任意兩點(diǎn)之間都存在邊相聯(lián)弱匪,則這個(gè)子集中的所有節(jié)點(diǎn)構(gòu)成了一個(gè)團(tuán)。如果在這個(gè)子集中加入任意其他節(jié)點(diǎn)璧亮,都不能構(gòu)成一個(gè)團(tuán)萧诫,則稱這樣的子集構(gòu)成了一個(gè)最大團(tuán)。
在圖1所示的網(wǎng)絡(luò)結(jié)構(gòu)中枝嘶,我們可以看到(A帘饶,B),(A群扶,C)及刻,(B镀裤,D),(C缴饭,D)構(gòu)成團(tuán)暑劝,同時(shí)也是最大團(tuán)。因此聯(lián)合概率分布可以表示如下:
如果采用如上定義的指數(shù)函數(shù)作為勢函數(shù)茴扁,則有:
3. 解釋樸素貝葉斯模型的原理,并給出概率圖模型表示汪疮。
樸素貝葉斯模型通過預(yù)測指定樣本屬于特定類別的概率P(yi|x)來預(yù)測該樣本的所屬類別峭火。
P(yi|x)可以寫成如下的形式:
其中x=(x1, x2, …, xn)為樣本對(duì)應(yīng)的特征向量,P(x)為樣本的先驗(yàn)概率智嚷。對(duì)于特定的樣本x和任意類別yi卖丸,P(x)的取值均相同,并不會(huì)影響P(yi|x)取值的相對(duì)大小盏道,因此在計(jì)算中可以被忽略稍浆。并且假設(shè)特征x1, x2, …, xn相互獨(dú)立,可以得到:
其中P(x1|yi), P(x2|yi), …, P(xn|yi)猜嘱,以及P(yi)可以通過訓(xùn)練樣本統(tǒng)計(jì)得到衅枫。可以看到后驗(yàn)概率P(xj|yi)的取值決定了分類的結(jié)果朗伶,并且任意特征xj都由yi的取值所影響弦撩。因此概率圖模型可以用下圖表示:
注:上圖的表示為盤式記法。盤式記法是一種簡潔的概率圖模型表示方法论皆,如果變量y同時(shí)對(duì)x1, x2, …,xN這N個(gè)變量產(chǎn)生影響益楼,則可以簡記成如圖的形式。
4. 解釋最大熵模型的原理点晴,并給出概率圖模型表示感凤。
信息是指人們對(duì)事物理解的不確定性的降低或消除,而熵就是這種不確定性的度量粒督,熵越大陪竿,不確定性也就越大。最大熵原理是概率模型學(xué)習(xí)的一個(gè)準(zhǔn)則屠橄,指導(dǎo)思想是在滿足約束條件的模型集合中選取熵最大的模型萨惑,即不確定性最大的模型。在平時(shí)生活中仇矾,我們也會(huì)有意無意地使用最大熵的準(zhǔn)則庸蔼,例如人們常說的雞蛋不能放在一個(gè)籃子里,就是指在事情具有不確定性的時(shí)候贮匕,我們傾向于嘗試它的多種可能性姐仅,從而降低結(jié)果的風(fēng)險(xiǎn)。同時(shí),在我們摸清了事情背后的某種規(guī)律之后掏膏,我們可以加入一個(gè)約束劳翰,將不符合規(guī)律約束的情況排除,在剩下的可能性中去尋找使得熵最大的決策馒疹。
假設(shè)離散隨機(jī)變量X的分布是P(X)佳簸,則關(guān)于分布P的熵定義為:
可以看出當(dāng)X服從均勻分布時(shí)對(duì)應(yīng)的熵最大,也就是不確定性最高颖变。
給定離散隨機(jī)變量X和Y上的條件概率分布P(Y|X)生均,定義在條件概率分布上的條件熵為:
為樣本在訓(xùn)練數(shù)據(jù)集上的經(jīng)驗(yàn)分布,即X的各個(gè)取值在樣本中出現(xiàn)的頻率統(tǒng)計(jì)腥刹。
最大熵模型就是要學(xué)習(xí)到合適的分布P(Y|X)马胧,使得條件熵H(P)的取值最大。在我們對(duì)訓(xùn)練數(shù)據(jù)集一無所知的情況下衔峰,最大熵模型認(rèn)為P(Y|X)是符合均勻分布的佩脊。那么當(dāng)我們有了訓(xùn)練數(shù)據(jù)集之后呢?我們希望從中找到一些規(guī)律垫卤,從而消除一些不確定性威彰,這時(shí)就需要用到特征函數(shù)f(x,y)。特征函數(shù)f描述了輸入x和輸出y之間的一個(gè)規(guī)律穴肘,例如當(dāng)x=y時(shí)抱冷,f(x,y)等于一個(gè)比較大的正數(shù)。為了使學(xué)習(xí)到的模型P(Y|X)能夠正確捕捉訓(xùn)練數(shù)據(jù)集中的這一規(guī)律(特征)梢褐,我們加入一個(gè)約束旺遮,使得特征函數(shù)f(x,y)關(guān)于經(jīng)驗(yàn)分布的期望值相等,即
求解之后可以得到最大熵模型的表達(dá)形式:
最終盈咳,最大熵模型歸結(jié)為學(xué)習(xí)最佳的參數(shù)w耿眉,使得Pw(y|x)最大化。從概率圖模型的角度理解鱼响,我們可以看到Pw(y|x)的表達(dá)形式非常類似于勢函數(shù)為指數(shù)函數(shù)的馬爾可夫網(wǎng)絡(luò)鸣剪,其中變量X和Y構(gòu)成了一個(gè)最大團(tuán),如下圖所示:
29. WGANs:抓住低維的幽靈
場景描述
看過《三體3》的朋友丈积,一定聽說過“降維打擊”這個(gè)概念筐骇,像拍蒼蠅一樣把敵人拍扁。其實(shí)江滨,低維不見得一點(diǎn)好處都沒有铛纬。想象貓和老鼠這部動(dòng)畫的一個(gè)鏡頭,老鼠Jerry被它的勁敵Tom貓一路追趕唬滑,突然Jerry發(fā)現(xiàn)墻上掛了很多照片告唆,其中一張的背景是海邊浴場棺弊,沙灘上有密密麻麻的很多人,Jerry一下子跳了進(jìn)去擒悬,混在人群中消失了模她,Tom怎么也找不到Jerry。 三維的Jerry變成了一個(gè)二維的Jerry懂牧,躲過了Tom侈净。一個(gè)新的問題是:Jerry對(duì)于原三維世界來說是否還存在? 極限情況下僧凤,如果這張照片足夠薄畜侦,沒有厚度,那么它就在一個(gè)二維平面里拼弃,不占任何體積夏伊,體積為零的東西不就等于沒有嗎摇展!拓展到高維空間中吻氧,這個(gè)體積叫測度,無論N維空間的N有多大咏连,在N+1維空間中測度就是零盯孙,就像二維平面在三維空間中一樣。因此祟滴,一個(gè)低維空間的物體振惰,在高維空間中忽略不計(jì)。對(duì)生活在高維世界的人來說垄懂,低維空間是那么無足輕重骑晶,像一層紗,如一個(gè)幽靈草慧,似有似無桶蛔,是一個(gè)隱去的世界。
2017年漫谷,一個(gè)訓(xùn)練生成對(duì)抗網(wǎng)絡(luò)的新方法——WGAN被提出仔雷。在此之前,GANs已提出三年舔示,吸引了很多研究者來使用它碟婆。原理上,大家都覺得GANs的思路實(shí)在太巧妙惕稻,理解起來一點(diǎn)都不復(fù)雜竖共,很符合人們的直覺,萬物不都是在相互制約和對(duì)抗中逐漸演化升級(jí)嗎俺祠。理論上肘迎,Goodfellow在2014年提出GANs時(shí)甥温,已經(jīng)給出GANs的最優(yōu)性證明,證明GANs本質(zhì)上是在最小化生成分布與真實(shí)數(shù)據(jù)分布的Jensen-Shannon Divergence妓布,當(dāng)算法收斂時(shí)生成器刻畫的分布就是真實(shí)數(shù)據(jù)的分布姻蚓。但是,實(shí)際使用中發(fā)現(xiàn)很多解釋不清的問題匣沼,生成器的訓(xùn)練會(huì)很不穩(wěn)定狰挡。生成器這只Tom貓,很難抓住真實(shí)數(shù)據(jù)分布這只老鼠Jerry释涛。
問題描述
請思考:原GANs中存在哪些問題加叁,會(huì)成為制約模型訓(xùn)練效果的瓶頸;WGAN針對(duì)這些問題做了哪些改進(jìn)唇撬; WGAN算法的具體步驟它匕;并寫出WGAN的偽代碼。
知識(shí)點(diǎn):JS距離窖认、坍縮模式豫柬、Wasserstein距離、
1-Lipschitz函數(shù)
解答與分析
1. GANs的陷阱:請回答原GANs中存在哪些問題扑浸,成為了制約模型訓(xùn)練效果的瓶頸烧给。
難度:★★★
GANs的判別器試圖區(qū)分真實(shí)樣本和生成的模擬樣本。Goodfellow在論文中指出喝噪,訓(xùn)練判別器础嫡,實(shí)際是在度量生成器分布和真實(shí)數(shù)據(jù)分布的Jensen-Shannon Divergence,也稱JS距離酝惧; 訓(xùn)練生成器榴鼎,是在減小這個(gè)JS距離。這是我們想要的晚唇,即使我們不清楚形成真實(shí)數(shù)據(jù)的背后機(jī)制巫财,還是可以用一個(gè)模擬生成過程去替代之,只要它們的數(shù)據(jù)分布一致缺亮。
但是實(shí)驗(yàn)中發(fā)現(xiàn)翁涤,訓(xùn)練好生成器是一件很困難的事,生成器很不穩(wěn)定萌踱,常出現(xiàn)坍縮模式(Collapse Mode)葵礼。什么是坍縮模式?拿圖片舉例并鸵,反復(fù)生成一些相近或相同的圖片鸳粉,多樣化太差。生成器似乎將圖片記下园担,沒有更高級(jí)的泛化届谈,更沒有造新圖的能力枯夜,好比一個(gè)笨小孩被填鴨灌輸了知識(shí),只會(huì)死記硬背艰山,沒有真正理解湖雹,不會(huì)活學(xué)活用,更無創(chuàng)新能力曙搬。
為什么會(huì)這樣摔吏?既然訓(xùn)練生成器基于JS距離,猜測問題根源可能與JS距離有關(guān)纵装。高維空間中不是每點(diǎn)都能表達(dá)一個(gè)樣本(如一張圖片)征讲,空間大部分是多余的,真實(shí)數(shù)據(jù)蜷縮在低維子空間的流形(即高維曲面)上橡娄,因?yàn)榫S度低诗箍,所占空間體積幾乎為零,就像一張極其薄的紙飄在三維空間挽唉,不仔細(xì)看很難發(fā)現(xiàn)滤祖。考慮生成器分布與真實(shí)數(shù)據(jù)分布的JS距離橱夭,即兩個(gè)Kullback-Leibler (KL)距離的平均
初始的生成器氨距,由于參數(shù)隨機(jī)初始化桑逝,與其說是一個(gè)樣本生成器棘劣,不如說是高維空間點(diǎn)的生成器,點(diǎn)廣泛分布在高維空間中楞遏。打個(gè)比方茬暇,生成器將一張大網(wǎng)布滿整個(gè)空間,“兵力”有限寡喝,網(wǎng)布得越大糙俗,每個(gè)點(diǎn)附近的兵力就越少。想象一下预鬓,當(dāng)這張網(wǎng)穿過低維子空間時(shí)巧骚,所剩的“兵”幾乎為零,成了一個(gè)“盲區(qū)”格二,如果真實(shí)數(shù)據(jù)全都分布在這劈彪,就對(duì)生成器“隱身”了,成了“漏網(wǎng)之魚”顶猜。
回到公式沧奴,看第一個(gè)KL距離:
高維空間絕大部分見不到真實(shí)數(shù)據(jù),處處為零长窄,對(duì)KL距離的貢獻(xiàn)為零滔吠;即使在真實(shí)數(shù)據(jù)蜷縮的低維空間纲菌,高維空間會(huì)忽略低維空間的體積,概率上講測度為零疮绷。KL距離就成了:∫ ㏒2·pr(x)dμ(x)=㏒2翰舌。
再看第二個(gè)KL距離:
同理KL距離也為:∫ ㏒2·pg(x)dμ(x)=㏒2。因此冬骚,JS距離為㏒2灶芝,一個(gè)常量。無論生成器怎么“布網(wǎng)”唉韭,怎么訓(xùn)練夜涕,JS距離不變,對(duì)生成器的梯度為零属愤。訓(xùn)練神經(jīng)網(wǎng)絡(luò)是基于梯度下降的女器,用梯度一次次更新模型參數(shù),如果梯度總是零住诸,訓(xùn)練還怎么進(jìn)行驾胆。
2. 破解陷阱的武器:請回答WGAN針對(duì)前面問題做了哪些改進(jìn),以及什么是Wasserstein距離贱呐。
難度:★★★★
直覺告訴我們:不要讓生成器傻傻地在高維空間布網(wǎng)丧诺,讓它直接到低維空間“抓”真實(shí)數(shù)據(jù)。道理是這樣奄薇,但是高維空間中藏著無數(shù)的低維子空間驳阎,怎么找到目標(biāo)子空間呢?站在大廈頂層馁蒂,環(huán)眺四周呵晚,你可以迅速定位遠(yuǎn)處的山巒和高塔,卻很難知曉一個(gè)個(gè)樓宇間辦公室里的事情沫屡。你需要線索饵隙,而不是簡單撒網(wǎng)。處在高維空間沮脖,對(duì)抗隱秘的低維空間金矛,不能再用粗暴簡陋的方法,需要有特殊武器勺届,這就是Wasserstein距離驶俊,也稱推土機(jī)距離(Earth Mover distance):
怎么理解這個(gè)公式?想象你有一個(gè)很大的院子涮因,院子里幾處坑坑洼洼需要填平废睦,四個(gè)墻角都有一堆沙子, 沙子總量正好填平所有坑养泡。搬運(yùn)沙子很費(fèi)力嗜湃,你想知道有沒有一種方案奈应,使得花的力氣最少。直覺上购披,每個(gè)坑都選擇最近的沙堆杖挣,搬運(yùn)的距離最短,但是這里面有個(gè)問題刚陡,如果最近的沙堆用完了怎么辦惩妇,或者填完坑后近處還剩好多沙子,或者坑到幾個(gè)沙堆的距離一樣筐乳,我們需要設(shè)計(jì)一個(gè)系統(tǒng)的方案歌殃,通盤考慮這些問題。最佳方案是上面目標(biāo)函數(shù)的最優(yōu)解。可以看到河胎,沙子分布給定,坑分布給定波材,我們關(guān)心搬運(yùn)沙子的整體損耗,而不關(guān)心每粒沙子的具體擺放身隐,在損耗不變的情況下廷区,沙子擺放可能有很多選擇。對(duì)應(yīng)上面的公式贾铝,當(dāng)你選擇一對(duì)(x, y)時(shí)隙轻,表示把x處的一些沙子搬到y處的坑,可能搬部分沙子忌傻,也可能搬全部沙子大脉,可能只把坑填一部分搞监,也可能都填滿了水孩。
為什么Wasserstein距離能克服JS距離解決不了的問題?理論上的解釋很復(fù)雜琐驴,要證明當(dāng)生成器分布隨參數(shù)θ變化而連續(xù)變化時(shí)俘种,生成器分布與真實(shí)分布的Wasserstein距離,也隨θ變化而連續(xù)變化绝淡,并且?guī)缀跆幪幙蓪?dǎo)宙刘,而JS距離不保證隨θ變化而連續(xù)變化。
通俗的解釋牢酵,接著“布網(wǎng)”的比喻悬包,現(xiàn)在生成器不再“布網(wǎng)”,改成“定位追蹤”了馍乙,不管真實(shí)分布藏在哪個(gè)低維子空間里布近,生成器都能感知它在哪垫释,因?yàn)樯善髦灰獙⒆陨矸植忌宰髯兓蜁?huì)改變它到真實(shí)分布的推土機(jī)距離撑瞧,而JS距離是不敏感的棵譬,無論生成器怎么變化,JS距離都是一個(gè)常數(shù)预伺。因此订咸,使用推土機(jī)距離,能有效鎖定低維子空間中的真實(shí)數(shù)據(jù)分布酬诀。
3. WGAN之道:請回答怎樣具體應(yīng)用Wasserstein距離實(shí)現(xiàn)WGAN算法脏嚷。
難度:★★★★★
一群大小老鼠開會(huì),得出結(jié)論:如果在貓脖上系一鈴鐺瞒御,每次它靠近時(shí)都能被及時(shí)發(fā)現(xiàn)然眼,那多好!唯一的問題是:誰來系這個(gè)鈴鐺葵腹?現(xiàn)在高每,我們知道了推土機(jī)距離這款武器,那么怎么計(jì)算這個(gè)距離践宴?推土機(jī)距離的公式太難求解鲸匿。幸運(yùn)的是,它有一個(gè)孿生兄弟阻肩,和它有相同的值带欢,這就是Wasserstein距離的對(duì)偶式:
細(xì)心的你會(huì)發(fā)現(xiàn),這里的f與D不同烤惊,前者要滿足||f||L≤1乔煞,即1-Lipschitz函數(shù),后者是一個(gè)Sigmoid函數(shù)柒室。要求在尋找最優(yōu)函數(shù)時(shí)渡贾,一定要考慮個(gè)“界”,如果沒有限制雄右,函數(shù)值會(huì)無限大或無限小空骚。Sigmoid函數(shù)的值有天然的界,而1-Lipschitz不是限制函數(shù)值的界擂仍,而是限制函數(shù)導(dǎo)數(shù)的界囤屹,使得函數(shù)在每點(diǎn)上的變化率不能無限大。神經(jīng)網(wǎng)絡(luò)里如何體現(xiàn)1-Lipschitz或K-Lipschitz呢逢渔?WGAN的作者思路很巧妙肋坚,在一個(gè)前向神經(jīng)網(wǎng)絡(luò)里,輸入經(jīng)過多次線性變換和非線性激活函數(shù)得到輸出,輸出對(duì)輸入的梯度智厌,絕大部分都是由線性操作所乘的權(quán)重矩陣貢獻(xiàn)的粟判,因此約束每個(gè)權(quán)重矩陣的大小,可以約束網(wǎng)絡(luò)輸出對(duì)輸入的梯度大小峦剔。
判別器在這里換了一個(gè)名字档礁,叫評(píng)分器(Critic),目標(biāo)函數(shù)由區(qū)分樣本來源吝沫,變成為樣本打分呻澜,越像真實(shí)樣本分?jǐn)?shù)越高,否則越低惨险,有點(diǎn)類似SVM里margin的概念羹幸。打個(gè)龜兔賽跑的比方,評(píng)分器是兔子辫愉,生成器是烏龜栅受,評(píng)分器的目標(biāo)是甩掉烏龜,讓二者的距離(或margin)越來越大恭朗,生成器的目標(biāo)是追上兔子屏镊。嚴(yán)肅一點(diǎn)講,訓(xùn)練評(píng)分器就是計(jì)算生成器分布與真實(shí)分布的Wasserstein距離痰腮;給定評(píng)分器而芥,訓(xùn)練生成器就是在縮小這個(gè)距離。因此膀值,算法中要計(jì)算Wasserstein距離對(duì)生成器參數(shù)θ的梯度棍丐,
再通過梯度下降法更新參數(shù),讓W(xué)asserstein距離變小沧踏。
擴(kuò)展閱讀:
1. Martin Arjovsky, Soumith Chintala, Léon Bottou, Wasserstein GAN, 2017
2. Martin Arjovsky, Léon Bottou, Towards Principled Methods for Training Generative Adversarial Networks, 2017
30. 常見的采樣方法
場景描述
對(duì)于一個(gè)隨機(jī)變量歌逢,我們通常用概率密度函數(shù)來刻畫該變量的概率分布特性。具體來說翘狱,給定隨機(jī)變量的一個(gè)取值秘案,我們可以根據(jù)概率密度函數(shù)來計(jì)算該值對(duì)應(yīng)的概率(密度);反過來盒蟆,也可以根據(jù)概率密度函數(shù)提供的概率分布信息來生成隨機(jī)變量的一個(gè)取值踏烙,這就是采樣。因此历等,從某種意義上來說,采樣是概率密度函數(shù)的逆向應(yīng)用辟癌。與根據(jù)概率密度函數(shù)計(jì)算樣本點(diǎn)對(duì)應(yīng)的概率值不同寒屯,采樣過程(即根據(jù)概率分布來選取樣本點(diǎn))往往沒有那么直接,通常需要依據(jù)待采樣分布的具體特點(diǎn)來選擇合適的采樣策略 。 在“采樣”章節(jié)的前兩個(gè)小問題中寡夹,我們展示了采樣的一個(gè)具體應(yīng)用(不均衡樣本集的處理)处面,以及針對(duì)特定分布(高斯分布)而特別設(shè)計(jì)的采樣方法;接下來菩掏,我們來關(guān)注一些通用的采樣方法和采樣策略魂角。
問題描述
拋開那些針對(duì)特定分布而精心設(shè)計(jì)的采樣方法外,說一些你所知道的通用采樣方法或采樣策略智绸,簡單描述它們的主要思想以及具體操作步驟野揪。
背景知識(shí):概率與統(tǒng)計(jì)、采樣
解答與分析
在之前采樣章節(jié)的推送中我們提到瞧栗,幾乎所有的采樣方法都是以均勻分布的采樣作為基本操作斯稳。均勻分布隨機(jī)數(shù)一般用線性同余法來產(chǎn)生(偽隨機(jī)數(shù)),這里不再贅述迹恐,我們假設(shè)已經(jīng)可以生成 [0,1] 上的均勻分布隨機(jī)數(shù)挣惰。
對(duì)于一些簡單的分布,可以直接用基于均勻采樣的方法來產(chǎn)生樣本點(diǎn)(如有限離散分布可以用輪盤賭算法來采樣)殴边;然而憎茂,很多分布一般不好直接進(jìn)行采樣,此時(shí)可以考慮函數(shù)變換法锤岸。一般地唇辨,如果隨機(jī)變量x和u存在變換關(guān)系u=φ(x),則它們的概率密度函數(shù)有如下關(guān)系:p(u)|φ'(x)|=p(x)能耻。因此赏枚,如果從目標(biāo)分布p(x)中不好采樣x,可以構(gòu)造一個(gè)變換u=φ(x)晓猛,使得從變換后的分布p(u)中采樣u比較容易饿幅,這樣可以通過先對(duì)u進(jìn)行采樣然后通過反函數(shù)x=φ-1(u)來間接得到x。如果是高維空間的隨機(jī)向量戒职,則上述|φ'(x)|對(duì)應(yīng)Jacobian行列式栗恩。
特別地,在上述函數(shù)變換法中洪燥,如果變換關(guān)系φ(·)是累積分布函數(shù)的話磕秤,則得到所謂的逆變換采樣法**** (Inverse Transform Sampling):假設(shè)待采樣的目標(biāo)分布的概率密度函數(shù)為p(x),它的累積分布函數(shù)為
按如下過程進(jìn)行采樣:
根據(jù)函數(shù)變換法捧韵,上述采樣過程得到的xi服從p(x)分布市咆。圖1是逆變換采樣法的示意圖。
圖1 逆變換采樣法示意圖
如果待采樣的目標(biāo)分布的累積分布函數(shù)的逆函數(shù)無法求解或者不容易計(jì)算再来,則不適用于逆變換采樣法蒙兰。此時(shí)可以構(gòu)造一個(gè)容易采樣的參考分布磷瘤,先對(duì)參考分布進(jìn)行采樣,然后對(duì)得到的樣本進(jìn)行一定的后處理操作搜变,使得最終的樣本服從目標(biāo)分布采缚。常見的拒絕采樣、重要性采樣挠他,就屬于這類采樣算法扳抽,下面分別簡單介紹它們的具體采樣過程。
拒絕采樣 (Rejection sampling)殖侵,又叫接受/拒絕采樣 (Accept-Reject Sampling)贸呢。對(duì)于目標(biāo)分布p(x),選取一個(gè)容易采樣的參考分布q(x)愉耙,使得p(x)≤M·q(x)贮尉,則可以按如下過程進(jìn)行采樣:
通過簡單的推導(dǎo),可以知道最終得到的xi服從目標(biāo)分布p(x)朴沿。如圖2(A)所示猜谚,拒絕采樣法的關(guān)鍵是為目標(biāo)分布p(x)選取一個(gè)合適的包絡(luò)函數(shù)M·q(x):包絡(luò)函數(shù)越緊,每次采樣時(shí)樣本被接受的概率越大赌渣,采樣效率越高魏铅。在實(shí)際應(yīng)用中,有時(shí)候?qū)ふ医馕鲂问降?em>q(x)比較困難坚芜,因此延伸出了自適應(yīng)拒絕采樣 (Adaptive Rejection Sampling)览芳,在目標(biāo)分布是對(duì)數(shù)凹函數(shù)時(shí),用分段線性函數(shù)來覆蓋目標(biāo)分布的對(duì)數(shù)㏑p(x)鸿竖,如圖2(B)所示沧竟,這里不再細(xì)述。
圖2 (A) 拒絕采樣示意圖缚忧;(B) 自適應(yīng)拒絕采樣法
重要性采樣 (Importance Sampling)悟泵,其實(shí)是用于計(jì)算函數(shù)f(x)在目標(biāo)分布p(x)上的積分,即
這里w(x)可以看成是樣本x的重要性權(quán)重闪水。由此糕非,可以先從參考q(x)分布中抽取N個(gè)樣本{xi},然后利用如下公式來估計(jì)I[f]:
如果不需要計(jì)算函數(shù)積分球榆,只想對(duì)目標(biāo)分布p(x)進(jìn)行采樣朽肥,則可以用重要性重采樣 (Sampling-Importance Re-sampling, SIR),即在從參考分布q(x)抽取N個(gè)樣本{xi}后持钉,按照它們對(duì)應(yīng)的重要性權(quán)重{w(xi)}對(duì)這些樣本進(jìn)行重新采樣(這是一個(gè)簡單的針對(duì)有限離散分布的采樣)衡招,最終得到的樣本服從目標(biāo)分布p(x)。
圖3 重要性采樣示意圖
在實(shí)際應(yīng)用中右钾,如果是高維空間的隨機(jī)向量蚁吝,拒絕采樣/重要性重采樣經(jīng)常難以尋找合適的參考分布旱爆,采樣效率低下(樣本的接受概率小或重要性權(quán)重低)舀射,此時(shí)可以考慮馬爾科夫蒙特卡洛采樣法 (Markov Chain Monte Carlo, MCMC) 窘茁。MCMC基本思想是:針對(duì)待采樣的目標(biāo)分布,構(gòu)造一個(gè)馬爾科夫鏈脆烟,使得該馬爾科夫鏈?zhǔn)鞘諗康纳搅郑⑶易罱K的穩(wěn)態(tài)分布就是我們要采樣的目標(biāo)分布。實(shí)際操作中邢羔,核心點(diǎn)是構(gòu)造合適的馬爾科夫鏈驼抹,不同的馬爾科夫鏈對(duì)應(yīng)著不同的MCMC算法,常見的有Metropolis-Hastings算法和Gibbs算法拜鹤。在后續(xù)的微信推送中框冀,我們會(huì)有專門針對(duì)MCMC的問答小節(jié),這里只簡單介紹Metropolis-Hastings算法和Gibbs算法的具體操作步驟敏簿。
Metropolis-Hastings (MH) 采樣:對(duì)于目標(biāo)分布p(x)明也,首先選擇一個(gè)容易采樣的參考條件分布q(x|x*),并令
然后根據(jù)如下過程進(jìn)行采樣:
可以證明惯裕,上述過程得到的樣本序列{…, x(t-1), x(t), …}最終會(huì)收斂到目標(biāo)分布p(x)温数。
Gibbs采樣:Gibbs采樣的核心思想是每次只對(duì)樣本的一個(gè)維度進(jìn)行采樣和更新。對(duì)于目標(biāo)分布p(x)蜻势,其中x=(x1,* x*2,…, xd)是高維向量撑刺,按如下過程進(jìn)行采樣:
同樣可以證明,上述過程得到的樣本序列{…, x(t-1), x(t), …}會(huì)收斂到目標(biāo)分布p(x)握玛。另外够傍,步驟2中對(duì)樣本每個(gè)維度的抽樣和更新操作,不是必須按下標(biāo)順序進(jìn)行的挠铲,可以是隨機(jī)順序 冕屯。
擴(kuò)展與總結(jié)
上述解答中我們只是列舉了幾個(gè)最常用的采樣算法,簡單介紹了它們的具體操作市殷。在實(shí)際面試時(shí)愕撰,可以讓面試者選擇其最熟悉的某個(gè)采樣算法來回答,展開來問一下該算法的理論證明醋寝、優(yōu)缺點(diǎn)搞挣,以及相關(guān)擴(kuò)展等。