萬字長文:特徵可視化技術(CAM)

2021-02-27 CVer

點擊上方「CVer」,選擇加"星標"置頂

重磅乾貨,第一時間送達

前言

眾所周知,深度學習是一個"黑盒"系統。它通過「end-to-end」的方式來工作,輸入數據例如RGB圖像,輸出目標例如類別標籤、回歸值等,中間過程不可得知。如何才能打開「黑盒」,一探究竟,讓「黑盒」變成「灰盒」,甚至「白盒」?因此就有了「深度學習可解釋性「這一領域,而CAM(Class Activation Mapping)技術就是其中之一,其利用特徵可視化來探究深度卷積神經網絡的工作機制和判斷依據。本文通過七篇論文來論述該技術,並附帶代碼解析。

CAM是什麼?

CAM全稱Class Activation Mapping,既類別激活映射圖,也被稱為類別熱力圖、顯著性圖等。是一張和原始圖片等同大小圖,該圖片上每個位置的像素取值範圍從0到1,一般用0到255的灰度圖表示。可以理解為對預測輸出的貢獻分布,分數越高的地方表示原始圖片對應區域對網絡的響應越高、貢獻越大。

為了更直觀表達,一般將灰度圖轉化為彩色圖。例如可以使用Opencv 函數轉換:

img_color = cv2.applyColorMap(img_gray, cv2.COLORMAP_JET) # 將灰度圖轉化為偽色彩圖,                                                                     # COLORMAP_JET 為輸出的顏色模式

可視化的時候,可以利用熱力圖和原圖疊加的形式呈現。如下圖,顏色越深紅的地方表示值越大。可以認為,網絡預測「狗」這個類別時,紅色高亮區域是其主要判斷依據。

A.原始圖片  B. CAM灰度圖  C. CAM彩色熱圖 D. 原圖+CAM熱圖疊加

CAM有什麼用?

CAM主要有以下作用:

有助於理解和分析神經網絡的工作原理及決策過程,進而去更好地選擇或設計網絡。例如對於分類網絡,如果參考CAM相當於除了分類accuracy以外,對網絡又提出了更高的要求:不但要求預測準確率高,還需要網絡提取到我們需要的特徵。下圖可以看出,不同網絡對相同的數據的CAM是有較為明顯的差異。當然即便是同一個網絡,不同訓練過程也會導致CAM有很大的差異。

A.原始圖片   B. Resnet50 預測結果  C. Resnet34 預測結果

利用可視化的信息引導網絡更好的學習,例如可以利用CAM信息通過"擦除"或""裁剪""的方式對數據進行增強;

利用CAM作為原始的種子,進行弱監督語義分割或弱監督定位。既然CAM能夠cover到目標物體,所以可以僅利用分類標註來完成語義分割或目標檢測任務,極大程度上降低了標註的工作量,但這對CAM的要求更高。一般情況下,分類網絡只會提取到最具有判別性的特徵。所以也有很多做法來提高分類網絡的CAM精準度,如下圖。

插圖來自: Tell Me Where to Look: Guided Attention Inference Network

如何獲取CAM?

卷積神經網絡的卷積操作可以看做是濾波器對圖片進行特徵提取,通過滑動窗口的方式實現,因此特徵層和輸入圖片存在空間上的對應關係。如上圖表示某層特徵圖,

所以,總結CAM獲取的步驟如下:

「step1」:提取需要可視化的特徵層,例如尺寸為

「step2」:獲取該張量的每個channel的權重,即長度為

「step3」:通過線性融合的方式,將該張量在channel維度上加權求和,獲取尺寸為

「step4」:對該map進行歸一化,並通過插值的方式resize到原圖尺寸;

類似目標檢測領域 anchor-base和anchor-free, CAM也有兩種不同的陣營gradient-based和gradient-free。做法不同,其本質類似: 「提取目標特徵層,並進行加權融合獲取激活圖(CAM)。主要的區別在於上述step2敘述的特徵層之間融合權重的選擇上」。gradient-based利用梯度獲取權重,gradient-free 則不需要梯度信息。本文根據時間順序,解析7篇比較重要CAM獲取方式的論文,幫助讀者對網絡處理信息流有更深入的理解。"Talk is cheap. Show me the code"。本文也會給出核心代碼實現的解釋。參考代碼連接:  https://pypi.org/project/torch-cam/

本文涉及的論文如下:

「gradient-based」:

Smooth Grad-CAM++ (2019.08)

「gradient-free」:

開山之作:利用GAP獲取CAM

「論文標題」:  Learning Deep Features for Discriminative Localizatiion

「論文地址」:  https://arxiv.org/pdf/1512.04150.pdf

首先介紹一下GAP(Global average pooling,全局平均池化 )操作。參考上圖, 這個概念來自network in network,利用全局平均池化獲取特徵向量,再和輸出層進行全連接。GAP直接將特徵層尺寸

GAP的好處是:

可以減少參數的數量,可以看出, 不管

本文的做法通過上圖就可以很直觀理解,

其中

該方法的缺點是只能適用於最後一層特徵圖和全連接之間是GAP操作。如果不是,就需要用戶修改網絡並重新訓練(或 fine-tune)。所以對本文簡單概括即為:修改網絡全連接為GAP形式,利用GAP層與全連接的權重作為特徵融合權重,對特徵圖進行線性融合獲取CAM。

「核心代碼解讀」:

代碼非常簡單, 提取到特徵圖和目標類別全連接的權重,直接加權求和,再經過relu操作去除負值,最後歸一化獲取CAM,具體如下:

# 獲取全連接層的權重self._fc_weights = self.model._modules.get(fc_layer).weight.data# 獲取目標類別的權重作為特徵權重weights=self._fc_weights[class_idx, :]# 這裡self.hook_a為最後一層特徵圖的輸出batch_cams = (weights.unsqueeze(-1).unsqueeze(-1) * self.hook_a.squeeze(0)).sum(dim=0)# relu操作,去除負值batch_cams = F.relu(batch_cams, inplace=True)# 歸一化操作batch_cams = self._normalize(batch_cams)

更通用的做法:Grad-CAM

「論文標題」: Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization

「論文地址」: https://arxiv.org/pdf/1610.02391.pdf

上文的局限性就是網絡架構裡必須有GAP層,但並不是所有模型都配GAP層的。而本文就是為克服該缺陷提出的,其基本思路是目標特徵圖的融合權重

其中

「A.  grad-CAM和 CAM(這裡指上一篇論文的做法)的區別?」

CAM 只能用於最後一層特徵圖和輸出之間是GAP的操作,grad-CAM可適用非GAP連接的網絡結構;CAM只能提取最後一層特徵圖的熱力圖,而gard-CAM可以提取任意一層;

「B. 目標類別score

論文原文中目標類別score是指網絡未經過softmax的得分,但是某些代碼實現當中也使用了通過softmax後的。二者有無區別?下面我們通過公式推導一下。因為這兩種做法僅僅相差一個softmax,所以對softmax的求導。假設softmax層有C個輸出,記為:

則輸出

所以特徵融合的權重則變成:

可以看出,二者的梯度差異就是softmax輸出的多一項「丟失精度」的風險。所以「目標類別score建議使用不經過softmax的值」

「核心代碼解讀」:

僅需要對目標類別的score進行求導, 然後追蹤到目標特徵圖的梯度, 對該梯隊進行element-wise求平均(GAP操作)即獲得特徵融合的權重。具體如下:

# 利用onehot的形式鎖定目標類別one_hot = np.zeros((1, output.size()[-1]), dtype=np.float32)one_hot[0][index] = 1one_hot = torch.from_numpy(one_hot).requires_grad_(True) # 獲取目標類別的輸出,該值帶有梯度連結關係,可進行求導操作one_hot = torch.sum(one_hot * output)self.model.zero_grad()one_hot.backward(retain_graph=True) # backward 求導# 獲取對應特徵層的梯度mapgrads_val = self.extractor.get_gradients()[-1].cpu().data.numpy()target = features[-1].cpu().data.numpy()[0, :] # 獲取目標特徵輸出weights = np.mean(grads_val, axis=(2, 3))[0, :] # 利用GAP操作, 獲取特徵權重cam = weights.dot(target.reshape((nc, h * w)))# relu操作,去除負值, 並縮放到原圖尺寸cam = np.maximum(cam, 0)cam = cv2.resize(cam, input.shape[2:])# 歸一化操作batch_cams = self._normalize(batch_cams)

比Grad-CAM更進一步:Grad-CAM++

「論文標題」: Grad-CAM++: Improved Visual Explanations for Deep Convolutional Networks

「論文地址」: https://arxiv.org/pdf/1710.11063.pdf

本文的提出是為了優化Grad-CAM的結果,定位會更精準,也更適用於目標類別物體在圖像中不止一個的情況。Grad-CAM是利用目標特徵圖的梯度求平均(GAP)獲取特徵圖權重,可以看做梯度map上每一個元素的貢獻是一樣。而本文認為梯度map上的「每一個元素的貢獻不同」,因此增加了一個額外的權重對梯度map上的元素進行加權。其中該權重

其中

「核心代碼解讀:」

這裡值得說明的是, 上面的公式有二次偏導和三次偏導,論文中進行了冪次方的轉化,實現更容易。

## 獲取特徵權重的過程# 反向傳播self._backprop(scores, class_idx)# 注意,這裡用乘法,因為論文中將2次偏導和3次偏導進行了2次方和3次方的轉化grad_2 = self.hook_g.pow(2)grad_3 = self.hook_g.pow(3)# 獲取alpha權重mapalpha = grad_2 / (2 * grad_2 + (grad_3 * self.hook_a).sum(axis=(2, 3), keepdims=True))# 利用alpha 權重map去獲取特徵權重return alpha.squeeze_(0).mul_(torch.relu(self.hook_g.squeeze(0))).sum(axis=(1, 2))

結合梯度平滑策略:Smooth Grad-CAM++

「論文標題」: Smooth Grad-CAM++: An Enhanced Inference Level Visualization Technique for Deep Convolutional Neural Network Models

「論文地址」: https://arxiv.org/pdf/1908.01224.pdf

該論文做法是結合smoothGrad來優化CAM效果,首先解釋一下smoothGrad。對於分類網絡,最終分類類別取決於哪個類別的score最大,公式為:

其中

該方法雖然能顯示出與分類結果相關的區域,但如圖所示,存在很多噪聲,且很難探究噪聲的組成。smoothGrad的做法也很簡單,即為多次輸入加入隨機噪聲的圖片,對結果並求平均,用以消除輸出saliency maps的"噪聲",達到「引入噪聲」來「消除噪聲」的效果。核心公式如下:

回到Smooth Grad-CAM++,如下圖所示,和Grad-CAM++的區別在於特徵圖融合權重的求法上, 對原圖多次增加高斯噪聲,對目標類別對特徵圖的梯度求平均。

上圖中,對於Grad-CAM++中的

「核心代碼解讀」:

這裡給的實現smoothGrad操作是作用在alpha的2次偏導和3次偏導上, 實現方式不同,本質一樣。

for i in range(self.n_samples): # 進行n_samples次加噪聲操作    self.model.zero_grad()    # 輸入圖片增加高斯噪聲    x_with_noise = torch.normal(mean=x, std=std_tensor).requires_grad_()    score = self.model(x_with_noise)    score[0, idx].backward(retain_graph=True) # 求梯度    activations = self.values.activations    gradients = self.values.gradients    n, c, _, _ = gradients.shape    # 獲取alpha, 和grad-cam++一致    numerator = gradients.pow(2)    denominator = 2 * gradients.pow(2)    ag = activations * gradients.pow(3)    denominator += \    ag.view(n, c, -1).sum(-1, keepdim=True).view(n, c, 1, 1)    denominator = torch.where(        denominator != 0.0, denominator, torch.ones_like(denominator))    alpha = numerator / (denominator + 1e-7)    relu_grad = F.relu(score[0, idx].exp() * gradients)    # 獲取weights    weights = (alpha * relu_grad).view(n, c, -1).sum(-1).view(n, c, 1, 1)    # 對特徵層加權融合, 並進行relu+歸一化操作    cam = (weights * activations).sum(1, keepdim=True)    cam = F.relu(cam)    cam -= torch.min(cam)    cam /= torch.max(cam)	total_cams += camtotal_cams /= self.n_samples # 求平均操作return total_cams.data

gradient-free的做法:score-CAM 和 ss-CAM

「論文標題」: Score-CAM: Score-Weighted Visual Explanations for Convolutional Neural Networks

「論文地址」: https://arxiv.org/pdf/1910.01279.pdf

本文摒棄了利用梯度獲取特徵權重的做法,作者認為:

對於深度神經網絡,梯度可能是存在噪聲的,並存在飽和問題。

利用Grad-CAM很容易找到錯誤置信度的樣本,既具有更高權重的激活圖對網絡輸出的貢獻較小的例子。

因此本文提出了gradient-free 的做法。首先,作者定義了CIC( (Increase of Confidence)的概念,既相對於baseline圖片的置信度增量,公式如下:

其中X為輸入圖片,

本文的做法流程為:

解釋一下:對獲取的特徵圖進行channel-wise遍歷,對每層特徵圖進行上採樣+歸一化,與原始圖片進行pixel-wise相乘融合,然後送進網絡獲取目標類別score(softmax後),減去baseline的目標類別score,獲取CIC。再進行softmax操作來保證所有CIC之和為1。最後將CIC作為特徵融合權重融合需要可視化的特徵層。

「核心代碼解讀」:

值得注意的是,計算CIC時默認使用的baseline為全黑的圖片,既全0的矩陣,因此CIC score不需要減去baseline的score。

with torch.no_grad():# gradient-free, 所以不需要計算梯度    for i in range(K): # 對K層特徵圖進行遍歷操作          # 獲取第i層特徵圖,並進行上採樣操作          saliency_map = torch.unsqueeze(activations[:, i, :, :], 1)          saliency_map = F.interpolate(saliency_map, size=(h, w), mode='bilinear')          # 歸一化          norm_saliency_map = (saliency_map - saliency_map.min()) /                               (saliency_map.max() - saliency_map.min())          # 利用第i層特徵圖作為mask覆蓋原圖,重新送入網絡獲取對應類別得分          output = self.model_arch(input * norm_saliency_map)          output = F.softmax(output)          score = output[0][predicted_class]          # 利用該得分作為權重對該層的特徵圖進行加權線性融合, baseline默認為全0的圖,所以這裡直接          # 用該得分作為特徵權重          score_saliency_map +=  score * saliency_map    # relu去除負值    score_saliency_map = F.relu(score_saliency_map)    # 歸一化    score_saliency_map = (score_saliency_map - score_saliency_map.min())/                                                (score_saliency_map_max - score_saliency_map.max())    # score_saliency_map 為所求    return score_saliency_map

「論文標題」: SS-CAM: Smoothed Score-CAM for Sharper Visual Feature Localization

「論文地址」: https://arxiv.org/pdf/2006.14255v1.pdf

本文和score-CAM的關係類似於smooth Grad-CAM++ 和 Grad-CAM++的關係。本文同樣是利用了smoothGrad技術來降低輸出噪聲。關於smoothGrad平滑策略, 本文給出了兩種做法,一種是噪聲增加在特徵圖上,一種是噪聲增加在輸入圖上。這兩種做法在論文給出的不同數據集上的測試指標也互有高低,具體選擇也依情況而定。

利用Ablation分析的方法:Ablation-CAM

「論文標題」: Ablation-CAM: Visual Explanations for Deep Convolutional Network via Gradient-free Localization

「論文地址」: https://openaccess.thecvf.com/content_WACV_2020/papers/Desai_Ablation-CAM_Visual_Explanations_for_Deep_Convolutional_Network_via_Gradient-free_Localization_WACV_2020_paper.pdf

本文利用ablation分析來確定特徵圖上每個單元的重要程度。Ablation Study 可以理解為通過控制變量地進行移除各種組件等來探究各個因素對於模型整體貢獻的強弱多寡,找到對性能最主要的影響因素,這裡不對該理論作過多介紹。直接看文章的做法。

由於計算

然後和Grad-CAM一致,對特徵圖利用該權重進行融合+relu去負值,如下:

一句話概括就是遍歷地將每層特徵圖置0後再進行網絡前向獲取目標類別得分, 該值與原始得分的相對大小作為特徵圖融合權重。論文實驗表明, 該方法是優於grad-CAM的.

後記

本文針對CAM的兩種方式gradient-based和gradient-free進行了梳理,由於水平問題,可能有些地方理解不特別到位。拋磚引玉,希望能讓讀者對該任務有一個更直觀的感受。

下載:CVPR /  ECCV 2020開原始碼

在CVer公眾號後臺回覆:CVPR2020,即可下載CVPR 2020代碼開源的論文合集

在CVer公眾號後臺回覆:ECCV2020,即可下載ECCV 2020代碼開源的論文合集

重磅!CVer-論文寫作與投稿交流群成立

掃碼添加CVer助手,可申請加入CVer-論文寫作與投稿 微信交流群,目前已滿2400+人,旨在交流頂會(CVPR/ICCV/ECCV/NIPS/ICML/ICLR/AAAI等)、頂刊(IJCV/TPAMI/TIP等)、SCI、EI、中文核心等寫作與投稿事宜。

同時也可申請加入CVer大群和細分方向技術群,細分方向已涵蓋:目標檢測、圖像分割、目標跟蹤、人臉檢測&識別、OCR、姿態估計、超解析度、SLAM、醫療影像、Re-ID、GAN、NAS、深度估計、自動駕駛、強化學習、車道線檢測、模型剪枝&壓縮、去噪、去霧、去雨、風格遷移、遙感圖像、行為識別、視頻理解、圖像融合、圖像檢索、論文投稿&交流、PyTorch和TensorFlow等群。

一定要備註:研究方向+地點+學校/公司+暱稱(如論文寫作+上海+上交+卡卡),根據格式備註,可更快被通過且邀請進群

▲長按加微信群


▲長按關注CVer公眾號

整理不易,請給CVer點讚和在看

相關焦點

  • 跟我學萬字長文:最前沿的特徵可視化(CAM)技術
    因此就有了「深度學習可解釋性「這一領域,而CAM(Class Activation Mapping)技術就是其中之一,其利用特徵可視化來探究深度卷積神經網絡的工作機制和判斷依據。本文通過七篇論文來論述該技術,並附帶代碼解析。CAM是什麼?
  • 萬字長文:深度卷積神經網絡特徵可視化技術(CAM)最新綜述
    因此就有了「深度學習可解釋性「這一領域,而CAM(Class Activation Mapping)技術就是其中之一,其利用特徵可視化來探究深度卷積神經網絡的工作機制和判斷依據。本文通過七篇論文來論述該技術,並附帶代碼解析。CAM是什麼?
  • CNN 可視化技術總結(三):類可視化
    前面我們介紹了兩種可視化方法,特徵圖可視化和卷積核可視化,這兩種方法在論文中都比較常見,這兩種更多的是用於分析模型在某一層學習到的東西。在理解這兩種可視化方法,很容易理解圖像是如何經過神經網絡後得到識別分類。    然而,上次我在知乎看到一個通過yolov3做跌倒檢測,希望加上人臉識別進行多任務學習從而提高準確率的提問。
  • 卷積網絡可解釋性復現 | Grad-CAM | ICCV | 2017
    因此很多學者提出了各種各樣的可視化來解釋的方法。我個人嘗試過的、可以從一定角度進行解釋的可視化方法有:t-sne降維,attention可視化,可變卷積的可視化等,但是其實這些的可視化方法,並不能直接的對模型進行解釋,只是能說明模型分類是準確的。
  • 首次擺脫對梯度的依賴,CMU、武大等開源Score-CAM:基於置信分數的...
    而對於卷積神經網絡,目前最常見的是通過可視化的方式來解釋模型的決策(下文中可解釋性與可視化將不再區分)。2.主流的視覺可解釋性方法2.1 基於梯度的可解釋性基於梯度的可視化是通過將目標類別上的決策分數往原始圖像上求取梯度得到,可視化結果如上圖(左)。
  • 人工智慧黑盒揭秘:深度神經網絡可視化技術
    深度神經網絡的可視化作為理解人工智慧系統的主要技術,模型可視化是一個由來已久而且寬泛的話題。模型可視化與數據可視化屬於不同的範疇,數據可視化通過降維,主成分分析等技術來分析數據的結構,模型可視化針對的是對機器學習模型本身的理解。
  • CNN的一些可視化方法
    首先,站在自動特徵提取或表示學習的角度來看,深度學習還是很好理解,即通過一個層級結構,由簡單到複雜逐步提取特徵,獲得易於處理的高層次抽象表示。其次,現在也已經有很多方法對神經網絡進行分析了,特別是一些可視化方法,可以很直觀的展示深度模型的特徵提取過程。
  • CNN 的一些可視化方法
    首先,站在自動特徵提取或表示學習的角度來看,深度學習還是很好理解,即通過一個層級結構,由簡單到複雜逐步提取特徵,獲得易於處理的高層次抽象表示。其次,現在也已經有很多方法對神經網絡進行分析了,特別是一些可視化方法,可以很直觀的展示深度模型的特徵提取過程。
  • CNN的一些可視化方法!
    首先,站在自動特徵提取或表示學習的角度來看,深度學習還是很好理解,即通過一個層級結構,由簡單到複雜逐步提取特徵,獲得易於處理的高層次抽象表示。其次,現在也已經有很多方法對神經網絡進行分析了,特別是一些可視化方法,可以很直觀的展示深度模型的特徵提取過程。
  • CNN 可視化技術總結(二):卷積核可視化
    上篇文章我們介紹了特徵圖可視化方法,對於特徵圖可視化的方法(或者說原理)比較容易理解,即把feature map從特徵空間通過反卷積網絡映射回像素空間。    那捲積核怎樣可視化呢,基於什麼原理來可視化?卷積核的尺寸一般只有3x3, 5x5大小,如何可視化?本文將介紹這個兩個內容。
  • 界面可視化技術直觀揭示水生植物根際異質性氧環境變化特徵和機制
    因此,開展根際微環境特徵研究,對揭示界面汙染過程與控制機制具有重要意義。  根際環境具有明顯的微域性、動態性和複雜性的特點,而現有研究手段存在界面破壞性、一維、低分辨、操作繁瑣等不足,無法準確捕獲根際環境界面參數變化信息;而採用二維、高分辨並且可實時監測的界面可視化技術,則可全面闡釋生態微界面過程和機制。
  • PyTorch模型訓練特徵圖可視化(TensorboardX)
    0、前言本文所有代碼解讀均基於PyTorch 1.0,Python3;本文為原創文章,初次完成於2019.03,最後更新於2019.09;最近復現的一篇論文一直都難以work,上了特徵圖可視化後一下子就找到了問題所在,所以今天想梳理一下PyTorch裡面的特徵圖可視化。
  • 谷歌大腦研究員詳解特徵可視化
    這些圖像識別技術背後,通常是深度神經網絡。本文引用地址:http://www.eepw.com.cn/article/201711/371232.htm  不過,神經網絡究竟是怎樣認識圖像的?  △特徵可視化能夠告訴我們神經網絡在圖片中尋找的是什麼  特徵可視化這個強大的工具,就能幫我們理解神經網絡內部的世界,知道它們的工作原理。
  • 松下氣球無人機Ballooncam投入體育賽事
    (原標題:松下氣球無人機Ballooncam投入體育賽事)
  • 萬字長文概述NLP中的深度學習技術
    第一章:簡介自然語言處理(NLP)是指對人類語言進行自動分析和表示的計算技術,這種計算技術由一系列理論驅動。NLP 研究從打孔紙帶和批處理的時代就開始發展,那時分析一個句子需要多達 7 分鐘的時間。到了現在谷歌等的時代,數百萬網頁可以在不到一秒鐘內處理完成。
  • 基於VR/AR/MR的複雜產品可視化平臺技術
    本期課程的重點是虛擬實境技術在高端製造行業的應用,分為以下五個方面:VR/AR/MR平臺技術要點及特性、VR/AR/MR平臺在複雜產品虛擬樣機設計的應用、VR/AR/MR平臺在複雜產品展覽展示的應用、VR/AR/MR平臺在複雜產品試驗和保障的應用、 車間數字孿生及可視化系統案例。
  • 關注可視化文本分析中的技術優勢——基於全國教育科學規劃教育技術類課題的命題分析
    本文由《現代遠程教育研究》雜誌授權發布作者:鬱曉華摘要可視化文本分析表達了一種對文本數據運用交互式圖形呈現方式,實現知識發現的信息分析技術和過程,其應用過程一般分為文本處理、可視化呈現和交互理解三個階段。
  • 「技術綜述」深度學習可視化都有哪些要點?
    這其中有一些卷積核為灰度圖,說明三個通道的對應參數相近,學習到的是與顏色無關的特徵。有的為彩色圖,說明3個通道的特徵差異大,學習到的是與顏色有關的特徵。這與上面人眼和感知特性也是相通的,在底層,學習到的是邊緣,形狀,顏色等敏感等信息。細心的讀者應該可以注意到,上面的參數,具有一定的互補性和對稱性。
  • 人機互動頂級會議CHI 2020論文收錄結果出爐 微眾銀行AI可視化論文...
    近日,ACM CHI 2020(ACM SIGCHI Conference on Human Factors in Computing Systems)長文錄用通知公布,微眾銀行AI團隊與騰訊覓決、天衍AI實驗室及香港科技大學共同研究打造的智慧馬拉松項目論文「MaraVis: Representation
  • 谷歌的新CNN特徵可視化方法,構造出一個華麗繁複的新世界
    近日,來自谷歌大腦和谷歌研究院的一篇技術文章又從一個新的角度拓展了人類對神經網絡的理解,得到的可視化結果也非常亮眼、非常魔性,比如下面這樣,文中的結果也在Twitter上引發了許多關注和討論。用優化方法形成可視化作者們的目標是可視化呈現讓網絡激活的那些特徵,也就是回答「模型都在圖像中找什麼特徵」這個問題。