在圖像分類問題中溉知,為了了解神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)到了什么陨瘩,一個常用的方法就是找出圖像中對最后分類結(jié)果影響最大的區(qū)域,這種方法在文獻(xiàn)中有多種叫法级乍,如sensitivity maps, saliency maps, pixel attribution maps等舌劳,這里主要講基于梯度方法。
1.直接求梯度
考慮一個圖片分類系統(tǒng)玫荣,將輸入圖片x分為C個類別中的一個甚淡,對于每個類,都有一個函數(shù)將輸入x映射到類別空間的得分捅厂,分類結(jié)果則取決于哪個映射值最大贯卦,即
如果本身就是可導(dǎo)的,一個簡單的方法就是直接對其求x 的導(dǎo)數(shù)焙贷,有
這里表示x上的每個像素上的微小擾動對類別c得分的影響撵割。
這種方法在實際操作中確實能顯示出與分類結(jié)果相關(guān)的區(qū)域,但求得的saliency maps通常在視覺上有很多的噪點(對這些噪點作用目前還不清楚盈厘,有可能這些噪點看似隨機(jī)睁枕,實際上對網(wǎng)絡(luò)的運作有很大的影響官边,也有可能這些噪點本身就不重要)沸手,但正是因為這些噪點的存在外遇,導(dǎo)致只能大致確定相關(guān)區(qū)域的位置,而不能給出符合人類理解的結(jié)果契吉,如下圖跳仿。
2.平滑噪聲梯度
產(chǎn)生噪點的可能原因在于函數(shù)的導(dǎo)數(shù)在小范圍內(nèi)有很大的波動耸别,畢竟沒有任何理由要求該函數(shù)是平滑的荧恍,而且由于網(wǎng)絡(luò)通常采用ReLU作為非線性激活函數(shù),所以甚至不是連續(xù)可導(dǎo)的庸汗。
下面給一特定圖片加一微小的擾動惑灵,觀察其中一個像素的偏導(dǎo)數(shù)的變化情況(為說明波動的程度山上,取變化最大的像素)。
考慮到這種急劇的波動英支,在任何給定的像素點的直接梯度就不如局度平均梯度值來得有意義佩憾。
通過在輸入圖片多次加入隨機(jī)噪聲,對變換后圖像求并求均值干花,達(dá)到“引入噪聲”來“消除噪聲”的效果妄帘。
3.其他技巧
3.1 梯度取絕對值(符號僅代表方向,正負(fù)梯度處于同等地位)
3.2 限制異常像素值(例如將像素值最高的1%部分設(shè)為0)
3.3 將圖像與梯度相乘(缺點是當(dāng)圖像像素為零時池凄,則結(jié)果永遠(yuǎn)是零)
3.4 將smoothGrad方法(多次加噪求敏感圖抡驼,取平均)與其它基于梯度的方法結(jié)合
3.5 訓(xùn)練模型時數(shù)據(jù)加噪