可視化和理解
這里主要是對CNN中間的層的結果可視化
-
濾波器可視化
直接可視化網絡各層的濾波器權重,高層濾波器的可視化結果趣味性較低,而底層濾波器通常對應邊緣、紋理等基礎視覺特征
(“高層濾波器” 通常指的是網絡中靠后的卷積層所包含的濾波器)
-
最后一層特征分析
提取最后一層全連接層的高維特征向量,通過近鄰搜索找到特征空間中相似的圖像,比像素空間的近鄰搜索更符合語義相似性。
利用主成分分析PCA 或 t-SNE等降維算法,將高維特征向量映射到二維空間,可視化特征分布,直觀展示不同類別的聚類情況
-
激活值可視化
將卷積層的特征圖可視化為灰度圖像,觀察神經元對輸入圖像的響應,通過最大激活補丁方法(Maximally Activating Patches),篩選出能最大程度激活特定通道的圖像補丁,理解該通道關注的視覺模式
-
遮擋實驗與顯著性圖
-
遮擋實驗 Occlusion Experiments
通過遮擋圖像的不同區域,繪制分類概率的熱力圖,判斷哪些區域對分類結果影響最大(比如遮擋小豬頭部會顯著降低豬類別的概率)
-
顯著性圖 Saliency Maps
作用:判斷哪些像素對分類重要
計算類別得分相對于圖像像素的梯度,取絕對值后在RGB通道上取最大值,以及結合GrabCut進行無監督分割,得到對分類起關鍵作用的像素區域(比如狗類別的顯著性圖集中在狗的輪廓區域)
-
-
反向傳播Backprop 與梯度上升Gradient Ascent
-
引導反向傳播
通過限制ReLU層僅反向傳播正梯度,生成更清晰的中間神經元響應圖像,展示神經元關注的圖像區域
就是通過引導反向傳播可視化中間特征,即選擇單個中間神經元并計算其值對圖像像素的梯度
-
梯度上升
步驟:初始化圖像、前向計算分數、反向傳播求梯度、更新圖像
通過優化生成合成圖像,最大化特定神經元或類別得分(加入L2正則化等約束使圖像更自然)
還可以使用更好的正則化方法(如高斯模糊、裁剪小值像素等)
-
基于神經網絡可視化一些相關的應用
-
欺騙性圖像 / 對抗樣本 Fooling Images / Adversarial Examples
生成步驟:從任意圖像出發,選擇類別,修改圖像最大化類別,至網絡被欺騙
通過修小修改圖像(人眼難以察覺),使網絡誤分類(比如將大象誤分類為小狗),揭示網絡對細微擾動的敏感性
-
DeepDream
通過放大網絡某層的神經元激活值,迭代優化圖像,生成具有夢幻風格的圖像(比如將星空圖像轉化為充滿眼睛和紋理的抽象圖案)。
核心是通過梯度上升最大化層激活(指讓CNN中特定層的神經元激活值盡可能增大,在CNN中,當輸入圖像經過各層的卷積和池化等操作時,每一層的神經元會根據輸入產生相應的輸出值,這些輸出值就是神經元的激活值)的平方和,過程中使用圖像抖動、梯度歸一化等技巧增強效果。
-
特征反演 Feature Inversion 與紋理合成 Texture Synthesis
-
特征反演
給定圖像的CNN特征向量,重建出與之匹配且自然的圖像,通過總變差(Total Variation)正則化保證圖像平滑
-
紋理合成
-
近鄰方法:生成像素時復制輸入中最近鄰的鄰域
-
Gram矩陣法
步驟:預訓練CNN、計算輸入紋理各層激活和Gram矩陣、從隨機噪聲初始化生成圖像、計算損失并反向傳播更新
利用Gram矩陣(衡量特征通道間的共現關系),從隨機噪聲生成與輸入紋理相似的大尺寸圖像,不同層的Gram矩陣對應不同尺度的紋理特征
-
-
-
神經風格遷移 Neural Style Transfer
-
原理
結合內容圖像的特征(通過特征重建損失)和風格圖像的Gram矩陣(通過風格損失),生成兼具內容與風格的圖像
-
快速風格遷移
訓練前饋神經網絡實現實時風格遷移,通過感知損失替代傳統損失函數,并使用實例歸一化(Instance Normalization)提升效果
(前饋神經網絡(Feedforward Neural Network,FNN)是一種最基本的神經網絡結構,屬于深度學習中的一種模型。它的特點是信息從輸入層逐層向前傳播,經過隱藏層(如果有的話),最終到達輸出層,且在傳播過程中沒有反饋或循環。)
-
生成式模型
-
無監督學習 監督學習對比
-
監督學習:數據為(x,y),(x為數據,y為標簽),目標是學習x到y的映射函數
示例:分類、回歸、目標檢測、語義分割、圖像描述等
-
無監督學習:數據僅為x(無標簽),目標是學習數據的潛在結構
示例:聚類、降維、特征學習、密度估計等
(K-means聚類、主成分分析(PCA,降維)、自編碼器(特征學習,通過編碼器和解碼器重建輸入))
-
監督學習和無監督學習的核心差異:是否依賴標簽(無監督學習不依賴標簽)
-
-
生成模型
-
定義:給定訓練數據,生成與訓練數據同分布的新樣本(訓練數據服從P_data(x),生成樣本服從P_model(x))
-
目標:是使P_model(x)接近P_data(x)
-
類型:
顯式密度估計(明確定義P_model(x))(強調模型能夠“說清概率”,模型會直接給出概率分布的數學表達式,能夠計算任意樣本x的概率值P_model(x))
隱式密度估計(僅能從P_model(x)采樣,不明確定義)(強調模型能夠“產出樣本”,模型不提供P_model(x)的數學表達式,無法直接計算樣本x的概率,但能通過模型生成符合該分布的樣本)
-
應用:生成藝術作品、超分辨率、時間序列模擬等
-
模型:
主要講解三種主流模型:PixelRNN/CNN、VAE、GAN
-
-
PixelRNN/CNN(顯式)
- 基于全可見信念網絡,用鏈式法則將圖像概率分解為像素的條件概率乘積
- PixelRNN:用LSTM建模像素間依賴,從角落開始生成像素,生成速度慢
- PixelCNN:用CNN建模上下文區域依賴,訓練可并行(更快),但生成仍需順序進行
- 可計算顯式概率p(x),樣本質量好,但順序生成效率低
- 改進方法:門控卷積層、殘差連接等(PixelCNN++)
-
變分自編碼器(VAE)(顯式)
- 自編碼器:自編碼器通過編碼器-解碼器重建輸入,用于特征學習
- VAE原理:引入概率視角,假設數據由潛在變量z生成,通過編碼器
近似后驗分布,優化似然下界(含重建損失和KL散度) - 訓練:最大化下界,使生成樣本接近訓練數據,潛在分布接近先驗(如高斯分布)
- 生成過程:從先驗采樣z,通過解碼器生成x
- 優點:原理嚴謹,潛在表示可解釋
- 缺點:樣本較模糊,優化下界而非精確似然
-
生成對抗網絡(GAN)(隱式)
-
原理:生成器G從噪聲生成樣本,判別器D區分真實與生成樣本,二者構成博弈(G視圖欺騙D,D試圖準確區分)
-
訓練:交替優化D(梯度上升)和G(梯度下降,最大化D的誤判概率)
- 為什么使使用梯度上升方法來優化D?
- 判別器(D)的目標是最大化對 “真實樣本判為真、生成樣本判為假” 的概率,判別器的核心任務是學習一個函數,輸出樣本為真實數據的概率(范圍在 0 到 1 之間)。訓練時,對于真實樣本,希望判別器輸出盡可能接近 1;對于生成器生成的假樣本,希望輸出盡可能接近 0。這種 “最大化正確分類概率” 的目標,在數學上對應最大化判別器的損失函數(如交叉熵損失),而梯度上升正是用于最大化函數值的優化方法 —— 通過計算損失函數對判別器參數的梯度,沿著梯度方向更新參數,使損失函數值不斷增大,從而提升判別器的區分能力
- 生成器(G)的目標是最小化判別器的區分能力(即最大化判別器的誤判概率),因此使用梯度下降來優化 —— 沿著損失函數梯度的反方向更新參數,使生成的樣本更難被判別器識破
-
卷積架構:生成器用反卷積,判別器用卷積,遵循DCGAN設計準則
-
應用:
生成高質量圖像,支持潛在空間插值(如“微笑女性 - 中性女性 + 中性男聲 = 微笑男性”),應用于域遷移(如馬 → 斑馬)
-
優缺點:樣本質量頂尖,但訓練不穩定,無顯式密度函數
-
-
三種生成模型對比:
PixelRNN/CNN:顯式密度,似然優化,生成慢
VAE:下界優化,潛在表示有用,樣本較模糊
GAN:博弈機制,樣本最佳,訓練復雜