使用Python可視化卷積神經(jīng)網(wǎng)絡(luò)方法匯總
介紹深入學(xué)習(xí)中最具爭(zhēng)議的話題之一是如何解釋和理解一個(gè)經(jīng)過(guò)訓(xùn)練的模型——特別是在醫(yī)療等高風(fēng)險(xiǎn)行業(yè)的背景下!昂谙蛔印币辉~經(jīng)常與深度學(xué)習(xí)算法聯(lián)系在一起,如果我們不能解釋模型是如何工作的,我們?cè)趺茨芟嘈拍P偷慕Y(jié)果呢?這是個(gè)合理的問(wèn)題。以一個(gè)為檢測(cè)癌癥而訓(xùn)練的深度學(xué)習(xí)模型為例,這個(gè)模型告訴你,它99%確定它已經(jīng)檢測(cè)到癌癥,但它并沒(méi)有告訴你為什么或者如何做出這個(gè)決定。是在核磁共振掃描中找到了重要線索的呢?還是只是掃描上的污點(diǎn)被錯(cuò)誤地檢測(cè)為腫瘤?這是病人生死攸關(guān)的問(wèn)題,醫(yī)生犯了錯(cuò)后果是很?chē)?yán)重。
在本文中,我們將探討如何可視化卷積神經(jīng)網(wǎng)絡(luò)(CNN),這是一種深入學(xué)習(xí)的體系結(jié)構(gòu),被用于最先進(jìn)的基于圖像的應(yīng)用程序;我們將了解可視化CNN模型的重要性,以及可視化它們的方法;我們還將看一個(gè)用例,它將幫助你更好地理解這個(gè)概念。目錄CNN模型可視化的重要性可視化方法顯著圖基于梯度的類(lèi)激活圖最大激活圖像遮擋繪制模型架構(gòu)可視化濾波器基本方法基于激活的方法基于梯度的方法CNN模型可視化的重要性正如我們?cè)谏厦娴陌┌Y腫瘤例子中所看到的,我們知道我們的模型在做什么,以及它如何對(duì)預(yù)測(cè)做出決定,這是絕對(duì)重要的。通常,下面列出的原因是一個(gè)深度學(xué)習(xí)實(shí)踐者要記住的最重要的知識(shí)點(diǎn):了解模型的工作原理超參數(shù)調(diào)整找出模型的失敗之處并能夠解決失敗向消費(fèi)者/最終用戶或業(yè)務(wù)主管解釋決策讓我們看一個(gè)例子,在這個(gè)例子中,可視化一個(gè)神經(jīng)網(wǎng)絡(luò)模型有助于理解模型一些不好的行為和提高性能(下面的例子來(lái)自:http://intelligence.org/files/AIPosNegFactor.pdf)。曾幾何時(shí),美國(guó)陸軍想使用神經(jīng)網(wǎng)絡(luò)來(lái)自動(dòng)檢測(cè)偽裝的敵方坦克。研究人員用50張樹(shù)木偽裝的坦克照片和50張沒(méi)有坦克的樹(shù)木照片訓(xùn)練了神經(jīng)網(wǎng)絡(luò),使用標(biāo)準(zhǔn)技術(shù)來(lái)進(jìn)行監(jiān)督學(xué)習(xí),研究人員對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行了訓(xùn)練,使其權(quán)重能夠正確加載訓(xùn)練集:對(duì)50張偽裝坦克的照片輸出“是”,對(duì)50張樹(shù)木照片的輸出“否”。這并不能確保新的例子也可以被正確分類(lèi)。神經(jīng)網(wǎng)絡(luò)可能已經(jīng)“學(xué)習(xí)”了100個(gè)不會(huì)泛化到任何新問(wèn)題的特殊情況,聰明的是,研究人員最初拍攝了200張照片,100張?zhí)箍苏掌?00張樹(shù)木照片,他們?cè)谟?xùn)練場(chǎng)只使用了50個(gè)。研究人員在剩下的100張照片上運(yùn)行了神經(jīng)網(wǎng)絡(luò),在沒(méi)有進(jìn)一步訓(xùn)練的情況下,神經(jīng)網(wǎng)絡(luò)對(duì)剩下的所有照片進(jìn)行了正確的分類(lèi)。不錯(cuò)!研究人員把完成的工作結(jié)果交給五角大樓,五角大樓很快就把工作交還給了他們,他們抱怨說(shuō),在他們自己的測(cè)試中,神經(jīng)網(wǎng)絡(luò)在辨別照片方面跟隨機(jī)差不多。
結(jié)果發(fā)現(xiàn),在研究人員的數(shù)據(jù)集中,偽裝坦克的照片是在陰天拍攝的,而沒(méi)有偽裝的照片是在晴天拍攝的。神經(jīng)網(wǎng)絡(luò)學(xué)會(huì)了區(qū)分陰天和晴天,而不是區(qū)分偽裝坦克和空曠的森林。CNN模型的可視化方法大體上,CNN模型的可視化方法可以根據(jù)其內(nèi)部工作方式分為三個(gè)部分基本方法-向我們展示訓(xùn)練模型總體架構(gòu)的簡(jiǎn)單方法基于激活的方法-在這些方法中,我們破譯單個(gè)神經(jīng)元或一組神經(jīng)元的激活函數(shù),以理解它們正在做什么基于梯度的方法-這些方法傾向于在訓(xùn)練模型時(shí)操縱由向前和反向傳播形成的梯度我們將在下面的章節(jié)中詳細(xì)介紹它們。在這里,我們將使用keras作為我們的庫(kù)來(lái)構(gòu)建深度學(xué)習(xí)模型,并使用keras-vis來(lái)可視化它們。在繼續(xù)之前,請(qǐng)確保你已經(jīng)在系統(tǒng)中安裝了這些程序。注:本文使用“Identify the Digits”競(jìng)賽中給出的數(shù)據(jù)集,要運(yùn)行下面提到的代碼,你必須在系統(tǒng)中下載它。另外,在開(kāi)始下面的實(shí)現(xiàn)之前,請(qǐng)執(zhí)行要求的步驟。數(shù)據(jù)集:https://datahack.a(chǎn)nalyticsvidhya.com/contest/practice-problem-identify-the-digits/準(zhǔn)備步驟:https://www.a(chǎn)nalyticsvidhya.com/keras_script-py/1.基本方法1.1 繪制模型架構(gòu)最簡(jiǎn)單的方法就是打印模型。在這里,你還可以打印神經(jīng)網(wǎng)絡(luò)中各個(gè)層的形狀和每個(gè)層的參數(shù)。在keras中,可以按如下方式實(shí)現(xiàn):model.summary()_________________________________________________________________Layer (type) Output Shape Param # =================================================================conv2d_1 (Conv2D) (None, 26, 26, 32) 320 _________________________________________________________________conv2d_2 (Conv2D) (None, 24, 24, 64) 18496 _________________________________________________________________max_pooling2d_1 (MaxPooling2 (None, 12, 12, 64) 0 _________________________________________________________________dropout_1 (Dropout) (None, 12, 12, 64) 0 _________________________________________________________________flatten_1 (Flatten) (None, 9216) 0 _________________________________________________________________dense_1 (Dense) (None, 128) 1179776 _________________________________________________________________dropout_2 (Dropout) (None, 128) 0 _________________________________________________________________preds (Dense) (None, 10) 1290 =================================================================Total params: 1,199,882Trainable params: 1,199,882Non-trainable params: 0為了更具創(chuàng)造性和表現(xiàn)力,你可以繪制一個(gè)架構(gòu)圖(keras.utils.vis_utils函數(shù))。
1.2 可視化濾波器另一種方法是繪制訓(xùn)練模型的濾波器,以便我們可以了解這些濾波器的行為。例如,上述模型第一層的第一個(gè)濾波器如下所示:top_layer = model.layers[0]plt.imshow(top_layer.get_weights()[0][:, :, :, 0].squeeze(), cmap='gray')
一般來(lái)說(shuō),我們看到低層的濾波器起到邊緣探測(cè)器的作用,當(dāng)我們走得更高時(shí),它們傾向于捕捉像物體和人臉這樣的高層概念。

發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
圖片新聞
-
機(jī)器人奧運(yùn)會(huì)戰(zhàn)報(bào):宇樹(shù)機(jī)器人摘下首金,天工Ultra搶走首位“百米飛人”
-
存儲(chǔ)圈掐架!江波龍起訴佰維,索賠121萬(wàn)
-
長(zhǎng)安汽車(chē)母公司突然更名:從“中國(guó)長(zhǎng)安”到“辰致科技”
-
豆包前負(fù)責(zé)人喬木出軌BP后續(xù):均被辭退
-
字節(jié)AI Lab負(fù)責(zé)人李航卸任后返聘,Seed進(jìn)入調(diào)整期
-
員工持股爆雷?廣汽埃安緊急回應(yīng)
-
中國(guó)“智造”背后的「關(guān)鍵力量」
-
小米汽車(chē)研發(fā)中心重磅落地,寶馬家門(mén)口“搶人”
最新活動(dòng)更多
-
即日-9.1立即下載>> 【限時(shí)下載】ADI中國(guó)三十周年感恩回饋助力企業(yè)升級(jí)!
-
即日-9.16點(diǎn)擊進(jìn)入 >> 【限時(shí)福利】TE 2025國(guó)際物聯(lián)網(wǎng)展·深圳站
-
10月23日立即報(bào)名>> Works With 開(kāi)發(fā)者大會(huì)深圳站
-
10月24日立即參評(píng)>> 【評(píng)選】維科杯·OFweek 2025(第十屆)物聯(lián)網(wǎng)行業(yè)年度評(píng)選
-
11月27日立即報(bào)名>> 【工程師系列】汽車(chē)電子技術(shù)在線大會(huì)
-
12月18日立即報(bào)名>> 【線下會(huì)議】OFweek 2025(第十屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會(huì)
推薦專(zhuān)題
- 1 阿里首位程序員,“掃地僧”多隆已離職
- 2 先進(jìn)算力新選擇 | 2025華為算力場(chǎng)景發(fā)布會(huì)暨北京xPN伙伴大會(huì)成功舉辦
- 3 宇樹(shù)機(jī)器人撞人事件的深度剖析:六維力傳感器如何成為人機(jī)安全的關(guān)鍵屏障
- 4 清華跑出具身智能獨(dú)角獸:給機(jī)器人安上眼睛和大腦,融資近20億
- 5 特朗普要求英特爾首位華人 CEO 辭職
- 6 踢館大廠和微軟,剖析WPS靈犀的AI實(shí)用主義
- 7 騰訊 Q2 財(cái)報(bào)亮眼:AI 已成第二增長(zhǎng)曲線
- 8 谷歌吹響AI沖鋒號(hào),AI還有哪些機(jī)會(huì)
- 9 蘋(píng)果把身家押在Siri上:一場(chǎng)輸不起的自我革命
- 10 共探合作新機(jī)遇!江門(mén)市新會(huì)區(qū)(深圳)“AI + 機(jī)器人” 產(chǎn)業(yè)對(duì)接會(huì)成功舉辦