dhkim0225 / 1day_1paper

read 1 paper everyday (only weekday)
53 stars 1 forks source link

[69] How do vision transformers work? (AlterNet) #98

Open dhkim0225 opened 2 years ago

dhkim0225 commented 2 years ago

왜 ViT 가 잘 working 할까에 대해 연구한 논문. paper

일반적으로 생각하는 MSA 가 좋은 이유

MSA 의 어떤 부분이 모델을 위해 좋을까?
==> long range dependency

MSA가 conv 처럼 동작할까?
==> MSA 가 generalized conv 로 볼 수도 있다.

MSA 와 conv 를 어떻게 조합해야 할까?
==> conv 가 low feature 를 뽑아내기 좋기 때문에 앞에 붙이고, MSA 를 뒤에 붙인다.

하지만 이게 잘못되었다고 주장, 및 근거 나열.

MSA 의 어떤 부분이 모델을 위해 좋을까?

loss landscape 를 수렴 이후에 재 보는게 일반적인데, 여기서는 warmup 하고 나서 바로 재 봤음. 최근, early stage 쪽 landscape 를 봐도 학습의 전방위적은 특성을 모두 볼 수 있다는 논문이 있어서 그렇다고 한다. (https://arxiv.org/abs/2012.14193)

image Loss Landscape 볼 때 2가지를 봐야 함. 가장자리가 매끄러울 수록 좋고, optimal 근처는 평평할 수록 좋음. (평평한 loss landscape 을 가지면, 좀 더 general 한 경향이 있음)

trajectory 를 보면 resnet 이 좀 더 돌아감. ResNet 이 좀 더 먼 minima 로 수렴함. 좀 더 global minima 로 떨어지는 느낌 MSA 는 trajectory 가 길게 남지 않아서, initialization 이 훨씬 중요할 수 밖에 없음.

(c) 의 경우 paper 에서 제안한 방법인데, hessian 값이 전부 양수면 convex 라 볼 수 있다.

image 만약 hessian 값이 양수 음수 왔다리 갔다리 하면 saddle point 가 있다 생각할 수 있고.

hessian 값이 음수가 많은 지를 보는 게 아래 그림에서의 첫 번째 지표. (면적) 양수값들의 평균 eigen value 를 통해 얼마나 sharp 한지 (landscape 가 얼마나 평평한지) 알 수 있다. image

ViT 의 장단점이 여기서 나옴. hessian 값은 resnet 에 비해서 작음. ==> 데이터를 적게 사용하면(6%) negative hessian 비율이 훨씬 많아짐 ==> 데이터를 많이 사용하면 자연스래 negative hessian 비율이 줄어듦 ==> "ViT 류는 데이터가 많이 필요하다" 와 연관되는 이야기

resnet 에 비해 landscape 는 훨씬 평평한 편임.

기존 알려진 상식(?)

cnn 을 쓸 수록 (inductive bias 를 크게 줄 수록) regularization 효과가 뛰어나고, 성능이 좋다. (train loss 는 증가하고, acc 도 좋아지고.)
weak inductive bias 가 training dataset 에 대해서 overfit 하게 만든다.

image mixer == MLPMixer 근데 그게 아니라 위 실험을 근거로, 다음과 같이 주장.

strong data augmentation 을 넣을 경우에 위와 같이 나옴.
이런 세팅에서는, weak inductive bias 는 학습을 방해한다.

[+] ==> generalization gap (training과 validation acc 차이라던지) 은 ViT가 안 좋은 경향이 있긴 함 (overfitting 이 잘 됨) ==> But, robustness 는 ViT 도 좋다.

ViT 의 landscape 가 평평한 건 MSA의 long range dependency 때문일까? image

5x5 locality 를 부여하면, training loss 가 줄면서, acc 가 올라간다. (더 강한 representation 학습) regularization 효과였으면, training loss 는 올라야 하는데 그러지 않았다. 3x3 까지 가면 regularization 효과도 나타난다.

이를 통해 weak inductive bias 가 학습을 단순 방해할 수도 있다는 걸 알 수 있다. 즉, inductive bias 는 그냥 proper 한 것이 있으면 있을 수록 좋다. weak inductive bias 를 data 가 해결하는게 아냐!!!

MSA가 conv 처럼 동작할까?

MSA 는 high-pass filter (high frequency 정보를 많이 활용, shape을 선호) conv 는 low-pass filter (low frequency 정보를 많이 활용, texture를 선호) image

image 위 그림 오른쪽을 보면, 하얀 영역 (MLP) 에서는 high frequency 가 증가하고, 회색 영역 (MSA) 는 high frequency가 줄어듦.

실제로도 low-frequency noise 를 주면 ViT acc가 떨어지고, high frequency noise 를 주면, resnet acc 가 떨어진다. image

featuremap variance 도 살펴봄. image featuremap variance 가 커진다면, 해당 block은 feature 를 다양화 한다 볼 수 있고, featuremap variance 가 작아지면, 해당 block 은 feature를 aggregate 한다고 볼 수 있다.

ResNet을 보면 pooling 이 aggregation 을 해주고, conv 는 feature를 다양화 시킴. ViT 에서는 MSA 가 aggregation 을 해줌.

이론적으로는 conv filter 가 high pass 든 low pass 든 다 작동 가능한데, 학습시키다 보면 low pass filter 역할을 하게 됨.

[+]
conv에서는 skip connection 을 통과하는 amplitude 가 적음
self-attention  쪽에서는 skip connection 을 통과하는 amplitude 가 큼

그럼 depth 가 깊어질 수록 skip connection 통과하는 amplitude 가 작아지나?

MSA 와 conv 를 어떻게 조합해야 할까?

Lesion study (train 되어진 모델에서 layer 하나 없애보고 얼마나 성능 떨어지는 지 봄.) Swin 쪽은 참 재밌는데, 앞쪽 block 에서는 회색 부분 (selfattention) 없애도 괜춘, 하얀 부분 (MLP) 없애면 성능 떨어짐. 뒤쪽으로 갈 수록 반대임. image

그래서 이를 이용해서 alternet 을 제안함 image

image image image image image image image image image image

Result

최종 모델 성능은 resnet 을 넘고, negative hessian value 는 적으며, convex steep 은 완만하다.

image

아래는 imagenet 결과 image

[+] 
cnn 쪽 보다는 ViT 쪽이 Stocahstic Depth 효과가 좋음
그래도 fair comparison을 위해 cnn 에도 사용했다고 함.
[+] 
MSA 는 어떻게 보면 trainable blur filter
dhkim0225 commented 2 years ago

저자 직강 중 내용 정리

  1. SAM 에서 나온 loss landscape 와 형태가 다르다
    1. SAM 의 loss landscape 는 regularize term 까지 포함하지 않고 않다. (여기 것이 정확하다 ! )
    2. SAM 은 왜 잘 동작할까?
      1. 결국 local 하게 loss landscape 를 평평하게 만들어주려고 하기 때문에, optimization 관점에서 효과가 있다.
      2. (뇌피셜) SAM 논문을 보면, augmentation 을 할 경우 SAM 의 효과가 떨어진다. 즉 비슷한 효과가 있는게 아닐까? 하는 생각을 가져본다.
      3. (뇌피셜) 요 논문에서도 ViT 기준 데이터가 많을 수록 saddle point 가 적어지지 않는가?!
  2. Early stage 에서 warmup까지만 봐도 학습이 어떻게 될지는 충분히 알 수 있어 보인다. (떡잎부터 다르다)
  3. self-attn 을 CNN 으로 바꿔치기 하는 논문들은 보면, CNN 이 low pass filter 처럼 동작하도록 되더라.
    1. 결국 cnn 을 써도 되는 거긴 하다만, 그래도 적절한 inductive bias 를 넣으면 더 잘 동작하는 것 아닐까? 라고 생각한 것이고, 실험을 통해 증명.
  4. Softmax 는 왜 low-pass filter 일까?
    1. softmax 는 output 이 0~1 이고, non-negative output 을 지닌다.
    2. 이러한 함수 적용이 무한히 반복되다 보면, 결국 내부에서 갖고 있는 정보들은 모두 날아간다. low-pass filter 의 정의와 부합.
  5. non-negativity 는 좋은 성능에 영향을 미친다.
    1. ConvNext 같은 애들 Weight 잘 학습되어 있나 하고, 결과 까보면, weight 가 굉장히 양수 형태이다.
dhkim0225 commented 2 years ago

저자 직강 2

  1. augmentation 을 세게 주면 saddle point 가 많이 생긴다. (hessian negative 가 많이 생긴다.)
  2. inductive-bias 와 augmentation 은 역할이 다르다. aug 하면 loss landscape 의 가파르기는 많이 줄어들지만 saddle 이 많이 생기고, data를 쏟아 붇거나 inductive bias 를 적절히 주면 saddle 이 해결되더라 image
  3. 우리가 흔히 “overfit되는 것 아니야?“라고 생각했던 몇몇 현상들이 사실은 underfit인 것일 수 있다. 예를 들어, classification으로 자주 사용되는 global average pooling이 종래에는 MLP classifier를 사용하는 것에 비해 적은 parameter를 사용해서 overfitting을 방지하는 것으로 여겨졌음. 하지만, MLP를 사용하는 것과 GAP을 사용하는 것의 training error는 같거나, MLP가 오히려 높다.

image