ConViT: 부드러운 합성곱 귀납 편향으로 비전 트랜스포머 향상하기
이 블로그 글에서는 ConViT 트랜스포머 아키텍처를 자세히 살펴보고, 게이트드 위치적 자기 주의(GPSA) 레이어까지 함께 알아보겠습니다. 또한 ConViT 아키텍처가 트랜스포머와 CNN의 장점을 모두 취해 양쪽의 이점을 어떻게 얻는지 살펴봅니다. 이 글은 AI 번역본입니다. 오역이 있을 경우 댓글로 알려주세요.
Created on September 15|Last edited on September 15
Comment
논문 │ GitHub │ 모델 체크포인트
크레딧
사전 준비 사항
이 블로그 글에서는 독자가 다음 내용을 충분히 이해하고 있다고 가정하겠습니다. 비전 트랜스포머(ViT) 아키텍처입니다. 자세한 내용은 다음을 참고하세요. 이 블로그 ViT 아키텍처 소개를 위해.
소개
출시 이후로 비전 트랜스포머, 다른 많은 아키텍처도 소개되었습니다. 예를 들어 DeiT, CaiT, TnT, Swin 트랜스포머, DETR, 비스포머, BoTNet, HaloNet 외에도 — 이를 활용한 트랜스포머 그리고 이를 컴퓨터 비전 분야에 적용했습니다.
하지만 제 생각에는, 우리가 실제로 보게 되기까지는 아직 조금 더 시간이 필요합니다 셀프 어텐션 합성곱 신경망을 완전히 대체하는 방식으로제가 지금까지 보고 읽은 바에 따르면, 최고의 모델 성능은 두 가지 접근의 장점을 모두 취할 때 나옵니다. 즉, 모델 아키텍처에서 앞부분에는 셀프 어텐션을, 뒷부분에는 합성곱을 사용하는 방식입니다. 이유를 설명드리겠습니다:
Cordonnier, Loukas, 그리고 Jaggi가 그들의 연구에서 보여주었듯이 — 셀프 어텐션과 합성곱 층의 관계에 대하여, 셀프 어텐션 층으로서 헤드는 커널 크기의 합성곱을 표현할 수 있습니다 각 헤드가 커널 패치 안의 픽셀에 집중한다면 가능합니다. 이는 이론적으로 셀프 어텐션이 합성곱을 완전히 대체할 수 있음을 시사하지만, 실제로는 최고의 성능이 나오려면 비스포머, BoTNet, 비전 모델에서의 독립형 셀프 어텐션 합성곱 층과 셀프 어텐션 층을 모두 사용할 때 이러한 점들이 관찰되었습니다. 네트워크의 앞부분에는 합성곱 층을, 뒷부분에는 셀프 어텐션 층을 사용하는 ���통된 경향을 확인할 수 있습니다.
ConViT 연구 논문도 이 통찰을 기반으로 발전하여, Vision Transformer의 처음 10개 셀프 어텐션 층을 다음으로 교체합니다 게이티드 위치 기반 셀프 어텐션(GPSA) 층 - 초기화 시에는 합성곱 층처럼 동작하며, 이를 기반으로 게이팅 매개변수 셀프 어텐션 층으로 변환할 수 있습니다.
이렇게 하면 초기화 시 네트워크의 앞부분이 합성곱 신경망처럼 동작하며, 학습을 통해 습득되는 게이팅 매개변수에 따라 완전한 셀프 어텐션 기반 네트워크로 전환할 수 있습니다.
이 블로그 글의 일환으로, 우리는 다음 내용을 살펴보려고 합니다 ConViT 아키텍처 자세히 살펴보고, GPSA 층이 셀프 어텐션(SA) 층과 어떻게 다른지도 확인하겠습니다.
트랜스포머 대 합성곱—중간 지점은 있을까?
최근에 ViT 트랜스포머 아키텍처가 데이터가 풍부한 환경(방대한 양의 데이터가 이용 가능한 경우)에서 매우 강력할 수 있음을 보여줍니다. ViT 아키텍처는 방대한 양의 데이터에 대한 사전 학습을 요구합니다. JFT-300M 또는 ImageNet-21k 데이터세트. 하지만 실무자들이 이 사전 학습을 수행하는 데 필요한 충분한 하드웨어를 보유하고 있지 않을 수도 있어, 이는 항상 가능한 일은 아닙니다.
반면에 합성곱 기반 모델인 EfficientNet, 더 적은 데이터로도 강력한 성능을 낼 수 있습니다. 예를 들어, EfficientNet-B7는 외부 사전 학습 없이도 top-1 정확도 84.7%를 달성했습니다.
따라서 실무자는 성능의 하한은 높지만 상한은 낮은 합성곱 기반 모델과, 성능의 하한은 낮지만 상한은 높은 자기어텐션 기반 모델 사이에서 선택해야 하는 딜레마에 직면합니다.
이는 다음과 같은 질문으로 이어집니다 - "두 가지 세계의 장점을 모두 얻을 수 있을까요?"""
이러한 방향에서 우리는 두 가지 성공적인 접근법을 보았습니다 ConViT 이전 -
- A “하이브리드” 모델 초기 층에서는 컨볼루션 층을 사용하고, 그 다음에 셀프 어텐션을 적용하는 방식입니다. Hybrid ViT, BotNet, Visformer가 이러한 접근법의 예입니다.
이제 핵심 질문으로 돌아갑니다. 합성곱과 셀프 어텐션 사이에 중간 지점이 있을까요? 정답은 있습니다! 그것은 ConViT!
핵심 기여 사항
에서 ConViT에서 연구진은 CNN과 트랜스포머 간의 격차를 좁히는 새로운 진전을 이루었으며, 주요 기여는 다음과 같습니다.
- 새로운 형태의 셀프 어텐션 레이어인 게이트드 위치적 자기-어텐션(GPSA) 레이어.
- ConViT는 DeiT를 능가하며 샘플 효율성도 개선합니다. (아래 그림 2)
- 연구진은 ConViT의 내부 작동 방식을 탐구하기 위해 소거 실험을 수행했다. 이를 통해 비전 분야에서 트랜스포머와 관련된 몇 가지 핵심 질문에 답했다.

그림 1: ConViT 아키텍처는 샘플 효율성과 파라미터 효율성 모두에서 DeiT를 능가합니다.
주요 기여를 살펴봤으니, 이제 모델 아키텍처로 넘어가 GPSA 레이어를 자세히 살펴보겠습니다.
ConViT 아키텍처
논문에서,
ConViT는 기본적으로 ViT이며, 처음 10개 블록에서 SA 레이어를 합성곱 초기화를 적용한 GPSA 레이어로 대체한 모델입니다.
뭐라고요? 정말요?! 그럼 이해하기가 훨씬 쉽겠네요. ViT와 GPSA만 이해하면 충분합니다.

그림 2: ConViT 아키텍처
위의 그림 2에서 볼 수 있듯이, ConViT 아키텍처는 네트워크의 초반부에 게이티드 포지션 셀프 어텐션(GPSA) 레이어를 사용하고, 후반부에는 셀프 어텐션(SA) 레이어를 배치합니다.
게이티드 포지션 셀프 어텐션(GPSA) 레이어
이 절에서는 GPSA 레이어를 자세히 살펴보겠습니다.
주의: 이 절은 수식이 조금 많습니다. 부담 없이 읽어 주세요. 저에게 연락해주세요 또는 이 보고서의 마지막에 댓글로 질문을 남겨 주세요.
어디에서 그리고 는 각각 쿼리 행렬과 키 행렬을 나타냅니다. 어떤 입력이 주어지면 , 그리고 . 그리고 임베딩 차원을 나타냅니다(비전 트랜스포머에서는, 로 설정됩니다(768)."
따라서, 어텐션 메커니즘에서 “쿼리"임베딩이 다른 시퀀스의"키"내적을 사용해 임베딩을 비교합니다. 그 결과는 각 임베딩이 서로에게 얼마나 중요한지를 정량화하는 어텐션 행렬입니다."관련됨""" 입니다 !
마지막으로, 출력하십시오 다음과 같습니다, .
어디에서 .
👉: 이 주의(attention)에 대한 표기 때문에 혼동하지 마세요. 이는 단지 다른 표기 방식일 뿐입니다.
하지만 이미 알고 있듯이, 이 어텐션 메커니즘은 위치 정보가 전혀 포함되어 있지 않습니다. 즉, 셀프 어텐션 레이어는 패치들이 서로에 대해 어떻게 배치되어 있는지 알지 못합니다.
이 문제를 해결하기 위해 위치 정보를 포함하는 방법은 두 가지가 있습니다.
- 셀프 어텐션을 다음으로 교체 위치적 자기-어텐션(PSA), 임베딩을 사용하여 패치의 그리고 .
PSA 층은 수학적으로 다음과 같이 표현할 수 있습니다:
위의 식에서 우리는 다음과 같이 둡니다 콘텐츠 및 위치 정보 간 상호작용첫 번째 부분은 콘텐츠 상호작용이고, 두 번째 부분은 위치적 상호작용입니다.
❓: 첫 번째 부분이 콘텐츠 상호작용을, 두 번째 부분이 위치적 상호작용을 나타내는 이유를 생각해 볼 수 있을까요? 또한, 이것이 기본(Self-Attention) 층과는 어떻게 다른가요?
하지만 저자들은 두 가지 수정 사항을 적용하여 위치적 자기-어텐션(PSA) 다음과 같습니다:
- 상대 임베딩 학습 과정에서 고정되어 있으며 업데이트되지 않습니다. 이는 상대 임베딩의 개수가 패치 수에 대해 제곱으로 증가하므로, 학습해야 할 파라미터 수를 줄이기 위한 것입니다.
- 위치적 상호작용과 콘텐츠 상호작용 사이에 소프트맥스를 적용하는데, 두 값의 규모가 서로 다르고(콘텐츠 상호작용이 위치적 상호작용보다 훨씬 큼), 그 결과 소프트맥스 연산 이후 이 차이가 더 크게 강조됩니다.
위의 (2)를 피하기 위해, 저자들은 다음을 도입합니다. 게이트드 위치적 자기-어텐션(GPSA) 소프트맥스 이후 콘텐츠 상호작용과 위치적 상호작용을 합산하고, 학습 가능한 게이팅 파라미터로 두 요소의 상대적 중요도를 조절하는 레이어들 .
보시다시피, 위의 방정식은 아래의 GPSA 레이어로 이어집니다.

그림 3: 게이트드 위치적 자기-어텐션
👉: 잠시 멈추고 짧은 휴식을 취한 뒤, 그림 3과 GPSA 레이어의 수학적 표현 사이의 관계를 스스로 확인해 보시길 권합니다.
사실 이것으로 충분합니다! GPSA 레이어를 특정 방식으로 초기화하면, 초기화 시점에는 이 레이어들이 합성곱 레이어처럼 동작할 수 있습니다. 따라서, ConViT 아키텍처에서는 두 세계의 장점을 모두 취해, Transformer와 CNN의 이점을 동시에 얻을 수 있습니다..
요약
지금까지 배운 내용을 요약해 보겠습니다. 먼저, 데이터가 풍부한 환경에서는 Transformer 기반 아키텍처가 CNN보다 더 뛰어난 성능을 보이지만, 이 접근법은 비용이 큰 사전 학습을 필요로 합니다. 반면, 사용 가능한 데이터가 적을 때는 컴퓨터 비전에서 CNN이 Transformer보다 더 좋은 성능을 냅니다.
이 질문으로 이어집니다. “두 세계의 장점을 모두 취할 수 있을까요?”
이러한 목적을 위해 FAIR 연구진은 합성곱 레이어로 초기화할 수 있는 GPSA 레이어와 ConViT 아키텍처를 소개했습니다. 학습이 진행되면서 모델이 해당 레이어들이 계속 합성곱적 성격을 유지할지 스스로 결정할 수 있도록 설계되었습니다. 우리는 또한 GPSA 레이어를 자세히 살펴보며, GPSA의 수학적 표현이 그림 3과 어떻게 연결되는지 이해했습니다.
마지막으로, ConViT 아키텍처는 간단히 말해 ViT인데, 처음 10개 블록에서 SA 레이어를 합성곱 초기화를 적용한 GPSA 레이어로 대체한 것입니다.
PyTorch에서의 ConViT
import timmimport torchm = timm.create_model('convit_tiny')x = torch.randn(1, 3, 224, 224)m(x).shape>> (1, 1000)
결론
이 블로그 글을 통해 컴퓨터 비전 분야에서 트랜스포머 아키텍처를 활용하는 새로운 접근법을 독자들에게 소개할 수 있었기를 바랍니다. ConViT 아키텍처는 다음과 같은 점에서 기존과 다릅니다 DeiT 그리고 BoTNeT즉, 강한 귀납적 바이어스가 아니라 부드러운 귀납적 바이어스를 트랜스포머에 도입한다는 의미에서입니다.
질문이 있으시면 언제든지 연락 주시거나 아래에 댓글을 남겨 주세요! 읽어 주셔서 감사합니다!
Add a comment