인공신경망이 학습한 feature들이 무엇인지를 파악하고 싶음
=> 어떤 feature가 중요한 것인지 알아낼 수 있음
인공신경망의 판단의 근거를 알 수 없음 -> 안전성의 문제
=> 자율주행을 할 때, 브레이크를 밟는 output책임소재 등
인공신경망이 사람이 생각하지 못한 판단의 근거를 알아냄
=> 알파고가 사람이 두던 기보와 다른 묘수를 만듦
=> 근데 이건 완전 새로운걸 만들었다기 보다는 아마 사람이 파악하지 못할 수준까지 feature등이 쌓여서 그렇게 된 듯.
설명이 가능한 AI라는 명칭으로 XAI(Explainable AI)도 있음.
gradient를 이용해 인공신경망을 설명
Classification class node 기준으로 feature map 상의 어떤 spatial한 위치가 해당 node에 영향을 많이 줬는지 표시.
=> 각 변수의 기능들을 잘 모르겠음.... 추후 긴 시간투자가 필요할듯 ...
=> relu1_1과 비교해 relu5_3(high level)이 사람이 봤을때도 구별할 수 있는 결과값을 가진다.
예를 들어,
CNN이 각각의 사진들을 Predicttion을 사막, 자동차 유리로 하였는데
Grad-CAM을 이용해 CNN이 아래의 모래 부분을 특정, 유리의 동그란 부분을 특정 해서 잘못된 결과를 도출했다는 것을 확인 할 수 있었음.
위의 스샷의 예시는 아래의 의사도 간호사로 예측했는데 그 Grad-CAM을 통해 그 근거를 찾을 수 있었다.
그 근거는 바로 헤어와 얼굴을 인지하면서 여자라는 점이 큰 이유로 작용했는데 이것은 데이터셋이 간호사에 여자의 특징들이 많이 들어간 이유였다.(bias)
이러한 에러의 문제의 원인을 특정해내 해결할 수 도 있다.
그래서 성비를 적절하게 반영했더니 세번째 사진처럼
청진기의 위치에 따라 판단을 하는걸로 바뀐 것을 확인할 수 있었음.
Grad-CAM을 이용해 주요 위치를 특정한 후 작업이 가능해진다.
예를 들어, 우리가 해본 semantic segmentaion에는 라벨링이라는 엄청난 비용이 드는데 Grad-CAM을 이용하면 라벨링이 필요 없이 detecting을 진행할 수 있다.