摘要:本文從可視化的角度出發(fā)詳解釋了的原理的計(jì)算過程,非常有利于直觀理解它的結(jié)構(gòu)。具體來說,是那些水平方向的邊緣。訓(xùn)練過程可以自動完成這一工作。更進(jìn)一步地說,這意味著每個(gè)膠囊含有一個(gè)擁有個(gè)值的數(shù)組,而一般我們稱之為向量。
CapsNet 將神經(jīng)元的標(biāo)量輸出轉(zhuǎn)換為向量輸出提高了表征能力,我們不僅能用它表示圖像是否有某個(gè)特征,同時(shí)還能表示這個(gè)特征的旋轉(zhuǎn)和位置等物理特征。本文從可視化的角度出發(fā)詳解釋了 CapsNet 的原理的計(jì)算過程,非常有利于直觀理解它的結(jié)構(gòu)。
盡管卷積神經(jīng)網(wǎng)絡(luò)已經(jīng)做出了令人驚艷的成績,但還是存在著一些根本性問題。是時(shí)候開始思考新的解決方案和改進(jìn)了。現(xiàn)在就讓我們一起來了解一下膠囊網(wǎng)絡(luò)(capsules networks)。
在之前的文章中我曾簡要地討論過膠囊網(wǎng)絡(luò)(https://hackernoon.com/capsule-networks-are-shaking-up-ai-heres-how-to-use-them-c233a0971952)是如何解決一些傳統(tǒng)問題的。在過去的幾個(gè)月里,我一直沉浸在各種各樣的膠囊網(wǎng)絡(luò)里。我覺得現(xiàn)在是時(shí)候一起更加深入地探索膠囊網(wǎng)絡(luò)的實(shí)際運(yùn)作方式了。
為了讓后面的討論更加容易,我開發(fā)了一款與膠囊網(wǎng)絡(luò)實(shí)現(xiàn)配套的可視化工具,它能夠讓您看到網(wǎng)絡(luò)的每一層是如何工作的。這些內(nèi)容都可以在 GitHub 上找到(https://github.com/bourdakos1/CapsNet-Visualization)。
如下所示是 CapsNet 的結(jié)構(gòu)。如果您現(xiàn)在還不理解每個(gè)部分的具體含義,不必?fù)?dān)心。我會盡我所能一層一層地進(jìn)行詳細(xì)討論。
part 0: 網(wǎng)絡(luò)輸入
膠囊網(wǎng)絡(luò)(CapsNet)的輸入是提供給神經(jīng)網(wǎng)絡(luò)的真實(shí)圖片。在這個(gè)例子中輸入的圖片長寬都為 28 個(gè)像素。一張圖片實(shí)際上有 3 個(gè)維度用來存儲不同顏色通道的信息。
因?yàn)槭腔叶葓D,而用作示例的圖片僅僅有一個(gè)顏色通道。大家所熟悉的大多數(shù)圖片都有 3 或 4 個(gè)通道用來存儲紅-綠-藍(lán)和可能用于存儲灰度或透明度的額外通道。
每個(gè)像素都被表示為 0 到 255 之間的一個(gè)數(shù)字并且被存儲在一個(gè) 28x28x1 的矩陣 [28, 28, 1] 里。每一個(gè)像素的顏色越明亮,其數(shù)值越大。
Part 1a: 卷積
膠囊網(wǎng)絡(luò)的第一個(gè)部分是傳統(tǒng)的卷積網(wǎng)絡(luò)。那么什么是卷積網(wǎng)絡(luò),它是怎么工作,而又有什么作用呢?
我們的目標(biāo)是要從輸入圖像中提取一些非常基礎(chǔ)的特征,比如邊緣或者曲線。那么我們是怎么做到的呢?讓我們來思考一個(gè)邊緣情況:
如果我們看到這個(gè)圖片上的一些點(diǎn),我們就能夠從中發(fā)現(xiàn)出一種模式。而現(xiàn)在我們關(guān)注于這些點(diǎn)左右兩側(cè)的顏色:
你也許會注意到當(dāng)這個(gè)點(diǎn)在邊緣時(shí),其兩側(cè)顏色之間的差別會很大。
255 - 114 = 141
114 - 153 = -39
153 - 153 = 0
255 - 255 = 0
如果我們縱覽圖片中的每一個(gè)像素并且用它和左右點(diǎn)之間的差異值來替換掉原始的值會發(fā)生什么?理論上這個(gè)圖片除邊緣外的部分會全部變成黑色。
我們可以通過循環(huán)來遍歷圖片中每一個(gè)像素并進(jìn)行上述處理:
for pixel in image {
? result[pixel] = image[pixel - 1] - image[pixel + 1]
}
但是這是比較低效的。而實(shí)際上,我們可以使用卷積操作。更技術(shù)地來講,這其實(shí)是「互相關(guān)」,但大家更喜歡稱之為卷積。
本質(zhì)上卷積操作和上述循環(huán)的效果幾乎是一樣的,但它可以充分利用矩陣運(yùn)算的優(yōu)勢來提高效率。
卷積操作一開始會在圖像的一角設(shè)置一個(gè)小的窗口,然后移動它遍歷整幅圖像。在每一個(gè)位置我們都僅僅關(guān)注窗口所覆蓋的像素并且將其中全部的像素值與對應(yīng)的權(quán)重相乘并求和。而這個(gè)窗口實(shí)質(zhì)上是一個(gè)被稱為「卷積核」的權(quán)重矩陣。
我們僅僅關(guān)注 2 個(gè)像素,但是當(dāng)我們把它周圍的窗口打包起來的時(shí)候,就可以讓他們之間的像素變成膠囊。
Window:
┌─────────────────────────────────────┐
│ left_pixel middle_pixel right_pixel │
└─────────────────────────────────────┘
你能夠找到一組權(quán)重與這些像素相乘并求和得到我們想要的值嗎?
Window:
┌─────────────────────────────────────┐
│ left_pixel middle_pixel right_pixel │
└─────────────────────────────────────┘
(w1 * 255) + (w2 * 255) + (w3 * 114) = 141
Spoilers below!
│ ? ? ? ? ? ?│ ? ? ? ? ? ?│
?│ ? ? ? ? ? ?│ ? ? ? ? ? ?│
?│ ? ? ? ? ? ?│ ? ? ? ? ? ?│
?│ ? ? ? ? ? ?│ ? ? ? ? ? ?│
?│ ? ? ? ? ? ?│ ? ? ? ? ? ?│
│/ ? ? ? ? ?│/ ? ? ? ? ?│/
?V ? ? ? ? ? ?V ? ? ? ? ? ?V
我們可以進(jìn)行這樣的操作:
Window:
┌─────────────────────────────────────┐
│ left_pixel middle_pixel right_pixel │
└─────────────────────────────────────┘
(1 * 255) + (0 * 255) + (-1 * 114) = 141
有了這些權(quán)重,我們可以得到卷積核:
kernel = [1 0 -1]
當(dāng)然,卷積核通常來說是方陣,所以我們可以用 0 來填充其他位置:
kernel = [
? [0 ?0 ?0]
? [1 ?0 -1]
? [0 ?0 ?0]
]
這里有一個(gè)很棒的動態(tài)圖來描述卷積的運(yùn)算過程:
在步幅為 1 的情況下,輸出的維度為輸入的維度減去卷積核的維度再加 1,比如 (7—3) + 1 = 5(更多相關(guān)內(nèi)容請看下一小節(jié))。
經(jīng)過卷積變換后的圖片如下所示:
你也許會注意到在變換后的圖片中一些邊緣丟失了。具體來說,是那些水平方向的邊緣。為了突出這些信息,我們需要另外一個(gè)卷積核來處理像素上方和下方的信息。比如:
kernel = [
? [0 ?1 ?0]
? [0 ?0 ?0]
? [0 -1 ?0]
]
此外,這兩個(gè)卷積核在處理其他的角度或者模糊的邊界時(shí)都無法獲得很好的效果。因此我們要使用多個(gè)卷積核(在我們的膠囊網(wǎng)絡(luò)實(shí)現(xiàn)中,我們使用了 256 個(gè)卷積核)并且卷積核一般有更大的尺寸以增加處理的空間(我們使用 9x9 的的卷積核)。
其中一個(gè)經(jīng)過訓(xùn)練后的卷積核如下所示。雖然不是很明顯,但我們還是可以看出它是一個(gè)更加魯棒的放大版邊緣探測器。它僅僅用來找到那些從亮變暗的邊緣。
kernel = [
? [ 0.02 -0.01 ?0.01 -0.05 -0.08 -0.14 -0.16 -0.22 -0.02]
? [ 0.01 ?0.02 ?0.03 ?0.02 ?0.00 -0.06 -0.14 -0.28 ?0.03]
? [ 0.03 ?0.01 ?0.02 ?0.01 ?0.03 ?0.01 -0.11 -0.22 -0.08]
? [ 0.03 -0.01 -0.02 ?0.01 ?0.04 ?0.07 -0.11 -0.24 -0.05]
? [-0.01 -0.02 -0.02 ?0.01 ?0.06 ?0.12 -0.13 -0.31 ?0.04]
? [-0.05 -0.02 ?0.00 ?0.05 ?0.08 ?0.14 -0.17 -0.29 ?0.08]
? [-0.06 ?0.02 ?0.00 ?0.07 ?0.07 ?0.04 -0.18 -0.10 ?0.05]
? [-0.06 ?0.01 ?0.04 ?0.05 ?0.03 -0.01 -0.10 -0.07 ?0.00]
? [-0.04 ?0.00 ?0.04 ?0.05 ?0.02 -0.04 -0.02 -0.05 ?0.04]
]
注意:我對所有的值都進(jìn)行了取整,因?yàn)樗麄兲L了,比如:0.01783941。
幸運(yùn)的是,我們不需要手動地設(shè)計(jì)這些卷積核。訓(xùn)練過程可以自動完成這一工作。所有的卷積核一開始都是空的(或者隨機(jī)初始化),而在訓(xùn)練過程中他們被不斷調(diào)整使得最終的輸出和我們的目標(biāo)更接近。
如下所示是經(jīng)過訓(xùn)練后最終得到的 256 個(gè)卷積核(為了方便理解我給他們上了色)。我們用藍(lán)色來表示負(fù)數(shù), 用 0 來表示綠色,用黃色來表示正數(shù). 并且顏色越強(qiáng),其值越大。
用所有的卷積核處理完圖片后,我們可以得到一個(gè)含有 256 張輸出圖片的棧。
Part 1b: 線性整流函數(shù)
ReLU(線性整流函數(shù))也許聽起來很復(fù)雜,但實(shí)際上非常簡單。作為一個(gè)激活函數(shù),它對輸入的值進(jìn)行處理然后輸出。如果輸入的值是負(fù)數(shù),那么輸出為 0,如果輸入的值是正數(shù),那么輸出和輸入完全一致。
代碼如下:
x = max(0, x)
如圖所示:
我們用這個(gè)函數(shù)對所有卷積輸出進(jìn)行處理。
為什么我們要這么做?因?yàn)槿绻覀儾皇褂眉せ詈瘮?shù)對神經(jīng)元層的輸出進(jìn)行處理,那么整個(gè)網(wǎng)絡(luò)就可以被描述為一個(gè)線性的函數(shù),這樣一來我們所有的努力就都失去意義了。
添加一個(gè)非線性的部分使得我們可以描述所有種類的函數(shù)。我們可以使用很多不同種類的函數(shù)來作為激活函數(shù),只是 ReLU 是最流行的一種,因?yàn)樗褂闷饋碜罘奖恪?/p>
第一個(gè)使用了 ReLU 的卷積層輸出如下所示:
Part 2a: 初級膠囊層(PrimaryCaps)
一開始我們使用一個(gè)普通的卷積層作為初級膠囊層。但這次我們要對前面輸出的 256 個(gè)特征圖進(jìn)行操作,因此我們使用一個(gè) 9x9x256 的卷積核而不是 9x9x1 的卷積核。那么我們究竟想要得到什么?
在第一個(gè)卷積層我們在尋找簡單的邊角和曲線。現(xiàn)在我們希望從上一步得到的邊緣信息中找到更加復(fù)雜一點(diǎn)的形狀。
這次我們的步長是 2,即每次移動 2 個(gè)像素而不是 1 個(gè)。使用更大的步長可以讓我們更快地降低輸出尺寸。
注意:一般來說,輸出的維度是 12,但由于我們的步長為 2,所以輸出向量的維度減半。比如:((20—9) + 1) / 2 = 6。
我們會對輸出再進(jìn)行 256 次卷積操作,這樣我們最終可以得到一個(gè)含有 256 個(gè)輸出(6x6)的棧。
但這一次我們想要的不僅僅是一些糟糕而普通的舊數(shù)據(jù)。我們要把這個(gè)棧切分成 32 層,其中每層有 8 個(gè)塊,我們稱之為「膠囊層」,每個(gè)膠囊層有 36 個(gè)「膠囊」。
更進(jìn)一步地說,這意味著每個(gè)膠囊含有一個(gè)擁有 8 個(gè)值的數(shù)組,而一般我們稱之為向量。
我所要強(qiáng)調(diào)的是:
這些「膠囊」是我們新的像素。
對于單一的像素值來說,我們僅僅能夠存儲在特定位置是否有一個(gè)邊角的置信度。數(shù)值越大,置信度越高。
而對于一個(gè)膠囊,我們可以在每個(gè)位置存儲 8 個(gè)值!這讓我們有機(jī)會存儲更多的信息而不僅僅是是否在某個(gè)位置找到了某種形狀。但我們想要存儲的還有哪些信息呢?
當(dāng)看到下面的形狀的時(shí)候,你能夠發(fā)現(xiàn)什么?如果你需要在對方不能觀看的情況下告訴他如何復(fù)原這個(gè)形狀,你會怎么說?
這個(gè)圖片非常基礎(chǔ),所以我們僅僅需要描述很少的一些細(xì)節(jié)。:
形狀的類型
位置
旋轉(zhuǎn)
顏色
尺寸
我們可以稱之為「實(shí)例化參數(shù)」。對于更復(fù)雜的圖片我們最終需要更多的細(xì)節(jié)。他們可以包括姿態(tài)(位置、尺寸、方向、)、畸變、速度、反照率、色調(diào)、質(zhì)地等等。
你也許還記得當(dāng)我們?yōu)檫吘墮z測設(shè)計(jì)卷積核的時(shí)候,它只會在某一個(gè)具體的角度起作用,因此對于每一個(gè)角度我們都需要一個(gè)卷積核。而事實(shí)上我們完全可以擺脫上述的過程,因?yàn)楫?dāng)我們在處理邊緣時(shí),描述邊緣的方式是非常有限的。
當(dāng)我們在處理形狀這一層次的特征時(shí),我們不想給每一個(gè)角度的長方形、三角形、橢圓等等都去設(shè)計(jì)對應(yīng)的卷積核。這太不明智了,尤其是當(dāng)處理像光線一樣有 3 個(gè)維度的旋轉(zhuǎn)和特征的更復(fù)雜的形狀時(shí)更是如此。
而這恰恰正是傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)無法很好地處理微小旋轉(zhuǎn)的原因。
當(dāng)我們從邊緣到形狀,再從形狀到物體傳遞特征的時(shí)候,如果能夠有更多的空間去存儲額外有用的信息將會是很有幫助的。
如下是兩個(gè)膠囊層(一個(gè)用來處理長方形一個(gè)用來處理三角形)和 2 個(gè)傳統(tǒng)像素輸出的一個(gè)簡化版對比:
與傳統(tǒng)的 2 維或者 3 維的向量類似,這個(gè)向量也有角度和長度。長度描述概率而角度描述實(shí)例化的參數(shù)。在上面的例子中,這個(gè)角度實(shí)際上和形狀的角度是一致的,但通常來說不一定是這樣。
在實(shí)際中想要可視化展示上述的向量是不可行或者至少是非常困難的,因?yàn)樗麄冇?8 個(gè)維度。
那么既然我們在膠囊中存儲了這些額外的信息,我們應(yīng)該可以在此基礎(chǔ)上重構(gòu)出最初的圖片。這聽起來很不錯(cuò),但我們要怎樣才能使得網(wǎng)絡(luò)學(xué)習(xí)到這些內(nèi)容呢?
在訓(xùn)練傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)的時(shí)候,我們僅僅關(guān)心模型是否能夠預(yù)測正確的類別。而在訓(xùn)練膠囊網(wǎng)絡(luò)的時(shí)候,我們有另外的一種叫做「重構(gòu)」的方法。每次重構(gòu)都嘗試僅僅使用我們給出的向量復(fù)原原始圖片。然后我們使用重構(gòu)圖片和目標(biāo)圖片的接近程度對模型進(jìn)行評估。
這里有一個(gè)簡單的例子。而在接下來的部分中我會介紹更多的細(xì)節(jié)。
Part 2b: 非線性變換 Squashing
在得到膠囊之后,我們會再對其進(jìn)行一次非線性變換(比如 ReLU),但這次的公式比之前略微難懂。這個(gè)函數(shù)成比例擴(kuò)大了向量的值,使得它在角度不變的情況下長度有所增加。這樣我們就可以讓向量分布在 0 和 1 之間從而實(shí)際上獲得一個(gè)概率值。
經(jīng)過壓縮操作后膠囊向量的長度如下所示。在這時(shí)想要猜出每個(gè)膠囊的目標(biāo)幾乎是不可能的。
要注意的是每個(gè)像素實(shí)際上都是一個(gè)長度為 8 的向量。
Part 3: 一致性路由
接下來的一步是決定將要被傳遞給下一個(gè)層級的信息。在傳統(tǒng)的網(wǎng)絡(luò)中,我們也許會使用類似于「較大池化」的一些方式。較大池化通過僅僅傳遞某一區(qū)域中激活值較大的像素到下一層的方式來降維。
然而,在膠囊網(wǎng)絡(luò)中,我們將使用一種被稱作「一致性路由」的方式。其中每一個(gè)膠囊都試圖基于它自己猜測下一層神經(jīng)元的激活情況。
看到這些預(yù)測并且在不知道輸入的情況下,你將選擇把哪一個(gè)物體傳遞給下一層呢?也許是船,長方形的膠囊和三角形的膠囊都在船應(yīng)該是什么樣子上達(dá)成了一致。但他們并沒有在預(yù)測房子的樣子上達(dá)成一致。所以很有可能這個(gè)物體不是一個(gè)房子。
通過一致性路由,我們僅僅將有用的信息傳遞給下一層并且丟棄掉那些可能使結(jié)果中存在噪音的數(shù)據(jù)。這讓我們能夠做出更加智能的選擇而不僅僅是像較大池化一樣選擇較大的數(shù)字。
在傳統(tǒng)網(wǎng)絡(luò)中,錯(cuò)位的信息并不會造成什么困惑。
而在膠囊網(wǎng)絡(luò)中,這些特征相互之間將不會達(dá)成一致:
正如我們所期望的那樣,這種方式在直覺上是可行的。而在數(shù)學(xué)上,它究竟是怎么運(yùn)作的呢?
我們的目標(biāo)是預(yù)測 10 個(gè)不同的數(shù)字(每個(gè)數(shù)字為一類)
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
注意:在船和房子的例子中,我們的目標(biāo)是預(yù)測兩個(gè)物體,而現(xiàn)在我們要預(yù)測 10 個(gè)。
與船和房子的例子不同,在這里我們不是要預(yù)測實(shí)際的圖片,而是要試圖預(yù)測描述圖片的向量。通過計(jì)算向量和每一個(gè)類別的權(quán)重矩陣的乘積,我們可以獲得膠囊對于每一個(gè)類的預(yù)測結(jié)果。
注意我們有 32 個(gè)膠囊層,并且每個(gè)膠囊層有 36 個(gè)膠囊。這意味著我們總共有 1152 個(gè)膠囊。
cap_1 * weight_for_0 = prediction
cap_1 * weight_for_1 = prediction
cap_1 * weight_for_2 = prediction
cap_1 * ...
cap_1 * weight_for_9 = prediction
cap_2 * weight_for_0 = prediction
cap_2 * weight_for_1 = prediction
cap_2 * weight_for_2 = prediction
cap_2 * ...
cap_2 * weight_for_9 = prediction
...
cap_1152 * weight_for_0 = prediction
cap_1152 * weight_for_1 = prediction
cap_1152 * weight_for_2 = prediction
cap_1152 * ...
cap_1152 * weight_for_9 = prediction
經(jīng)過計(jì)算,最終你將得到一個(gè)含有 11520 個(gè)預(yù)測值的列表。
每個(gè)權(quán)重實(shí)際上是一個(gè) 16x8 的矩陣,所以每個(gè)預(yù)測都是膠囊向量同這個(gè)權(quán)重矩陣的乘積。
正如你看到的那樣,我們的預(yù)測結(jié)果是一個(gè) 16 維的向量。
維度 16 是從何而來呢?這是一個(gè)任意的選擇,就像我們最初使用 8 個(gè)膠囊一樣。
但需要注意的是,我們?nèi)绻覀兿胍x擇更深層的膠囊網(wǎng)絡(luò),我們就要擴(kuò)大膠囊的維度。從直覺上來說,這是可行的。因?yàn)槲覀兪褂玫木W(wǎng)絡(luò)越深,特征表達(dá)就越復(fù)雜,需要我們再現(xiàn)的參數(shù)就更多。舉例來說,描述一整張臉比描述一只眼睛需要更多的信息。
下一步是要找到在這 11520 個(gè)預(yù)測中和其他預(yù)測一致性較高的內(nèi)容。
想要可視化高維的向量是很有難度的一件事情,為了更符合人的直覺,我們假設(shè)這些向量僅僅是 2 維空間中的點(diǎn)。
首先我們計(jì)算所有點(diǎn)的平均值。每個(gè)點(diǎn)在最初都被賦予了同樣的重要性。
接下來我們可以測量每個(gè)點(diǎn)和平均值點(diǎn)之間的距離。距離越遠(yuǎn)的點(diǎn),其重要程度就越低。
然后我們在考慮每個(gè)點(diǎn)的不同的重要性,重新計(jì)算平均值:
正如你能夠看到的,隨著我們重復(fù)進(jìn)行這個(gè)循環(huán),那些和其他點(diǎn)不一致的的點(diǎn)開始消失。而那些相互之間高度一致的點(diǎn)則最終將被傳遞給激活值較高的的下一層。
Part 4: DigitCaps
達(dá)成一致后,我們最終可以得到 10 個(gè) 16 維的向量,每個(gè)向量都和一個(gè)數(shù)字相對應(yīng)。這個(gè)矩陣就是我們最終的預(yù)測結(jié)果。這個(gè)向量的長度是數(shù)字被找出的置信度——越長越好。這個(gè)向量也可以被用于生成輸入圖片的重構(gòu)。
這就是在輸入為 4 的情況下向量的長度分布情況。
第五個(gè)方塊區(qū)域是最明亮的,意味著較高的置信度。注意數(shù)字 0 是第一類,所以我們在這里給出的預(yù)測是數(shù)字 4.
Part 5: 重構(gòu)
這個(gè)代碼實(shí)現(xiàn)中重構(gòu)的部分相對比較簡單,它僅僅是一個(gè)多層的全連接網(wǎng)絡(luò),但重構(gòu)本身的過程是非常有趣的。
如果我們重構(gòu) 4 個(gè)輸入向量,我們將會得到:
如果我們調(diào)整這些滑動器,我們可以看到每一個(gè)維度是如何影響這 4 個(gè)輸入的:
我推薦大家下載使用這個(gè)可視化工具來觀察在不同輸入下滑動向量數(shù)值是如何影響重構(gòu)過程的。
git clone https://github.com/bourdakos1/CapsNet-Visualization.git
cd CapsNet-Visualization
pip install -r requirements.txt
運(yùn)行可視化工具
python run_visualization.py
接下來用瀏覽器訪問 http://localhost:5000 (http://localhost:5000/)
總結(jié)
我認(rèn)為對于膠囊網(wǎng)絡(luò)的重構(gòu)是令人驚嘆的。考慮到我們僅僅使用了一個(gè)簡單的數(shù)據(jù)集來訓(xùn)練當(dāng)前的模型,這讓我不由期待經(jīng)由大量數(shù)據(jù)訓(xùn)練的成熟膠囊網(wǎng)絡(luò)結(jié)構(gòu),及其效果。
我非常期待看到控制更為復(fù)雜圖像的重構(gòu)向量將對模型產(chǎn)生怎樣的影響。因此在接下來的工作中,我將在 CIFAR 和 smallNORB 數(shù)據(jù)上對膠囊網(wǎng)絡(luò)進(jìn)行測試。
原文地址:https://medium.freecodecamp.org/understanding-capsule-networks-ais-alluring-new-architecture-bdb228173ddc
歡迎加入本站公開興趣群商業(yè)智能與數(shù)據(jù)分析群
興趣范圍包括各種讓數(shù)據(jù)產(chǎn)生價(jià)值的辦法,實(shí)際應(yīng)用案例分享與討論,分析工具,ETL工具,數(shù)據(jù)倉庫,數(shù)據(jù)挖掘工具,報(bào)表系統(tǒng)等全方位知識
QQ群:81035754
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/4743.html
摘要:等人最近關(guān)于膠囊網(wǎng)絡(luò)的論文在機(jī)器學(xué)習(xí)領(lǐng)域造成相當(dāng)震撼的影響。它提出了理論上能更好地替代卷積神經(jīng)網(wǎng)絡(luò)的方案,是當(dāng)前計(jì)算機(jī)視覺領(lǐng)域的技術(shù)。而這就是這些膠囊網(wǎng)絡(luò)運(yùn)行方式的本質(zhì)。為了簡化,我們將假設(shè)一個(gè)兩層的膠囊網(wǎng)絡(luò)。產(chǎn)生的結(jié)果值將被稱為。 Geoff Hinton等人最近關(guān)于膠囊網(wǎng)絡(luò)(Capsule networks)的論文在機(jī)器學(xué)習(xí)領(lǐng)域造成相當(dāng)震撼的影響。它提出了理論上能更好地替代卷積神經(jīng)網(wǎng)絡(luò)的...
摘要:而加快推動這一趨勢的,正是卷積神經(jīng)網(wǎng)絡(luò)得以雄起的大功臣。卷積神經(jīng)網(wǎng)絡(luò)面臨的挑戰(zhàn)對的深深的質(zhì)疑是有原因的。據(jù)此,也斷言卷積神經(jīng)網(wǎng)絡(luò)注定是沒有前途的神經(jīng)膠囊的提出在批判不足的同時(shí),已然備好了解決方案,這就是我們即將討論的膠囊神經(jīng)網(wǎng)絡(luò),簡稱。 本文作者 張玉宏2012年于電子科技大學(xué)獲計(jì)算機(jī)專業(yè)博士學(xué)位,2009~2011年美國西北大學(xué)聯(lián)合培養(yǎng)博士,現(xiàn)執(zhí)教于河南工業(yè)大學(xué),電子科技大學(xué)博士后。中國計(jì)...
摘要:在底層的膠囊之后連接了層和層。膠囊效果的討論在論文最后,作者們對膠囊的表現(xiàn)進(jìn)行了討論。他們認(rèn)為,由于膠囊具有分別處理不同屬性的能力,相比于可以提高對圖像變換的健壯性,在圖像分割中也會有出色的表現(xiàn)。 背景目前的神經(jīng)網(wǎng)絡(luò)中,每一層的神經(jīng)元都做的是類似的事情,比如一個(gè)卷積層內(nèi)的每個(gè)神經(jīng)元都做的是一樣的卷積操作。而Hinton堅(jiān)信,不同的神經(jīng)元完全可以關(guān)注不同的實(shí)體或者屬性,比如在一開始就有不同的神...
摘要:膠囊網(wǎng)絡(luò)是一種熱門的新型神經(jīng)網(wǎng)絡(luò)架構(gòu),它可能會對深度學(xué)習(xí)特別是計(jì)算機(jī)視覺領(lǐng)域產(chǎn)生深遠(yuǎn)的影響。下幾層膠囊也嘗試檢測對象及其姿態(tài),但工作方式非常不同,即使用按協(xié)議路由算法。 膠囊網(wǎng)絡(luò)(Capsule networks, CapsNets)是一種熱門的新型神經(jīng)網(wǎng)絡(luò)架構(gòu),它可能會對深度學(xué)習(xí)特別是計(jì)算機(jī)視覺領(lǐng)域產(chǎn)生深遠(yuǎn)的影響。等一下,難道計(jì)算機(jī)視覺問題還沒有被很好地解決嗎?卷積神經(jīng)網(wǎng)絡(luò)(Convolu...
摘要:摘要本文對膠囊網(wǎng)絡(luò)進(jìn)行了非技術(shù)性的簡要概括,分析了其兩個(gè)重要屬性,之后針對手寫體數(shù)據(jù)集上驗(yàn)證多層感知機(jī)卷積神經(jīng)網(wǎng)絡(luò)以及膠囊網(wǎng)絡(luò)的性能。這是一個(gè)非結(jié)構(gòu)化的數(shù)字圖像識別問題,使用深度學(xué)習(xí)算法能夠獲得最佳性能。作者信息,數(shù)據(jù)科學(xué),深度學(xué)習(xí)初學(xué)者。 摘要: 本文對膠囊網(wǎng)絡(luò)進(jìn)行了非技術(shù)性的簡要概括,分析了其兩個(gè)重要屬性,之后針對MNIST手寫體數(shù)據(jù)集上驗(yàn)證多層感知機(jī)、卷積神經(jīng)網(wǎng)絡(luò)以及膠囊網(wǎng)絡(luò)的性...
閱讀 4913·2023-04-25 18:47
閱讀 2672·2021-11-19 11:33
閱讀 3445·2021-11-11 16:54
閱讀 3101·2021-10-26 09:50
閱讀 2540·2021-10-14 09:43
閱讀 665·2021-09-03 10:47
閱讀 670·2019-08-30 15:54
閱讀 1498·2019-08-30 15:44