요약
⏱ 02:26CNN은 단순한 특징을 조합해 객체의 형태를 인식한다고 설명되어 왔지만, 여러 실험은 강한 텍스처 편향을 보여 준다. 고양이 형태에 코끼리 질감을 합성하면 사람은 형태를 따르고 CNN은 코끼리로 분류한다. 스타일 전이, 텍스처를 없앤 스케치에서의 성능 저하, 작은 로컬 패치만 활용하는 BagNet의 성능, 텍스처화 이미지에서도 유지되는 분류 성능이 이러한 해석의 근거다. CNN을 인간 시각의 계산 모델로 사용하려면 판단 근거의 차이를 이해해야 한다.
⏱ 13:59사람과 모델의 비교 실험은 참가자 97명에게 약 5만 번 시행됐으며, 모델의 ImageNet 1,000개 클래스는 16개 상위 클래스로 대응시켰다. 원본을 모두 맞히는 모델도 실루엣과 에지에서는 성능이 낮아지는 반면, 텍스처만 제시하면 잘 맞혔다. 형태 편향은 형태나 텍스처 중 하나를 맞힌 사례에서 형태를 맞힌 비율이다. 예컨대 형태 일치 117장과 텍스처 일치 484장이면 약 19.5%이므로, 전체 이미지에 대한 정확도와 구분해야 한다.
⏱ 17:17스타일화 ImageNet(SIN)은 전역 형태를 유지하면서 로컬 텍스처를 바꾸어 형태에 의존하도록 유도한다. ResNet-50의 형태 편향은 약 0.22에서 0.8로 높아지지만 정상 ImageNet의 톱 1 정확도는 약 16%포인트 낮아진다. SIN과 ImageNet을 함께 학습하고 미세 조정하면 정확도가 76%로 회복되지만, 이후의 형태 편향은 제시되지 않았다. 색상 왜곡·블러·노이즈를 누적하거나 학습을 늘려도 형태 편향이 높아지지만 실제 이미지 성능과는 상충할 수 있다.
⏱ 00:011. CNN의 텍스처 편향과 형태 편향
⏱ 00:01안녕하세요. [자기소개에 나오는 소속과 이름은 자막에서 불명확합니다.] 오늘은 CNN의 편향(CNN bias)을 설명하고, 뒷부분에서는 ViT의 편향도 간략하게 말씀드리겠습니다. 최근에는 처음 CNN을 공부할 때 배웠던 설명과 달리, CNN의 텍스처 편향(texture bias)이 매우 강하다는 연구 결과들이 나오고 있습니다. 먼저 텍스처 편향이 무엇인지 이미지 예시를 통해 살펴보겠습니다.
⏱ 00:36아래 그림의 A는 텍스처 이미지입니다. 어떤 객체의 형태가 있는 것이 아니라 이미지 전체가 특정 질감을 나타냅니다. 사람이 보더라도 코끼리의 질감이라는 것을 확인할 수 있고, 머신도 높은 신뢰도(confidence)로 코끼리라고 분류합니다. B는 콘텐츠 이미지(content image)로, 형태(shape)가 들어 있는 일반적인 이미지입니다. 이 경우에는 사람과 머신 모두 고양이로 잘 분류할 수 있습니다.
⏱ 02:262. 기존의 형태 가설과 시각화 근거
⏱ 02:26기존 해석부터 살펴보겠습니다. CNN은 사람과 유사하게 작동하도록 설계되었기 때문에, 낮은 수준의 특징(low-level feature)에서는 직선처럼 단순한 특징을 파악하고, 뒤쪽 레이어에서는 이를 종합해 높은 수준의 특징(high-level feature)을 만든다고 이해해 왔습니다. 시각화 결과에서도 이런 모습을 확인하면서 설계한 대로 CNN이 움직인다고 생각했습니다. 이러한 기존 해석을 형태 가설(shape hypothesis)이라고 부릅니다.
⏱ 03:08유명한 논문과 책에서도 낮은 수준의 특징을 높은 수준의 특징으로 조합하며, 높은 수준의 특징은 이미지에서 발생하는 형태를 학습하는 것으로 보인다고 설명합니다. 『딥러닝』 책에서는 중간 레이어가 객체의 부분을 인식하고, 뒤쪽 레이어가 그 부분들을 조합해 결국 하나의 객체를 인식한다고 설명합니다. 이런 설명을 토대로 우리는 CNN에 형태 편향이 있다고 믿었습니다. 단순한 추측만 있었던 것이 아니라 이를 뒷받침한다고 여긴 근거들도 있었습니다.
⏱ 05:053. 스타일 전이·스케치·로컬 패치가 보여 준 다른 해석
⏱ 05:05그런데 2017년에 새로운 해석이 등장합니다. 유명한 저널에 실린, 아주 잘 짜이고 잘 작성된 논문은 아닐 수도 있지만 흥미로운 논문이었습니다. CNN의 분류 결과가 이미지의 형태가 아니라 텍스처를 따른다는 내용입니다. 학습된 네트워크에 스타일 전이(style transfer) 이미지를 입력해 추론하게 했더니, 분류 결과가 형태보다 스타일을 따라간다고 보고했습니다. [이 부분의 학습 대상 명칭은 자막에서 불명확합니다.] 아래 그림의 모델 T(Model T)는 포드사의 자동차 모델 이름입니다.
⏱ 05:50모델은 원래 모델 T 이미지를 모델 T로 높은 신뢰도로 분류하고, 표범(leopard) 이미지도 표범으로 높은 신뢰도로 분류합니다. 그런데 두 이미지를 스타일 전이로 합성해 추론하면 모델 T의 신뢰도는 크게 낮아집니다. 표범의 신뢰도도 원래 표범 이미지일 때보다는 떨어지지만, 여전히 높은 수준을 유지합니다. 자동차의 형태가 남아 있더라도 표범의 텍스처가 들어가면 모델의 판단이 텍스처를 따라간다는 것을 보여 주는 예시입니다.
⏱ 06:292016년 연구에서는 ImageNet으로 학습한 모델을 TU-Berlin이라는 스케치 데이터셋으로 평가했습니다. 이 데이터셋에는 그림을 지나치게 상세하게 그리지 않고 단순하게 그릴 것, 사람이 보아도 욕조 같은 대상이 무엇인지 인식할 수 있을 것, 레이블을 그림 안에 넣지 않을 것, 검은색으로 넓은 영역을 채우지 않을 것 등의 제작 지침이 있습니다. 사람은 형태 편향이 높기 때문에 텍스처와 색을 완전히 지워도 이런 스케치를 인식하고 제대로 분류할 수 있습니다. 그러나 ImageNet만으로 학습한 모델은 텍스처가 제거된 스케치를 추론했을 때 성능이 매우 낮았습니다.
⏱ 07:25로컬 패치만으로 학습해도 성능이 조금 하락할 뿐 크게 떨어지지 않는다는 연구도 있습니다. ICLR 2019에 나온 유명한 BagNet 논문입니다. 일반적인 CNN은 전체 이미지를 입력하고 정해진 크기의 커널을 이동시키며 합성곱 연산을 수행해 최종 출력을 만듭니다. 반면 이 방식은 이미지를 커널 단위의 작은 패치로 잘라 네트워크에 넣습니다. 한 이미지에서 나온 여러 패치의 결과를 평균하고 소프트맥스를 적용해 분류 신뢰도를 계산하는 식으로 예측해도 분류가 잘되더라는 내용입니다.
⏱ 08:18기존 구조와의 차이는 패치를 잘라 입력하기 때문에 일부 3×3 커널을 1×1 커널로 바꾼다는 점, 입력의 크기, 그리고 출력에서 평균을 취하는 방식 정도입니다. BagNet의 성능은 톱 5 검증 오류(top-5 validation error) 기준 그래프에서 AlexNet보다 훨씬 좋고 VGG보다는 조금 낮은 수준이며, 정확도로 보면 대략 80%대 중반 정도로 보입니다. 작은 로컬 패치만으로도 CNN이 좋은 성능을 보일 수 있다는 연구입니다.
⏱ 08:58보통은 큰 이미지에 작은 커널을 적용하므로 낮은 레이어는 로컬 영역을 보고, 레이어가 쌓일수록 수용 영역(receptive field)이 커져 점점 전역적인 형태를 보도록 설계되었다고 설명합니다. 그런데 로컬 영역에 1×1 합성곱을 적용한 결과들의 평균만으로도 좋은 예측 성능이 나온다는 것입니다. 그렇다면 CNN이 실제로는 전역적인 형태를 보지 않고 있을지도 모른다고 해석할 수 있습니다. 이런 해석을 제시하는 논문들이 있어서 함께 가져왔습니다.
⏱ 10:004. 텍스처화 이미지와 편향 연구의 필요성
⏱ 10:00같은 논문은 텍스처화된 이미지(texturized image)에서도 성능 하락이 크지 않다는 것을 보여 줍니다. 이는 모델이 로컬 영역의 히스토그램에서 나타나는 통계적 규칙성에 의존한다는 해석을 뒷받침합니다. 원본 이미지는 사람이 무엇인지 알아볼 수 있지만, 오른쪽의 텍스처화된 이미지는 사람이 인식하기 어렵습니다. 그런데 CNN에 입력해 추론해도 성능이 크게 떨어지지 않습니다. 수용 영역이 커지더라도 전역적인 형태보다 로컬 히스토그램에 의존한다는 증거로 해석하는 것입니다.
⏱ 10:59지금까지의 내용을 정리하면, 최근 CNN에 대한 해석은 형태 편향이 있다는 설명에서 텍스처 편향이 높다는 설명으로 바뀌었습니다. 이 연구들이 나온 지도 어느 정도 시간이 지났고, 뒤에서 ViT와 비교하며 다시 말씀드리겠지만 이런 해석은 어느 정도 굳어진 것 같습니다. 오늘 중심으로 살펴볼 논문은 텍스처 편향을 말한 연구 중 비교적 앞서 나왔고 영향력이 큰 논문입니다. 함께 살펴보면 좋을 것 같아 가져왔습니다.
⏱ 11:48연구의 필요성에 대해서는 “CNN의 형태 편향이 높아야 할 이유가 있는가?”, “CNN이 사람과 같은 판단을 해야 하는 이유가 있는가?”라고 질문할 수 있습니다. 저도 개인적으로 가지고 있던 질문입니다. 관련 논문들은 우선 사람의 형태 편향이 매우 높다는 사실이 인지과학의 여러 연구에서 확인되었다고 설명합니다. 문제는 CNN이 사람의 시각 인지와 객체 인식에 대한 대체 모델, 즉 계산 모델로 사용되고 있다는 점입니다.
⏱ 12:33사람이 이미지를 보고 고양이나 코끼리라고 인식할 때 그 오차를 계산하거나 정확도를 개선하는 일을 직접 수치화하기는 어렵습니다. 그래서 그 부분을 CNN으로 대체해 수치를 추출합니다. 만약 CNN의 인식 방향이 사람과 크게 다르면 이런 계산 모델로 사용할 수 없으므로 관련 연구가 반드시 필요하다는 것입니다. 사용하는 모델 자체를 정확하게 이해하는 일은 언제나 필수적이라는 주장도 있습니다. 엔지니어라면 누구나 납득할 만한 이유라고 생각합니다.
⏱ 13:23마지막으로 적대적 예제(adversarial example)에 취약한 이유도 이러한 편향으로 해석할 수 있습니다. 사람이 인지하지 못할 정도로 텍스처를 아주 작게 바꾸더라도, 사람은 형태 편향이 높아서 여전히 같은 모양으로 인식합니다. 반면 형태 편향이 낮고 텍스처 편향이 높은 CNN은 그 작은 텍스처 특징의 변화 때문에 예측이 바뀔 수 있습니다. 따라서 CNN이 적대적 예제에 취약할 수밖에 없다는 해석도 제시되고 있습니다.
⏱ 13:595. 사람과 모델의 비교 실험 및 SIN 데이터셋
⏱ 13:59본 논문은 사람과 모델에 대해 각각 실험해 결과를 비교합니다. 사람 실험에서는 먼저 사각형을 300밀리초(ms) 동안 보여 주고, 두 번째 단계에서 실제 이미지를 300ms 동안 보여 줍니다. 세 번째 단계에서는 핑크 노이즈를 200ms 동안 제시합니다. 강연에서는 이를 백색소음과 비슷한 것으로 설명하며, 왜 핑크 노이즈를 들려주는지에 대한 설명은 논문에서 찾지 못했다고 말합니다. 이후 1,500ms 동안 4×4 그리드의 클래스 중 방금 본 것이 무엇인지 선택하게 하고, 그 정확도를 취합하는 형태입니다. 참가자 97명에게서 약 5만 번의 실험을 진행했다고 합니다.
⏱ 15:06모델에도 사람에게 제시한 것과 정확히 동일한 이미지를 입력합니다. 사용한 네트워크는 AlexNet, GoogLeNet, VGG-16, ResNet-50입니다. 네트워크 뒷부분을 16개 클래스로 바꿔 미세 조정(fine-tuning)한 것이 아니라, 사전 학습된 모델을 그대로 가져와 사용했습니다. ImageNet으로 학습했으므로 원래 클래스는 1,000개인데, 이를 16개 클래스로 매핑했습니다. ImageNet은 단순히 개, 고양이로 나누는 것이 아니라 개나 고양이의 품종, 자동차의 세부 모델 등으로 클래스가 세분되어 있기 때문입니다.
⏱ 16:02이렇게 세분된 클래스를 개, 고양이, 코끼리 같은 상위 클래스로 모두 매핑합니다. 예를 들어 개에는 불도그나 말티즈처럼 다양한 종류가 있고, 그중 하나를 예측해도 이 실험에서는 개를 맞힌 것으로 봅니다. 일반적인 모델은 실제로 그 개의 품종까지 잘 맞히고 있기 때문에, 이런 식으로 매핑해 실험을 진행한 것으로 보입니다. 모델의 출력 클래스를 그대로 사람의 16개 선택지와 비교할 수 없으므로, 상위 클래스에 대응시켜 결과를 해석하는 방식입니다.
⏱ 16:37그렇다면 형태 편향과 텍스처 편향은 어떻게 평가할까요? 제가 알기로는 이 논문이 처음 제안했고 이후에도 계속 사용하는 방법입니다. 형태와 텍스처가 충돌하는 이미지에서 형태를 맞히면 형태 편향이 높아집니다. 앞서 본 고양이 형태와 코끼리 텍스처의 예라면 고양이라고 맞히는 경우입니다. 반대로 코끼리라고 예측하면 텍스처를 맞힌 것이므로 텍스처 편향이 높아집니다. 같은 이미지를 두고 어느 단서를 따르는지 확인하는 것입니다.
⏱ 17:17이 논문은 형태 편향을 높이기 위한 새로운 데이터셋인 스타일화 ImageNet(Stylized-ImageNet, SIN)도 제안합니다. 왼쪽은 원본이고 오른쪽은 스타일을 합성한 이미지입니다. 전역적인 형태는 유지되지만, 각 이미지의 로컬 영역에는 서로 다른 텍스처가 들어가므로 로컬 정보만으로 클래스를 정확히 예측하기 어렵습니다. 결국 모델이 형태를 볼 수밖에 없도록 강제하는 데이터셋이라고 이해할 수 있습니다.
⏱ 17:596. 이미지 변형 실험과 편향 그래프 읽기
⏱ 17:59결과는 우선 두 번째 결과부터 확인하겠습니다. 원본 이미지에서는 AlexNet, GoogLeNet, VGG, ResNet이 모두 100% 정답을 맞힙니다. 이는 모든 모델이 정확하게 맞히는 원본 이미지만 의도적으로 선택했기 때문입니다. 이후 그레이스케일로 바꾸면 AlexNet이 97%로 내려가는데, 이 변화를 정확하게 해석하기 위한 선택입니다. 원본이 100장이었다면 그중 3장을 그레이스케일 변환 때문에 맞히지 못했다고 직관적으로 해석할 수 있습니다.
⏱ 19:03실루엣(silhouette)은 윤곽을 따고 내부를 검은색으로 마스킹한 이미지입니다. 여기에서는 대부분의 모델이 절반 정도만 맞히지만 사람은 약 75%의 정확도를 유지합니다. 에지(edge) 이미지에서는 실루엣보다 사람의 정확도가 오히려 올라가는 반면 모델의 정확도는 내려갑니다. 특히 구조가 더 복잡한 ResNet은 성능 하락 폭이 굉장히 큽니다. 형태와 윤곽 정보가 남아 있어도 사람과 모델은 서로 다른 결과를 보이는 것입니다.
⏱ 19:39텍스처만 따서 보여 주었을 때의 결과는 놀랍습니다. 원본에서 모두 맞혔던 이미지의 텍스처만 보여 주어도 모델은 여전히 모두 맞혔습니다. 반면 사람의 정확도는 약 9%포인트 줄었습니다. 이 결과만 보더라도 사람은 형태 편향이 확실히 높고 CNN은 텍스처 편향이 높다고 볼 수 있습니다. 원본에서는 같았던 정확도가 실루엣, 에지, 텍스처 변형에 따라 서로 다르게 바뀌는 것입니다.
⏱ 20:13다음 그래프는 앞서 4×4 그리드에 있던 16개 카테고리에 대해 형태 편향, 텍스처 편향, 정확도를 보여 줍니다. 표시 중 가장 왼쪽은 사람이고, 마름모는 AlexNet, 원은 GoogLeNet, 삼각형은 VGG, 사각형은 ResNet입니다. 오른쪽에 붙을수록 텍스처를 많이 보고 왼쪽에 붙을수록 형태를 많이 봅니다. 행별로 각 카테고리를 읽으면 되고, 수직선은 전체 평균입니다. 오른쪽 막대그래프는 해당 이미지를 형태나 텍스처 중 하나라도 정확하게 맞힌 비율입니다.
⏱ 21:14배는 사람과 모든 모델이 거의 절반 정도밖에 맞히지 못합니다. 자전거는 사람이 거의 모두 맞히며, 그중 거의 100%를 형태로 맞힙니다. 그래프를 더 잘 이해하도록 실제 사용한 데이터도 가져왔습니다. 위쪽 두 이미지는 배에 곰과 새의 텍스처를 합성한 것이고, 아래쪽 두 이미지는 자동차에 고양이와 개의 텍스처를 합성한 것입니다. 배 이미지는 사람이 보더라도 곰인지, 배인지, 새인지 맞히기 힘든 이미지여서 정확도가 낮습니다. 다만 맞힌 경우에 한해서는 거의 90%가 배의 형태를 맞힌 것입니다.
⏱ 22:23아래의 자동차 이미지는 사람이 보았을 때 정확도가 굉장히 높아 대부분 잘 맞혔습니다. 맞힌 경우 중 자동차의 형태로 판단한 비율 역시 90%를 넘고, 거의 97% 정도로 보입니다. 따라서 막대그래프의 전체 정확도와, 그중 형태 또는 텍스처를 선택한 비율을 구분해서 읽어야 합니다. 배는 전체 정확도는 낮아도 맞힌 경우에는 대부분 형태를 따랐고, 자동차는 전체 정확도와 형태를 따르는 비율이 모두 높았습니다. 이런 식으로 그림을 이해하시면 됩니다.
⏱ 22:517. 형태 편향을 높인 학습의 효과와 분류 성능
⏱ 22:51다음 그림은 텍스처 편향을 극복하기 위해 앞에서 소개한 SIN으로 학습했을 때 모델의 형태 편향이 어떻게 바뀌는지 보여 줍니다. ResNet-50을 ImageNet으로만 학습하면 텍스처 편향이 굉장히 높지만, SIN으로 학습하면 평균선이 왼쪽으로 크게 이동합니다. 형태 편향은 약 0.22에서 0.8로 크게 올라갑니다. 따라서 SIN 데이터셋을 사용하면 형태 편향을 키울 수 있다는 주장을 하고 있습니다.
⏱ 23:36그런데 SIN만 활용하면 정상적인 이미지에 대한 분류 성능이 크게 떨어진다는 문제가 있습니다. 아래 결과에서 ImageNet으로 학습한 경우와 SIN으로 학습한 경우를 비교하면 톱 1 정확도(top-1 accuracy)가 거의 16%포인트 줄어듭니다. 이 문제를 완화하기 위해 논문은 SIN과 ImageNet을 함께 사용합니다. 두 데이터셋으로 학습한 모델을 Shape-ResNet이라고 부르고, 이후 미세 조정을 하면 정확도가 76%가 되어 오히려 ImageNet만 사용했을 때보다 성능이 좋아진다고 설명합니다. 다만 그 이후 형태 편향을 다시 계산한 결과는 없어, 이 부분은 아쉽고 개인적으로 궁금합니다.
⏱ 24:31두 번째 논문은 전체를 다 소개하지 않고 실험 결과를 토대로 주장을 간단히 말씀드리겠습니다. 제목은 슬라이드에 나와 있으며 2020년에 나온 논문입니다. [학회명은 자막에서 불명확합니다.] 이 논문은 데이터 증강(augmentation)을 하면 텍스처 편향이 낮아진다고 주장합니다. 여기서 증강은 일반적으로 떠올리는 회전, 뒤집기, 랜덤 크롭, 크기 변경 같은 것보다는 색상 왜곡(color distortion), 가우시안 블러(Gaussian blur), 가우시안 노이즈(Gaussian noise) 같은 방식입니다. 아래의 증강별 변화 예시는 제가 직접 코드를 실행해 만든 것이며, 사용한 파라미터 설정은 뒷부분에서 확인하실 수 있습니다.
⏱ 25:37먼저 지표는 형태 편향(shape bias), 형태 일치(shape match), 텍스처 일치(texture match)입니다. 자동차 형태에 강아지 텍스처가 들어간 스타일 전이 이미지라면 자동차라고 맞힐 때 형태 일치가 올라가고, 강아지라고 맞힐 때 텍스처 일치가 올라갑니다. 전혀 다른 클래스로 예측하면 틀린 것이므로 어느 지표도 올라가지 않습니다. 형태 편향은 자동차나 강아지처럼 둘 중 하나라도 맞힌 경우 중에서 자동차의 형태를 맞힌 비율입니다.
⏱ 26:20이미지가 1,000장 있다고 가정하고 첫 번째 베이스라인을 보면, 텍스처 일치는 1,000장 중 484장을 텍스처로 맞힌 경우이고 형태 일치는 117장을 형태로 맞힌 경우입니다. 처음에는 전체 1,000장으로 생각할 수 있지만, 형태 편향의 분모는 두 값을 더한 것입니다. 둘 중 하나를 맞힌 약 600장 중 117장을 형태로 맞힌 비율을 계산하면 약 19.5%가 나옵니다. 즉 형태 편향은 형태 일치 수를 형태 일치 수와 텍스처 일치 수의 합으로 나눈 값이며, 전체 이미지에 대한 형태 일치 비율과 구분해야 합니다.
⏱ 27:038. 증강 실험의 해석과 구조적 한계에 대한 의견
⏱ 27:03실험 결과 표의 플러스 표시는 증강을 순서대로 쌓는다는 뜻입니다. 어떤 논문은 베이스라인에 색상 왜곡만 적용한 경우, 그것을 빼고 블러만 적용한 경우, 다시 노이즈만 적용한 경우를 따로 표시하기도 합니다. 그러나 이 논문은 누적해서 적용합니다. 따라서 세 번째 단계는 색상 왜곡, 가우시안 블러, 가우시안 노이즈를 모두 적용한 증강입니다. 기본 설정은 랜덤 크롭 확률 0.5로 ImageNet을 90에포크 학습한 경우이며, 형태 편향을 비롯한 지표는 SIN에 대한 검증 결과를 나타냅니다.
⏱ 27:50데이터 증강과 덜 공격적인 랜덤 크롭(less aggressive random crop)을 사용하면 형태 편향이 크게 높아진다고 설명합니다. 여기서 덜 공격적인 랜덤 크롭은 표의 최소 크롭 면적(minimum crop area) 64%에 해당합니다. 다만 64%에 대한 정확한 설명을 논문에서 찾기 어려워 여기서는 설명을 생략하겠습니다. 더 강한 증강(stronger augmentation)은 확률을 0.5에서 0.75로 높인 경우입니다. 더 긴 학습(longer training)은 90에포크를 270에포크로 늘린 것으로, 오래 학습했더니 형태 편향이 그만큼 높아졌다는 결과입니다.
⏱ 28:37결과를 보면 가장 오른쪽 SIN 데이터셋의 성능과 형태 편향 사이에는 강한 양의 상관관계가 있습니다. 패치 데이터셋도 SIN과 비슷한 경향을 보입니다. 하지만 실제 세계의 이미지에 가장 가까운 ImageNet에서는 형태 편향과 성능 사이에 오히려 강한 음의 상관관계가 나타납니다. 앞에서 SIN으로 학습하면 ImageNet 성능이 떨어졌던 것과 마찬가지입니다. 형태 편향을 인위적으로 높이면 실제 이미지에 가까운 ImageNet의 분류 성능은 떨어진다고 해석할 수 있습니다.
⏱ 29:34제 개인적인 의견도 말씀드리겠습니다. 논문의 저자들은 이것이 CNN의 구조 문제가 아니라 우리가 사용하는 ImageNet의 문제라고 말합니다. 그러나 대부분의 연구는 형태 편향을 높이는 데이터를 사용했을 때 정상적인 이미지에 대한 분류 성능이 떨어진다고 보고합니다. 슬라이드의 이 부분은 오타이므로 무시해 주시면 됩니다. SIN이나 앞선 논문의 증강은 특정 정보를 뭉개서, CNN이 로컬 정보를 활용하더라도 형태를 볼 수밖에 없도록 강제합니다. 그렇다면 이 자체가 로컬 정보만 고려할 수 있는 CNN의 구조적 문제를 나타내는 것은 아닐까 하고 저는 생각합니다.
⏱ 30:439. 텍스처와 적대적 공격의 관계
⏱ 30:43이제부터는 제가 개인적으로 관심을 가진 분야에서 텍스처 편향을 어떻게 활용하는지 간략히 말씀드리겠습니다. 먼저 AAAI 2018에 나온 논문입니다. 이 논문은 정확히 텍스처 편향을 언급하거나 텍스처를 통해 모델을 공격하는 논문은 아닙니다. 새로운 아이디어로 모델을 공격한 결과를 제가 보았을 때 텍스처에 취약하다고 해석할 수 있었던 사례입니다. 당시에는 텍스처 편향 연구가 활발하지 않아 둘을 연결하지 않았던 것 같습니다.
⏱ 31:33그림 A는 강아지 이미지의 타깃 클래스를 화산(volcano)으로 정해 적대적 예제를 만든 결과입니다. 같은 강아지 이미지를 축구공(soccer ball)으로 분류하도록 타깃을 정해 공격하면 B와 같은 이미지가 나옵니다. C는 쌍안경(binoculars)을 타깃 클래스로 정해 공격한 경우입니다. A를 실제 화산 이미지와 비교해 보면 텍스처가 아주 짙게 들어간 것은 아니지만, 이미지의 이런 부분들 때문에 모델이 화산이라고 판단하는 것이 아닐까 생각하게 됩니다.
⏱ 32:17이 정도면 이미지의 차이를 직관적으로 확인할 수 있습니다. 역으로 모델이 로컬 텍스처에 취약하다고 해석할 수 있고, B도 마찬가지입니다. C는 조금 더 심합니다. 오른쪽 가장자리의, 사람이 보면 노이즈처럼 보이는 부분 때문에 모델이 그렇게 분류하지 않을까 개인적으로 생각합니다. 다만 논문에 정확한 해석이 제시된 것은 아닙니다. 로컬 정보와 전반적인 텍스처에 모두 취약하다는 것이 이 논문의 주장이나 의도는 아니지만, 결과를 이런 식으로 해석해 볼 수도 있다는 말씀입니다.
⏱ 33:0610. 텍스처 공격과 색상 공격의 사례
⏱ 33:06ICLR 2020에는 이런 점을 주요 기여로 삼는 공격 방식이 등장합니다. 텍스처 공격(texture attack)과 색상 공격(color attack)을 제안한 논문입니다. 이미지에 큰 차이를 주지 않고 텍스처만으로도 공격할 수 있음을 보여 줍니다. 랜덤한 텍스처를 가져오면 이미지가 많이 망가지지만, 사람이 보기에 그럴듯한 타깃을 정해 텍스처를 만들면 랜덤한 경우보다 결과가 조금 낫습니다. 그림에서는 타깃과 현실적인 타깃(realistic target)이 비슷한 이미지라 아래 두 행의 결과가 유사해 보입니다.
⏱ 33:54반대로 랜덤한 것 중 결과가 좋지 않았던 텍스처를 가져오도록 타깃을 정하면 위쪽 두 행처럼 비슷한 결과가 나올 것입니다. 어떤 방식이든 공격할 원본 이미지와 질감이 가장 비슷한 현실적인 타깃을 고르면, 이미지에 큰 손상을 주지 않으면서도 그 타깃 클래스로 오분류하도록 만들 수 있습니다. 이렇게 생성된 것이 적대적 예제입니다. 사람이 보면 “이 정도면 그냥 원래 대상인데”라고 할 만한 이미지들이지만, 모델은 모두 왼쪽에 표시된 잘못된 클래스로 분류하는 상황입니다.
⏱ 34:42같은 논문은 색상만으로도 공격이 가능하다는 것을 보여 줍니다. 정답 클래스에 해당하는 원본 이미지가 있을 때, 오리로 오분류시키는 경우는 전체 색을 크게 바꾸지 않고 물 색깔만 잘 바꾸어도 됩니다. 골프 카트(golf cart)는 잔디색이 많이 들어가면 해당 클래스로 분류되기도 합니다. 무지개색 무늬도 있는데, 아마 학습 이미지의 우산 중에 그런 우산이 많았던 것 같습니다. 빨간색이나 노란색이 특정 패턴으로 들어가도록 이미지를 만들면 우산으로 오분류한다는 예시입니다. [이 예시의 원래 클래스명은 자막에서 불명확합니다.]
⏱ 35:34제가 가장 재미있게 본 예시는 사주(sandbar)입니다. 원본은 보통의 건물색을 가진 건물 이미지인데, 위아래를 파란색으로 만들고 그 사이를 모래색으로 바꾸면 아래 그림처럼 사주로 오분류합니다. 이것을 보면 모델이 색에도 굉장히 민감하다는 것을 이해할 수 있습니다. 자동차 이미지의 정답을 텐치(tench)라는 어종으로 오분류하게 만드는 경우에도, 아래 예시처럼 푸른색 계열을 넣으면 그 클래스로 잘 분류한다는 결과가 보고됩니다.
⏱ 36:22같은 해 CVPR에도 온전히 색상을 이용하는 공격이 나옵니다. 이미지의 형태에 큰 차이를 주지 않고 색상만으로 공격할 수 있음을 보입니다. 다만 이 부분은 지금 영상에서 계속 이야기하는 텍스처 편향과는 조금 거리가 있으므로, 모델이 색상에도 크게 좌우될 수 있다는 정도만 말씀드리고 넘어가겠습니다. 앞선 예시들은 원래 이미지가 사람에게는 충분히 알아볼 만하게 남아 있어도, 텍스처나 색의 변화로 모델의 분류가 달라질 수 있음을 보여 줍니다.
⏱ 36:5211. ViT와 CNN의 인간 유사성 비교 지표
⏱ 36:52마지막으로 최근 비전 분야에서 관심을 받고 있는 ViT의 텍스처 편향은 어떤지 말씀드리겠습니다. 2021년에 아카이브(arXiv)에 올라온 논문으로, CNN과 ViT 중 어떤 모델이 사람과 더 유사하게 판단하는지 연구합니다. 위에 보이는 것이 논문 제목입니다. 그래프는 막대가 높이 올라갈수록 사람과 유사하다는 의미를 표현하며, 사용한 지표는 코언의 카파(Cohen’s kappa)와 JSD입니다.
⏱ 37:31코언의 카파로 보면 ViT 계열과 CNN 계열의 성능 차이가 꽤 큽니다. 여기서 성능 차이는 사람과의 유사성 차이가 크다는 의미입니다. 반면 JSD로 보면 모델 간 차이가 거의 없다고 해석할 수 있습니다. 첫 번째 지표인 코언의 카파는 왼쪽 수직축의 수치로 비교하면 되고, 두 번째 지표 JSD의 막대그래프는 오른쪽 축의 수치로 비교하면 됩니다. 같은 그림에 두 지표가 들어 있으므로 서로 어떤 축을 사용하는지 구분해서 읽어야 합니다.
⏱ 38:14사용한 지표 중 JSD를 먼저 설명하겠습니다. P와 Q를 각각 사람과 모델의 분포로 두면, JSD는 두 분포 사이의 차이를 나타냅니다. 저자들은 JSD가 낮을수록 일관성(consistency)이 높다고 해석합니다. 코언의 카파는 두 주체가 우연히 같은 선택을 할 확률을 고려해서, 실제로 얼마나 같은 선택을 했는지를 보는 지표입니다. 따라서 사람과 모델이 단순히 같은 답을 많이 냈다는 것뿐 아니라, 우연히 같은 결론을 낼 수 있는 정도를 함께 고려합니다.
⏱ 38:52관측된 일치도(observed agreement)는 전체 이미지 수를 분모로 하고, i와 j가 같이 맞히거나 같이 틀린 이미지 수를 분자로 둡니다. 여기서 i와 j는 사람과 모델입니다. 기대 일치도(expected agreement)는 두 주체가 우연히 함께 맞힐 확률 PᵢPⱼ와 함께 틀릴 확률 (1−Pᵢ)(1−Pⱼ)를 더한 값입니다. 이 기대 일치도는 우연히 같은 결론을 내릴 확률이고, 관측 일치도는 실제로 같은 결과를 낸 비율입니다. 코언의 카파 계수가 높을수록 여기서는 일관성이 높다고 해석할 수 있습니다.
⏱ 39:55이후 그림도 앞에서 본 그래프와 동일한 형태이므로 같은 방식으로 해석하면 됩니다. 전반적으로 ViT 계열이 CNN 계열보다 형태 편향이 강한 것을 확인할 수 있습니다. 앞서 사람의 형태 편향이 강하다는 것을 보았으므로, CNN과 ViT의 판단을 사람과 비교하는 연구는 두 모델이 어떤 단서를 활용하는지를 이해하는 데 연결됩니다. 다만 방금 본 것처럼 코언의 카파와 JSD가 드러내는 모델 간 차이의 정도는 서로 다릅니다.
⏱ 40:1512. 패치 가림 실험으로 비교한 ViT의 강건성
⏱ 40:15마지막 논문은 ViT의 형태 편향 전반을 설명하기보다, ViT의 흥미로운 특성을 여러 가지 나열하고 실험한 논문입니다. 그중 한 가지 실험을 가져왔습니다. 여기서는 “비전 트랜스포머는 가림(occlusion)에 강건한가?”라는 질문을 던집니다. 이미지의 패치를 가려서 형태 정보를 망가뜨리는 실험입니다. 패치의 RGB 값을 0으로 마스킹해 모델이 그 부분을 전혀 보지 못하게 한 뒤, 정확도가 얼마나 달라지는지 비교합니다.
⏱ 41:21원본 이미지에 적용하는 방식으로 랜덤 패치 드롭(random patch drop)과 현저한 패치 드롭(salient patch drop)이 있습니다. 랜덤 패치 드롭은 말 그대로 패치의 위치를 무작위로 정해서 제거합니다. 현저한 패치 드롭은 전경 패치 드롭(foreground patch drop)이라고 보면 됩니다. 당시 페이스북 AI, 현재 메타 AI에서 진행한 DINO 논문의 전경 분할 메커니즘에서 아이디어를 빌려 그대로 사용합니다.
⏱ 42:00그 메커니즘을 사용하면 각 패치가 전경일 확률과 그 순서를 얻을 수 있습니다. 전경일 확률이 높은 상위 몇 퍼센트의 패치를 잘라 내는 것이 전경 패치 드롭입니다. 반대로 전경 확률이 가장 낮은 하위 몇 퍼센트의 패치를 골라 제거하면 배경을 지우는 것이 됩니다. 이 방식이 배경 패치 드롭(background patch drop)입니다. 무작위로 지우는 경우, 객체와 관련된 전경을 먼저 지우는 경우, 배경을 먼저 지우는 경우를 나눠 비교하는 것입니다.
⏱ 42:41결과 그림의 가장 왼쪽은 CNN 기반 모델군이고, 나머지는 ViT 계열과 ResNet의 비교입니다. 왼쪽 그래프에서는 성능이 굉장히 급격하게 떨어집니다. 세로축은 톱 1 정확도, 가로축은 정보 손실(information loss)로, 전체 이미지에서 지운 패치가 차지하는 비중을 뜻합니다. 앞에서 본 세 번째 이미지처럼 전경이 거의 다 사라진 사례에 대해, 강연자는 현저한 패치 드롭의 정보 손실이 약 80% 정도로 보인다고 설명합니다. [이어지는 수치는 자막에서 불명확합니다.] 이런 식으로 예시 이미지와 그래프를 함께 읽으면 됩니다.
⏱ 43:42랜덤 패치 드롭에는 ViT가 굉장히 강하며, ViT 계열 안에서는 강건성의 차이가 크지 않아 보입니다. 현저한 패치 드롭을 보더라도 CNN 기반 모델보다 ViT가 확실히 강건하다고 해석할 수 있습니다. 특히 랜덤 패치 드롭과 배경 패치 드롭에서는 ViT의 성능 저하가 굉장히 늦게 일어납니다. 물론 제거 비율이 100%가 되면 이미지는 거의 전부 검은색이므로, 그때 맞히지 못하는 것은 당연하다고 볼 수 있습니다.
⏱ 44:28이런 성능 비교를 통해 CNN은 ViT보다 형태 편향이 낮고 텍스처에 더 민감하다고 해석할 수 있습니다. CNN은 로컬 영역에 의존하는데, 패치를 조금만 제거해도 의존할 로컬 영역이 줄어들기 때문에 높은 성능을 기대하기 어렵다는 것입니다. 반면 ViT는 이 패치 가림 실험에서 상대적으로 강한 모습을 보입니다. 여기까지 이번 영상에서 준비한 내용을 모두 말씀드렸습니다. 긴 시간 동안 들어 주셔서 감사합니다.






