안녕하세요 콥스랩(COBS LAB)입니다.
오늘 소개해 드릴 논문은 ‘Explaining in style: Training a gan to explain a classifier in stylespace’입니다.
해당 내용은 유튜브 ‘딥러닝 논문 읽기 모임' 중 ‘Explaining in style: Training a gan to explain a classifier in stylespace' 영상 스크립트를 편집한 내용으로, 영상으로도 확인하실 수 있습니다. (영상링크:https://youtu.be/pkbLrLSDQ9Q)
StylEX 논문은 분류기에 대한 설명을 새로운 접근법을 제시한 논문입니다. 위 그림을 보시면 다양한 특성들이 있게 되는데 다양한 특성들을 변화시키면서 그에 따른 결과를 시각화하고, 이를 통해서 이미지에 특성화된 설명을 제공하는 방법이라고 설명합니다.
Explaining a classifier를 설명드리겠습니다. 위 사진을 보시면 고양이인지 개인지 classifier가 0 또는 1로 분류하는 경우가 있습니다. 개와 고양이 분류에서 개인지 고양인지에 대한 결정은 이미지에서 다양한 특성에 따라서 결정될 수가 있습니다. 예를 들어서 여기에 있는 눈 모양이 될 수도 있고, 쫑긋한 귀가 고양이로 분류되는데 특성이 될 수가 있습니다. 하지만 이 본 논문에서는 왜 특정한 이미지가 고양이로 분류가 되었는지 이해할 필요가 있고 결과에 영향을 미치는 특성들을 발견하고 이를 시각화할 필요가 있다고 말하고 있습니다.
이전에 classifier를 설명할 때 접근 방법으로는 Heat-map과 같은 방법을 사용하였습니다. (b) 이미지를 보시면 중요한 이미지들이 하이라이트 되어서 한눈에 봐도 눈과 같은 부분이, 하이라이트 된 곳이 분류에 영향을 미친다는 것을 쉽게 알 수 있습니다. 하지만 더 세밀하게 눈의 사이즈가 영향을 미치는지, 아니면 눈의 동공 크기가 영향을 미치는지, 또는 눈의 모양인지 이렇게 눈의 무엇이 분류하는데 영향을 미치는지까지는 설명할 수 없다는 한계점을 가지고 있습니다. 즉, 이전에 attention map을 포함해서 (b) Grad-CAM 같은 방법들은 어떤 부분이 변화해야 되는지는 볼 수 있지만 이 부분에 어떻게 변화가 되어야 되는지는 설명할 수 없다는 한계점을 가지고 있습니다.
또 다른 방법으로는 한 클래스에서 다른 클래스로 이미지를 변형시켜 봄으로써 설명하는 Counter factual 방법이 있습니다. Counter factual은 input으로 X 대신에 X'가 들어왔을 때 output은 Y 대신 Y'로 바뀌게 됩니다. GANalyze는 한 클래스를 다른 클래스로 부드럽게 바꾸는 방법입니다. 하지만 본 논문에서는 이 방법이 모든 특성들을 한 번에 바꾸기 때문에 세밀하게 영향을 미치는 특성들을 찾기 어렵다는 한계를 제시하고 있습니다.
StyleX는 한 번에 하나의 특성만 변화시켜 Counter fatcutal 한 설명을 생성하고 다양한 설명들을 제공할 수 있다고 본 논문에서 설명하고 있습니다. 가장 먼저 자동적으로 분류기에서 분류에 영향을 미치는 특성들을 발견합니다. 위 그림을 보시면 attribute가 여덟 개가 있는데 이것들은 자동적으로 이미지에 대해서 분류에 영향을 미치는 특성들을 자동적으로 뽑게 됩니다. 예를 들어서 얼굴에 너비가 그 영향을 줄 수도 있고 또는 얼굴의 폭, 눈썹 같은 것들이 이런 특성에 포함될 수 있습니다. 그리고 이러한 특성들을 옆으로 좀 움직여 보면서 확률에 대한 변화를 확인해 보고 가장 영향을 많이 미치는 top-5나 k개의 특성들을 찾을 수 있다라고 설명합니다.
특정 이미지가 주어졌을 때 어떻게 영향을 미치는 특성들을 찾고, 이를 설명으로 시각화할 수 있는지 StylEX 구조에 대해서 말씀드리겠습니다. 가장 먼저 한꺼번에 아니라 각각의 특성을 찾기 위해서 stylegan2 구조를 baseline으로 사용하였고 이때 각각의 특성들을 뽑는 데 사용할 수 있는 StyleSpace를 사용합니다. 그림을 보시면 기존의 GAN 트레이닝 과정을 토대로 하고 있지만 이 StyleSpace가 classifier에 특성화된 특성들을 좀 포함할 수 있도록 stylegan2를 수정한 구조라는 것을 볼 수 있습니다. 기존에 GAN는 generator G 하고 discriminator d 가 동시에 학습이 되는데 논문에서 제시하는 방법은 추가적으로 reconstruction loss를 사용을 해서 Encoder E에서 generator G와 함께 트레이닝시키는 단계가 포함되어 있습니다. 그리고 또 중요한 부분은 트레이닝 과정의 Classifier를 통합한다는 것입니다. 구조를 StylEX를 통해서 분류기에 특정된 특성들을 포함할 수 있도록 generative 모델을 학습한다 설명합니다.
좀 더 자세하게 설명을 드리겠습니다. 가장 먼저 generator가 분류기를 만족할 수 있도록 트레인 시킵니다. 이를 위해서 인풋 이미지가 Encoder에 들어가게 됐을 때 latent vector인 w로 변환하게 됩니다. pre-train 된 classifier가 인풋 이미지에 대해서 output과 concat 되어 affine 변형을 통해 StyleSpace vector로 변형하게 됩니다. 이것은 Generator에서 생성된 이미지가 인풋으로 들어오는 original 이미지와 가깝게 생성할 수 있도록 construction loss를 사용하게 됩니다.
논문에서 중요하다고 말하고 있는 부분은 Encoder를 추가하는 부분입니다. 왜냐하면 어떤 인풋 이미지가 주어지더라도 분류기가 내리는 결정에 대해 설명할 수가 있고, Generator 모델이 classifier 로스를 이용함으로써 분류기에 특성화된 특성들을 학습할 수 있다는데 큰 의미를 가지고 있습니다.
본 논문에서는 의학분야 같은 시각적으로 미세하게 디테일한 부분들이 분류기에 중요한 영향을 미치기 때문에 generator에서 생성된 이미지랑 classifier의 아웃풋과 로스를 계산한다고 설명하고 있습니다. 이렇게 한 차례 StylEX가 학습하게 되면 중요하게 classifier에 영향을 미치는 특성들에 대해서 StyleSpace를 찾게 됩니다. 그리고 이 분류기에 특정된 특성들에 대한 StyleSpace에 대한 좌표를 찾게 되는데, 추후에 인풋 이미지에 대해서 Counter factual 한 설명을 생성할 수 있다고 말하고 있습니다.
위 알고리즘은 classifier가 특정된 특성들을 발견하기 위한 과정입니다. 그래서 StyleSpace의 어떤 좌표값들을 조정하면서 generator에서 생성된 이미지와 인풋 이미지와 생성된 차이 값을 확인하면서 확률을 확인할 수 있습니다. 즉, StyleSpace가 여러 개가 뽑히게 되면 만약에 S0가 입에 해당하는 부분이라고 생각하시면 S0부분에서 좌표값을 좀 수정을 함으로써 생성된 이미지로 확인하게 됩니다. 그때 변화되어 있는 이미지하고 classifier 로스를 이용해서 확률을 계산합니다. 확률을 보게 됐을 때 바뀐 이미지가 고양이와 가깝게 0으로 분류가 되는지 아니면 고양이가 아닌 강아지로 1로 분류가 되는지 확률에 변화를 바로 알 수 있습니다. 이러한 과정을 여러 번 반복하게 되면 이미지에 대해서 분류 확률이 최대가 되는 것들을 확인할 수 있기 때문에 이런 특성들 중에서 어떤 것들이 가장 큰 영향을 미치는지 k개의 탑 특성들을 찾을 수 있습니다.
(a)는 성별에 대한 분류기 예시입니다. StylEX의 구조가 attribute를 find 하는 알고리즘이 포함되어 있는데 이 알고리즘을 통해서 탑 특성들을 발견하게 되었고 (a)에서는 립스틱 유무라든지 아니면 눈썹의 두께가 attribute가 될 수 있습니다. 0에 가까울수록 여성으로 분류하고 1에 가까울수록 남성이라고 분류했을 때 눈썹의 두께에 따라서 확률이 달라지는 것을 확인할 수 있습니다.
attribute에 대한 StyleSpace를 각각 조정함으로써 변화하는 이미지에 대해 확률을 바로 확인할 수 있습니다. 논문에서는 병변 검출이나 식물 도메인 등 다양한 도메인에도 적용 가능하다고 설명합니다.
그래서 이미지 예시를 통해서 알 수 있는 것은 분류를 하는데 영향을 미치는 특성들을 분해해서 시각적으로도 분류 모델이 결정을 내리는 데 설명이 가능하다는 것을 보여줬습니다.
논문에서는 기존의 GAN 트레이닝 경우에 classifier를 통합하지 않기 때문에 classifier의 결정에 영향을 미치는 중요한 특성들을 나타내지 못할 수 있고 StyleSpace의 경우에는 불필요한 특성들까지도 나타낼 수 있다는 문제점을 제기하였습니다. 이를 극복하기 위해서는 StylEX 구조가 트레이닝 과정에서 classifier 모델을 통합하였고 이를 통해서 classifier specific 한 특성들을 찾는다라고 설명합니다.
이를 통해서 StylEX는 StyleGAN2를 baseline으로 사용해서 이미지마다 변화하는 다양한 특성들을 시각화할 수 있고, 이미지에 특성화된 설명들을 제공할 수 있다는 점이 가장 큰 효과라고 할 수 있습니다.
그래서 이것들이 인간이 이해하기 어렵거나 모호했던 다양한 도메인에도 적용해서 시각적으로 이해할 수 있는 설명을 제공할 수 있다고 말하고 있습니다.
다음은 결과입니다. 위 예시는 StylEX를 통해서 classifier의 결정에 대해서 설명 가능하다고 볼 수 있는 예시입니다. 왼쪽 상단에 있는 숫자가 의미하는 것은 노화에 대한 확률입니다. 그래서 어떤 특정 이미지에 대해서 노화에 대한 분류를 설명하기 위해서 뽑혀 있는 attribute들을 조정을 하게 됩니다. 그래서 한꺼번에 조정을 하는 것이 아니라 만약에 스마일 하고 있는 모습이다, 또는 얼굴의 좁이가 이 정도 있다 등 이런 특성들을 하나씩 바꿔 가면서 각각의 특성들의 좌표를 변화할 때마다 classifier의 결과가 어떻게 달라지는지 확인할 수 있습니다.
여기서는 한 가지 특성들도 많은 영향을 미치지만 1개의 특성과 3개의 특성들을 합쳐서 변화시켜 본다고 했을 때 classifier의 decision을 바꾸기도 한다고 말하고 있습니다.
그래서 이를 통해서 StyleX를 사용하게 됐을 때 분류의 영향을 미치는 속성들을 여러 가지 속성 세트로 분류할 수 있고, 특성 1과 특성 3을 바꾸면 아웃풋도 다르게 결정이 되거나 변화한다는 Counter fatcutal 설명을 생성할 수 있다고 설명하고 있습니다.
마지막으로 논문의 결론입니다. StylEx는 어떤 이미지가 주어지더라도 classifier에 결정에 대해서 다양한 Counter fatcutal 한 설명들을 생성할 수 있다. 그리고 이러한 특성들은 직접적으로 classifier 결정에 영향을 끼치고 Counter fatcutal을 토대로 다양한 특성들에 대해서 설명하는 것은 모호했던 classification 과정에서 새로운 인사이트를 제공할 수 있는 key라고 논문에서 말하고 있습니다.
댓글