溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

瀏覽器上如何實(shí)現(xiàn)CNN可視化

發(fā)布時(shí)間:2021-11-24 14:28:33 來(lái)源:億速云 閱讀:171 作者:柒染 欄目:云計(jì)算

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)瀏覽器上如何實(shí)現(xiàn)CNN可視化,文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

本文作用

學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)時(shí),我們只知道輸入一張圖片后,通過(guò)一頓操作,便可以提取圖片中的特征,我們對(duì)于其內(nèi)部的操作,只有理論了解,并沒(méi)有做到眼見(jiàn)為實(shí)。這個(gè)CNN解釋器讓我們?cè)跒g覽器上,便可以清楚看到每個(gè)神經(jīng)元是如何產(chǎn)生,以及生成的圖片長(zhǎng)什么樣。

CNN神經(jīng)網(wǎng)絡(luò)可視化工具1

什么是卷積神經(jīng)網(wǎng)絡(luò)?
在機(jī)器學(xué)習(xí)中,分類(lèi)器將類(lèi)別標(biāo)簽分配給數(shù)據(jù)點(diǎn)。例如,圖像分類(lèi)器產(chǎn)生圖像中存在哪些對(duì)象的類(lèi)別標(biāo)簽(例如,鳥(niǎo),飛機(jī))。一個(gè)卷積神經(jīng)網(wǎng)絡(luò),或CNN的簡(jiǎn)稱(chēng),是一種類(lèi)型的分類(lèi),在解決這個(gè)問(wèn)題,其過(guò)人之處!

CNN是神經(jīng)網(wǎng)絡(luò):一種用于識(shí)別數(shù)據(jù)模式的算法。通常,神經(jīng)網(wǎng)絡(luò)由神經(jīng)元組成,這些神經(jīng)元分層組織,每個(gè)神經(jīng)元都有自己可學(xué)習(xí)的權(quán)重和偏見(jiàn)。讓我們將CNN分解為其基本構(gòu)建塊。

甲張量可以被認(rèn)為是一個(gè)n維矩陣。在上面的CNN中,張量將是3維的,輸出層除外。
甲神經(jīng)元可以被看作是發(fā)生在多個(gè)輸入并且產(chǎn)生一個(gè)輸出的功能。神經(jīng)元的輸出在上面表示為紅色 → 藍(lán)色 激活圖。
阿層是簡(jiǎn)單地用相同的操作的神經(jīng)元,包括相同超參數(shù)的集合。
內(nèi)核權(quán)重和偏差(雖然每個(gè)神經(jīng)元都唯一)在訓(xùn)練階段進(jìn)行了調(diào)整,并允許分類(lèi)器適應(yīng)所提供的問(wèn)題和數(shù)據(jù)集。它們?cè)诳梢暬幸渣S色 → 綠色發(fā)散色標(biāo)進(jìn)行編碼。通過(guò)單擊神經(jīng)元或?qū)⑹髽?biāo)懸停在卷積彈性解釋視圖中的內(nèi)核/偏差上,可以在“ 交互式公式”視圖中查看特定值。
CNN傳達(dá)了一個(gè)可微分函數(shù),該函數(shù)在輸出層的可視化中表示為類(lèi)分?jǐn)?shù)。
如果您以前學(xué)習(xí)過(guò)神經(jīng)網(wǎng)絡(luò),那么您可能對(duì)這些術(shù)語(yǔ)感到熟悉。那么,什么使CNN與眾不同?CNN利用一種特殊類(lèi)型的層,恰當(dāng)?shù)胤Q(chēng)為卷積層,使它們處于適當(dāng)?shù)奈恢靡詮膱D像和類(lèi)似圖像的數(shù)據(jù)中學(xué)習(xí)。關(guān)于圖像數(shù)據(jù),CNN可以用于許多不同的計(jì)算機(jī)視覺(jué)任務(wù),例如圖像處理,分類(lèi),分割和對(duì)象檢測(cè)。

在CNN Explainer中,您可以看到如何使用簡(jiǎn)單的CNN進(jìn)行圖像分類(lèi)。由于網(wǎng)絡(luò)的簡(jiǎn)單性,它的性能并不完美,但這沒(méi)關(guān)系!CNN Explainer中使用的網(wǎng)絡(luò)架構(gòu)Tiny VGG包含了當(dāng)今最先進(jìn)的CNN所使用的許多相同的層和操作,但是規(guī)模較小。這樣,將更容易理解入門(mén)。

網(wǎng)絡(luò)的每一層做什么?
讓我們遍歷網(wǎng)絡(luò)中的每一層。在閱讀時(shí),單擊并懸停在上面的可視化中,即可隨意與上面的可視化進(jìn)行交互。

輸入層
輸入層(最左邊的層)代表輸入到CNN中的圖像。因?yàn)槲覀兪褂肦GB圖像作為輸入,所以輸入層具有三個(gè)通道,分別對(duì)應(yīng)于該層中顯示的紅色,綠色和藍(lán)色通道。單擊網(wǎng)絡(luò)詳細(xì)信息圖標(biāo)上方的圖標(biāo)以顯示詳細(xì)信息(在此層以及其他層上)時(shí),請(qǐng)使用色標(biāo)。

卷積層
卷積層是CNN的基礎(chǔ),因?yàn)樗鼈儼瑢W(xué)習(xí)的內(nèi)核(權(quán)重),這些內(nèi)核提取出可將不同圖像彼此區(qū)分開(kāi)的特征-這就是我們想要的分類(lèi)!與卷積層交互時(shí),您會(huì)注意到先前各層與卷積層之間的鏈接。每個(gè)鏈接代表一個(gè)唯一的內(nèi)核,該內(nèi)核用于卷積操作以生成當(dāng)前卷積神經(jīng)元的輸出或激活圖。

卷積神經(jīng)元執(zhí)行具有唯一內(nèi)核和上一層對(duì)應(yīng)神經(jīng)元輸出的元素點(diǎn)積。這將產(chǎn)生與唯一內(nèi)核一樣多的中間結(jié)果。卷積神經(jīng)元是所有中間結(jié)果與學(xué)習(xí)到的偏差相加的結(jié)果。

例如,讓我們看一下上面的Tiny VGG架構(gòu)中的第一個(gè)卷積層。請(qǐng)注意,此層中有10個(gè)神經(jīng)元,但上一層中只有3個(gè)神經(jīng)元。在Tiny VGG架構(gòu)中,卷積層是完全連接的,這意味著每個(gè)神經(jīng)元都與上一層中的每個(gè)其他神經(jīng)元相連。著眼于第一卷積層最頂層的卷積神經(jīng)元的輸出,當(dāng)我們將鼠標(biāo)懸停在激活圖上時(shí),我們看到有3個(gè)唯一的內(nèi)核。
瀏覽器上如何實(shí)現(xiàn)CNN可視化
圖1.將鼠標(biāo)懸停在第一個(gè)卷積層上最頂層節(jié)點(diǎn)的激活圖上時(shí),您會(huì)看到應(yīng)用了3個(gè)內(nèi)核來(lái)生成此激活圖。單擊此激活圖后,您可以看到每個(gè)唯一內(nèi)核都發(fā)生了卷積操作。
這些內(nèi)核的大小是由網(wǎng)絡(luò)體系結(jié)構(gòu)的設(shè)計(jì)人員指定的超參數(shù)。為了產(chǎn)生卷積神經(jīng)元(激活圖)的輸出,我們必須與上一層的輸出以及網(wǎng)絡(luò)學(xué)習(xí)到的唯一內(nèi)核一起執(zhí)行元素逐點(diǎn)積。在TinyVGG中,點(diǎn)積運(yùn)算使用的跨度為1,這意味著內(nèi)核將每個(gè)點(diǎn)積移出1個(gè)像素,但這是網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)人員可以調(diào)整以使其更適合其數(shù)據(jù)集的超參數(shù)。我們必須對(duì)所有3個(gè)內(nèi)核執(zhí)行此操作,這將產(chǎn)生3個(gè)中間結(jié)果。
瀏覽器上如何實(shí)現(xiàn)CNN可視化
然后,執(zhí)行包含所有3個(gè)中間結(jié)果以及網(wǎng)絡(luò)已獲學(xué)習(xí)的偏差的元素和。此后,所得的二維張量將是在第一卷積層中最頂層神經(jīng)元的上方界面上可見(jiàn)的激活圖。必須應(yīng)用相同的操作來(lái)生成每個(gè)神經(jīng)元的激活圖。

通過(guò)一些簡(jiǎn)單的數(shù)學(xué)運(yùn)算,我們可以推斷出在第一個(gè)卷積層中應(yīng)用了3 x 10 = 30個(gè)唯一的內(nèi)核,每個(gè)內(nèi)核的大小為3x3。卷積層與上一層之間的連通性是構(gòu)建網(wǎng)絡(luò)體系結(jié)構(gòu)時(shí)的設(shè)計(jì)決策,它將影響每個(gè)卷積層的內(nèi)核數(shù)量。單擊可視化文件以更好地了解卷積層背后的操作??纯词欠窨梢宰裱厦娴氖纠?/p>

了解超參數(shù)
瀏覽器上如何實(shí)現(xiàn)CNN可視化
當(dāng)內(nèi)核擴(kuò)展到激活圖之外時(shí),通常需要填充。填充可以在激活圖的邊界處保存數(shù)據(jù),從而獲得更好的性能,并且可以幫助保留輸入的空間大小,從而使體系結(jié)構(gòu)設(shè)計(jì)人員可以構(gòu)建性能更高,更流暢的網(wǎng)絡(luò)。存在許多填充技術(shù),但是最常用的方法是零填充,因?yàn)樗男阅埽?jiǎn)單性和計(jì)算效率高。該技術(shù)涉及在輸入的邊緣周?chē)鷮?duì)稱(chēng)地添加零。許多高性能的CNN(例如AlexNet)都采用了這種方法。
內(nèi)核大小,通常也稱(chēng)為過(guò)濾器大小,是指輸入上滑動(dòng)窗口的尺寸。選擇此超參數(shù)會(huì)對(duì)圖像分類(lèi)任務(wù)產(chǎn)生重大影響。例如,較小的內(nèi)核大小能夠從輸入中提取大量包含高度局部特征的信息。如您在上面的可視化中所看到的,較小的內(nèi)核尺寸也導(dǎo)致較小的層尺寸減小,這允許更深的體系結(jié)構(gòu)。相反,較大的內(nèi)核會(huì)提取較少的信息,這會(huì)導(dǎo)致層尺寸的減小更快,從而常常導(dǎo)致性能下降。大內(nèi)核更適合提取更大的特征。最終,選擇合適的內(nèi)核大小將取決于您的任務(wù)和數(shù)據(jù)集,但是通常,越來(lái)越多的圖層一起學(xué)習(xí)越來(lái)越復(fù)雜的功能!
大步走指示內(nèi)核一次應(yīng)移動(dòng)多少像素。例如,如上面的卷積層示例所述,Tiny VGG對(duì)其卷積層使用步幅為1,這意味著在輸入的3x3窗口上執(zhí)行點(diǎn)積以產(chǎn)生輸出值,然后將其移至每進(jìn)行一次后續(xù)操作,就增加一個(gè)像素??缍葘?duì)CNN的影響類(lèi)似于內(nèi)核大小。隨著步幅的減小,由于提取了更多的數(shù)據(jù),因此可以了解更多的功能,這也導(dǎo)致了更大的輸出層。相反,隨著步幅的增加,這將導(dǎo)致特征提取更加受限,輸出層尺寸更小。架構(gòu)設(shè)計(jì)人員的職責(zé)之一是在實(shí)現(xiàn)CNN時(shí)確保內(nèi)核對(duì)稱(chēng)地跨輸入滑動(dòng)。
激活功能
ReLU
神經(jīng)網(wǎng)絡(luò)在現(xiàn)代技術(shù)中極為盛行-因?yàn)樗鼈兪侨绱司_!當(dāng)今性能最高的CNN包含大量荒謬的圖層,這些圖層能夠?qū)W習(xí)越來(lái)越多的功能。這些突破性的CNN能夠?qū)崿F(xiàn)如此巨大的準(zhǔn)確性的部分原因是因?yàn)樗鼈兊姆蔷€性。ReLU將急需的非線性應(yīng)用到模型中。非線性是產(chǎn)生非線性決策邊界所必需的,因此輸出不能寫(xiě)為輸入的線性組合。如果不存在非線性激活函數(shù),那么深的CNN架構(gòu)將演變?yōu)橐粋€(gè)等效的卷積層,其性能幾乎不一樣。與其他非線性函數(shù)(例如Sigmoid)相反,ReLU激活函數(shù)專(zhuān)門(mén)用作非線性激活函數(shù),因?yàn)閺慕?jīng)驗(yàn)上已經(jīng)觀察到,使用ReLU的CNN的訓(xùn)練速度要快于它們的對(duì)應(yīng)函數(shù)。

ReLU激活函數(shù)是一對(duì)一的數(shù)學(xué)運(yùn)算:

關(guān)系圖
圖3.繪制的ReLU激活函數(shù),忽略了所有負(fù)面數(shù)據(jù)。
此激活函數(shù)逐個(gè)應(yīng)用于輸入張量中的每個(gè)值。例如,如果將ReLU應(yīng)用于值2.24,則結(jié)果將為2.24,因?yàn)?.24大于0。您可以通過(guò)單擊上方網(wǎng)絡(luò)中的ReLU神經(jīng)元來(lái)觀察如何應(yīng)用此激活功能。在上面概述的網(wǎng)絡(luò)體系結(jié)構(gòu)中的每個(gè)卷積層之后執(zhí)行整流線性激活功能(ReLU)。注意該層對(duì)整個(gè)網(wǎng)絡(luò)中各種神經(jīng)元的激活圖的影響!

軟最大
softmax操作的主要目的是:確保CNN輸出的總和為1。因此,softmax操作可用于將模型輸出縮放為概率。單擊最后一層將顯示網(wǎng)絡(luò)中的softmax操作。請(qǐng)注意,展平后的對(duì)數(shù)如何不在零到一之間縮放。為了直觀顯示每個(gè)logit的影響(標(biāo)量值未縮放),使用淺橙色 → 深橙色色標(biāo)對(duì)它們進(jìn)行編碼。通過(guò)softmax函數(shù)后,每個(gè)類(lèi)現(xiàn)在對(duì)應(yīng)一個(gè)適當(dāng)?shù)母怕剩?/p>

您可能會(huì)想,標(biāo)準(zhǔn)歸一化和softmax之間的區(qū)別是什么-畢竟,兩者都會(huì)在0和1之間重新調(diào)整logit。請(qǐng)記住,反向傳播是訓(xùn)練神經(jīng)網(wǎng)絡(luò)的關(guān)鍵方面-我們希望正確的答案具有最大的“信號(hào)”。 ” 通過(guò)使用softmax,我們可以有效地“逼近” argmax,同時(shí)獲得微分。重新縮放不會(huì)使max的權(quán)重明顯高于其他logit,而softmax的權(quán)重卻不會(huì)。簡(jiǎn)而言之,softmax是一個(gè)“更軟”的argmax-看看我們?cè)谀抢镒隽耸裁矗?br/> 瀏覽器上如何實(shí)現(xiàn)CNN可視化
匯聚層
在不同的CNN架構(gòu)中,池化層的類(lèi)型很多,但是它們的目的都是要逐漸減小網(wǎng)絡(luò)的空間范圍,從而減少網(wǎng)絡(luò)的參數(shù)和總體計(jì)算。上面的Tiny VGG架構(gòu)中使用的池類(lèi)型為Max-Pooling。

最大池操作需要在體系結(jié)構(gòu)設(shè)計(jì)期間選擇內(nèi)核大小和步幅。一旦選定,該操作將以指定的步幅在輸入上滑動(dòng)內(nèi)核,同時(shí)僅從輸入中選擇每個(gè)內(nèi)核切片上的最大值以產(chǎn)生輸出值。通過(guò)單擊上方網(wǎng)絡(luò)中的合并神經(jīng)元,可以查看此過(guò)程。

在上面的Tiny VGG體系結(jié)構(gòu)中,池化層使用2x2內(nèi)核,步幅為2。使用這些規(guī)范進(jìn)行此操作將導(dǎo)致75%的激活被丟棄。通過(guò)丟棄如此多的值,Tiny VGG的計(jì)算效率更高,并且避免了過(guò)擬合。

展平層
該層將網(wǎng)絡(luò)中的三維層轉(zhuǎn)換為一維向量,以適合全連接層的輸入以進(jìn)行分類(lèi)。例如,將一個(gè)5x5x2張量轉(zhuǎn)換為大小為50的向量。網(wǎng)絡(luò)的先前卷積層從輸入圖像中提取了特征,但是現(xiàn)在該對(duì)這些特征進(jìn)行分類(lèi)了。我們使用softmax函數(shù)對(duì)這些功能進(jìn)行分類(lèi),這需要一維輸入。這就是為什么需要平坦層的原因??梢酝ㄟ^(guò)單擊任何輸出類(lèi)來(lái)查看此層。

互動(dòng)功能
通過(guò)選擇上傳圖片圖標(biāo)以了解您的圖像如何分為10類(lèi)來(lái)上傳自己的圖像。通過(guò)分析整個(gè)網(wǎng)絡(luò)中的神經(jīng)元,您可以了解激活圖和提取的特征。
更改激活圖色標(biāo),以通過(guò)調(diào)整更好地了解不同抽象級(jí)別的激活的影響熱圖。
單擊網(wǎng)絡(luò)詳細(xì)信息圖標(biāo)圖標(biāo),了解網(wǎng)絡(luò)詳細(xì)信息,例如圖層尺寸和色標(biāo)。
通過(guò)單擊播放圖標(biāo)按鈕來(lái)模擬網(wǎng)絡(luò)操作,或者通過(guò)將鼠標(biāo)懸停在輸入或輸出的各個(gè)部分上來(lái)了解映射和基礎(chǔ)操作,從而與Interactive Formula View中的圖層切片進(jìn)行交互。
通過(guò)單擊信息圖標(biāo)“ 交互式公式視圖”以了解文章中的圖層詳細(xì)信息,以了解圖層功能。
影片教學(xué)
CNN解釋器簡(jiǎn)介 (0:00-0:22)
概述 (0:27-0:37)
卷積彈性解釋視圖 (0:37-0:46)
卷積,ReLU和池化交互式公式視圖 (0:46-1:21)
展平彈性說(shuō)明視圖 (1:22-1:41)
Softmax 交互式公式視圖 (1:41-2:02)
吸引學(xué)習(xí)經(jīng)驗(yàn):理解分類(lèi) (2:06-2:28)
互動(dòng)教程文章 (2:29-2:54)
CNN解釋器如何實(shí)施?
CNN Explainer使用TensorFlow.js(一個(gè)瀏覽器內(nèi)GPU加速的深度學(xué)習(xí)庫(kù))加載經(jīng)過(guò)預(yù)訓(xùn)練的模型以進(jìn)行可視化。整個(gè)交互式系統(tǒng)使用Svelte作為框架并使用D3.js進(jìn)行可視化,并以Javascript編寫(xiě)。您只需要一個(gè)網(wǎng)絡(luò)瀏覽器就可以立即開(kāi)始學(xué)習(xí)CNN!

誰(shuí)開(kāi)發(fā)了CNN Explainer?
CNN解釋器由 Jay Wang, Robert Turko, Omar Shaikh, Haekyu Park, Nilaksh Das, Fred Hohman, Minsuk Kahng和 Polo Chau創(chuàng)建,這是佐治亞理工學(xué)院與俄勒岡州立大學(xué)進(jìn)行研究合作的結(jié)果。我們感謝Anmol Chhabria,Kaan Sancak,Kantwon Rogers和喬治亞州技術(shù)可視化實(shí)驗(yàn)室的支持和建設(shè)性的反饋。NSF贈(zèng)款I(lǐng)IS-1563816,CNS-1704701,NASA NSTRF,DARPA GARD以及來(lái)自英特爾,NVIDIA,Google和Amazon的禮物均部分支持了這項(xiàng)工作。

解釋器學(xué)習(xí)筆記

瀏覽器上如何實(shí)現(xiàn)CNN可視化
瀏覽器上如何實(shí)現(xiàn)CNN可視化

CNN神經(jīng)網(wǎng)絡(luò)可視化工具2

該在線網(wǎng)絡(luò)工具提供10多種經(jīng)典網(wǎng)絡(luò)的可視化文件,如AlexNet、GoogLeNet、YOLO、ResNet系列和Inception系列等。可以清楚看到每層的參數(shù)。

https://dgschwend.github.io/netscope/quickstart.html瀏覽器上如何實(shí)現(xiàn)CNN可視化

上述就是小編為大家分享的瀏覽器上如何實(shí)現(xiàn)CNN可視化了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI