logo
Loading...

[求解] 關於解釋模型的學習: Grad-CAM 的一些疑惑 - Cupoy

嗨~ 各位好~ 最近在研究解釋模型的學習: Grad-CAM,大致理解這算法會針對輸入影像利用梯度的...

[求解] 關於解釋模型的學習: Grad-CAM 的一些疑惑

2021/02/04 下午 03:44
機器學習 A 咖共學計畫
Jeff
觀看數:45
回答數:2
收藏數:1

嗨~ 各位好~ 最近在研究解釋模型的學習: Grad-CAM,大致理解這算法會針對輸入影像利用梯度的概念去算出圖像特徵的權重(W),然後利用熱圖與原輸入影像疊加呈現。但對於這個方法一直有個疑問,就是模型學習完畢後所有的權重(W)都應該是固定的了,那為什麼這方法還需要特別用梯度去計算權重(W)? 歡迎各位強者幫忙解惑 謝謝! Reference: Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization https://arxiv.org/abs/1610.02391

回答列表

  • 2021/02/08 下午 01:59
    Patrick Ruan
    贊同數:0
    不贊同數:0
    留言數:1

    沒有進去看 paper 直接猜測一些可能性 XD...
    因為看到 heatmap 與 paper 第一句 “We propose a technique for producing "visual explanations" for decisions“ 猜想在做 explanation。 基本上模型是訓練後,參數權重是固定的。 我們換一個方式去了解模型學到什麼,每一組 convlution filter 在偵測什麼,還有模型判斷一張照片是大象是那些畫素的影響。
    **“模型判斷一張照片是大象是那些畫素的影響“** 這個方式可以輸入一張照片,找一張後段的 convolution 輸出,調整每一個畫素,看這個畫素的小改變會不會影響照片判斷是大象的決策,其實就是最後 softmax 輸出的機率值去對每一個點微分,就是對feature map 作 gradient。 底下的程式是 keras 大神的程式,第三段就是在做我上面所說的事。 https://github.com/fchollet/deep-learning-with-python-notebooks/blob/master/5.4-visualizing-what-convnets-learn.ipynb
    **“每一組 convlution filter 在偵測什麼”** 基本上是上面程式的第二段。 他也是模型權重固定,但是修正輸入照片的畫素,去讓 feature map 有最大值,這相當於是 gradient ascent。這裡所謂的 gradient 是 feature map 的每一畫素的結果平均值對輸入圖案的畫素作梯度。 希望是在講這個 XD.

  • 2021/02/09 下午 01:51
    Jeffrey
    贊同數:0
    不贊同數:0
    留言數:1

    模型學習完畢後所有的權重(W)都應該是固定的了,那為什麼這方法還需要特別用梯度去計算權重(W)? 補充說明一下, 模型學習完畢後所有的權重(W)都有一個版本, 但是基於應用場景與資料集不同, 其實是可以**_ trainable_**, 意思是可以透過重跑一次訓練流程再_**"被"**_更新.