使用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)者/最終用戶(hù)或業(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è)字
圖片新聞
最新活動(dòng)更多
-
7月8日立即報(bào)名>> 【在線會(huì)議】英飛凌新一代智能照明方案賦能綠色建筑與工業(yè)互聯(lián)
-
7月22-29日立即報(bào)名>> 【線下論壇】第三屆安富利汽車(chē)生態(tài)圈峰會(huì)
-
7.30-8.1火熱報(bào)名中>> 全數(shù)會(huì)2025(第六屆)機(jī)器人及智能工廠展
-
7月31日免費(fèi)預(yù)約>> OFweek 2025具身智能機(jī)器人產(chǎn)業(yè)技術(shù)創(chuàng)新應(yīng)用論壇
-
免費(fèi)參會(huì)立即報(bào)名>> 7月30日- 8月1日 2025全數(shù)會(huì)工業(yè)芯片與傳感儀表展
-
即日-2025.8.1立即下載>> 《2024智能制造產(chǎn)業(yè)高端化、智能化、綠色化發(fā)展藍(lán)皮書(shū)》
推薦專(zhuān)題
- 1 AI 眼鏡讓百萬(wàn) APP「集體失業(yè)」?
- 2 豆包前負(fù)責(zé)人喬木出軌BP后續(xù):均被辭退
- 3 一文看懂視覺(jué)語(yǔ)言動(dòng)作模型(VLA)及其應(yīng)用
- 4 “支付+”時(shí)代,支付即生態(tài) | 2025中國(guó)跨境支付十大趨勢(shì)
- 5 中國(guó)最具實(shí)力AI公司TOP10
- 6 特斯拉Robotaxi上路,馬斯克端上畫(huà)了十年的餅
- 7 國(guó)家數(shù)據(jù)局局長(zhǎng)劉烈宏調(diào)研格創(chuàng)東智
- 8 AI的夏天:第四范式VS云從科技VS地平線機(jī)器人
- 9 張勇等人退出阿里合伙人
- 10 AI視頻,攪動(dòng)1.5萬(wàn)億市場(chǎng)