• 카테고리

    질문 & 답변
  • 세부 분야

    컴퓨터 비전

  • 해결 여부

    해결됨

Multi-Head Attention 모델 구조에서 궁금한게 있습니다.

23.07.27 16:11 작성 23.07.27 16:11 수정 조회수 311

0

안녕하세요. 코드 공부하면서 궁금한 점이 생겨 질문남깁니다.

앞선 이론 강의에서 이해한 바로는 MSA과정에서 Attention*value를 통해 [배치수, 헤드수, 패치수+1, Dh] 차원의 결과들이 나오고 Linear Projection을 통해 [배치수, 패치수+1, D] 차원의 결과가 얻어지는 것으로 이해했습니다.

attention = torch.softmax(q @ k / self.scale, dim=-1)
x = self.dropout(attention) @ v
x = x.permute(0,2,1,3).reshape(batch_size, -1, self.latent_vec_dim)

위와 같이 제공해주신 코드에는 이를 위한 Linear 과정이 따로 없는 것 같고 Attention*value 결과에 permute와 reshape를 해주었는데, 해당 과정이 이론에서 설명해주신 Linear 과정과 동일한 효과를 지니는 것일까요??

답변 1

답변을 작성해보세요.

0

안녕하세요.

y=Ax 형태가 linear 연산입니다. 즉, attention @ v가 linear 연산입니다!

감사합니다.