[딥러닝] Lecture 9. Attention Mechanism & Transformers I

แชร์
ฝัง
  • เผยแพร่เมื่อ 2 ก.พ. 2025

ความคิดเห็น • 15

  • @meu_amor_e
    @meu_amor_e 9 หลายเดือนก่อน

    안녕하세요 self attention 관련해서 질문이 생겨서 댓글 남깁니다. 54:00 ppt에서 self-attention에서 x_i를 이용하여 query를 계산하고 이를 기반으로 weight를 계산하였을 때, v_i에 해당하는 weight이 가장 큰 형태로 그려져있습니다. 이것은 일반적으로 나타나는 현상 또는 특정 상황에서 나타나는 현상으로 이해하는 것이 맞을지, 아니면 이에 대한 어떤 rationale이 존재하는지 궁금합니다. 좋은 강의 감사합니다!

    • @LeeJoonseok
      @LeeJoonseok  9 หลายเดือนก่อน

      대개 자기 자신과 유사도가 가장 높기 때문에 일반적으로 나타나는 현상입니다.

    • @meu_amor_e
      @meu_amor_e 9 หลายเดือนก่อน

      @@LeeJoonseok 답변 감사합니다

  • @김민준-d5v
    @김민준-d5v ปีที่แล้ว +1

    좋은 강의 감사합니다.
    마지막 트랜스포머의 self-attention 쪽에서 질문이 있습니다.
    Query와 Key의 가중치를 학습하는 이유는 충분히 이해 했는데 Value의 가중치를 학습하는 이유가 궁금합니다.
    Query와 Key를 통해 Attention Coefficient를 계산하여 각 Value를 비율 별로 가중합을 해준다는 건데 이때 Value를 사용하지 않고 임베딩 벡터 x들에 Attention Coefficient의 비율 별로 가중합을 하는거랑 차이가 생기나요?
    W_v랑 W_o를 사용하지 않게 되어 표현력이 떨어진다고 해도 차이가 별로 생기지 않을 것 같습니다.
    Resnet을 더 깊게 만들어(가중치를 더 많이 사용해) 정확도를 조금 올리는 차이 정도? 라는 생각이 드네요.

    • @LeeJoonseok
      @LeeJoonseok  ปีที่แล้ว

      말씀하신 방법은 W들이 identity function인 special case라고 볼 수 있을 것 같습니다. W들을 데이터로부터 학습시키면서 주어진 embedding 벡터들이 각각 Q, K, V의 역할을 할 수 있도록 만들어주는 것과, 그것이 I로 고정되어 있는 차이라고 보시면 될 것 같습니다. 덤으로 W를 학습시키면 Q, K, V의 크기를 input embedding과 다르게 (주로 작게) 가져갈 수 있는데, 그렇게 하지 않으면 주어진 embedding 크기를 그대로 사용해야 해서 계산량도 많습니다.

    • @양수영-k9b
      @양수영-k9b ปีที่แล้ว

      @@LeeJoonseok 저도 질문하신 분과 같은 생각을 가졌었는데요, 왜 꼭 q,k,v 세 개가 필요한지를 모르겠습니다... 정확히는 어떤 흐름에서, 어떤 필요성에 의해서 q,k,v 세 개의 embedding vector가 필요하다고 이전 연구자들이 생각했는지 궁금합니다. 제가 직관적으로 생각하기엔(미천하지만..) q,k,v 중 사실 1개만 있어도 충분하지 않나 싶어서요, 예를들어 1개가 있을 때 걔를 key라고 생각하고, 각 Input 마다 key 를 생성해내서 key 들끼리의 attention score을 구해서, 원래 임베딩 벡터 x 들의 attention coefficient로 사용할 수 있지 않나싶거든요. 조금 특이한 생각일수도 있겠지만, 너무 궁금했어서 답변해주시면 정말 감사할것같습니다! 추가로 강의 너무너무 유익해서 정말 도움이 많이 됩니다. 감사합니다!

    • @LeeJoonseok
      @LeeJoonseok  ปีที่แล้ว

      @@양수영-k9bQ,K,V가 하나만 있는건 다르게 말하면 3개가 있는데 그 셋이 모두 같은 값을 가져야 한다고 강제하는 것과 같습니다. 이렇게 하는건 간단하게 실험해 볼 수 있고, Q,K,V의 3가지 역할이 서로 다른 임베딩을 가질 수 있게 하는 것보다 성능이 떨어질 것입니다. 공평한 비교가 되기 위해 Q, K, V 각각 따로 배우되 모두 dimension d로 하는 것과, 모두 같은 벡터를 쓰되 3배의 크기인 3d짜리로 만드는 것 사이의 성능을 평가해 보시면 좋은 exercise가 될 것 같습니다. :)

    • @양수영-k9b
      @양수영-k9b ปีที่แล้ว

      추가적으로 한 가지만 더 질문드리겠습니다!! 최종적으로 학습이 끝났을때, Wv(value를 만드는 matrix)가 학습이 완료가 되었을텐데요, 그럼 입력 임베딩 벡터에 단순히 Wv를 곱해서 만든 value들을 word embedding으로 사용할 수는 없을까요?

    • @양수영-k9b
      @양수영-k9b ปีที่แล้ว

      @@LeeJoonseok 앗 넵 답글을 지금 봤습니다. 답변 감사합니다! 혹시 비교를 하기 위한 실험 세팅을 어떻게 하면 좋을까요? 번역은 너무 오래 걸릴거 같고 간단한 random init. 되어있는 vit를 cifar 10이나 mnist 같은 작은 데이터셋으로 학습시켜보는것으로 충분할까요?

  • @하이루-f1m
    @하이루-f1m ปีที่แล้ว

    안녕하세요 대학원 진학 고민중인 2학년 학부생입니다
    다름이 아니라 교수님께서는 TF랑 Torch중에 어떤 프레임워크를 선호하시나요??
    연구실이나 연구소같은곳에서는 Torch를 선호하고 기업같은곳에서는 TF를 선호한다는데 대학원을 가려면 어떤 프레임워크를 해야하는지 고민이 돼서요.. 학과 교수님은 TF를 사용하신다고 하시는데 주변에 물어볼 사람이 없어서 여쭤봅니다 감사합니다

    • @LeeJoonseok
      @LeeJoonseok  ปีที่แล้ว

      말씀하신 preference가 어느 정도 있기는 합니다만, 아직 학부 2학년이시면 두가지 다 배우시는걸 추천드립니다. 모든 회사가 TF만 쓰는 것도 아니고, 모든 연구 코드가 pytorch로만 되어 있는 것도 아니어서, 결국 둘다 사용해야 할 일은 생기게 마련입니다. 또한, 하나를 잘 배워두면 다른 하나를 배우는건 생각보다 어렵지 않습니다. :)

    • @하이루-f1m
      @하이루-f1m ปีที่แล้ว

      @@LeeJoonseok 답변 감사합니다 혹시 궁금한 내용이 생기면 댓글로 질문 드려도 될까요..??

    • @LeeJoonseok
      @LeeJoonseok  ปีที่แล้ว

      @@하이루-f1m 넵 답글 달아도 되고 이메일 주셔도 좋습니다!