Sieci neuronowe od podstaw do nowoczesnej AI · Interpretacja i wizualizacja sieci neuronowych
GradCAM: gradient-weighted class activation maps
Interpretacja i wizualizacja sieci neuronowych
Wprowadzenie
GradCAM (Selvaraju et al. 2017) to chyba najczęściej używana w praktyce metoda wizualizacji „gdzie sieć patrzy" przy podejmowaniu decyzji klasyfikacyjnej. Generalizuje wcześniejszą Class Activation Map (CAM, Zhou et al. 2016) na dowolną architekturę CNN — nie wymaga GAP+Linear w głowicy. Algorytm jest elegancki: dla wybranej klasy c liczymy gradient logitu y^c względem map aktywacji A^k z konkretnej (zwykle ostatniej) warstwy konwolucyjnej, uśredniamy ten gradient po wymiarach przestrzennych otrzymując wagi α_k^c, a następnie liczymy ważoną sumę map aktywacji z aplikacją ReLU: L_GradCAM^c = ReLU(Σ_k α_k^c · A^k). Wynik to mapa o wymiarach przestrzennych ostatniej warstwy konwolucyjnej (typowo 7×7 lub 14×14 dla ImageNet), którą upskalujemy do rozdzielczości obrazu. Lekcja przechodzi przez: (1) intuicję dlaczego gradient miarodajnie waży „ważność" kanału dla danej klasy, (2) rolę ReLU w finalnej formule, (3) kompatybilność z dowolną CNN (VGG, ResNet, DenseNet, MobileNet), (4) zastosowanie do innych zadań (image captioning, VQA), (5) różnice między GradCAM, GradCAM++ (Chattopadhay et al. 2018) i HiResCAM (Draelos & Carin 2020), (6) typowe pułapki interpretacyjne i sanity checks (Adebayo et al. 2018), (7) typowe błędy implementacyjne.