안녕하세요. 발표자 이영재입니다. 조금 더 명확히 말씀드리면 Encoder에서는 input sequence data의 단어들을 Encoder self-attention layer에서 병렬처리하여 문장 내 단어의 관계를 파악합니다. Decoder에서는 문장을 생성해줘야 하기 때문에 EOS token이 출력될 때까지 순차적으로 처리합니다. 붐붐님께서 이해하신 부분이 맞다고 생각하고 조금 더 부연 설명을 해드렸습니다.
Positional Encoding은 encoder에서 input sequence data의 단어들을 순차적으로 처리하지 않기 때문에 d-차원의 vector로 표현한 단어들의 상대적 순서를 부여하는 역할을 합니다. 여기서 Transformer 저자는 1) 모델의 일반화를 위해 Positional encoding 적용 시 단어들의 순서를 나타내는 값들이 특정 범위 내에 있어야 한다고 합니다. 2) input sequence data에서 단어마다 하나의 유일한 d-차원의 vector로 표현해야 한다고 합니다. Sine과 Cosine 함수는 일정 범위 내 연속적인 출력 값과 vector (단어)의 차원 크기에 따라 주기가 달라지는 특징이 있습니다. 따라서 효율적으로 단어의 위치 정보를 부여할 수 있고 Input sequence data에서 단어마다 하나의 유일한 d-차원의 vector로 표현이 가능하여 저자가 우려하는 부분을 효과적으로 해결할 수 있게 됩니다.
복습 겸 잘 보고 있습니다! 감사합니다. 13:15 부근 피드포워드가 각 self-attention의 output마다 독립적인 게 맞나요? 논문 다시 찾아보니 the linear transformations are the same across different positions이라고 되어있는데요!
안녕하세요, koj님. 먼저 세미나를 들어주시고 질문해주셔서 감사드립니다. 질문에 대한 답변을 드립니다. 먼저 결론적으로 클래스 불균형이라 언급한 부분은 ground-truth에 no object의 수로 인해 이미지에 해당하는 class의 불균형 문제가 생긴다는 것을 의미합니다. 부연 설명을 해드리면, 본 논문에서 제안하는 DETR은 decoder를 통해 고정된 사이즈인 N개의 object를 예측하도록 합니다. 이 때, 고정된 사이즈 N개는 ground-truth object 수보다 큰 수로 설정합니다. ground-truth object는 고정 사이즈 N개 보다 작기 때문에 no object로 채워주게 됩니다. 이 후, DETR로부터 예측한 N개의 object set (y_hat)의 순열 중 ground-truth object set (y)과의 one-to-one 매칭 loss가 가장 작은 순열을 찾은 후, 헝가리안 loss를 계산하게 됩니다. 여기서 ground-truth가 no object (i.e. background 등)인 경우가 대부분일 경우, 이미지에 해당하는 class가 불균형하기 때문에 헝가리안 loss 식의 L_box가 가중치의 역할을 해주어 문제를 해결하도록 해줍니다. 질문에 대한 답변이 되셨길 바랍니다. 감사합니다.
Queries, Keys, Values는 각 input embedding x로 부터 만들어 집니다. czcams.com/video/Yk1tV_cXMMU/video.html 위 링크 참조하시면 좋습니다. 개인적으로 두 강의 다 들어보니 이해가 더 잘 됩니다. 약간 다른 방식과 다른 자료로 설명해줘서 더 좋네요. ㅎㅎ
트랜스포머 이해하기 어려웠는데, 설명해주셔서 도움이 됩니다. 좋은 자료 감사합니다.
준비한 영상이 박훈범님께 도움이 되었다니 다행입니다. 긴 영상 시청해주셔서 감사합니다.
input sequence data를 순차적으로 처리하지 않는다는게 encoder input을 의미하는 것이지요? decoder input을 순차적으로 처리해서 EOS token이 나올 때까지 처리한다고 이해했는데 맞게 이해한건가요?
안녕하세요. 발표자 이영재입니다. 조금 더 명확히 말씀드리면 Encoder에서는 input sequence data의 단어들을 Encoder self-attention layer에서 병렬처리하여 문장 내 단어의 관계를 파악합니다. Decoder에서는 문장을 생성해줘야 하기 때문에 EOS token이 출력될 때까지 순차적으로 처리합니다. 붐붐님께서 이해하신 부분이 맞다고 생각하고 조금 더 부연 설명을 해드렸습니다.
왜 positional encoding에서 sine 함수와 cosine함수를 적용하는 것인가요? output값이 -1~1사이라서 그런건가요...? 다른 강의를 다 찾아봐도 해당 부분에 대한 명확한 설명이 없네여
Positional Encoding은 encoder에서 input sequence data의 단어들을 순차적으로 처리하지 않기 때문에 d-차원의 vector로 표현한 단어들의 상대적 순서를 부여하는 역할을 합니다. 여기서 Transformer 저자는 1) 모델의 일반화를 위해 Positional encoding 적용 시 단어들의 순서를 나타내는 값들이 특정 범위 내에 있어야 한다고 합니다. 2) input sequence data에서 단어마다 하나의 유일한 d-차원의 vector로 표현해야 한다고 합니다. Sine과 Cosine 함수는 일정 범위 내 연속적인 출력 값과 vector (단어)의 차원 크기에 따라 주기가 달라지는 특징이 있습니다. 따라서 효율적으로 단어의 위치 정보를 부여할 수 있고 Input sequence data에서 단어마다 하나의 유일한 d-차원의 vector로 표현이 가능하여 저자가 우려하는 부분을 효과적으로 해결할 수 있게 됩니다.
@@user-vm6gb4wy9p 헉 감사합니다. 충분한 답변이 된 것 같아여 많이배워갑니다ㅎㅎ 앞으로도 좋은 세미나 기대하겠습니다
첫 단계에서 Query Key Value 로 꼭 영역을 분리하여 학습시키는 근본적인 이유는 뭘까요??
안녕하세요. 발표자 이영재입니다. 세미나 발표 자료를 시청하신 후에 궁금하신 부분은 댓글로 남겨주시면 감사하겠습니다.
3:10 감성분석이 잘못된것 같습니다... 이모티콘이 더 적절하네요ㅎㅎ 제 생각이 맞다면 다음 오픈세미나에서 당근을 흔들어주세요ㅋㅋㅋㅋ
쿼리, 키, 벨류가 각 단어의 정보를 벡터로 표현한다고 하셨는데 서로 어떻게 다르며 각 벡터의 길이와 값은 어떻게 구해지나요?
복습 겸 잘 보고 있습니다! 감사합니다.
13:15 부근 피드포워드가 각 self-attention의 output마다 독립적인 게 맞나요? 논문 다시 찾아보니 the linear transformations are the same across different positions이라고 되어있는데요!
헝가리안 로스 설명하시는 부분에 클래스의 불균형이라고 하셨는데 이부분이 정확히 무슨 의미인지 궁금합니다.
안녕하세요, koj님. 먼저 세미나를 들어주시고 질문해주셔서 감사드립니다. 질문에 대한 답변을 드립니다. 먼저 결론적으로 클래스 불균형이라 언급한 부분은 ground-truth에 no object의 수로 인해 이미지에 해당하는 class의 불균형 문제가 생긴다는 것을 의미합니다. 부연 설명을 해드리면, 본 논문에서 제안하는 DETR은 decoder를 통해 고정된 사이즈인 N개의 object를 예측하도록 합니다. 이 때, 고정된 사이즈 N개는 ground-truth object 수보다 큰 수로 설정합니다. ground-truth object는 고정 사이즈 N개 보다 작기 때문에 no object로 채워주게 됩니다. 이 후, DETR로부터 예측한 N개의 object set (y_hat)의 순열 중 ground-truth object set (y)과의 one-to-one 매칭 loss가 가장 작은 순열을 찾은 후, 헝가리안 loss를 계산하게 됩니다. 여기서 ground-truth가 no object (i.e. background 등)인 경우가 대부분일 경우, 이미지에 해당하는 class가 불균형하기 때문에 헝가리안 loss 식의 L_box가 가중치의 역할을 해주어 문제를 해결하도록 해줍니다. 질문에 대한 답변이 되셨길 바랍니다. 감사합니다.
좋은 영상 감사합니다.
14:00 의 우측에 Wq Wk Wv 값은 matrix multiplication 로 구한다고 하셨는데, 좀 더 상세한 내용 알 수 있을까요?
Queries, Keys, Values는 각 input embedding x로 부터 만들어 집니다.
czcams.com/video/Yk1tV_cXMMU/video.html
위 링크 참조하시면 좋습니다.
개인적으로 두 강의 다 들어보니 이해가 더 잘 됩니다. 약간 다른 방식과 다른 자료로 설명해줘서 더 좋네요. ㅎㅎ
사회과목 공부하는 것 같다