• 카테고리

    질문 & 답변
  • 세부 분야

    컴퓨터 비전

  • 해결 여부

    미해결

key의 차원으로 정규화

22.04.04 00:28 작성 조회수 105

0

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

답변 1

답변을 작성해보세요.

0

안녕하세요.

 

좋은 질문 감사합니다.

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

 

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

 

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

 

열공하세요!