23.06.15
DEVOTEE를 활성화 시키면
지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.
버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.
| 컨텐츠 유형 | 제목 | 저장일 | 삭제 |
|---|
본인인증 로그인에 실패하였습니다.
회원이 아니시거나 본인인증 등록이
완료되지 않은 사용자입니다.
안녕하세요! SK C&C AI engineer 조경진입니다.
Transformer는 현재 텍스트 분야에서 널리 사용되고 있습니다.
또한 이미지 분야에서도 Vision Transformer 아키텍처를 활용한 다양한 모델들이 등장하고 있으며, 활발하게 연구와 제품 개발이 이루어지고 있습니다.
본격적으로 ViT(Vision Transformer) 모델을 살펴보겠습니다.
ViT의 원래 논문 제목은 "AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE"입니다.
이 제목이 의미하는 바와 같이, 이미지를 16x16 패치로 나누어 Transformer에 입력하는 모델입니다.
Vision Transformer는 이미지 처리에 있어서 Transformer 구조의 잠재력을 최대한 발휘하려는 새로운 접근 방식을 제시합니다.
이 모델의 핵심 구성 요소인 아키텍처, 패치 임베딩, 위치 임베딩, 그리고 클래스 토큰 임베딩에 대한 설명이 이 글에서 중요한 부분입니다.
이 구성 요소들을 정확히 이해하는 것이 Vision Transformer의 작동 원리와 성능을 파악하는 데 필수적입니다.
실험 결과 부분에서는 Vision Transformer가 기존 모델들과 어떻게 비교되는지, 다양한 조건과 환경에서 어떤 성능을 발휘하는지를 상세히 분석합니다.
이어서 장단점에서는 Vision Transformer의 강점과 약점을 명확히 짚어보는데,
특히 Transformer의 고유 한계인 inductive bias에 대한 설명은 이 모델의 근본적인 특성과 제약을 이해하는 데 매우 중요합니다.
이 부분은 반드시 주의 깊게 살펴봐야 합니다.
먼저 Vision Transformer가 등장하기 이전에 사용되던 방법들의 한계를 짚어보겠습니다.
이를 통해 Vision Transformer가 어떤 점을 개선하고자 했는지 이해할 수 있습니다.
Vision Transformer가 발표된 2021년 당시, 자연어 처리(NLP) 분야는 매우 빠르게 발전하고 있었습니다.
이러한 급격한 성장은 Transformer라는 새로운 아키텍처의 발견에 크게 기인했으며,
Transformer는 기존 RNN이나 LSTM과는 달리 Self Attention 메커니즘을 사용하여 언어 처리 성능을 획기적으로 향상시켰습니다.
대표적으로 GPT, BERT 같은 모델들이 있죠.
반면 이미지 처리 분야에서는 여전히 ResNet, EfficientNet과 같은 CNN 기반 모델들이 주류를 이루고 있었습니다.
이는 언어와 이미지의 도메인 차이로 인해 Transformer를 바로 이미지 모델에 적용하는 데 어려움이 있었기 때문입니다.
언어는 고정된 크기의 토큰 벡터를 사용하며, 데이터가 순차적으로 입력되는 특성이 있는 반면, 이미지는 RGB와 같은 3차원 벡터로 구성되며 크기도 일정하지 않다는 차이가 있었습니다.
이러한 데이터 특성 차이로 인해 Transformer를 이미지 처리 모델에 바로 적용하는 것은 어려웠습니다.
이번 장에서는 위에서 언급한 문제들을 해결하기 위해 Vision Transformer가 적용한 방법들을 알아보겠습니다.
먼저 Vision Transformer의 전체적인 구조를 개괄할 것이며, 이 모델의 핵심 요소인 Patch Embedding, Position Embedding, Class Token Embedding에 대해 살펴보겠습니다.
이후에는 이 핵심 개념들이 어떻게 결합되어 연산되는지, 하이브리드 구조를 구성하는 방식, Fine Tuning 기법, 그리고 고해상도 이미지를 처리하기 위한 방법들을 간략하게 다룰 예정입니다.
Vision Transformer의 본질은 아키텍처와 세 가지 임베딩(패치, 위치, 클래스 토큰)이 어떤 방식으로 결합되어 연산되는지에 있습니다.
이 과정을 완벽히 이해하면, Vision Transformer의 핵심 개념을 제대로 파악했다고 할 수 있습니다.
먼저 Architecture 부분을 살펴보겠습니다. Vision Transformer의 전체적인 구조는 이렇게 구성되어 있습니다.
그림의 하단에서는 입력 이미지를 Encoder에 넣기 전에 Transformer가 연산할 수 있도록 데이터를 변환하는 과정을 보여줍니다.
이 부분은 뒤에서 설명할 Embedding 섹션에서 자세히 다룰 예정입니다.
이렇게 변환된 데이터는 Input Embedding이라고 하며, 본격적인 연산을 위해 Transformer Encoder로 전달됩니다.
Vision Transformer는 Transformer의 Encoder를 그대로 가져와 사용하며, Multi-Head Self Attention을 핵심 모듈로 구성한 형태를 유지하고 있습니다.
이 Transformer Encoder로 데이터를 처리하려면, 이미지 데이터를 Transformer가 처리할 수 있는 형식으로 변환해야 합니다.
이렇게 변환된 데이터를 Patch Embedding이라고 합니다. 이번 챕터에서는 입력 이미지를 Patch Embedding으로 변환하는 방법에 대해 설명하겠습니다.
위 그림은 Vision Transformer에서 Patch Embedding을 생성하는 과정을 나타낸 것입니다.
입력 이미지를 여러 개의 패치로 분할하고, 그 패치들을 Linear Projection을 통해 Patch Embedding으로 변환합니다.
이 과정을 이해하기 쉽게 데이터 관점에서 다시 설명드리겠습니다.
위 그림은 입력 이미지를 Patch Embedding으로 변환하는 과정을 데이터 중심으로 시각화한 것입니다.
먼저, 입력 이미지가 HxWxC 크기라고 가정하겠습니다. 첫 번째 단계는 이 입력 이미지를 N개의 패치로 나누는 것입니다.
여기서 패치 크기는 PxPxC로 표시됩니다.
ImageGPT에서는 패치들을 BERT와 Autoregressive 방식으로 학습시키기 위해 이미지의 해상도를 매우 낮추었는데, 이는 픽셀 값을 예측해야 했기 때문입니다.
하지만 Vision Transformer에서는 픽셀 값을 예측할 필요가 없으므로, 단순히 낮은 차원의 벡터로 변환하면 됩니다.
이를 위해 Linear Projection을 사용합니다. 결과적으로 PxPxC 크기의 3차원 패치는 D 차원의 벡터로 변환됩니다.
이때, N개의 패치가 모두 Linear Projection을 거쳐 NxD 크기의 Patch Embedding이 완성됩니다.
이렇게 만들어진 Patch Embedding을 그대로 입력 데이터로 사용해도 될까요? 사실 그대로 사용하기에는 중요한 문제가 하나 남아있습니다.
Transformer는 Self Attention을 사용하기 때문에 순열 불변성(Permutation Invariance)의 문제가 있습니다.
쉽게 말해, 입력 데이터의 순서가 바뀌어도 Transformer는 이를 인식하지 못한다는 것입니다.
이는 CNN과는 다르게 Self Attention을 사용하는 Transformer의 본질적인 특징이라 할 수 있습니다.
문제는 우리의 입력이 이미지를 나눈 패치들이라는 점입니다. 즉, 순서가 매우 중요한 상황입니다.
예를 들어, 눈은 위에 있어야 하고, 코는 가운데, 입은 아래에 있어야 하죠.
하지만 이대로 학습하게 되면 Transformer의 특성상 눈이 아래에 있고 입이 위에 있어도 이를 구별하지 못하는 문제가 발생할 수 있습니다.
이 문제는 언어 처리에서 사용된 Transformer에서도 동일하게 발생했습니다.
이를 해결하기 위해 Transformer는 Positional Embedding이라는 개념을 도입했는데요,
이는 간단히 말하면 각 위치에 고유한 값을 할당하여 입력 데이터에 위치 정보를 포함시키는 방식입니다.
이렇게 되면 각 위치에 따른 값이 달라지기 때문에, Transformer는 눈이 위에 있는지 아래에 있는지 구별할 수 있게 됩니다.
Vision Transformer에서도 이러한 이유로 Positional Embedding을 도입했습니다.
하지만 Transformer의 Positional Embedding과는 중요한 차이점이 하나 있습니다.
Transformer는 ‘고정된’ Positional Embedding을 사용합니다.
Sin과 Cosine 함수를 조합해 위치마다 ‘고정된’ 값을 할당하고, 이 값은 학습 도중에도 변하지 않습니다. 이는 함수로 계산된 고정된 값이기 때문이죠.
반면 Vision Transformer는 학습 가능한 Positional Embedding을 사용합니다.
즉, Positional Embedding 벡터를 처음에는 임의의 값으로 초기화한 후, 학습을 통해 최적의 Positional Embedding 벡터를 찾아내는 것입니다.
이 부분이 언어 모델의 Transformer와 Vision Transformer의 결정적인 차이점입니다.
위 그림은 전체 연산 과정에서 Positional Embedding이 차지하는 위치를 나타내고 있습니다.
논문에 있는 그림에서는 0, 1, 2… 9와 같은 숫자로 위치 정보를 포함한 데이터를 표현하고 있습니다.
그러나 이 값들이 고정되어 있는 것은 아니며, 학습 과정을 통해 최적의 위치 정보를 찾아갑니다!
이제 위에서 설명한 Patch Embedding과 Positional Embedding을 결합하여 최종 Input Embedding을 구성해야 합니다.
이 과정은 언어 모델의 Transformer와 동일하게 이루어지며, 동일한 위치끼리 더하는 Element Wise Summation 방식을 통해 진행됩니다.
위 그림과 같이 동일한 사이즈의 Patch Embedding과 Positional Embedding을 요소끼리 더해 동일한 사이즈를 갖는 Input Embedding을 만들어줍니다.
그렇다면 이제 Input Embedding을 Transformer Encoder에 넣어 연산하면 될까요?
이 시점에서 고민해야 할 문제는 우리가 궁극적으로 Vision Transformer로 추출한 Feature를 가지고 Classification을 학습하려는 것이라는 점입니다.
이를 위해 Feature에는 Classification layer를 연결하고, Cross Entropy Loss로 학습할 것입니다.
이때 의문이 드는 것은 어떤 Feature를 사용해야 할까요? Transformer에서 나온 모든 Feature를 그대로 사용하면 될까요?
겉으로 보기엔 그렇게 해야 할 것 같지만, 좀 더 깊이 생각해보면 이 방식이 불가능하다는 것을 알 수 있습니다.
그 이유는 추출된 Feature의 사이즈가 너무 크기 때문입니다. 현재 추출한 Feature의 사이즈는 NxD인데, 여기서 N은 패치의 개수이고, D는 Projection된 차원입니다.
패치의 개수인 N은 14×14이고, D는 768이라고 가정해보겠습니다. 이렇게 계산하면 Feature 사이즈는 196×768이 됩니다.
일반적으로 CNN에서는 Feature를 추출한 후 Classification Layer에 연결하기 전에 Pooling 연산을 통해 사이즈를 크게 줄이잖아요.
특히 Spatial 사이즈를 줄여 hwc 사이즈를 11c로 압축하는 과정이 필요합니다.
우리에게 필요한 것이 바로 이러한 과정입니다. 196에 해당하는 Spatial 사이즈를 압축하는 과정이 필요하다는 것이죠.
Vision Transformer는 CNN과 달리 Pooling 연산을 사용하지 않습니다. 대신 사용하는 방법이 Class Token Embedding입니다.
이는 Vision Transformer에서 처음 제안된 아이디어가 아니며, BERT에서 사용된 방법을 그대로 적용한 것입니다.
이 방법은 앞서 설명한 Patch Embedding에 Class Token Embedding이라는 벡터를 추가하는 것입니다.
이 벡터는 입력 이미지의 클래스 정보를 함축하고 있으며, 학습을 통해 찾아내게 됩니다.
이 표현이 매우 중요한데, Class Token Embedding 벡터는 Patch Embedding과는 달리 학습을 통해 발견됩니다.
이 부분은 Positional Embedding과 유사합니다. 초기값으로 설정된 1xD 사이즈의 벡터를 Class Token Embedding으로 부르고, 이를 Patch Embedding의 가장 앞에 추가합니다.
그런 다음 이대로 학습을 진행하게 됩니다. 처음에는 Class Token Embedding이 의미 없는 값을 가지게 되지만,
학습이 진행됨에 따라 Self Attention 가중치는 학습 데이터의 상관관계를 파악하는 방향으로 조정될 것입니다.
학습이 완료되면 Multi Head Self Attention을 거친 Class Token Embedding 벡터는 해당 입력 이미지를 Classification하기 위한 모든 정보를 포함하게 됩니다.
왜냐하면 지금까지 이 Class Token Embedding 벡터만을 사용해 Classification을 학습했으니까요.
이 과정을 도식화하면 다음 그림과 같습니다.
위 그림은 Class Token Embedding을 포함하여 Patch Embedding, Positional Embedding, Input Embedding의 연산 과정을 도식적으로 표현한 것입니다.
이전 그림과는 달리 Embedding의 사이즈가 NxD에서 (N+1)xD로 변경된 이유는 1xD 사이즈의 Class Token Embedding이 Patch Embedding의 맨 앞에 추가되었기 때문입니다.
Positional Embedding도 이에 맞춰 추가되었습니다. 그림에서 초록색 음영으로 표시된 부분이 Class Token Embedding입니다.
CNN에서 Pooling 과정을 거쳐 압축된 Feature만을 사용하여 Classification을 수행한 것과 마찬가지로,
Vision Transformer에서는 이 입력 데이터의 정보를 압축한 Class Token Embedding만을 사용해 Classification을 학습합니다.
Class Token Embedding에 대한 추가적인 내용은 BERT 설명글을 참조하시기 바랍니다.
지금까지 Vision Transformer의 핵심 요소인 Architecture, Patch Embedding, Positional Embedding에 대해 자세히 살펴보았습니다.
이제 나머지 요소들은 부수적인 부분에 해당하는데요.
Transformer에서도 Multi Head Self Attention (MSA) 외에 MLP, Layer Norm (LM), Residual Connection 등 다양한 구성 요소가 존재합니다.
Vision Transformer에서도 이러한 요소들을 동일하게 적용합니다. 이에 따라 전체적인 연산 과정은 다음과 같이 설명할 수 있습니다.
지금까지 이미지를 그대로 사용하여 Transformer로 연산하는 방법에 대해 알아보았습니다.
그런데 CNN과 Transformer를 결합한 구조를 만들 수 있을까요? Vision Transformer 논문에서는 이러한 구조를 Hybrid Architecture라고 설명하고 있습니다.
이 방법은 입력 이미지에서 CNN을 사용하여 Feature를 추출하고, 이 추출된 Feature를 Patch Embedding으로 사용하는 방식입니다.
기존 방법과의 차이점은, 이전에는 이미지 패치의 픽셀로부터 Linear Projection을 통해 Patch Embedding을 생성했지만,
Hybrid Architecture에서는 Linear Projection 대신 CNN을 통해 Patch Embedding을 생성한다는 점입니다.
이렇게 구성된 Hybrid Architecture의 성능은 아래의 실험 결과 챕터에서 살펴보겠습니다.
다음으로 고해상도 이미지로 Fine Tuning하는 방법에 대해 알아보겠습니다.
Vision Transformer는 일반적으로 매우 큰 데이터로 Pretrain을 진행한 후, 작은 Downstream Task에 대해 Fine Tuning을 수행하여 사용합니다.
이는 Vision Transformer가 Inductive Bias가 적어 매우 많은 학습 데이터가 필요하기 때문입니다.
학습 데이터가 부족하면 일반화 능력이 떨어져 성능이 크게 하락하는 문제가 발생합니다.
이 부분은 아래의 장단점 챕터에서 더 자세히 다룰 예정이며, 이번 챕터에서는 이러한 문제를 해결하기 위해 더 큰 해상도로 Fine Tuning하는 방법을 살펴보겠습니다.
Vision Transformer는 Inductive Bias가 적기 때문에 많은 데이터로 Pretrain한 후 Fine Tuning을 진행합니다.
때때로 Pretrain에 사용한 이미지보다 더 높은 해상도로 Fine Tuning을 하면 성능이 향상되는 경우도 있습니다.
그러나 이렇게 서로 다른 해상도의 이미지를 사용하면 문제가 발생할 수 있습니다.
Pretrain 과정에서 Positional Embedding을 학습하게 되는데, 이 Positional Embedding은 Pretraining에 사용된 패치 개수에 맞춰 학습되었기 때문입니다.
입력 이미지의 사이즈가 변하면 패치 개수도 달라지게 되고, 이로 인해 학습한 Positional Embedding이 무용지물이 되는 문제가 발생합니다.
물론 이 Positional Embedding을 Downstream Task에 맞춰 다시 Fine Tuning하는 방법도 있지만, 저자들은 그렇게 하지 않고 앞서 학습한 Positional Embedding을 Interpolation하는 방법을 제안합니다.
쉽게 말해, 저화질 이미지를 고화질 이미지로 변환할 때 Interpolation을 수행하듯이, 이미지 사이즈가 커짐에 따라 생기는 공백의 Positional Embedding 벡터들을 계산해 사용하는 방법입니다.
지금까지 Vision Transformer의 핵심 내용을 모두 살펴보았습니다. 이번 챕터에서는 여러 실험 결과를 검토할 예정입니다.
우선 기존의 다른 모델들과의 성능 비교를 진행할 것입니다. 또한 데이터셋 사이즈에 따른 성능 비교 실험을 통해 Vision Transformer의 데이터셋 사이즈 의존성을 살펴보겠습니다.
그 다음으로, 동일한 계산 복잡도를 가진 다른 모델들과의 성능 비교 실험을 통해 같은 조건에서 모델 성능을 비교할 것입니다.
마지막으로, Vision Transformer의 Attention이 어떻게 작동하는지를 분석한 실험 결과를 살펴보겠습니다.
먼저 기존의 다른 모델들과의 성능 비교 실험을 살펴보겠습니다.
위 표는 기존 CNN을 대표하는 모델들인 ResNet, EfficientNet 등과 다양한 Classification 데이터셋에 대한 성능을 비교한 그림입니다.
Ours-JFT는 대용량 데이터인 JFT로 학습한 Vision Transformer를 의미하고요, Ours-I21k는 ImageNet 21k로 학습한 Vision Transformer를 의미합니다.
결과를 보면 일단 JFT로 Pretraining한 모델이 가장 성능이 좋은 모습을 볼 수 있습니다.
대용량 데이터로 Pretrain을 한 뒤 Downstream Task로 Fine Tuning 할 때 가장 성능이 좋음을 알 수 있습니다.
그리고 기존 CNN 모델들보다 모든 데이터셋에서 성능이 좋은 모습을 보입니다. 드디어 이미지 도메인에서도 Transformer 기반의 모델이 CNN 모델을 넘어서기 시작한 모습이죠.
다음은 Pretraining 데이터 사이즈에 따른 성능을 비교해보겠습니다.
위 그림은 다양한 데이터셋으로 학습한 ViT, BiT 모델의 성능을 비교한 그래프입니다. 오른쪽으로 갈 수록 더 큰 데이터셋입니다.
첫 번째로 더 큰 데이터셋으로 학습 했을때 Vision Transformer의 성능이 좋아지는 모습을 확인할 수 있습니다.
두 번째로 ImageNet 만으로 학습 했을때는 Large 모델(파란색) 이 Base 모델(보라색) 보다 더 성능이 낮은 모습을 볼 수 있습니다.
이를 통해 역시 Vision Transformer를 제대로 사용하기 위해서는 반드시 큰 데이터셋으로 Pretrain을 해야 함을 알 수 있습니다.
위 그림은 JFT 데이터셋의 샘플을 늘려가며 Vision Transformer와 ResNet의 성능을 측정한 그래프입니다.
첫 번째로 알 수 있는 사실은 학습 데이터양이 적으면 Vision Transformer는 ResNet보다 성능이 낮다는 사실입니다.
이는 학습 데이터 양이 적을때 ResNet의 성능이 Vision Transformer보다 낮다가, 이후 역전되는 현상을 통해 확인할 수 있습니다.
다음은 모델의 Scale에 따른 성능 비교 실험을 살펴보겠습니다.
위 그림은 연산량에 따른 성능을 비교한 그래프입니다.
첫 번째로 알 수 있는 사실은 동일한 연산량의 모델에서는 Vision Transformer가 ResNet을 압도한다는 것입니다. 이는 전체적으로 회색 점이 주황색, 파란색 점 보다 아래에 있는 모습을 통해 확인할 수 있습니다.
두 번째로 알 수 있는 사실은 하이브리드 모델이 기본 Vision Transformer 모델보다 살짝 더 좋다는 사실입니다. 이는 주황색 점이 전체적으로 파란색 점 보다 위에 있는 모습을 통해 확인할 수 있습니다.
세 번째로 알 수 있는 사실은 Vision Transformer의 성능은 이번 실험을 통해서 Saturation 되지 않았다는 점입니다. 즉 연산량을 더 높이면 지금보다 더 좋은 성능을 낼 수 있다는 것이죠.
지금까지 Vision Transformer 논문의 모든 내용을 살펴보았습니다. 이번에는 Vision Transformer의 장단점을 정리해 보겠습니다.
첫 번째 장점은 전역적인 컨텍스트 인식 능력입니다. Vision Transformer는 이미지의 각 부분을 독립적으로 처리하지 않고, 전체 이미지의 컨텍스트를 고려하여 정보를 처리합니다.
이는 Transformer의 Self Attention 모듈 덕분에 가능하며, 이를 통해 이미지의 각 부분 간의 관계와 전체 이미지에서의 역할을 파악할 수 있습니다.
이러한 전역적 인식 능력은 복잡한 시각적 관계나 패턴을 이해하는 데 매우 유용합니다.
두 번째 장점은 스케일링의 유연성입니다. Vision Transformer는 모델의 크기와 깊이를 쉽게 조정하여 다양한 연산 요구 사항에 맞게 조정할 수 있습니다.
이는 모델의 성능 향상과 리소스, 정확도 간의 균형을 맞추는 데 도움을 줍니다.
또한, 큰 데이터셋에서 더 큰 모델을 훈련시킬수록 성능이 향상되는 경향이 있어, 스케일링이 Vision Transformer의 성능 개선에 중요한 역할을 합니다.
세 번째 장점은 데이터 전처리의 최소화입니다. Vision Transformer는 이미지를 패치로 나누고 이를 벡터로 변환하는 간단한 전처리만 필요합니다.
복잡한 데이터 증강이나 특별한 전처리 없이도 높은 성능을 달성할 수 있어, 훈련 과정을 단순화하고 다양한 데이터셋에 쉽게 적용할 수 있습니다.
네 번째 장점은 모듈화 및 재사용의 용이성입니다. Vision Transformer의 구조는 잘 모듈화되어 있어 다양한 시각적 작업에 쉽게 적용할 수 있습니다.
또한, 훈련된 모델을 다른 작업에 전이 학습하기 쉬워, 연구자들이 새로운 시각적 작업을 탐색하거나 다양한 데이터셋에서 성능을 개선하기 위해 Vision Transformer를 재사용할 수 있습니다.
첫 번째 단점은 계산 복잡도입니다. Vision Transformer는 이미지의 모든 부분 간의 관계를 계산하기 때문에 계산 복잡도가 높습니다.
특히 이미지 크기나 패치 수가 증가할수록 연산 요구 사항이 급격히 증가할 수 있어, 특히 큰 이미지나 데이터셋에서는 훈련 시간이 길어질 수 있습니다.
두 번째 단점은 데이터 의존성입니다. Vision Transformer는 충분한 양의 데이터와 다양한 데이터가 필요합니다.
작은 데이터셋에서는 성능이 제한될 수 있으며, 충분한 데이터가 없으면 모델의 전체 잠재력을 발휘하기 어렵습니다. 따라서 큰 데이터셋에서 훈련하는 것이 권장됩니다.
이는 Transformer의 근본적인 한계인 Inductive Bias 때문입니다. 이 부분에 대해서는 좀 더 깊이 살펴볼 필요가 있습니다.
Inductive Bias(귀납적 편향)는 데이터 구조에 대한 특성을 모델에 미리 반영한 것을 의미합니다. CNN은 이미지 도메인에 대한 특성을 반영하여 설계되었으며, 주변 픽셀 정보가 중요합니다.
멀리 떨어진 정보보다는 주변 픽셀에서 많은 정보를 얻을 수 있습니다. 이러한 특성을 활용하기 위해 CNN에서는 Convolution과 Pooling 등을 조합하여 주변 정보를 통합합니다.
이는 해당 도메인에서 잘 작동하도록 모델을 구성한 일종의 "반칙"이라고도 볼 수 있습니다. 반면 Vision Transformer에는 이러한 "반칙"이 없습니다.
Self Attention은 모든 패치 간의 관계를 계산해야 하므로, 주변 픽셀 정보를 더 고려해야 한다는 의도가 없고, 결과적으로 더 많은 데이터를 통해 이러한 이미지 특성을 직접 학습해야 합니다.
세 번째 단점은 해석의 어려움입니다. Transformer 구조는 CNN에 비해 직관적이지 않을 수 있습니다.
따라서 모델이 이미지를 처리하고 판단을 내리는 방식을 이해하거나 해석하는 것이 어려울 수 있습니다.
이는 연구자나 개발자가 모델의 동작 방식을 분석하거나 문제를 해결하는 데 어려움을 줄 수 있습니다.
마지막으로 Vision Transformer의 의의를 정리해 보겠습니다.
첫 번째 의의는 CNN에 대한 새로운 도전이라는 점입니다. Vision Transformer는 전통적인 CNN(Convolutional Neural Network)에 대한 혁신적인 도전을 제시합니다.
CNN은 이미지 처리와 관련된 작업에서 오랫동안 주류를 차지해 왔습니다.
하지만 Vision Transformer는 Transformer 구조를 활용하여 이미지를 처리하는 독창적인 방식을 제안하며, 이를 통해 CNN과 유사하거나 그 이상의 성능을 발휘합니다.
이는 이미지 처리 분야의 기존 패러다임에 변화를 가져올 수 있으며, 연구자들에게 새로운 연구 방향성을 제공할 수 있습니다.
두 번째 의의는 다양한 시각적 작업에의 확장 가능성을 입증한 것입니다. Vision Transformer는 여러 시각적 작업에 적용될 수 있는 높은 확장성을 보여줍니다.
기존 CNN 모델은 특정 작업에 최적화된 경우가 많지만, Vision Transformer는 구조상 여러 작업에 쉽게 적용될 수 있습니다.
이는 Transformer의 특성 덕분에 전체 이미지의 컨텍스트를 고려할 수 있기 때문입니다.
따라서 Vision Transformer는 이미지 분류는 물론, 객체 탐지, 시멘틱 분할 등 다양한 작업에도 적용될 것으로 기대됩니다.
세 번째 의의는 전이 학습의 중요성을 재확인한 점입니다. Vision Transformer는 전이 학습의 중요성을 강조합니다.
특히, 대규모 데이터셋에서 사전 훈련된 모델을 소규모 데이터셋의 작업에 적용하여 높은 성능을 달성할 수 있다는 것을 보여줍니다.
이는 작은 데이터셋만으로도 Vision Transformer를 활용하여 높은 성능을 이끌어낼 수 있음을 의미합니다.
또한, 이러한 전이 학습 접근 방식은 다양한 분야에서의 연구나 실제 응용에서도 큰 잠재력을 지니고 있음을 나타냅니다.
https://ffighting.net/deep-learning-paper-review/vision-model/vision-transformer/#google_vignette
DEVOTEE를 활성화 시키면
지금 작성한 댓글에 AI가 댓글을 달아줍니다.