이 논문은 CVPR 2011에 출판된 논문이며, 저자는 Antonio Torralba, Alexei A. Efros이다.
1. 서론
Name that Dataset이라는 게임을 해보자!
Figure 1은 12개의 유명한 recognition dataset에서 가장 discriminable한 이미지 3개를 추출한 그림이다.
정답은 다음과 같다.
1) Caltech-101, 2) UIUC, 3) MSRC, 4) Tiny Images, 5) ImageNet, 6) PASCAL VOC, 7) LabelMe, 8) SUNS-09, 9) 15 Scenes, 10) Corel, 11) Caltech-256, 12) COIL-100
사실 이 문제는 데이터셋들이 수천에서 수백만 장의 이미지를 포함하고 있다는 것을 생각하면 꽤나 어려운 문제이다.
게다가 대부분의 데이터셋들은 최대한 다양하고 풍성해야 한다는 목적성을 가지고 수집되었기 때문에 더욱 그러하다.
하지만 사실, object나 scene recognition 분야에 종사했던 사람에게는 꽤나 쉬운 문제다.
12 class 분류 문제를 풀기 위한 linear SVM classifier를 훈련시켰을 때, best classifier는 39% 이상의 성능을 보였으며 훈련 데이터의 양이 꽤 추가되어도 성능이 saturate 되지 않았다.
적은 데이터 개수에도 불구하고 Figure 2의 오른쪽에 있는 confusion matrix를 보면 대각성분의 분명하게 보인다. 이는 각 데이터셋이 unique하며 충분히 식별가능한 "signature"가 있음을 의미한다.
위의 실험은 데이터셋 제작자의 부단한 노력에도 불구하고 데이터셋에 강한 bias가 내재되어 있음을 보여준다.
데이터셋의 다양한 목적(예를 들어 도심 이미지를 위한 데이터셋, single object 이미지를 모아둔 데이터셋 등)으로 인해 bias가 발생할 것일 수도 있다. 하지만 이러한 목적성을 분리시키더라도 bias는 여전히 존재한다. 이를 증명하기 위해 저자들은 차의 bounding box를 제공하는 5개의 데이터셋 (PASCAL, ImageNet, SUN09, LabelMe, Caltech101) 에서 차의 이미지만을 crop한 뒤 동일한 분석을 진행했다.
흥미롭게도, classifier는 약 61%의 성능을 보이면서 데이터셋을 잘 구분해냈다. 따라서 데이터의 bias가 잘 제거되지 않았다고 볼 수 있다.
따라서 이 논문은 (1) 데이터셋에 bias가 어떤 방식으로 새어 들어왔는지를 이해하고, 성능에 미치는 영향을 살펴보고자 한다. 또한 (2) recognition community에 이 중요한 문제에 대한 인식을 일깨우고자 한다.
2. 시각 데이터의 유망함과 위험성
우리는 지금 데이터 혁명의 한 가운데에 있다. 이미지 데이터셋 접근의 편의성은 최근 object recognition 발전에 많은 영향을 미쳤다.
데이터셋은 object recognition이 덜 마법같고, 보다 과학처럼 보이게 하기도 한다. 최근에는 data에 대해 높은 폭의 상승을 보이는 quantitative evaluation가 없다면 CVPR 논문 출판은 사실상 불가능하다.
하지만 혁명에는 기존의 문제를 대체하는 새로운 문제가 따른다.
많은 사람들은 이 분야가 너무 평가에 치중되어 있다는 것을 걱정한다. 새로운 메소드들은 정교히 fine-tune된 메소드와 경쟁하기 위해 고전한다. 또 다른 걱정은 비전 커뮤니티가 특정 데이터셋 경쟁에서 "winning"하는 것에 너무 큰 가치를 준다는 것이다. 기본적으로 데이터셋에 대한 성능은 top place를 위한 경쟁이 아니라, 새로운 알고리즘에 대한 sanity check (정당성 확인) 및 여러 베이스라인과 비교하기 위한 효율적인 방법 정도로만 사용하는 것이 바람직할 것이다. 이렇게 함으로써 새로운 메소드들이 당장 SOTA 성능과 경쟁하지 않고 충분히 발전될 기회를 갖게 할 수 있다는 것이다.
그래도 이 부분은 scientific한 문제라기 보다는 behavioral한 문제이니 우리 분야가 더 좋은 방향으로 벤치마킹 방식을 만들어나가면 완화될 수 있다.
하지만 여기서 우리는 이보다 더 근본적인 질문을 할 수가 있다.
Are the datasets measuring the right thing, that is, the expected performance on some real-world task?
우리가 궁극적으로 원하는 것은 real-world task에 대해 모델이 잘 작동하게 하는 것인데, 데이터셋이 이를 잘 측정하고 있게끔 하는 것인지에 대한 질문이다.
머신러닝에서의 데이터셋은 world 그 자체인 반면, 컴퓨터 비전에서에서는 데이터셋이 world를 잘 표현하고 있기를 바란다. 그러나 앞에서 살펴봤듯이 데이터셋은 진짜 visual world를 나타내기 보다는 그 자체로의 closed world에 가깝다.
○ 최신 데이터셋의 등장
항상 좋은 혁명은 unfairness와 bias에 대해 대항하는 이야기로부터 만들어진다. 데이터셋 개발의 역사 또한 그러하다.
새로운 데이터셋은 항상 기존의 데이터셋에 내재된 bias와 데이터셋이 visual world를 설명하기에 불충분하다는 점을 해결하기 위해 만들어졌다.
Single-image-dataset인 Lena는 매우 잘 컨트롤된 lab stock 이미지에 대항하여 나온 첫 "real" 이미지 데이터셋이다. Professinal collection인 Corel Stock Photos와 15 Scenes는 단순한 COIL 같은 background에 대항하여 나왔고, Caltech-101은 Corel과 같은 프로페셔널리즘에 대항하여 인터넷의 wilderness를 포함하기 위해 나왔다. MSRC와 LabelMe는 Caltech과 같은 single-object-in-the-center 주의에 대항하여 많은 object의 다양한 scene을 다루기 위해 나왔으며 PASCAL VOC는 기존의 데이터셋의 training, test standard가 느슨하다는 점에 대항하여 나왔다. 최종적으로는 큰 스케일을 가진 Tiny Images, ImageNet, SUN09와 같은 데이터셋들이 불충분한 training, testing 데이터가 복잡한 real world를 잘 나타내기에는 너무 적다는 점에 대항하기 위해 나왔다.
위에서 살펴본 데이터셋의 발전이 진보의 시그널이라고 생각할 수 있다. 하지만 누군가는 약간의 순환을 감지할 수 있을 것이다. 새로운 데이터셋을 만들어도 새로운 형태로 나타난 bias로 인해 우리는 계속 어려움을 겪는다. 여기서 우리가 놓친 것은 bias의 종류와 그 bias가 어디서로부터 오는지에 대한 명확한 이해이다. 이에 대한 이해가 없다면 우리는 앞으로도 이러한 실수를 반복할 운명일 수밖에 없다.
3. 데이터셋 편향 측정하기
데이터셋의 편향을 측정하기 위해서는 데이터셋의 형태로 표현된 real visual world와의 비교가 필요하다. 하지만 그 비교 대상이 되는 데이터셋 또한 편향이 있을 수 있다.
저자들은 데이터셋의 health를 어떻게 진단할 것인지에 대한 standard check를 다음과 같이 제안한다.
○ Cross-dataset generalization
모델들이 다른 domain을 target으로 하여 학습하도록 하는 연구들이 있지만, 사실 데이터셋들은 원래 모두 같은 domain (우리의 visual world)를 나타내고자 했다. 만약 우리의 데이터셋이 실제로 real world를 잘 표현하고 있다면 cross-dataset generalization은 굉장히 쉬운 문제가 되며, 이는 더 많은 labeled data에 대한 접근을 가능케 할 것이다.
따라서 저자들은 여기서 이런 질문을 한다.
How well does a typical object detector trained on one dataset generalize when tested on a representative set of other datasets, compared with its performances on the "native" test set?
한 데이터셋에 학습을 시킨 뒤, 나머지 다른 데이터셋에 학습을 시키면 어떻게 될까? 라는 질문이다.
이를 실험하기 위해 저자들은 총 6가지 dataset SUN09, LabelMe, PASCAL VOC 2007, ImageNet, Caltech-101, MSRC를 사용했다. 그리고 그 중 2개의 object, car과 person을 사용해서 classificatin과 detection 성능을 확인하였다.
Table 1에서는 성능 그 자체의 값보다 성능의 차이가 여기서는 중요한 의미를 갖는다.
Best 결과는 전형적으로 training data와 test data가 동일할 때 얻어진다. 행 방향으로 살펴보면 특정 데이터가 얼마나 잘 generalize 되는지를 알 수 있고, 열 방향으로 살펴보면 특정 데이터가 얼마나 쉬운지 알 수 있다. Caltech101과 MSRC의 경우 쉬운 데이터셋, PASCAL과 Caltech101은 generalize가 잘 되는 데이터셋이라고 볼 수 있다.
일반적으로 training data와 다른 test set에 test를 진행했을 때 성능의 급격한 하락이 나타나고 있다. 대부분의 데이터셋은 인터넷이라는 동일한 소스로부터 수집되었는데 이러한 현상이 발생하는 이유가 무엇일까?
그 원인에 대한 후보는 다음과 같은 것들이 있다.
- Selection bias: 데이터셋이 종종 특정 종류의 이미지 (도로 이미지, 자연 이미지 등)에 우호적으로 수집되어 발생하는 편향성
- Capture bias: 특정 포토그래퍼가 항상 비슷한 방식으로 촬영함으로 인해 발생하는 편향성
- Category or label bias: 같은 타입의 다른 label로 labeling(e.g. "grass" vs. "lawn", "painting" vs. "picture")을 하여 발생하는 편향성
- Negative set bias: 어떤 클래스의 나머지셋(the rest set)이 충분히 real-world에서의 나머지셋을 대표하지 못하거나 불균등하게 존재하여 발생하는 편향성
마지막 후보인 Negative set bias에 대해 기존에 논의가 많이 이루어지지 않았기 때문에 저자들은 이에 대해 더 자세히 살펴보았다.
○ Negative Set Bias
데이터셋은 어떤 시각 데이터에 대해 그것이 무엇인지 (positive instances) 를 정의하기도 하지만 그것이 아닌 것은 무엇인지 (negative instances) 를 정의하기도 한다.
Negative sample은 실제 real-world에서는 천문학적으로 크기 때문에 데이터셋에서는 상대적으로 굉장히 작은 양의 negative sample에 의존할 수밖에 없다. 이것이 충분히 real-world를 표현해낼 수 있을까?
위의 질문에 대해 답을 하기 위해 negative set에 대한 상대적 편향 (relative bias) 을 평가하는 실험을 진행했다.
우선 총 6개의 데이터셋에 있는 negative set을 모두 합쳐 super-set으로 만들어 최대한 real-world에 근사하는 negative set을 만든다. 그리고 각 데이터셋에 대해 해당 데이터셋의 positive, negative sample을 학습시키고, test는 해당 데이터셋의 positive sample들과 위에서 만든 negative sample들의 super-set을 통해 진행한다.
Table 2를 보면 SUN09, LabelMe, PASCAL에 대해서는 성능이 상당히 떨어지는 것을 확인할 수 있다. 이는 Test 때, 다른 데이터셋으로부터 온 새로운 negative sample들이 모델을 혼란스럽게 했기 때문이라고 생각할 수 있다.
그래도 ImageNet과 Caltech101, MSRC는 결과가 조금 달랐다. 저자들은 데이터셋마다 그 이유가 조금 다를 것으로 추측한다. ImageNet의 경우에는 다양한 negative sample을 잘 활용하여 외부 negative set으로 인한 영향을 크게 받지 않았을 것이며, Caltech과 MSRC는 너무 쉬운 데이터셋이기 때문에 그러할 것이라 이야기 한다.
더 어려운 질문은 "negative data sample이 classifier가 이미지의 중요한 부분을 추출해 내도록 학습하기에 충분한가"이다. Classifier가 "boat" 이미지를 잘 찾아낼 수 있기를 원하다고 가정하자. 우리는 classifier가 바다 등의 다른 부분이 아닌 정확히 "boat" 그 자체를 보고 판단을 내리기를 원한다. 여기서 negative sample은 classifier가 이렇게 우리가 원하는 task를 "알맞게" 할 수 있게 도와주는 역할을 하게 된다. (보트가 없는 바다의 이미지를 negative sample로 제공함으로써 모델이 바다 부분이 아닌 보트 부분에 집중할 수 있도록 함)
하지만 negative sample의 충분함을 검증하는 것은 굉장히 많은 양의 labeled nagative data를 요하기 때문에 쉽지는 않다.
4. 데이터셋 가치 측정하기
특정 detection task와 벤치마크에서 성능을 향상시키는 방식은 크게 2가지가 있다.
1. Detector를 위한 feature, object representation, 학습 알고리즘을 발전시킨다.
2. 학습 데이터를 증진시킨다.
학습 데이터를 증진시키는 것은 보기보다 쉽지 않다. 우선 성능은 training data 증가함에 따라 log의 형태로 향상되므로, (1) 데이터를 매우 많이 수집을 해야 한다는 문제가 있다. 또한 (2) test data의 bias와 맞지 않는 데이터라면 덜 효과적인 classifier를 만들게 될 수 있다는 문제도 있다.
Figure 6는 이 문제를 잘 보여준다. 수직선 방향으로의 차이는 다른 데이터셋에서 training을 하여 발생하는 성능의 차이를 나타내고, 수평선 방향으로의 이동은 같은 성능을 달성하기 위해 필요한 데이터 양의 차이이다.
우리가 PASCAL VOC의 학습 데이터의 양을 증진시키기로 했다고 가정해보자. 그러면 우리는 분명히 다른 데이터셋에서 데이터를 가져올 수 있을지를 먼저 고민해 볼 것이다. 여기서 우리는 이런 질문을 할 수 있을 것이다.
What is the relative value of a training example from LabelMe with respect to the value of a training example from PASCAL?
어떤 data는 아무리 추가해도 성능이 오르지 않을 수 있고, 어떤 데이터는 하나만 추가해도 성능 향상에 큰 도움이 될 수 있다. 그 상대적 가치를 매겨보자는 의미이다.
Dataset i에서 n개의 학습 데이터를 활용하여 학습한 뒤 dataset j에 테스트를 진행했을 때 얻는 성능을 \( AP_i^j \) 라고 하면, 우리는 sample의 가치를 \( (\alpha) \) 를 \( AP^j_j = AP^j_i(\frac{n}{\alpha}) \) 로 정의할 수 있다. 즉, i로 학습시킬 때 j로 학습시키는 경우보다 \( \alpha \) 배 적은 양의 학습 데이터가 필요로 된다는 것이다.
Table 3는 이러한 sample 가치를 나타낸 "Market Value" 표이다. 표에서 알 수 있듯이 다른 데이터셋 마켓(test)에서는 다른 데이터셋들이 항상 1보다 작은 가치를 갖는다. 따라서 기존 데이터셋들을 추가 학습하는 것은 없는 것보단 낫지만, 충분히 좋지는 않는 정도일 것이다.
5. 논의
다른 데이터셋에 학습을 시켰을 때 성능이 떨어지는 것이 당연한 것일까?
누군가는 이게 dataset의 문제가 아니라 학습 알고리즘이 over-learning을 하는 등, 궁극적인 task를 하기에 아직 부족해서 그런 것이라고 주장할 수도 있다. 사실 사람은 한정적인 생활 반경 내에서 잠재적인 local-bias를 접하지만 그걸 충분히 극복할만큼 robust하기 때문에, 이 문제가 정말 알고리즘의 문제라고 생각할 여지가 있기는 하다.
하지만 우리가 race-car의 후방 사진으로만 car class를 구성한 데이터셋이 있다고 하면 결코 어떤 알고리즘도 세단의 측면 이미지를 car라고 판단할 수 없을 것이다.
우리의 목표가 정말 알고리즘이 우리의 시각적 세상을 잘 이해하도록 하는 것이라면 적절한 데이터셋을 만드는 것이 분명히 매우 중요하다.
6. 결론
데이터셋을 잘 만들기 위해서 저자들은 다음과 같은 추천을 한다.
1. 이 논문에서 진행한 실험 (e.g. cross-dataset generalization) 들을 마찬가지로 진행하여 테스트 해본다.
2. Selection bias를 줄이려면 다양한 source(여러 검색 엔진에서 데이터를 수집하는 등)로부터 데이터를 수집한다.
3. Capture bias를 줄이려면 다양한 데이터 변형 (flip, crop, jittering 등) 기법을 활용하여 다양한 형태의 데이터를 만든다.
4. Negative set bias를 줄이려면 다른 데이터셋의 negative set을 추가적으로 활용한다.
저자들은 이 논문이 그저 데이터셋에 대한 discussion의 시작점이라고 하고 있다. 사실상 이 논문에도 이미 여러 bias가 포함되어 있을 수 있고, 앞으로 이에 대한 연구들이 추가적으로 필요할 것임을 이야기하며 논문을 마무리한다.
굉장히 예전에 출판된 논문이지만, 아직도 여전히 생각해볼 거리가 많은 논문이다. 최근에는 domain adaptation, domain generalization과 같은 문제들이 하나의 분야로 자리 잡았기 때문에, 이에 대해서 크게 생각을 해 본적이 없었던 것 같다. 이 논문에서 만약 우리의 dataset이 정말 real-world를 충분히 잘 나타내고 있다면, 이 데이터셋으로만 학습해도 모델이 어디서든 generalize가 잘 될 것이라는 부분이 색다른 관점으로 다가왔다. Domain 관련 문제를 알고리즘 측면에서만 바라봤던 나의 시각을 데이터셋 관점으로도 넓힐 수 있었다.
하지만 인간도 그러하듯이 결국 보지 못한 세계, 경험하지 못한 세계에 대해서는 여전히 이해가 부족할 수밖에 없다고 생각한다. 인간도 본인이 살아온 환경에 조금 더 fit하게 생각할 수밖에 없고 때문에 종종 bias가 생기곤 한다.
인간과 ML을 비교했을 때 인간이 robust한 것은 어쩌면 인간의 알고리즘이 ML보다 뛰어나서가 아니라 인간이 더 많은 데이터를 수집했기 때문이라고 생각한다. 인간은 car에 대해서도 모든 view를 real-time으로 수집하고 있는 셈이니 사실상 HUGE model 이라고 볼 수 있다. 인간이 일생동안 수집한 시각 데이터를 모델에게 모두 학습시킬수만 있다면 ML 모델이 인간보다 월등히 뛰어나면서 generalization도 잘 될 수 있을 것이라 감히 예상한다.
하지만 우리 모두가 알고 있듯이 resource 등의 문제가 있기 때문에 아주 방대한 양의 학습 데이터를 활용하는 것은 어렵고, 따라서 우리는 여전히 domain shift 문제를 알고리즘 측면에서 접근할 필요가 있는 것 같다.
이 논문을 읽고보니, 만약 리소스를 상관하지 않고 인간과 최대한 비슷한 형태로 ML을 만들려면
1. Huge dataset
2. Continual Learning Algorithm without Catastrophic Forgetting
위의 2가지가 필요하지 않을까 싶다.