본문 바로가기

딥러닝

[실험] Pixel 제거로 InputAttribution 평가하기


Weekly Experiment 1

 

딥러닝을 이용한 이미지 분류는 많은 곳에서 사용되며, 학습된 모델의 성능을 디버깅하는 방법은 Test Set에 대한 평가, Robustness 측정과 같은 방법이 있다. 또 다른 방법으로 모델이 입력이미지에 대해서 중요한 픽셀을 봤는지 확인하는 InputAttribution 방법이 있다. 이미지는 픽셀들로 구성되어 있으며, 각 픽셀은 서로 다른 중요도를 가지고 있다. 가령 참새의 이미지를 모델이 보는 경우, 배경에 해당하는 부분도 있고, 새의 이미지에 해당하는 부분도 있다. 모델이 새의 형태에 집중했다면, 이 모델이 제대로 학습된 것으로 확인할 수 있다. 이러한 픽셀 중요도가 존재한다는 가정은 모델의 의사결정의 근거를 찾는 InputAttribution 메소드 발전에 근간을 이룬다. 

이미지 출처:  Explaining Knowledge Distillation by Quantifying the Knowledge, Cheong et al., CVPR 2020


Input Attributions

입력기여도를 측정하는 메소드들은 다양하나, 모두 Output 에서 Input으로 시그널을 보내는 방식으로 이루어진다.  

가장 많이 사용하는 방식은 Gradient Signal을 이용하는 방법으로 Saliency 라고 이야기한다. Saliency기법은 크게

InputGrad / IntegratedGrad / SmoothGrad

등이 있으며, 해당 방법들은 미분가능한 딥러닝 모델이라면 모두 쉽게 구현할 수 있다. 

해당 메소드들은 입력기여도를 평가하는데 사용될 수 있으며, 만일 메소드가 제대로 동작한다면,

가장 중요한 픽셀에 높은 값을 보여준다. 


Removing Pixels

입력기여도를 평가하는 방법 중에 찾은 픽셀을 순차적으로 지워서 퍼포먼스 저하가 얼마나 일어나는지 확인하는 방식이 가장 많이 사용된다.  메소드가 중요한 부분을 찾았다면, 해당 부분을 지움으로써 퍼포먼스 저하가 심해질 것이고, 반대로 실제로 중요하지 않은 부분에 높은 값을 줬다면, 그 부분을 지움으로써 퍼포먼스 저하는 느릴 것이다.  지우는 방향은 크게 InputAttribution이 높은 픽셀을 우선적으로 지우는 Most Relevant-First (MoRF) 방식과 InputAttribution이 낮은 픽셀을 우선적으로 지우는 Least-Relevant-First (LeRF) 방식이 있다. 

 

MoRF 는 중요한 부분을 지우기 때문에, 성능이 낮을수록 좋다. 

LeRF는 필요없는 부분을 지우기 때문에 성능이 높을수록 좋다. 

출처: Distilled Gradient Aggregation: Purify Features for Input Attribution in the Deep Neural Network, Jeon et al., NeurIPS2022


Experiments

이 실험에서는 ResNet18 모델에 대해서 앞에서 소개한 세 개의 InputAttribution메소드들의 MoRF와 LeRF 측정을 목표로 한다.  ResNet은 Torch 에서 제공하는 ImageNet1k에 학습된 모델을 사용하였다.  먼저 각 Attribution 메소드들에 대해서 하이퍼파라미터는 다음과 같이 설정하였다. SmoothGrad 는 Perturbation하는 Sigma=0.15 샘플 수 M=25를 사용하였고, IG의 경우도 25개의 샘플을 사용하였다. 샘플 개수가 많아질 경우 Gradient Map에 대해서 더 정교한 형태를 얻을 수 있으나 ImageNet1K Validation 50,000개에 대해서 돌리는데 시간이 굉장히 오래걸린다.  그 이유는 Gradient를 계산할 때, 25개를 Batch로 돌리는 것이 아니라 각각 따로 돌려서 합치는 형태를 사용하기 때문이다. 가령 ResNet152의 경우, SmoothGrad를 계산하는데 24시간이 더 넘게 걸린다. 


Results

MoRF

IG의 경우 그 감소폭이 제일 크다.

따라서 IG는 중요한 부분을 더욱 빠르게 확인하는 것으로 사려된다.

 

LeRF

SmoothGrad 는 LeRF가 떨어지는 정도가 가장 낮은데, 이는 픽셀에서 입력에 필요하지 않은 부분들을 제대로 보기 때문이다. 바꿔말하면, 입력에 중요한 부분들의 경우 좀더 가중치가 더해지게 된다. IG값이 떨어지는 값이 더 높은데, 이는 값이 낮은 부분에도 중요한 픽셀을 포함하고 있기 때문이다. 이러한 현상의 원인은 중요하지 않은 부분에 Smoothing하여 값을 낮추기 때문으로 사려된다. 

예시) 배경이 사라진다.


Conclusion

딥러닝 모델은 입력을 해석하여 결정을 내린다. 자동적으로 학습하는 딥러닝의 특성상 입력이미지에서 중요한 부분을 제대로 봤는지 평가하는 것은 중요하며, Input Attribution 방법들은 입력 기여도를 평가함으로써 해당 위치를 알려주는 역할을 한다. 단순히 Gradient 시그널을 해석하는 것도 가능하지만 더욱 발전된 방법들 (SmoothGrad, IG)은 입력에서 더욱 중요한 부분을 찾는데 중요한 역할을 한다. 

 

Feedback

SmoothGrad는 샘플 하나당 계산을 해서 오래걸리는 반면, IG는 동일한 샘플 수라도 배치단위로 계산하기 때문에 빠르다. 시각적으로 SmoothGrad가 보기 좋은 이미지를 주며, 중요하지 않은 부분들을 잘 걸러내는 것으로 확인된다. IG는 중요한 부분을 잘 찾지만, 중요하지 않은 부분에도 기여도를 많이 주는 것 같다.