안녕하세요. 오늘은 CNN과 ViT에 관한 논문을 가져왔습니다.
Introduction
Intro 없이 본론으로 넘어가기 위해 서론을 좀 쓰겠습니다. 트랜스포머를 이야기할 때, 흔히들 global한 정보를 잘 본다(long-range dependency가 있다.)로 이야기합니다. 이는 CNN 대비해서 비교해서 그렇다고들 언급을 하는데, 정작 왜 그럴까에 대해서 생각해 본적이 없었습니다. 이 논문은 그 why에 대한 설명을 담고있습니다. (아래 나오는 실험과 분석들은 전부 ViT에 대한 내용이고, 비교군으로 ResNet을 비교하고 있습니다.)
Background and Expeimental setup
서로 다른 모델의 내부 파라미터의 유사도를 측정하기 위해서 CKA(Centered Kernel Alignment)라는 방법을 사용합니다. 이 방법은 서로 다른 네트워크의 정량적인 representation의 비교가 가능한데요.
CKA에서는 activation matrices를 각각 X∈R^{m*p_1}와 Y∈R^{m*p_2}로 표현(p는 뉴런)했을 때, 동일한 m 샘플을 평가에 사용합니다. 그리고 이 상황에서 K=XX^T와 L = XX^T을 각각 레이어의 gram matrix(여기서는 형태를 보면 알겠지만, 두 벡터의 내적을 통해 얻어진 행렬)라고 정의하면 CKA는 아래와 같이 계산을 합니다.
HSIC(Hilbert-Schmidt independence criterion)라는 연산이 이제 등장을 하는데요. 이 HSIC는 gram matrix를 입력으로 해서 유사도를 출력으로 내뱉은 연산이라고 합니다.
정리를 하면 위와 같은 연산을 가집니다. H는 centering matrix로 서로 다른 K와 L 행렬의 값을 정규화 하기 위해 사용됩니다. 그래서 HSIC는 입력 벡터들의 유사도를 반환하고, 이 유사도 값을 이용하여 CKA는 서로 다른 레이어의 표현력의 관계를 분석할 수 있게 됩니다.
Representation Structure of ViTs and Convolutional Networks
이 CKA를 이용하여, intermediate layer의 output(normalize나 activation을 거친 뒤의 출력값)을 이용하여 ViT와 ResNet의 내부 분석을 수행하였습니다.
우선, [그림 1]은 ViT와 Resnet의 각각에서 내부 표현력 비교에 대한 그림입니다. 그림을 정리를 해보면 ViT는 비교적 균일한 유사도를 보이고, ResNet은 lower layer와 higher layer 간의 유사도 차이가 있는 것을 확인할 수 있습니다.
다음으로 [그림 2]는 ViT와 Resnet간의 내부 표현력을 비교한 그림입니다. Resnet의 레이어 출력값들이 ViT의 하위 레이어의 출력값과 유사한 경향을 보이는 것을 확인할 수 있습니다.
Local and Global Information in Layer Representations
우리가 일반적으로 트랜스포머가 Global한 정보를 좀 더 본다는 말을 많이 하는데요. 이 섹션은 그 사실에 대한 증명을 하는 섹션입니다. 두 모델이 global information을 결합하는 과정에서 차이가 발생하는데요. 이 차이에 따른 분석 결과입니다.
Analyzing Attention Distances
ViT를 JFT라는 구글에서 학습용으로 사용하는 대용량 데이터셋으로 학습하고 이미지넷에서 평가한 결과는 [그림 3]에서 확인할 수 있습니다. 이 실험은 ViT의 self-attention layer가 local information과 global information을 어떻게 결합하는지를 보여줍니다. Mean distance가 작을수록 local 정보를 본다는 것을 의미하고, 클수록 global 정보를 볼 수 있다는 것을 의미합니다. 이런 관점에서 접근해보면 ViT의 lower layer에서는 local과 global 정보를 잘 활용하고, 높은 레이어에서는 global 정보만을 활용합니다. 이는 CNN이 고정적인 커널 크기를 가지기 때문에 lower layer에서 local 정보만을 활용하는 것과는 큰 차이를 보이는 부분입니다.
[그림 4]는 ImageNet에서 학습하고 평가한 결과입니다. ImageNet(14m)이 대용량 데이터셋이긴 하지만, JFT(300m)에 비해서는 작은 데이터셋입니다. 이러한 부분을 참고하고 실험 결과를 보면 더 이상 ViT는 lower layer에서 local 정보를 활용하지 않는 것을 볼 수 있습니다. 즉, 대용량 데이터셋 없이는 ViT는 local 정보를 보지않고, 대용량 데이터셋을 사용한다고 하더라도, CNN보다 global 정보를 더 많이 본다는 결론을 얻을 수 있습니다.
Does access to global information result in different features?
ViT가 global한 정보를 더 많이 보는 것은 맞지만, 이 사실이 학습에 어떤 영향을 미치는지를 분석하기 위한 실험은 [그림 5]에서 확인할 수 있습니다. 이 실험은 ViT와 ResNet의 특정 레이어의 표현력을 비교한 실험인데요. [그림 3]과는 다르게, 전반적으로 우하향 그래프를 그리는 것을 볼 수 있습니다. Local 영역을 보는 레이어의 early stage에서는 유사도가 높고, Global 영역을 보기 시작하면 시작할수록 CKA similarity가 낮아져서 이런 경향을 보이게 되는데요. 이러한 실험도 결국은 ViT가 Global한 정보를 더 많이 본다는 것을 증명하면서도, global information이 feature 표현력에도 영향을 미친다는 것을 보여줍니다.
Effective Receptive Fields
[그림 6]은 receptive filed의 효용성에 대한 실험입니다. 이 실험은 그림만 보면 차이가 눈에 너무 띄어서… 설명은 넘어가겠습니다.
Representation Propagation through Skip Connections
이번 섹션에서는 ViT에서 skip connection의 역할에 대해 분석합니다.
우선 이 섹션에서 Ratio of Norms를 사용하는데, 이를 계산하는 방법은 그려둔 그림과 같습니다. 수식으로는 ||z_i|| / ||f(z_i)||로 표현되는데, 입력 z와 self-attention layer든 MLP layer든 이 레이어를 거친 연산 값인 f(z)의 비율로 계산됩니다.
이렇게 계산하는 것을 이해하고 [그림 7]을 보면 되는데요. 사실 쫌 이해가 안가서 결론만 먼저 말하면 Skip connection이 ViT에서 CLS(class) 토큰의 표현력을 spatial한 토큰의 표현력으로 확장시킨다는게 결론입니다.
왼쪽 그림을 먼저 확인하면, 0번째 토큰(CLS token)의 표현력이 lower layer에서 값이 크고, 나머지 토큰들의 값은 higher layer에서 높아지는 것을 확인할 수 있는데요. 이러한 명확한 값의 차이는 CLS token의 표현력이 skip connection을 통해서 계속 propagate된다는 것을 의미합니다.
오른쪽 그림에서 Self-Attention/MLP과 ResNet50을 비교해보면, 그래프의 추세가 명확하게 다른 것을 볼 수 있는데요. 이러한 차이가 결국은 skip connection이 ViT에서 좀 더 영향력이 크다는 것을 보입니다.
ViT Representation Structure without Skip Connections
Skip connection이 ViT에서 중요한 역할을 한다는 것은 ratio of norm으로 보여줬고, 여기서는 그래서 없애면 어떤 일이 일어나는지를 보여주기 위한 그림이 등장합니다. [그림 8]은 앞에서부터 블록 1, 블록 7, 블록 10에서 skip connection 없이 학습한 결과를 보여주는데요. 실제로 skip connection이 없어진 블록을 기점으로 정보 교환이 사라져, uniform한 유사도를 보여줬던 [그림 1]과 다르게 블록 형태로 변한 것을 볼 수 있습니다.
Spatial Information and Localization
이 섹션에서는 ViT의 spatial information에 대한 내용을 다룹니다.
ViT의 token은 각 patch이기 때문에 이를 생각하면 spatial location을 추론할 수 있습니다. 이를 바탕으로 [그림 9]를 확인해보면 ResNet에 비해 ViT에서 공간적인 정보를 아주 잘 살리고 있는 것을 확인할 수 있습니다.
그래서 CLS token 대신 ResNet 처럼 global average pooling을 적용하면, [그림 10]과 같은 결과를 얻을 수 있습니다. 확실히 spatial information을 잃어버린 것을 확인할 수 있는데요. 이를 통해서 global average pooling이 localization에 필요한 공간적 정보를 손실시키는 것을 확인할 수 있습니다.
Localization and Linear Probe Classification
이러한 localization 정보가 classification에도 영향을 미치는지 분석하기 위해 [그림 11]의 실험을 수행했습니다. 왼쪽 그림은 이제 개별 토큰을 이용해서 classification을 학습시켜 평가한 결과인데, 보면 CLS token을 사용한 경우보다 모든 경우에서 GAP를 사용하는 경우가 더 높은 정확도를 보이는 것을 확인할 수 있습니다. 이는 global한 분류를 수행하는 classification에서 ViT의 경우 higher layer에서 특정 위치에 표현력이 한정되기 때문에 개별 토큰 단위로 학습을 하면 그 위치의 토큰을 제외한 나머지 토큰은 정보량이 없기 때문에 이런 현상이 발생하게 됩니다. 이와 비슷한 논리로 오른쪽 그림을 확인해보면 GAP를 활용할 경우 성능이 더 높은 것을 통해서 이를 입증한다고는 하는데… 그래프를 보면 좀 애매한 부분이 있는 것 같습니다. 어쨋든 Localization에서는 ViT가 더 적합하고, Classification에서는 GAP를 활용하는 모델이 더 좋다고 정리하면 될 것 같습니다.
Effects of Scale on Transfer Learning
여기서는 학습 데이터셋의 크기에 따른 성능 차이를 보여줍니다. 앞서 확인했던 [그림 3]과 [그림 4]의 성능 차이는 데이터셋의 크기에 따라 발생했었는데요. 실제로 ViT에서 학습 데이터가 성능에 미치는 영향을 분석하기 위해 세부 실험을 수행한 결과가 [그림 12]의 실험입니다. 정도의 차이는 있지만, 공통적으로 같은 표현력을 학습하기 위해서 higher layer에서 더 많은 학습 데이터를 요구했습니다.
그리고 [그림 13]은 학습 데이터에 따른 linear probes 성능 차이입니다. ViT에서 공통적으로 대용량 데이터셋일 경우 성능이 더 좋았고, ViT를 ResNet과 비교해도 비교적 더 높은 성능을 보입니다. 이러한 실험들은 커 튼 모델과 더 큰 데이터셋이 intermediate feature의 표현력을 향상시키는 것에 특히 도움이 되는다는 것을 입증합니다.
Conclusion
요약을 잘 해서 제가 이해한 내용이 잘 전달되었는지 모르겠네요. 실제로 읽어보면 이해가 더 잘되는데… 궁금하신 분들은 꼭 읽어보시길 추천드립니다.
안녕하세요. 좋은 리뷰 잘 읽었습니다.
이번 IPIU 작성에 있어 Transformer 방법이 어떻게 CNN에 global하게 attention 하는지에 대해 정성적이나 정량적 자료를 준비함에 힘들었는데, 위의 Analyzing attention distance를 보고서 해당 방법에 대해 궁금해졌습니다. 캡션을 보면 픽셀 간의 거리를 계산한다고 하는데, 아래의 Sorted Attention Head는 무엇을 뜻하는 지표인가요??
지표는 아니고, 픽셀간의 거리 자체는 임의의 데이터 포인트와 attention weight간의 거리 계산을 통해서 얻어지는거고 Sorted Attention Head는 ViT의 lower한 위치에 있는 attention head부터 higher한 위치에 있는 attention head까지 정렬해서 그래프로 그렸다고 보시면 됩니다.
리뷰 잘 읽었습니다.
activation matrices 가 뭐죠? activation map을 통과하고 나온 feature map인가요?
복잡해서 생략하신 거 같지만, HISC의 결과 값이 왜 두 gram matrix간의 유사도인지 그 논리도 설명해주었으면 좋았을 거 같습니다. HISC라는연산은 처음 보거든요..ㅎㅎ
[그림2]는 어떻게 받아들어야 하나요?
Resnet의 레이어 출력값들이 ViT의 하위 레이어의 출력값과 유사한 경향을 보이는 것을 확인할 수 있습니다.
=> 왜 유사한지에 대해서는 얘기가 없나요?
일단 activation matrices는 근택님이 생각하시는게 맞습니다.
다음으로 복잡해서 생략한건 아니고… 딱히 논문에서 그 이상으로 다루지 않아서 논리를 따로 다루지는 않았습니다. 저도 처음 보는 연산인데. CKA던 HISC든 유사도를 계산하기 위해 사용하는 연산으로 사용하길래, 수식만 보고 넘어가면 될 것 같습니다. 논리를 보려면… 따로 논문 한편을 더 봐야해서요.
마지막으로 [그림 2]에서 왜 유사한지에 대한 설명은 간단합니다. ViT가 CNN보다 Global한 정보를 더 많이 보기 때문에 ResNet의 상위 레이어가 보는 global information이 ViT의 하위 레이어가 보는 global information과 유사하다는 뜻입니다. 왜 ViT가 더 global information을 잘 보는지는 뒤에 분석이 나옵니다.
좋은 리뷰 감사합니다.
CKA라는 방식을 이용하여 ViT와 Resnet(CNN)의 표현력에 대한 비교를 한 것이 인상적입니다.
Analyzing Attention Distances 파트는 ViT가 CNN보다 더 Global한 정보를 본다는 것을 분석한 파트라고 하셨는데, CNN에 대한 Mean Distance 그래프는 없나요??
따로 CNN만 분석한건 없고, 그 뒤에 그림이랑 같이 보면 ViT 대비 CNN의 mean distance를 계산한 그림이 나오는데 연계해서 같이 봐야할 것 같습니다. 제가 “ViT가 CNN보다 더 Global한 정보를 본다는 것을 분석한 파트”와 같이 비슷한 언급을 많이 해둔것같은데, 논문에서 공통적으로 ViT가 global한 정보를 더 많이 보는 이유에 대한 분석을 계속 하다보니… 버릇처럼 말을 해뒀나봅니다.