我們都知道神經網路像乙個黑盒子一樣,輸入資料→訓練→得出模型,但我們一直不了解神經網路的內部是怎麼執行的?內部的各層要尋找什麼樣的特徵?為什麼訓練後是這個樣子的?這節課的主題是嘗試從人類的角度理解神經網路的內部結構和它到底在做些什麼。
訓練完網路後,根據模板匹配的思想(卷積核展示為的樣子就是它想要在裡尋找的東西),把卷積核拿出來,展示為,就叫做卷積核視覺化。
下面左邊第一幅圖是alexnet第一層卷積核視覺化的結果。它總共有64個卷積核,每個卷積核的形狀都是3*11*11,所以可以視覺化為64張11*11的彩色。對比各種網路的第一次卷積核視覺化結果,可以發現它們都是在尋找特定方向的邊緣(筆記一里的貓的實驗)和各種顏色。
第二層和之後的層就沒有那麼直觀了。第二層接受16個輸入(這是另乙個網路了),有20個卷積核,每個卷積核是7*7大小。所以第二層得到的卷積核是20*16*7*7大小的,16*7*7大小的卷積核無法展示成彩色,所以我們化為灰度圖來展示(需要把它的定義域改為0-255),總共有20*16個7*7的灰度圖。
視覺化後你可能會看到一些空間結構,但它並不能給你更直觀的感覺(比如:這個卷積核在尋找藍色,這個卷積核在尋找水平的邊等),因為它沒有直接連線到輸入影象。或許我們可以嘗試去看看最後一層表現了什麼(它直接連線到輸出)。
去均值,即將每一維特徵減掉各自的平均值
計算協方差矩陣 b=xtx
求協方差矩陣b=xtx的特徵值與特徵向量
對特徵值從大到小排序,選擇其中最大的k個。然後將其對應的k個特徵向量分別作為行向量組成特徵向量矩陣p
將資料轉換到k個特徵向量構建的新空間中,即y=px
直接視覺化中間層的卷積核沒有很直觀的解釋,但是我們可以視覺化中間層的啟用影象(就是經過啟用層後的影象)。在下圖可以看到它在尋找類似人臉的東西。
另乙個方法是視覺化最大化啟用影象塊:
隨便選擇乙個層和乙個通道,比如選擇alexnet的conv5層,這一層得到的資料是128*13*13的,然後我們選擇128個通道裡的第17個通道。
在這個網路上執行很多,記錄它們關於剛才選定的通道的值
視覺化那些使啟用影象最大化的影象塊
卷積層裡的每乙個神經元的感受範圍都只是輸入影象的一部分,這個方法可以讓你看到這個特定的神經元在尋找什麼。比如第一行的神經元可能在尋找乙個類似黑色圓圈的東西(可能在找眼睛)。下面的影象是在相同神經網路裡較高層神經元裡得到的,它們有更寬廣的感受範圍(因為它們在較高層)。可以看到第二行的神經元在尋找人臉。
另乙個想法是,想知道哪乙個部分的影象對神經網路的分類影響比較大。所以我們選擇遮擋一部分畫素,把它換成整幅影象畫素的平均值。然後在神經網路中執行影象,記錄遮擋影象的**概率。這個遮擋影象在不同區域會造成不同的**值,把這些**值的大小以顏色的深淺表示出來(顏色深的表示**的概率低,即該區域的畫素比較重要)。可以看到在大象的頭部的畫素比較重要。
顯著圖:計算顯著圖,可以讓我們知道神經網路到底關心哪部分的畫素。做語義分割也可以用顯著圖來實現,我們可以直接根據顯著圖進行分割,而不需要標籤資料。但是效果不太好,而且需要花費更長的時間。
引導式反向傳播依舊是想知道輸入圖形中的哪一部分影響內部神經元的分數。當你在反向傳播時只讓正的梯度通過relu會得到更好的結果。我們還可以知道影象中哪部分影響了神經元的分值。
使用梯度上公升來合成影象:我們不再優化神經網路中的權重,相反我們改變影象的畫素來使分類的分數最大化。除此之外我們還要一些正則項(我們即希望生成的影象得到更高的分數,也希望它看起來自然),如果沒有正則項,生成的影象可能得分很高,但是它看起來不像任何東西。
正則項可以用生成影象和原影象的l2距離來計算,或者其他距離。用梯度上公升來使神經元最大化可以知道神經元在找些什麼。加入更強的先驗也能得到更好的生成影象。
如果有一張大象的,我們想改變它的一些畫素,使計算機認為它是考拉,但是最後我們得到的影象和原來的非常相似(第二列的影象),但是它確實被認為是考拉了。
深度之眼cs231n第七期 筆記(五)
上一次講到,如果我們有乙個權重矩陣w,我們就可以得到各個類的分數,我們如何定義這個分數的好壞呢?我們可能覺得,只要真實分類的分數比其他都高就是好的。比如下圖中的第一列,貓的得分比青蛙的得分高,但比車的得分少,這就不太好 第二列中車的得分比其他兩個類的得分都高,這就很好 第三列中青蛙的得分比其他兩個都...
cs231n筆記總結
cs231n的課程以及作業都完成的差不多了,後續的課程更多的涉及到卷積神經網路的各個子方向了,比如語義分割 目標檢測 定位 視覺化 遷移學習 模型壓縮等等。assignment3有涉及到這些中的一部分,但需要深入了解的話還是得看 了。所以在看 前把之前已學的知識,筆記和作業 一起做個整理。部落格裡主...
CS231n理解筆記
linear classification notes 該方法的組成 乙個是評分函式 原始影象資料到類別分值的對映 乙個是損失函式 用來量化 分類標籤的得分和真實標籤之間的一致性。影象分類的任務是從已有的固定分類標籤中選擇乙個並分配一張影象,我們介紹了knn分類器,該分類器的基本思想是通過將測試影象...