日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

三味Capsule:矩阵Capsule与EM路由

發(fā)布時間:2024/10/8 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 三味Capsule:矩阵Capsule与EM路由 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

作者丨蘇劍林

單位丨廣州火焰信息科技有限公司

研究方向丨NLP,神經(jīng)網(wǎng)絡(luò)

個人主頁丨kexue.fm


事實(shí)上,在論文《Dynamic Routing Between Capsules》發(fā)布不久后,一篇新的 Capsule 論文《Matrix Capsules with EM Routing》就已經(jīng)匿名公開了(在 ICLR2018 的匿名評審中),而如今作者已經(jīng)公開,他們是 Geoffrey Hinton,Sara Sabour 和 Nicholas Frosst。


不出大家意料,作者果然有 Hinton。大家都知道,像 Hinton 這些“鼻祖級”的人物,一般發(fā)表出來的結(jié)果都是比較“重磅”的。那么,這篇新論文有什么特色呢??


在筆者的思考過程中,文章《Understanding Matrix capsules with EM Routing 》[1] 給了我頗多啟示,以及知乎上各位大神的相關(guān)討論也加速了我的閱讀過程,在此表示感謝。


快速預(yù)覽


讓我們先來回憶一下上一篇介紹再來一頓賀歲宴 | 從K-Means到Capsule中的那個圖:


?圖1:Capsule框架的簡明示意圖


上圖表明,Capsule 事實(shí)上描述了一個建模的框架,這個框架中的東西很多都是可以自定義的,最明顯的是聚類算法,可以說“有多少種聚類算法就有多少種動態(tài)路由”。


那么這次 Hinton 修改了什么呢?總的來說,這篇新論文有以下幾點(diǎn)新東西:


  • 原來用向量來表示一個 Capsule,現(xiàn)在用矩陣來表示

  • 聚類算法換成了 GMM(高斯混合模型)

  • 在實(shí)驗(yàn)部分,實(shí)現(xiàn)了 Capsule 版的卷積

一波疑問


事實(shí)上,看到筆者提出的這三點(diǎn)新東西,讀者應(yīng)該就會有很多想法和疑問了,比如:


向量 vs 矩陣


矩陣和向量有什么區(qū)別呢?矩陣不也可以展平為向量嗎??


其實(shí)是有點(diǎn)區(qū)別的。比如一個 4×4 的矩陣,跟一個 16 維的向量,有什么差別呢?答案是矩陣的不同位置的元素重要性不一樣,而向量的每個元素的重要性都是一樣的。


熟悉線性代數(shù)的讀者應(yīng)該也可以感覺到,一個矩陣的對角線元素的地位“看起來”是比其他元素要重要一些的。


從計(jì)算的角度看,也能發(fā)現(xiàn)區(qū)別:要將一個 16 維的向量變換為另外一個 16 維的向量,我們需要一個 16×16 的變換矩陣;但如果將一個 4×4 的矩陣變換為另外一個 4×4 的矩陣,那么只需要一個 4×4 的變換矩陣,參數(shù)量減少了。


從這個角度看,也許將 Capsule 從向量變?yōu)榫仃嚨母灸康氖墙档陀?jì)算量。?


立方陣


以后的 Capsule 可能是“立方陣”甚至更高階張量嗎??


不大可能。因?yàn)楦唠A張量的乘法本質(zhì)上也是二階矩陣的乘法。?


GMM vs K-Means?


GMM 聚類與你之前說的 K-Means 聚類差別大嗎??


這個得從兩個角度看。一方面,GMM 可以看成是 K-Means 的升級版,而且它本身就是可導(dǎo)的,不需要之前的“軟化”技巧,如果在 K-Means 中使用歐氏距離的話,那么 K-Means 就是 GMM 的一個極限版本。


但另一方面,K-Means 允許我們更靈活地使用其他相似的度量,而 GMM 中相當(dāng)于只能用(加權(quán)的)歐氏距離,也就是把度量“寫死”了,也是個缺點(diǎn)。總的來說,兩者半斤八兩吧。


Capsule 版的卷積


Capsule 版的卷積是怎么回事??


我們所說的動態(tài)路由,事實(shí)上就只相當(dāng)于深度學(xué)習(xí)中的全連接層,而深度學(xué)習(xí)中的卷積層則是局部的全連接層。那么很顯然,只需要弄個“局部動態(tài)路由”,那么就得到了 Capsule 版的卷積了。


這個東西事實(shí)上在 Hinton 上一篇論文就應(yīng)該出現(xiàn),因?yàn)樗唧w的路由算法并沒有關(guān)系,但不知為何,Hinton 在這篇新論文才實(shí)現(xiàn)了它。?


GMM 模型簡介


既然這篇新論文用到了 GMM 來聚類,那么只要花點(diǎn)功夫來學(xué)習(xí)一下 GMM 了。理解 GMM 算法是一件非常有意思的事情,哪怕不是因?yàn)?Capsule——因?yàn)?GMM 模型能夠大大加深我們對概率模型和機(jī)器學(xué)習(xí)理論(尤其是無監(jiān)督學(xué)習(xí)理論)的理解。


當(dāng)然,只想理解 Capsule 核心思想的讀者,可以有選擇地跳過比較理論化的部分。


本質(zhì)


事實(shí)上,在我們腦海里最好不要將 GMM 視為一個聚類算法,而將它看作一個真正的無監(jiān)督學(xué)習(xí)算法,它試圖學(xué)習(xí)數(shù)據(jù)的分布。數(shù)據(jù)本身是個體,而分布則是一個整體,從研究數(shù)據(jù)本身到研究數(shù)據(jù)分布,是質(zhì)的改變。?


GMM,全稱 Gaussian Mixed Model,即高斯混合模型;當(dāng)然學(xué)界還有另一個 GMM——Generalized Method of Moments ,是用來估計(jì)參數(shù)的廣義矩估計(jì)方法,但這里討論的是前者。


具體來說,對于已有的向量 x1,…,xn,GMM希望找到它們所滿足的分布 p(x)。當(dāng)然,不能漫無目的地找,得整一個比較簡單的形式出來。GMM 設(shè)想這批數(shù)據(jù)能分為幾部分(類別),每部分單獨(dú)研究,也就是:



其中 j 代表了類別,取值為 1,2,…,k,由于 p(j) 跟 x 沒關(guān)系,因此可以認(rèn)為它是個常數(shù)分布,記 p(j)=πj。然后 p(x|j) 就是這個類內(nèi)的概率分布,GMM 的特性就是用概率分布來描述一個類


那么它取什么好呢?我們?nèi)∽詈唵蔚恼龖B(tài)分布,注意這里 x 是個向量,因此我們要考慮多元的正態(tài)分布,一般形式為:



其中 d 是向量 x 的分量個數(shù)。現(xiàn)在我們得到模型的基本形式:



求解


現(xiàn)在模型有了,但是未知的參數(shù)有 πj,μj,Σj,怎么確定它們呢?


理想的方法是最大似然估計(jì),然而它并沒有解析解,因而需要轉(zhuǎn)化為一個 EM 過程,但即使這樣,求解過程也比較難理解(涉及到行列式的求導(dǎo))。


這里給出一個比較簡單明了的推導(dǎo),它基于這樣的一個事實(shí)——對于正態(tài)分布來說,最大似然估計(jì)跟前兩階矩的矩估計(jì)結(jié)果是一樣的。


說白了,μj,Σj 不就是正態(tài)分布的均值(向量)和(協(xié))方差(矩陣)嘛,我直接根據(jù)樣本算出對應(yīng)的均值和方差不就行了嗎?


沒那么簡單,因?yàn)槲覀兯僭O(shè)的是一個正態(tài)分布的混合模型,如果直接算它們,得到的也只是混合的均值和方差,沒法得到每一類的正態(tài)分布 p(x|j) 的均值和方差。


不過我們可以用貝葉斯公式轉(zhuǎn)化一下,首先我們有:



比如對于均值向量,我們有:



這里 E[] 的意思是對所有樣本求均值,那么我們就可以得到:



其中 p(j|x) 的表達(dá)式在 (4) 已經(jīng)給出。類似地,對于協(xié)方差矩陣,我們有:



然后:



所以:



理論上,我們需要求解 (6),(7),(9) 構(gòu)成的一個巨大的方程組,但這樣是難以操作的,因此我們可以迭代求解,得到迭代算法:



其中為了突出加權(quán)平均的特點(diǎn),上述迭代過程先將 (9) 式作了恒等變換然后代入 (6),(7) 式。在上述迭代過程中,第一式稱為 E 步,后三式稱為 M 步,整個算法就叫做 EM 算法。


下面放一張網(wǎng)上搜索而來的動圖來展示 GMM 的迭代過程,可以看到 GMM 的好處是能識別出一般的二次曲面形狀的類簇,而 K-Means 只能識別出球狀的。


?圖2:GMM 迭代過程展示


約簡


在 Capsule 中實(shí)際上使用了一種更加簡單的 GMM 形式,在前面的討論中,我們使用了一般的正態(tài)分布,也就是 (2) 式,但這樣要算逆矩陣和矩陣的行列式,計(jì)算量頗大。


一個較為簡單的模型是假設(shè)協(xié)方差矩陣是一個對角陣 Σj=diagσj,σj 是類別 j 的方差向量,其中表示該向量的第 l 個分量。這樣相當(dāng)于將 x 的各個分量解耦了,認(rèn)為各個分量是獨(dú)立的,(2) 式就變?yōu)?#xff1a;



而迭代過程也有所簡化:



更簡單些


如果所有的都取同一個常數(shù) σ 呢?這就得到:



這樣整個分布就更為簡單了,有意思的是,在指數(shù)的括號內(nèi)出現(xiàn)了歐氏距離。


更極端地,我們讓 σ→0 呢?這時指數(shù)內(nèi)的括號為無窮大,對于每個 xi,只有的那個 N(xi;μj,σ) 占主導(dǎo)作用,這時候根據(jù) (4) 式,p(j|xi) 非零即 1(即使得最小的那個 j 的?p(j|xi)?為 1,其余為 0)。


這表明任意一個點(diǎn)只屬于距離它最近的那個聚類中心,這就跟使用歐氏距離的 K-Means 一致了,所以說,基于歐氏距離的 K-Means 可以看作是 GMM 的一個極限。


新版路由


言歸正傳,還是說回 Capsule。我們說《Matrix Capsules with EM Routing》中用 GMM 算法完成了聚類過程,現(xiàn)在就來詳細(xì)看看是怎么做的。


矩陣->向量


不得不說,新論文里邊的符號用得一塌糊涂,也許能夠在一堆混亂的符號中看到真理才是真正的大牛吧。這里結(jié)合網(wǎng)上的一些科普資料以及作者自己的閱讀,給出一些理解。?


首先,我們用一個矩陣 Pi 來表示第 l 層的 Capsule,這一層共有 n 個 Capsule,也就是 i=1,…,n;用矩陣 Mj 來表示第 l+1 層的 Capsule,這一層共有 k 個 Capsule,也就是聚為 k 類,j=1,…,k。


論文中 Capsule 的矩陣是 4×4 的,稱之為 Pose 矩陣。然后呢,就可以開始 GMM 的過程了,在做 GMM 的時候,又把矩陣當(dāng)成向量了,所以在 EM 路由那里,Pi 就是向量,即 d=16 。整個過程用的是簡化版的 GMM,也就是把協(xié)方差矩陣約定為一個對角陣。?


所以根據(jù)前面的討論,可以得到新的動態(tài)路由算法:



這里記了 pij=N(xi;μj,σj),Rij=p(j|xi),符號盡量跟原論文一致,方便大家對比原論文。這里的動態(tài)路由的思想跟《Dynamic Routing Between Capsules》的是一致的,都是將 l+1 層的 Capsule 作為 l 層 Capsule 的聚類中心,只是聚類的方法不一樣而已。


激活值


《Dynamic Routing Between Capsules》一文中,是通過向量的模長來表示該特征的顯著程度,那么在這里還可以這樣做嗎?


答案是否定的。因?yàn)槲覀兪褂昧?GMM 進(jìn)行聚類,GMM 是基于加權(quán)的歐氏距離(本質(zhì)上還是歐氏距離),用歐氏距離進(jìn)行聚類的一個特點(diǎn)就是聚類中心向量是類內(nèi)向量的(加權(quán))平均(從上面MjMj的迭代公式就可以看出)。


既然是平均,就不能體現(xiàn)“小弟越多,勢力越大”的特點(diǎn),這我們在再來一頓賀歲宴 | 從K-Means到Capsule中就已經(jīng)討論過了。?


既然 Capsule 的模長已經(jīng)沒法衡量特征的顯著性了,那么就只好多加一個標(biāo)量 a 來作為該 Capsule 的顯著性。所以,這篇論文中的 Capsule,實(shí)際上是“一個矩陣 + 一個標(biāo)量”,這個標(biāo)量被論文稱為“激活值”,如圖:


?圖3:這個版本的Capsule是“矩陣+標(biāo)量”


作為 Capsule 的顯著程度,aj 最直接的選擇應(yīng)該就是 πj,因?yàn)?l+1 層的 Capsule 就是聚類中心而 πj 就代表著這個類的概率。


然而,我們卻不能選擇 πj,原因有兩個:


1. πj 是歸一化的,而我們希望得到的只不過是特征本身的顯著程度,而不是跟其他特征相比后的相對顯著程度(更通俗點(diǎn),我們希望做多個二分類,而不是一個多分類,所以不需要整體歸一化)。


2. πj 確實(shí)能反映該類內(nèi)“小弟”的多少,但人多不一定力量大,還要團(tuán)結(jié)才行。那么這個激活值應(yīng)該怎么取呢?論文給出的公式是:



我相信很多讀者看到這個公式和論文中的“推導(dǎo)”后,還是不知所云。事實(shí)上,這個公式有一個非常漂亮的來源——信息熵。


現(xiàn)在我們用 GMM 來聚類,結(jié)果就是得到一個概率分布 p(X|j) 來描述一個類,那么這個類的“不確定性程度”,也就可以衡量這個類的“團(tuán)結(jié)程度”了。


說更直白一點(diǎn),“不確定性”越大(意味著越接近均勻分布),說明這個類可能還處于動蕩的、各自為政的年代,此時激活值應(yīng)該越小;“不確定性”越小(意味著分布越集中),說明這個類已經(jīng)團(tuán)結(jié)一致步入現(xiàn)代化,此時激活值應(yīng)該越大。


因此可以用不確定性來描述這個激活值,而我們知道,不確定性是用信息熵來度量的,所以我們寫出:



這就是論文中的那個,所以論文中的 cost 就是熵,多直觀清晰的含義。而且熵越小越好,這也是多自然的邏輯。


為什么不直接積分算出正態(tài)分布的熵,而是要這樣迂回地算?因?yàn)橹苯臃e分算出來是理論結(jié)果,我們這里要根據(jù)這批數(shù)據(jù)本身算出一個關(guān)于這批數(shù)據(jù)的結(jié)果。


經(jīng)過化簡,結(jié)果是(原論文計(jì)算結(jié)果應(yīng)該有誤):



因?yàn)殪卦叫≡斤@著,所以我們用 ?Sj 來衡量特征的顯著程度,但又想將它壓縮為 0~1 之間。那么可以對它做一些簡單的尺度變換后用 sigmoid 函數(shù)激活:



(15) 式和 (13) 式基本是等價(jià)的,上式相當(dāng)于 ?Sj 和 πj 的加權(quán)求和,也就是綜合考慮了 ?Sj(團(tuán)結(jié))和 πj(人多)。


其中 βa,βu?通過反向傳播優(yōu)化,而 λ 則隨著訓(xùn)練過程慢慢增大(退火策略,這是論文的選擇,我認(rèn)為是不必要的)。


βaβu?可能跟 j 有關(guān),也就是可以為每個上層膠囊都分配一組訓(xùn)練參數(shù)?βaβu。說“可能”是因?yàn)檎撐母揪蜎]說清楚,或許讀者可以按照自己的實(shí)驗(yàn)和需求調(diào)整。


有了 aj 的公式后,因?yàn)槲覀兦懊嬉舱f aj 和 πj 有一定共同之處,它們都是類的某種權(quán)重,于是為了使得整個路由流程更緊湊,Hinton 干脆直接用 aj 替換掉 πj,這樣替換雖然不能完全對應(yīng)上原始的 GMM 的迭代過程,但也能收斂到類似的結(jié)果。


于是現(xiàn)在得到更正后的動態(tài)路由:



這應(yīng)該就是最終的新的動態(tài)路由算法了,如果我沒理解錯的話,因?yàn)樵撐膶?shí)在太難看懂。


權(quán)重矩陣


最后,跟前一篇文章一樣,給每對指標(biāo) (i,j) 配上一個權(quán)重矩陣 Wij(稱為視覺不變矩陣),得到“投票矩陣”Vij=PiWij,然后再進(jìn)行動態(tài)路由,得到最后的動態(tài)路由算法:



結(jié)語


評價(jià)


經(jīng)過這樣一番理解,應(yīng)該可以感覺到這個新版的 Capsule 及其路由算法并不復(fù)雜。


新論文的要點(diǎn)是使用了 GMM 來完成聚類過程,GMM 是一個基于概率模型的聚類算法


緊抓住“概率模型”這一特性,尋找概率相關(guān)的量,就不難理解 aj 表達(dá)式的來源,這應(yīng)該是理解整篇論文最困難的一點(diǎn);而用矩陣代替向量,應(yīng)該只是一種降低計(jì)算量和參數(shù)量的方案,并無本質(zhì)變化。?


只不過新論文傳承了舊論文的晦澀難懂的表達(dá)方式,加上混亂的符號使用,使得我們的理解難度大大增加,再次詬病作者們的文筆。?


感想?


到現(xiàn)在,終于算是把《Matrix Capsules with EM Routing》梳理清楚了,至于代碼就不寫了,因?yàn)槭聦?shí)上我個人并不是特別喜歡這個新的 Capsule 和動態(tài)路由,不想再造輪子了。?


這是我的關(guān)于 Capsule 理解的第三篇文章。相對于筆者的其他文章而言,這三篇文章的篇幅算得上是“巨大”,它們承載了我對 Capsule 的思考和理解。每一篇文章的撰寫都要花上好幾天的時候,試圖盡可能理論和通俗文字相結(jié)合,盡可能把前因后果都梳理清楚。


希望這些文字能幫助讀者更快速地理解 Capsule。當(dāng)然,作者水平有限,如果有什么誤導(dǎo)之處,歡迎留言批評。?


當(dāng)然,更希望 Capsule 的作者們能用更直觀、更具啟發(fā)性的語言來介紹他們的新理論,這就省下了我們這些科普者的不少功夫了。


畢竟 Capsule 有可能真的是深度學(xué)習(xí)的未來,怎可如此模糊呢?

相關(guān)鏈接


[1]?Understanding Matrix capsules with EM Routing

https://jhui.github.io/2017/11/14/Matrix-Capsules-with-EM-routing-Capsule-Network/



點(diǎn)擊以下標(biāo)題查看相關(guān)內(nèi)容:?


  • 揭開迷霧,來一頓美味的「Capsule」盛宴

  • 再來一頓賀歲宴 | 從K-Means到Capsule




#榜 單 公 布?#


2017年度最值得讀的AI論文 | NLP篇 · 評選結(jié)果公布

2017年度最值得讀的AI論文 | CV篇 · 評選結(jié)果公布


? ? ? ? ??

?我是彩蛋

?解鎖新功能:熱門職位推薦!


PaperWeekly小程序升級啦


今日arXiv√猜你喜歡√熱門職位


找全職找實(shí)習(xí)都不是問題

?

?解鎖方式?

1. 識別下方二維碼打開小程序

2. 用PaperWeekly社區(qū)賬號進(jìn)行登陸

3. 登陸后即可解鎖所有功能


?職位發(fā)布?

請?zhí)砑有≈治⑿?#xff08;pwbot01)進(jìn)行咨詢

?

長按識別二維碼,使用小程序

*點(diǎn)擊閱讀原文即可注冊





關(guān)于PaperWeekly


PaperWeekly 是一個推薦、解讀、討論、報(bào)道人工智能前沿論文成果的學(xué)術(shù)平臺。如果你研究或從事 AI 領(lǐng)域,歡迎在公眾號后臺點(diǎn)擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。


▽ 點(diǎn)擊 |?閱讀原文?| 進(jìn)入作者博客

總結(jié)

以上是生活随笔為你收集整理的三味Capsule:矩阵Capsule与EM路由的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。