ImageNet-Trained CNNs Are Biased Towards Texture; Increasing Shape Bias Improves Accuracy and Robustness

Inc Lomin's avatar
Jul 31, 2019
ImageNet-Trained CNNs Are Biased Towards Texture; Increasing Shape Bias Improves Accuracy and Robustness
 
 

Introduction

CNN은 물체를 어떻게 인식하는지에 대한 근원적인 질문에 대한 대답 중 가장 직관적으로 받아들여지는 대답은, CNN들이 low-level features (e.g. edges)와 complex shapes들을 조합하여 물체를 판별해낸다는 것입니다. 이러한 가설은 이미 경험적으로 많은 논문들에서 visualize나 실험 등으로 뒷받침되어 있습니다.
한편, 이와는 달리 CNN object recognition에서 물체의 texture가 중요하다는 주장도 있습니다. 전체 형상을 무너뜨리고 texture만 남긴 이미지도 원래대로 분류하거나, receptive field size를 작게 만들어도 ImageNet에서 좋은 성능을 보여주는 등, CNN은 딱히 형상이 없어도 texture 만으로도 물체 분류가 가능해 보이기도 합니다.
이렇게 서로 상반된 두 개의 가설 중 어느 쪽이 맞는지 밝혀내기 위해서 저자들은 shape vs. texture의 다양한 실험을 하였습니다. 다음 그림은 이 논문에서 실험하고자 하는 바를 직접적으로 표현하고 있습니다.
notion image
CNN은 코끼리의 가죽을 보고 81.4%의 confidence로 코끼리라고 분류하며, 고양이의 실루엣이 드러난 사진을 보고 71.1%의 confidence로 고양이라고 분류합니다. 하지만 고양이의 사진에 코끼리 가죽의 texture가 stylize된 이미지를 보여주자 코끼리로 분류하는데, 심지어 63.9%로 꽤 높게 확신합니다. 이 실험으로부터 '코끼리의 텍스처를 가진 고양이'는 사람에게는 여전히 고양이로 보이지만 CNN에게는 코끼리로 보인다는 것을 알 수 있으며, 'texture hypothesis'를 뒷받침하는 증거가 됩니다.
이 논문은 CNN이 texture를 물체 분류에 이용하는 방향으로 bias를 가지고 있다는 사실에서 출발합니다. 또한 학습 과정에서 이러한 bias를 인위적으로 바꾸는 방법을 제시하고, bias가 바뀌었을 때 성능이 어떻게 좋아지는지를 다양한 실험을 통해 보여주고 있습니다.

Method

Psychophysical Experiments

사람의 시각 인지와 CNN의 인지를 비교하기 위해, 97명을 대상으로 48,560개의 이미지 분류를 실험하였습니다. 각 실험에서 참여자들은 300ms 동안 fixation square, 다음 300ms동안 stimulus 이미지에 노출됩니다. 다음 full-contrast pink noise mask를 200ms동안 보면서 feedback processing이 일어나지 않게 한 다음, 1500ms 동안 16개의 카테고리(16-class-ImageNet; airplane, bear, bicyble, bird, boat, bottle, car, cat, chair, clock, dog, elephant, keyboard, knife, oven, truck) 중 하나를 클릭하여 응답합니다. 이 화면에서 카테고리 아이콘들은 4*4 격자로 배열되어 있는 등 모든 실험들은 잘 통제된 psychophysical lab setting에서 수행되었습니다.
이 실험에 사용한 것과 동일한 이미지들을 CNN 실험에도 사용했습니다. 실험 대상 CNN은 ImageNet에서 pre-train된 4개의 CNN(AlexNet, GoogLeNet, VGG-16, ResNet-50)입니다.
 

Datasets (Psychophysics)

CNN과 사람들이 texture와 shape 중 어느 쪽에 기대어 물체를 분류하고 있는지를 판별하기 위해 6개의 실험을 진행하였습니다. 각각의 실험에 사용된 이미지들은 다음과 같습니다:
- Original: 카테고리별로 10개의 물체 이미지이며 배경은 흰색
- Greyscale: skimage.color.rbg2gray를 이용하여 변환
- Silhouette: Bounding contour를 실루엣으로 정의한 후, 배경을 하얗게, 전경을 까맣게 하여 생성 (A.6)
- Edge: MATLAB의 canny edge extractor를 이용해서 생성
- Texture: 16개의 카테고리별로 3개씩 자연 텍스쳐 이미지들이며, 이 텍스쳐들은 동물의 살갗, 털, 인조물, 혹은 물체들이 반복되어 진열된 형태 등을 포함
- Cue conflict: texture와 shape가 일치하지 않도록 인위적으로 생성한 이미지로, Texture dataset의 이미지를 style로, Original dataset의 이미지를 내용으로 하여 iterative style transfer 생성 (이 실험에서는 각 카테고리당 80장씩 총 1280장)
notion image
notion image
Cue conflict 실험의 통제를 위해서 원래의 이미지 (original, texture)를 4개의 CNN들이 모두 올바르게 분류한 경우에만 해당 이미지를 style transfer하여 실험에 사용했습니다. Cue conflict 실험에서 참여자들에게는 '정답이 없으니 주관적으로 추측해서 선택하라'는 지시사항이 전달되었습니다.

Stylized-ImageNet (SIN)

ImageNet의 각 이미지에서의 원래 texture를 제거하고, 임의로 style을 페인팅하여 새로운 데이터셋을 만들었습니다. Style transfer에는 AdaIN fast style transfer(Huang&Belongie, 2017)를 사용하였고, stylization coefficient \alpha=1.0의 값을 사용하였습니다. Style source로는 79,434개의 페인팅이 포함된 Kaggle의 'Painter by Numbers' 데이터셋을 이용하였습니다. 아래의 그림은 ImageNet의 ring-tailed lemur(왼쪽)에 열 개의 각각 다른 painting으로 style transfer를 한 예제입니다.
notion image
 

Results

Texture vs Shape bias in humans and ImageNet-trained CNNs

Original dataset과 Texture dataset 모두에서 사람과 CNN들은 물체를 잘 인식합니다. Greyscale 이미지의 경우에는 여전히 형태와 질감을 동시에 지니고 있어서, 사람과 모든 CNN들에서 잘 인식되는 것을 확인할 수 있었습니다. 하지만 전경을 검정색으로 채워버린 실루엣의 경우, CNN들의 정확도는 사람보다 현저히 떨어집니다.
notion image
다음으로는 텍스처와 형태가 일치하지 않는 물체들을 분류하는 cue conflict 실험 결과입니다. 사람들은 shape category에 강하게 편향된 (95.9%) 응답을 보였으며, 반대로 CNN들은 texture에 더 의존하여 분류하는 것을 확인할 수 있었습니다. (VGG-16: 17.2% shape vs. 82.8% texture; GoogLeNet: 31.2% vs. 68.8%; AlexNet: 42.9% vs. 57.1%; ResNet-50: 22.1% vs. 77.9%)
notion image

Overcoming the texture bias of CNNs

앞의 실험결과로부터 ImageNet-trained CNN들은 사람과 달리 texture에 편향되어 물체를 분류하는 것을 확인했습니다. 그 이유로 Brendel&Bethge(2019)에서는 ImageNet 자체가 단순히 local information만 가지고 높은 정확도로 풀 수 있는 문제여서라는 이유를 들고 있습니다. 지엽적인 텍스쳐 정보만으로도 물체를 구별할 수 있기 때문에, 굳이 전체 형상을 파악하는 것 보다는 텍스쳐 특징만을 판별하는 방향으로 학습된다는 것입니다.
이 주장을 확인해보기 위해 ResNet-50을 SIN 상에서 학습시켜 보았습니다. R-50을 ImageNet (IN)에서 학습하고 테스트하면 top-5 accuracy가 92.9%가 되는 반면, SIN에서 학습하고 테스트하면 79.0% 밖에 되지 않습니다. 또한 IN-trained R50을 SIN에서 테스트하면 16.4%, SIN-trained R-50을 IN에서 테스트하면 fine-tuning 없이 82.6%의 정확도를 보여서 SIN-trained CNN의 generalization이 훨씬 잘 되는 것을 알 수 있습니다.
BagNets (Brendel&Bethge, 2019)는 R-50 아키텍쳐를 가졌으나 maximum receptive field size가 9*9, 17*17, 33*33 중에 하나로 제한되어 있기 때문에, 공간적으로 넓은 범위의 정보들을 활용할 수 없습니다. 그럼에도 불구하고 BagNets는 IN에서 높은 정확도를 달성하는 편인데, SIN에서는 형편없는 결과를 보여줍니다.
notion image
이러한 결과들로부터 SIN dataset을 이용하면 네트워크들이 보다 넓은 범위의 공간적 정보들에 집중하도록 만들 수 있다는 것을 수 있습니다. 또한 SIN-trained R-50은 cue conflict 실험에서 거의 사람만큼이나 강한 shape bias를 보이는 것을 확인할 수 있습니다.
notion image

Robustness and accurcy of shape-based representations

이렇게 shape bias가 커졌을 때 CNN의 성능과 강인성에 실제로 도움이 되는지를 확인하기 위해서, SIN+IN을 함께 학습하는 경우, SIN+IN을 함께 학습한 후 IN에서 fine-tuning하는 경우(=Shape-ResNet라고 지칭) 이렇게 두 가지 경우를 더 테스트해 보았습니다.
먼저 IN에서 이미지 분류를 수행한 결과입니다. Shape-ResNet은 top-1과 top-5 모두에서 일반적인 ResNet보다 좋은 성능을 보이는데, 이는 SIN이 동일한 아키텍처에서 성능향상에 도움이 되는 data augmentation에 해당하기 때문인 것으로 볼 수 있습니다.
또한 각 모델들을 Faster R-CNN의 backbone으로 하여, Pascal VOC 2007을 테스트해 보았습니다. SIN을 함께 학습한 경우는 object detection 성능이 확연히 좋아져서, mAP50이 5% 가량이나 증가합니다. 이는 직관적으로 판단했을 때, object detection task의 gt가 텍스처와는 관련이 없고 object의 형상에 들어맞는 박스로 주어지기 때문인 것으로 파악됩니다.
notion image
마지막으로 noise, contrast 변화, high- or low-pass filtering, eidolon perturbation 등에 의해서 이미지가 변형된 경우에 모델의 정확도가 얼마나 떨어지는지를 확인해 보았습니다. SIN-trained network의 경우에는 변형이 없는 원본 이미지에서의 정확도가 약간 낮기는 하지만, 변형된 이미지들에서는 거의 사람 시각과 비슷한 정도의 distortion robustness를 보였습니다. 유일하게 low-pass filtering(blurring)에서만 SIN-trained의 성능이 좋지 않았는데, 이는 SIN 데이터셋에서 페인팅 후 high frequency signal들의 over-representation으로 인해 학습 과정에서 sharp edge들에 의존하기 때문이라고 이유를 제시하고 있습니다.
Image distortion의 예시. 윗줄: Original, additive uniform noise, low contrast, high-pass filtering, low-pass filtering/ 아랫줄: greyscale, Eidolon 1, 2, 3, phase noise
Image distortion의 예시. 윗줄: Original, additive uniform noise, low contrast, high-pass filtering, low-pass filtering/ 아랫줄: greyscale, Eidolon 1, 2, 3, phase noise
notion image
 

Conclusions

이 논문의 저자들은 CNN이 complex shape feature를 추출함으로써 물체를 분류한다는 보편적인 인식과 다르게 사실은 texture를 바탕으로 분류하는 것 같다는 사실에 주목하였고, 이를 밝혀내기 위해 다양한 실험들을 진행했습니다. 특히 사람이 물체를 분류한 결과와 CNN이 분류한 결과를 직접적으로 비교했을 때 큰 차이가 있으며, 이를 개선하기 위한 방법으로 Stylized-ImageNet(SIN) 데이터셋을 이용해서 CNN을 학습시키는 방법을 제안했습니다.
SIN을 이용하면 R-50은 local texture로 이미지를 판별하는 'shortcut'을 학습하는 대신 전체적인 형상 파악을 학습하고, 그 결과 natural images에도 더 잘 generalize하는 모델이 되게 됩니다. 특히 이미지가 다양한 방법으로 distortion된 경우에 사람과 비슷한 정도로 물체를 잘 인식하는 것을 확인할 수 있었습니다.
 
Share article