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

강현구님의 프로필 이미지
강현구

작성한 질문수

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

Positional Encoding, KQV 질문입니다!

해결된 질문

작성

·

505

2

안녕하세요!

제가 여쭙고 싶은 질문이 2가지 있습니다.

 

  1. Positional Encoding은 이미지를 패치로 바꿔주었을 때 순서 유지를 목적으로 순서를 기억하는 용도로 이해를 하였는데, 코드에서 랜덤한 값으로 지정하여 이를 단순 더해줍니다. 단순 랜덤한 값을 더해주는 과정인데, 이게 왜 위치를 기억하는 positional encoding이 되는지 이해가 가지 않습니다.

  2. Key Query Value 관련해서 셋 모두 Linear Projection을 진행하는데, 같은 representation 하나에 대해서 세개 모두 단순 선형변환을 진행하면 같은 벡터가 나오지 않나 하는 의문이 들었습니다. 만약 그렇다면, 왜 같은 과정을 K Q V 세번이나 진행하는지, 만약 다르다면 nn.Linear를 진행할 경우 벡터 방향이 비슷하게 다른 벡터로 벡터공간에 주입이 되는지 궁금합니다.

강의 너무너무 유익했습니다. 감사합니다!

답변 1

0

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

안녕하세요.

 

좋은 질문입니다!!

 

  1. 저자들은 여러가지 포지셔널 임배딩을 실험했고 그 결과 포지셔널 임배딩의 유무에는 큰 성능 차이가 있었지만 임배딩 방법 간의 유의미한 차이가 없었다고 합니다. 이는 ViT는 이미지가 픽셀 수준에서 보는게 아닌 패치 수준에서 입력 인코딩이 진행되기 때문에 단순히 각 패치(각 위치)에 특정 벡터를 더하더라도 효과를 볼 수 있었다고 합니다.

     

  2. 같은 Linear 연산이지만 아시다시피 파라메터를 공유하지 않으므로 다른 값을 출력하게 됩니다. 결국 각자 다른 역할을 합니다 :)

감사합니다.

강현구님의 프로필 이미지
강현구

작성한 질문수

질문하기