ViT visualization
Self-attention layer visualization
Vision Transformer(ViT)에서 Self-Attention Layer Visualization은 모델이 이미지 데이터를 처리할 때 어떤 부분에 주목하고 있는지를 시각화하는 방법
ViT는 이미지를 패치(patch)로 나누어 입력으로 사용하고, 이를 통해 이미지의 전역적 특성을 학습하는데, Self-Attention 메커니즘은 이 과정에서 중요한 역할
Self-Attention
ViT에서는 이미지가 작은 패치들로 나누어지며, 각 패치는 입력 토큰으로 변환됨
Self-Attention 메커니즘은 이 패치들이 서로 어떤 관계를 가지고 있는지를 학습한다
- 쿼리(Query), 키(Key), 값(Value) 벡터 생성: 각 패치에 대해 쿼리, 키, 값 벡터가 생성. 이는 패치 간의 연관성을 계산하는 데 사용
- 유사도 계산: 각 쿼리 벡터와 모든 키 벡터 간의 유사도를 계산 → 이 유사도는 두 패치가 얼마나 관련 있는지를 나타내며, 주로 내적(dot product)을 통해 계산
- 가중치 계산 및 값 벡터 가중합: 유사도를 기반으로 가중치를 계산하고, 각 패치에 대한 최종 출력을 얻기 위해 이 가중치를 값 벡터에 곱한 후 가중합을 한다.
- 이 과정에서 모델은 중요한 패치에 더 높은 가중치를 할당
주로 어텐션 맵(attention map)을 시각화하는 방식
- 어텐션 맵 생성
- Self-Attention 메커니즘을 통해 계산된 가중치 행렬이 어텐션 맵의 기초
- 이 행렬은 각 패치가 다른 패치와 얼마나 관련 있는지를 나타내며, 이를 통해 이미지 내 패치 간의 상호작용을 이해할 수 있음
- 예를 들어, 특정 패치에 대해 다른 모든 패치와의 관계를 시각화할 수 있음. 이 관계는 이미지의 다른 부분이 특정 패치와 얼마나 연관되어 있는지를 보여준다!
- 어텐션 맵 해석
- 어텐션 맵을 시각화하면, 모델이 이미지의 어떤 부분에 집중하고 있는지 알 수 있음.
- 예를 들어, 사람이 있는 이미지에서 모델이 사람의 얼굴이나 몸에 더 높은 어텐션 값을 할당하는 것을 볼 수 있음 → 모델이 사람을 인식하기 위해 이 부분에 더 집중하고 있음을 나타낸다!
입력 토큰 vs CLS 토큰
1. 입력 토큰
- 정의: 입력 토큰은 ViT 모델에 입력으로 사용되는 이미지 패치들이 변환된 벡터
- 생성 과정: 이미지를 작은 패치들(예: 16x16 픽셀)로 나눈 후, 각 패치는 선형 변환(즉, 임베딩) 과정을 통해 고정된 크기의 벡터로 변환 → 이 벡터들이 ViT의 입력 토큰이 된다
- 역할: 입력 토큰들은 ViT에서 서로 간의 관계를 학습하는 Self-Attention 메커니즘에 의해 처리됨.이 토큰들 간의 상호작용을 통해 모델은 이미지의 전역적 특징을 학습
2. CLS 토큰
- 정의: CLS 토큰(Classification Token)은 ViT의 입력에 추가되는 토큰
- 모델이 이미지 전체의 표현(representation)을 학습하고, 이를 기반으로 최종 클래스 예측을 수행하기 위해 사용
- 생성 과정: ViT의 입력에는 패치로 나눈 이미지들로부터 생성된 입력 토큰들과 함께, 맨 앞에 CLS 토큰이 추가된다
- CLS 토큰은 일반적으로 학습 가능한 임베딩 벡터로 초기화
- 이미지의 패치와 무관하게 모델이 분류 작업을 위해 학습하는 임베딩 벡터로, 처음엔 빈 벡터 같은 걸로 설정되었다가 학습 과정에서 모델에 의해 조정되는 형태
- 역할:
- 전역 정보 집약: Self-Attention 레이어를 거치면서, CLS 토큰은 이미지 전체의 전역 정보를 집약하게 된다. Self-Attention 메커니즘은 모든 토큰 간의 관계를 학습하며, 특히 CLS 토큰은 다른 모든 입력 토큰들과 상호작용하여 이미지 전체를 대표하는 벡터로 변환됨
- 분류 작업: ViT의 마지막 레이어에서는 이 CLS 토큰을 사용하여 이미지의 최종 클래스를 예측. CLS 토큰은 이미지의 중요한 정보를 모두 포함하고 있으므로, 이를 통해 모델이 최종 예측을 수행할 수 있음
특징 | CLS 토큰 | 입력 토큰 |
---|---|---|
역할 | 이미지 전체를 대표하는 벡터로 사용 | 이미지 패치의 개별 표현을 담당 |
위치 | 입력 시 맨 앞에 추가됨 | 이미지 패치마다 하나씩 존재 |
주요 사용 목적 | 최종 클래스 예측을 위한 전역 표현 학습 | Self-Attention을 통해 이미지 패턴 학습 |
학습 방식 | 학습 가능한 임베딩 벡터로 초기화됨 | 각 패치를 임베딩한 벡터로 구성 |
CLS 토큰은 ViT에서 이미지 전체의 정보를 집약하여 최종 분류를 수행
입력 토큰들은 이미지의 각 패치를 나타내는 반면, CLS 토큰은 이 모든 정보를 결합하여 최종적인 분류 결과를 얻기 위한 역할
두 토큰은 ViT의 Self-Attention 메커니즘 내에서 상호작용하며, 모델이 이미지의 중요한 특징을 효과적으로 학습하도록 돕는다
Self-Attention은 일반적으로 Multi-Head Attention으로 확장된다
Multi-Head Attention은 여러 개의 독립적인 Self-Attention 헤드를 사용하여 입력 데이터의 다양한 부분을 동시에 처리하고, 각 헤드는 서로 다른 표현 공간에서 Self-Attention을 수행하여 다양한 정보를 추출
- 여러 개의 헤드는 이미지의 다양한 부분에 서로 다른 관심을 가질 수 있음
- 하나의 헤드는 이미지의 배경에 집중하고, 다른 헤드는 객체에 집중…
- 시각화에서 각 헤드가 다른 위치에 집중하는 모습을 색상으로 구분할 수 있음
→ Multi-Head Attention은 다양한 관점을 동시에 고려해서 다양한 부분에 집중해 서로 다른 의미적 지역을 학습할 수 있게 함
Conclusion
GAN(Generative Adversarial Network) dissection
GAN 모델이 학습하는 과정에서 생성되는 해석 가능한 표현(interpretable representation)을 분석하고 활용하는 방법
→ GAN이 학습하는 과정에서 어떻게 해석 가능한 정보를 발견하고 활용하는지!
1. 자발적으로 형성되는 해석 가능한 표현:
- 학습 과정에서의 표현: GAN의 학습 과정에서, 생성기(generator)는 다양한 특성(예: 얼굴의 표정, 배경, 조명 등)을 조절하는 다양한 잠재 공간(latent space) 표현을 학습
- 주로 고차원 잠재 공간에서 자발적으로 형성되며, 이는 모델이 다양한 데이터의 특성을 캡처할 수 있도록 한다
- 해석 가능한 표현: 학습 과정 중에 생성기는 잠재 벡터(latent vector)의 특정 방향이 이미지의 특정 속성(예: 웃는 얼굴, 안경 착용 등)을 나타내는 것을 발견할 수 있음
- 해석 가능한(interpretative) 표현으로, 생성된 이미지의 특정 특성을 조절하는 데 사용될 수 있음
2. 분석 및 조작 응용:
- 분석적 활용: 해석 가능한 표현은 GAN의 내부 작동 방식을 이해하는 데 유용하다
- ex) 어떤 잠재 벡터의 방향이 이미지에서 특정 객체의 크기나 색상 변화를 유도하는지를 분석 가능 → GAN의 동작을 분석하고, 모델이 학습한 표현이 실제로 무엇을 의미하는지를 보여줌
- 조작적 활용: 이러한 해석 가능한 표현은 이미지 조작 및 생성 작업에서 유용하게 사용
- ex) 얼굴 이미지를 생성하는 GAN에서 특정 방향의 잠재 벡터를 조정하면, 생성된 얼굴의 나이, 감정, 헤어스타일 등을 변경 가능 → 사용자는 생성된 이미지의 속성을 세밀하게 조정
사용 예시
- 이미지 조작: StyleGAN과 같은 GAN 모델에서는 잠재 공간의 특정 방향이 얼굴의 표정, 나이, 헤어스타일 등을 조절하는 데 사용될 수 있음.
- 데이터 분석: GAN을 통해 생성된 이미지를 분석하여, 잠재 벡터가 어떻게 이미지의 속성을 조절하는지를 알 수 있다. 다양한 잠재 벡터 값을 실험하여 어떤 값이 특정 특성(예: 행복한 표정, 특정 배경 색상 등)에 영향을 미치는지를 확인
'Study - AI > Computer Vision' 카테고리의 다른 글
Computational Imaging (0) | 2025.01.16 |
---|---|
Object Detection & R-CNN (0) | 2025.01.15 |
Semantic Segmentation (0) | 2025.01.14 |
CNN (Convolution Neural Network) (0) | 2025.01.13 |