| 1. Transformer overview
Transformer 구조는 attention mechanism을 기본 학습 계층으로 사용하는 모든 신경망으로 간주됩니다.
마치 컨볼루션 신경망이 convolutions을 기본 학습 계층으로 사용하는 방식과 유사합니다.
VIT 구조는 원래 Transformer 구조를 vision 문제에 맞게 조정하도록 설계되었습니다.
“vanilla Vision Transformer”로 알려진 오리지널 구조를 이해해보겠습니다.
가령, 모델 입력은 피자, 스테이크, 스시 이미지이고, 이상적인 모델 출력은 피자, 스테이크, 초밥의 예상 라벨인 경우로 가정하겠습니다.
문제는 입력에서 원하는 출력으로 어떻게 이동해야 원하는 출력을 얻을 수 있는가입니다.
VIT는 딥러닝 신경망 구조입니다.
모든 신경망 구조는 일반적으로 레이어로 구성되며 그러한 레이어의 집합을 흔히 블록이라 지칭합니다.
여러 블록을 쌓아 올리면 전체 구조가 완성되는 방식입니다.
레이어는 입력을 받아 어떤 종류의 함수를 수행하여 다음 출력을 반환합니다.
단일 레이어가 입력을 받아 출력을 제공하듯이 레이어 모음이나 블록도 입력을 받아 출력을 제공합니다.
용어
● layer: 입력을 받아 함수를 수행한 후 출력을 반환
● Block: 레이어의 모음으로 입력을 받고 일련의 함수를 수행한 후 출력을 반환
● Architecture(or model): 블록의 모음으로 입력을 받아 일련의 함수를 수행한 후 출력을 반환
| 2. VIT architecture
- Patch + Position Embedding (inputs) : 입력 이미지를 이미지 patch 시퀀스로 변환 그리고 patch가 들어오는 순서에 위치 번호를 추가합니다.
- Embedded Patches : 임베딩으로 변환되며 이미지 값만 사용하기 보다 벡터 형태로 학습하여 이미지 표현을 학습 가능한 형태로 개선합니다.
- Norm : 신경망을 정규화하는 기술로 layernorm을 주로 사용합니다.
- Multi-Head Attention
- MLP
- Transformer Encoder :
- 내부에 두 개의 스킵 연결 (+기호)이 있어 레이어의 입력이 바로 앞 레이어와 후속 레이어에 직접 공급됩니다.
- 전체 VIT 모델은 여러 개의 트랜스포머 인코더를 겹겹이 쌓아 올린 구조로 구성되어 있습니다.
- MLP Head : 출력 레이어로, 입력의 학습된 특징을 클래스로 출력으로 변환합니다.
피자를 예시로 한다면 피자(음식 이미지)를 입력하면 이미지가 패치로 변환된 다음 임베딩에 투사됩니다.
다음으로 임베딩은 다양한 레이어와 블록을 통과하여 “피자” 클래스가 반환되는 구조입니다.
| 3. VIT 모델의 네 가지 방정식
VIT 구조는 네 가지 주요 방정식으로 구성됩니다.
첫 번째 방정식: The Patch Embedding
이미지를 학습 가능한 패치 시퀀스로 변환합니다.
트랜스포머는 모든 레이어에서 일정한 D 크기의 latent vector 사용하므로 패치를 평평하게 하고 훈련 가능한 선형 투영을 사용하여 D 차원으로 매핑합니다 (방정식 1).
여기서 latent는 데이터가 가지고 있는 잠재적이 변수를 의미합니다.
이 투영의 출력을 패치 임베딩이라고 합니다. 위치 정보를 유지하기 위해 패치 임베딩에 위치 임베딩이 추가됩니다. 학습 가능한 표준 1D 위치 임베딩을 사용합니다.
두 번째 방정식: Multi-Head Attention (MSA)
모든 Transformer 구조의 핵심은 The self-attention, multi-head self-attention입니다.
트랜스포머 인코더는 residual connections을 통해 MSA과 MLP블록을 번갈아 가며 레이어로 구성됩니다.
residual connection : 참조되지 않은 함수를 학습하는 대신 레이어 입력을 참조하여 잔여 함수를 학습하는 스킵 연결의 한 유형
LN은 LayerNome으로 모든 블록 전에 적용되고, residual connection은 모든 블록 후에 적용됩니다.
세 번째 방정식: Multilayer Perceptron (MLP)
VIT 구조는 트랜스포머 인코더의 일부와 출력 레이어에 다층 퍼셉트론을 사용합니다.
네 번째 방정식 : MLP Head
학습 가능한 임베딩을 embedded patches 시퀀스에 추가하며, 이 임베딩의 상태는 트랜스포머 인코더의 출력에서 이미지 표현 y로 사용됩니다. (방정식 4)
equation (1) : 초기 패치 임베딩 레이어의 출력
equation (2) : 특정 레이어의 출력으로 중간 값을 나타냄
skip connection : 레이어의 입력을 레이어의 출력에 추가하는 연결이 존재
equation (3) : 특정 레이어의 출력
skip connection : 레이어의 입력을 레이어의 출력에 추가하는 연결이 존재
equation (4) : 전반적인 결과물
'[Artificial Intelligence] > [Deep Learning]' 카테고리의 다른 글
Get Info for DL (0) | 2023.09.20 |
---|---|
인공지능 용어 (0) | 2023.02.28 |
AI 기초 이론 (0) | 2023.02.27 |
[콘볼루션 신경망] CONVOLUTIONAL NEURAL NETWORKS (1) | 2023.01.26 |
[오토인코더] AutoEncoder (0) | 2023.01.25 |
댓글