利用Python實現卷積神經網路的視覺化

2021-08-17 15:30:28 字數 1713 閱讀 6222

對於深度學習這種端到端模型來說,如何說明和理解

其中的訓練過程是大多數研究者關注

熱點之一,這個問題對於那種高風險行業顯得

尤為重視

,比如醫療

、軍事等。在深度學習中,這個問題被稱作「黑匣子(

black box

)」。如果不能解釋模型的工作

過程,我們怎麼能夠就輕易相信模型的輸出結果呢?

以深度學習模型檢測癌症腫瘤為例,該模型告訴你它能夠檢測

出癌症的準確率高達

99%,但它並沒有告訴你它是如何工作並

給出判斷結果

的。那麼

該模型是在核磁共振

掃瞄**

中發現了重要線索嗎?或者僅僅是將掃瞄結果上的汙點錯誤地認為是腫瘤呢?

模型的輸出結果

關係到病人的生死問題

及**方案

,醫生是不能承擔起這種錯誤的。

在本文中,將**如何視覺化卷積神經網路(cnn),該網路在計算機視覺中使用最為廣泛。首先了解cnn模型

視覺化的重要性,其次介紹視覺化的

幾種方法,

同時以乙個用例幫助讀者更好地理解

模型視覺化這一概念

。我有幾張阿里雲幸運券分享給你,用券購買或者公升級阿里雲相應產品會有特惠驚喜哦!把想要買的產品的幸運券都領走吧!快下手,馬上就要搶光了。

1.卷積神經網路模型視覺化的重要性 正如

上文中介紹的癌症腫瘤

診斷案例

所看到的

,研究人員

需要對所設計模型的工作原理及

其功能掌握清楚,這點至關重要。一般而言,一名深度學習研究者應該記住以下幾點:

1. 理解模型是如何工作的

2. 調整模型的引數

3. 找出模型失敗的原因

4. 向消費者/終端使用者或業務主管解釋模型做出的決定

現在讓我們看乙個

例子,視覺化乙個神經網路模型有助於理解其工作原理和提公升模型效能。

曾幾何時,美國陸軍希望使用神經網路自動檢測偽裝的敵方坦克。研究人員使用50張迷彩坦克**及50張樹林**來訓練乙個神經網路。使用有監督學習方法來訓練模型,當研究人員訓練好網路的引數後,網路模型能夠對訓練集做出正確的判斷——50張迷彩坦克

全都輸出「yes」,50張樹林**

全都輸出「no」。但是這並不能保證模型對於新

的樣本也能正確分類。聰明的是,研究人員最初拍攝了200張**,其中包含了100張迷彩坦克**、100張樹木**。從中分別選取50張**合計100張**作為訓練集,剩餘的100張**作為測試集。結果發現,模型對測試集也能正確分類。因此,

研究人員

覺得模型

沒有問題了,就將最終成果交付給軍方。原以為軍方會很滿意這份研究成果,結果軍方做出的反饋是他們進行測試後發現效果並不好。

研究人員感覺此事有點蹊蹺,為什麼之前測試時百分百準確,而軍方測試

的時候又掉鍊子

了呢?最後終於發現,原來是研究者的資料集出現了問題,採集迷彩坦克的時候是陰天,而採集樹林的時候是晴天,神經網路最終學會的是區分晴天和陰天,而不是區分迷彩坦克和樹林。這真是令人哭笑不得啊,那造成這個問題的主要原因還是沒有弄清楚模型的具體的工作原理

及其功能

TensorFlow實現高階的卷積神經網路

本人使用的資料集是cifar 10。這是乙個經典的資料集,許多 也都是在這個資料集上進行訓練。使用的卷積神經網路是根據alex描述的cuda convnet模型修改得來。在這個神經網路中,我使用了一些新的技巧 1 對weights進行了l2的正則化 2 將影象進行翻轉 隨機剪下等資料增強,製造了更多...

基於tensorflow2實現卷積神經網路

利用tensorflow2中的api實現乙個簡單的卷積神經網路,完成梯度下降的操作並繪製訓練集和測試集準確率曲線。資料集在這裡 資料分布 訓練集數量為209,測試集數量為50 import numpy as np import matplotlib.pyplot as plt import tens...

theano卷積神經網路實現

參考文獻 卷積是什麼 定義 在泛函分析中,卷積 旋積或卷積 英語 convolution 是通過兩個函式f 和g 生成第三個函式的一種數學運算元,表徵函式f 與g經過翻轉和平 移的重疊部分的面積。公式 theano實現 theano.tensor.signal.conv2d 區域性感知 權值共享 減...