인프런 커뮤니티 질문&답변

wqqqq님의 프로필 이미지
wqqqq

작성한 질문수

최신 딥러닝 기술 Vision Transformer 개념부터 Pytorch 구현까지

트랜스포머 - Attention is all you need

key의 차원으로 정규화

작성

·

142

0

중간에 루트 키의 차원으로 나눠주는 부분에 있어서 내적이 너무 커지는 것을 방지하기 위함이라고 하셨는데 내적이 커지면 왜 그레디언트 배니싱 현상이 일어나는 것인가요?

답변 1

0

딥러닝호형님의 프로필 이미지
딥러닝호형
지식공유자

안녕하세요.

 

좋은 질문 감사합니다.

트랜스포머 저자들이 좀 애매한 표현으로 관련 내용을 언급하였습니다. 내적의 차원과 크기가 커질 경우 softmax의 결과가 미분값이 작은 구간에 모여있을 것이라고 추측 했다고 합니다.

 

루트 d_k로 나누는 이유는 키, 쿼리 값이 평균 0, 분산 1인 독립 변수라고 가정할 때 내적의 평균과 분산이 각각 0, d_k이 나옵니다. 개인적인 생각으로는 루트 d_k로 나누어 분산을 다시 1로 만들어 키, 쿼리, 내적이 같은 분포를 따르게 하려고 했던 것 같습니다.

 

추가적으로 CIFAR10을 이용한 우리 실험에서는 스케일링에 대한 유의미한 차이는 없었습니다.

 

열공하세요!

wqqqq님의 프로필 이미지
wqqqq

작성한 질문수

질문하기