CS 공부/AI

CNN Visualization (결과 분석 기법)

imsmile2000 2023. 4. 3. 20:17

CNN Visualization이란?


  • CNN은 블랙박스 방식이다
    • 결과는 인간과 유사하게 또는 원하는대로 도출할 수 있지만 무엇을 근거로 그러한 결과가 나왔는지 알 수 없다

 

1. Feature analysis (모델의 특징 분석)  

  • Embedding Feature 분석 방법 (High Layer 해석)
    1. Nearest neighbors(NN) in feature space 
      • 단순한 픽셀 비교가 아니라 컨셉을 이해해서 물체의 위치변화에도 강함
      • query image와 비슷한 이미지를 DB에서 찾아서 나열하면 의미론적으로 유사한 이미지들끼리 모이게 됨
      • 특징과 유사한 이미지들을 묶어서 return
      • 전체적인 이미지 파악은 어려움
    2. Dimensionality reduction
      • 3차원 이상의 고차원의 분포를 저차원으로 차원축소하여 얻어내는 방법
      • t-SNE(t-distributed stochastic neighbor embedding): 높은 차원의 복잡한 데이터를 2차원에 차원 축소
        • feature space의 형상 시각화
        • 데이터 사이의 거리가 가까울수록 유사도가 크고, 멀수록 유사도가 작아진다

 

  • Activation investigation (Middle, High layer 해석)
    1. Layer activation
      • 각 layer의 hidden node를 파악할 수 있음 (얼굴을 찾는 노드인지, 계단을 찾는 노드인지)
        • AlexNet의 conv5의 138번째 채널은 얼굴을 찾고, 53번째 채널은 계단을 찾는다
        • 적당한 값으로 thresholding하여 mask 생성
    2. Maximally activating patches
      • feature map이 Maximally Activating 이미지 상의 어느 부분에 초점을 맞추는지 면밀하게 확인할 수 있다
      •  특정 layer 내 각 feature map이 커버하는 현실 이미지 상의 시각적 특징들 확인 가능
      • Patch 뽑는 과정
        1. 원하는 layer의 채널 선택
        2. 예제 데이터를 backbone network에 넣어서 각 layer의 activation 값을 모두 뽑음
        3. 가장 큰 activation 값을 가지는 위치 근방의 patch를 뽑음
    3. Class visualization
      • 특정 네트워크가 어떤 모습을 상상하고 있는지 확인 가능
      • Gradient ascent: 네트워크 가중치를 전부 고정시키고 gradient ascent를 통해 클래스 스코어가 최대화될 수 있도록 입력 이미지의 픽셀값을 바꿔주는 방법
        1. 임의의 아무 영상을 넣어 target class의 prediction 점수를 얻는다
        2. backpropagation을 통해서 입력단의 gradient를 구한다 (target class의 점수가 높아지는 방향으로)
        3.  이미지 업데이트
        4. 업데이트된 영상으로 1번~3번 여러번 반복 (초기 설정에 따라 결과가 다양해짐)

<NN> 3,5,8이 서로 유사한 것을 확인 가능 <Maximally activating image> 행/열별로 어느부분에 초점을 맞추는지 알 수 있음
<Gradient ascent> I&lowast; : 선택한 뉴런이 최대로 활성화되게 하는 이미지, f(I) : 선택한 뉴런의 value, R(I) : regularization term= &lambda;*(I의 L2 norm)

 

2. Sensitivity Analysis (민감도 분석, data에 집중) 

  • Saliency test
    1. Occlusion map: occlusion으로 이미지를 가림. 어떤 위치를 가리냐에 따라 occlusion score가 바뀜
      • 물체와 상관없는 영역일수록 점수가 높다, 물체가 있을수록 점수가 낮음
      • 모든 영역에 이미지를 가려보면서 heatmap을 만듦
    2. Backpropagation 이용
      • 결과물을 보고 결정적으로 영향을 미친 부분이 어디인지 heatmap 기법으로 나타내는 방법
        1. input 이미지의 class score을 얻음
        2. 입력 도메인까지 backpropagation해주고 여기서 얻은 gradient의 절대값을 취해줌
        3. 2에서 얻은 gradient 크기 map을 시각화

 

  • Backpropagaation-based Saliency
    1. Rectified unit (backward pass)
      • backaward 연산을 적용할 때  gradient 자체에 ReLU 적용
    2. Guided backpropagation
      • 양수의 Gradient값만을 사용하여 최적화 하는 기법
      • 조금 더 깨끗한 이미지를 얻을 수 있다

 

  • Class activation mapping
    1. CAM
      • 이미지의 어떤부분이 최종 결정에 기여하는지 시각화 (bbox)
      • Conv의 마지막 FC layer 대신 Global average pooling layer 통과시켜 새로운 weight 만들어냄
      • 데이터셋에서 위치정보를 주지않아도 위치를 파악해준다는 놀라운 사실이,,,!
      • 단점: 마지막 layer이 FC layer과 GAP으로 이루어져야하고 re-training이 필요하다
    2.  Grad-CAM
      • 기본 CNN이외에 필요한 backbone이 필요없어 일반화된 툴
      • CAM에서 Global average pooling 없이 FC layer가 두 개 존재 
      • 각 Feature map에 곱해줄 weight를 학습이 아닌 미분(gradient)을 통해 구하기 때문에 re-training 필요없음
      • CAM 계산식 유도 과정
        • neuron importance weight, a와 각 k개의 Feature map을 곱하여 weight sum of Feature map을 구함
          ReLU를 취하여 최종 Grad-CAM에 의한 Heatmap이 출력
        • https://wewinserv.tistory.com/143
 

CAM (Class activation mapping) 내용 정리 [XAI-2]

논문 제목 : Learning deep features for discriminative localization 논문 주소 : openaccess.thecvf.com/content_iccv_2017/html/Selvaraju_Grad-CAM_Visual_Explanations_ICCV_2017_paper.html ICCV 2017 Open Access Repository Grad-CAM: Visual Explanations F

wewinserv.tistory.com

 

<Guided backpropagation 결과>얼굴과 귀를 집중적으로 선명하게 표현
Grad-CAM 과정