IMAGENET-TRAINED CNNS ARE BIASED TOWARDS TEXTURE; INCREASING SHAPE BIAS IMPROVES ACCURACY AND ROBUSTNESS

Robert Geirhos 외 5 (2019)


CNN은 일반적으로 object의 shape를 학습한다고 생각되는데 최근 연구를 통해 이미지 texture의 역할이 중요하단 것이 밝혀졌다.
아래의 그림에서 (a)는 코끼리의 texture만을 나타냈고 (b)는 고양이의 이미지를 나타냈다. (a),(b)는 각각 코끼리와 고양이로 올바르게 분류했는데 코끼리의 texture를 입힌 고양이 shape인 (c)그림은 코끼리로 인식되고 있다. 즉, 이미지의 shape만으로 CNN이 물체를 분류하는 것은 아니다. image

본 논문에서는 CNN이 shape를 통해 물체를 분류한다는 가정을 shape hypothesis라 칭하고, shape보다 texture가 더 중요하다는 가정을 texture hypothesis라 한다. 실험을 위해서 shape와 texture가 섞인, 예를들어 코끼리texture를 가진 고양이shape 이미지를 준비한다. 이러한 이미지를 texture-shape cue conflict라 부른다.

결국 이 논문에서는 인간과 CNN이 각각 shape 기반으로 object를 분류하는지, texture 기반으로 분류하는지 알아보겠다는 것이다.

  • 첫 번째 실험 : greyscale, silhouette, edges, texture에 대해 CNN vs human image greyscale은 shape와 texture의 특징을 모두 갖고있으므로 CNN과 사람 둘다 잘 분류했다. 실루엣만 보이는 경우는 CNN이 사람보다 정확도가 떨어진다. edge만 있는 경우는 더더욱 떨어진다. 그리고 texture만 있는 경우에는 거의완벽하게 분류한다.
    즉, CNN은 texture가 없는 이미지에 사람보다 취약하다는 것을 의미한다.

  • 두 번째 실험 : texture-shape cue conflict에 대해 CNN vs human image 왼쪽으로 갈수록 shape기반 분류인데, human observer를 의미하는 빨간색은 전부 shape기반에 치우쳐져있고 CNN을 나타내는 파란색계열들은 대부분 texture기반에 치우쳐져있다. 따라서, CNN은 texture기반의 결정을 내린다고 할 수 있다.

그러면 CNN이 shape기반의 결정을 내리도록 개선할 수 있을까? 학습데이터에 따라 CNN의 성능이 달라진다. 먼저,shape feature만을 가진 이미지로 CNN을 학습한다고 가정하면 shape뿐 아니라 texture 및 다른 feature들에 대해서도 잘 대응할 수 있다. 그럼 반대로, 여러 feature들을 가진 이미지로 학습시킨 CNN은 shape feature만 가진 이미지에 대해 잘 반응할까? 정답은 그렇지 않다. 그러니까, 결론적으로 여러 feature들을 가지고 CNN을 학습시키면 그 CNN은 texture bias하게 된다.

아래 그림을 보면 빨간색이 사람, 주황색이 shape feature에 대해서만 학습한 모델, 파란색이 모든 feature에 대해서 학습한 모델인데
shape feature에 대해서만 학습한 모델이 좀더 shape에 편향적으로 변화되었음을 알 수 있다. image

그러면 shape에 대한 이미지 + 모든 feature를 포함한 이미지 섞어서 학습하면 더 개선되지 않을까?
image 위의 결과를 보면, SIN(shape only) + IN(all features) 일 때 성능이 가장 개선되었고 SIN+IN이후 IN에 대해 fine tuning까지 한 경우 가장 좋은 성능을 보인다.

근데 shape에 편향적인게 확실히 좋은게 맞는건가? ㅇㅇ그렇다. 일단 shape 편향적인게 distortion 및 noise에 robust하다.(그니까 사람 능력에 좀더 가까움) image 위의 결과를 보면, 모든 feature로 학습한 모델, 즉 texture에 편향적인 모델인 파란색이 가장 인간과 차이가 크고 shape에 대해서만 학습해서 좀 더 shape에 편향적이게 된 오렌지 색들은 인간에 좀더 가까워짐

근데 특이한 점은 앞서 SIN+IN으로 학습하고 IN을 fine tuning한 모델이 정확도 측면에서는 가장 좋은 성능을 보였는데 왜곡에 대한 robustness 측면에 있어서는 IN fine tuning한게 가장 좋은 건 아니다. 아래 테이블은 왜곡에 대한 error(mean Corruption Error) 를 보여주는데 대체로 SIN+IN일 때 오류가 적음. image (IN을 fine tuning할수록 학습 데이터에 적합하게 되면서 과잉적합되나?)