chapter 12 視覺化與理解

2021-09-23 14:27:50 字數 2510 閱讀 6648

目前來說cnn對我們來說都是乙個黑箱子,這一節我們深入cnn內部來觀察其構成。

第一層卷積層由16個3×7×7的卷積核構成。由於影象是rgb三通道的,所以我們的卷積核也是三通道,於是我們可以將每乙個卷積核視作一幅,進而了解其想要得到的東西:有向邊。

第二層卷積層由20個16×7×7的卷積核構成。雖然這裡我們無法用rgb影象來表示,但我們可以嘗試用乙個有16個灰度級的影象來表示。但這並沒有什麼意義,因為第二層的輸入資料並非人類能夠理解的,而是一些從原始中提取出的特徵。所以,我們需要更好的方法來了解第二層的意義。

在最後一層,我們有乙個1000類的得分表,來告知我們的分類得分。而在前一層,我們用乙個4096的向量(根據神經網路型別不同)來表示並輸入到最後一層。

在最後一層發生了什麼呢?

在這裡插入描述

前面我們提到了畫素空間的最近鄰法,如上圖左邊所示,檢測待訓練的對應位置畫素與已知種類的畫素的差,並計算損失,損失低於閾值的就歸於一類。cnn的最後一層也做的是類似的事,不過不同的是,這裡計算的是經過計算的特徵與預設特徵間的差,或者說是輸入與各個種類在【;gfv』f**srfgty-ooo3d特徵空間的差。

但我們仍可以較直觀地觀察它,我們使用t-sne方法對影象經過計算後得到的4096維向量降維為二維,可以得到下圖。可以看出,在相同位置的影象有著明顯的相似度。

我們也可以視覺化中間層:

另外一種視覺化的思路是遮擋:

使用不同大小和位置的滑塊遮擋影象,觀察分類概率的變化,來判斷對判定特定事物,什麼特徵是重要的。影象裡越深的顏色對應概率下降越多的部位。

另乙個思路是顯著圖:和遮擋的思路類似,計算每個畫素變化後分類的變化,選取使變化最大的畫素,提取這些畫素。

另乙個思路是引導式反向傳播:對於乙個特定的影象,改變畫素的值,觀察某些神經元的變化,和顯著圖的思路是相似的,區別在於不再觀察分類值,而是神經元的值:

首先輸入一幅白或經過處理的噪音,然後正向傳播計算分類值,再反向傳播得到每個畫素的特定神經元的梯度,最後向著增加梯度的方向對畫素值進行改變。

再這樣做時,往往會增加乙個正則化項以防止影象過度擬合神經元的特徵,從而變得太過奇怪。

通過這種方法我們還可以愚弄影象,我們給定一幅,並告訴演算法這是另一類物體,讓演算法修改這副以使它符合我們給定類別的特徵。結果表明,這是可以做到的,而且處理過的與原的差異非常小:

首先使用cnn執行乙個網路,記錄其中乙個特徵值,然後根據該特徵重構影象,從而了解該特徵抓取的影象型別。

可以看出,隨著層數的加深,紋理特徵仍努力保留,但顏色卻發生了很大的變化。

將一張傳入乙個已經訓練好的cnn,選定其中一層啟用,其大小是chw,可以看做是h x w 個c維向量。從這個啟用圖中任意選取兩個c維向量,做矩陣乘法可以得到乙個矩陣。然後對啟用圖中任意兩個c維向量的組合,都可以求出這樣乙個矩陣。把這些矩陣求和並平均,就是gram matrix。

gram matrix其實是feature之間的偏心協方差矩陣(即沒有減去均值的協方差矩陣)。其計算了每個通道特徵之間的相關性,考察哪些特徵是此消彼長的,哪些特徵是同時出現的。我們認為gram matrix度量了中的紋理特性,並且不包含影象的結構資訊。事實上,使用協方差矩陣代替gram matrix也能取得很好的效果,但是gram matrix有更高效的計算方法:將啟用圖張量chw展開成c*hw的形式,然後將其乘以其轉置,即得到gram矩陣。(

然後我們類似特徵反演的思想,生成與原始影象具有相同gram矩陣的影象。

這裡的損失是各層損失的加權和。

這一思想給我們新的啟發:如果選擇兩幅風格不同的,並將其中一幅作為內容影象,另一幅作為風格;我們最小化前者的特徵重構損失,及後者的gram矩陣損失,在進行一些輪的迭代後,我們就能得到一幅同時擁有前者的空間結構和後者紋理結構的。

視覺化與可視分析專案設計

1.revoler visual analysis relation evolution in temporal data 基於時序資料時序關係演化的可視分析 生活和科學研究中常存在各種的時序資料,其中蘊含了時序關係且這樣的關係往往發生演變。本研究則通過視覺化與可視分析的方式,從巨集觀與細節的角度對...

卷積神經網路視覺化理解

看了cs231的課程,想自己嘗試做下視覺化,權當加深對卷積神經網路的理解吧。課程 課程裡提到第一層卷積一般做的是傳統視覺的工作,主要提取一些有向邊,視覺化卷積核的原因是類似模板匹配的思想啥的,具體我也沒有深究。我自己的看法是,視覺化卷積核,權重大的位置說明該點對輸出啟用影響大,第一層卷積恰好對應影象...

視覺化程式設計與螢幕適配

xib storyboard auto layout size classes xib 編譯之前 nib 編譯之後 xib是做什麼的?xib 代替了之前寫的view,目的是減少 視覺化拖拽 優點 方便 快捷 直觀 缺點 不精細 容易出錯 使用不熟練的情況下 使用場景 簡單直觀的頁面適合xib 複雜頁...