월 17,160원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨최신 딥러닝 기술 Vision Transformer 개념부터 Pytorch 구현까지
positional embedding 학습이 잘 안되는 문제
cifar10 말고 다른 이미지셋을 가지고 학습을 시켜보았는데, 시각화를 해 보니 수업에서 보여주셨던 것과는 다르게 positional embedding 학습이 잘 안되었습니다. 어디를 봐야할지 조언을 부탁드려도 될까요?
- 해결됨최신 딥러닝 기술 Vision Transformer 개념부터 Pytorch 구현까지
행렬 차원 수 질문
안녕하세요.'비전 트랜스포머-최신 모델' 강의 11:36 근처 슬라이드를 기준으로 질문드리겠습니다. (사실 그 이후부터 계속 지속적으로 차원 혼동이 있는 것 같아서, 하나를 기준삼아서 질문드리면 나머지가 저절로 해결될 것 같습니다.) p=(size of patch)로 정의를 하고 사진을 N개로 쪼갠다고 가정했을 때, 그것을 flatten시켜준 각각의 벡터들, (x_{p}^{i}, i=1,...,N)이라고 가정했을 때, 해당 벡터는 P^2*C 차원의 벡터들이 되는 거잖아요? 그렇다면, 그 N개의 벡터들을 concatenate하여 행렬 x_p를 구축했을 때, 그 차원은 (P^2*C) by N이 되어야 하는게 아닌가요? 이 이후부터 슬라이드에서는 가로와 세로가 뒤바뀌어 있는 것 같은데 뭐 실전에서는 transpose하면 되는 문제긴 하지만 나름대로 엄청나게 궁금해져서 질문을 드려봅니다. 설명을 해주신거나 그림을 그려주시는 것은 모두 x_{p}^{i}가 열벡터이고 concatenate를 하실 때 row-wise가 아니라 column-wise로 합치신 것 같아서 그렇게 생각이 들었습니다.
- 해결됨최신 딥러닝 기술 Vision Transformer 개념부터 Pytorch 구현까지
Self Attention 질문 있습니다.
1.q와 k를 내적 하는 이유가 궁금합니다. 이는 입력의 유사도 행렬을 얻기 위함으로 알고 있습니다. 그렇다면 q와 k가 아닌 q와 q의 트랜스포즈로 내적하면 안되는걸까요?음 ...업데이트 할때 q와 k가 비슷하게 학습되었다는 가정을 가지고 내적 한걸까요?2.그리고 Multi Head와 그냥 Self attention의 차이가 궁금합니다.별도의 파라미터로 학습되기때문에 하나일때보다 많은 관점이 녹아있다고 생각하면 될까요?3.다른 댓글에서 코드A@V가 리니어 라고 하셨는데요PPT에서는 SA(z)=Av와 [SA1(z)...]Umsa가 따로 있습니다. 코드에서는 A@V만 있는데 어떻게 연결지어서 봐야 할지 잘 모르겠습니다.
- 해결됨최신 딥러닝 기술 Vision Transformer 개념부터 Pytorch 구현까지
Multi-Head Attention 모델 구조에서 궁금한게 있습니다.
안녕하세요. 코드 공부하면서 궁금한 점이 생겨 질문남깁니다.앞선 이론 강의에서 이해한 바로는 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 과정과 동일한 효과를 지니는 것일까요??
- 해결됨최신 딥러닝 기술 Vision Transformer 개념부터 Pytorch 구현까지
전처리 관련해서 질문이 있습니다
안녕하세요 강사님. 항상 좋은 강의 감사드립니다.데이터 전처리에 대해서 2가지 궁금점이 있어서 질문드립니다.RandomCrop 이나 Flip 같은 전처리는 데이터 증강을 위해서도 사용된다고 알고있는데 해당 전처리를 적용해주면 원본 데이터가 변경되는 것인지, 혹은 원본 데이터는 유지되고 전처리가 적용된 이미지가 추가되는 것인지 궁금합니다. 전자에 해당된다면 데이터 갯수의 증강을 목적으로 사용하기 위해선 원본 이미지데이터셋을 따로 저장해두고 전처리된 데이터셋과 합쳐줘야 될까요??RandomCrop에서 패딩을 넣어주는 이유가 정확하게 무엇인지 알고싶습니다.
- 해결됨최신 딥러닝 기술 Vision Transformer 개념부터 Pytorch 구현까지
답변에 대한 추가질문이 있습니다.
답변 감사드립니다!강의를 통해 Head 수에 따라 다양한 영역에 대한 Attention 이 가능하다고 이해했습니다. 이에 따른 추가적인 궁금한 부분이 있습니다. (아래 질문은 배치 사이즈를 배제하고 질문드립니다.)Umsa를 통한 Linear Projection 이전의 shape는 (N x Dh x k) 이고, 이후의 shape는 (N x D)로 k가 사라져서 다양한 영역을 Attention 하고자 하는 의도가 사라지는 것 아닌지, 그렇다면 Umsa의 역할이 무엇인지 헷갈렸습니다. Umsa를 통한 Linear Projection을 진행한 후에도 다양한 영역을 Attention하고자 하는 Head의 특성이 반영되기에 상관이 없는건지 궁금합니다. Umsa도 무작위로 주어지고 학습을 통해 최적화되는 것이 맞을까요?
- 해결됨최신 딥러닝 기술 Vision Transformer 개념부터 Pytorch 구현까지
헷갈리는게 몇개 있습니다ㅠㅠ
안녕하세요 강사님.Transformer 에 대해 처음 공부해보니 헷갈리는 부분들이 있어서 질문남깁니다.1) k 개의 Multi-Head를 만든 후에 Linear를 해주는 이유가 따로 있는지 궁금합니다. 단순히 Residual Connection을 위해 차원을 맞춰주기 위해 하는 것인가요??2) Head의 개수(k)는 CNN에서 필터 개수처럼 사용자가 정해주는 파라미터인가요??3) 클래스 토큰까지 Positional Embedding을 더해줘야 하는 이유가 따로 있을까요??좋은 강의 덕분에 따라가긴 하는데 한 번에 이해하려하니 과부하가 와서 헷갈리는게 생기네요ㅠㅠ코드 분석 파트 들어가면 조금 더 이해가 될 것 같은데 우선적으로 질문남겨봅니다.
- 해결됨최신 딥러닝 기술 Vision Transformer 개념부터 Pytorch 구현까지
Positional Encoding, KQV 질문입니다!
안녕하세요!제가 여쭙고 싶은 질문이 2가지 있습니다. Positional Encoding은 이미지를 패치로 바꿔주었을 때 순서 유지를 목적으로 순서를 기억하는 용도로 이해를 하였는데, 코드에서 랜덤한 값으로 지정하여 이를 단순 더해줍니다. 단순 랜덤한 값을 더해주는 과정인데, 이게 왜 위치를 기억하는 positional encoding이 되는지 이해가 가지 않습니다.Key Query Value 관련해서 셋 모두 Linear Projection을 진행하는데, 같은 representation 하나에 대해서 세개 모두 단순 선형변환을 진행하면 같은 벡터가 나오지 않나 하는 의문이 들었습니다. 만약 그렇다면, 왜 같은 과정을 K Q V 세번이나 진행하는지, 만약 다르다면 nn.Linear를 진행할 경우 벡터 방향이 비슷하게 다른 벡터로 벡터공간에 주입이 되는지 궁금합니다.강의 너무너무 유익했습니다. 감사합니다!
- 미해결최신 딥러닝 기술 Vision Transformer 개념부터 Pytorch 구현까지
강의 자료 슬라이드
강의 자료에 슬라이드는 없나요??
- 해결됨최신 딥러닝 기술 Vision Transformer 개념부터 Pytorch 구현까지
비전 트랜스포머 - 최신 모델 강의에서 positional embedding
안녕하세요!비전 트랜스포머 - 최신 모델 강의에서예시로 설명해주신 R^65*128에 Epos 인 positional embedding을 더하는데도 R^65*128의 크기에는 변화가 없나요?? 이전에 클래스 정보를 더했을 때는 64에서 +1해서 65가 되었는데 positional embedding을 했을 때는 값에 변화가 없나 궁금해서 질문드립니다.
- 미해결최신 딥러닝 기술 Vision Transformer 개념부터 Pytorch 구현까지
비전 트랜스포머 - 최신 모델' 강의에서 B*N*K 와 1*K*D 를 연산
안녕하세요! 항상 좋은 강의 해주셔서 감사드립니다.'비전 트랜스포머 - 최신 모델' 강의에서 B*N*K 와 1*K*D 를 연산하면 B*N*D 가 된다고 하셨는데 어떤 연산을 통해서 어떻게 B*N*D로 변환되는지 궁금합니다. 그냥 B*N*K에서 단순히 K의 형태를 바꾸는 연산만 하면 안되는 건가요?? 어떤 원리로 연산을 통해 변환이 되는 건지 궁금해서 질문 드립니다.그리고 연산에서 R^N*D 에서 기호 R은 무엇을 뜻하는지 궁금합니다.감사합니다.
- 미해결최신 딥러닝 기술 Vision Transformer 개념부터 Pytorch 구현까지
'어텐션 기법 - 키, 쿼리, 밸류는 무엇인가?' 강의에서 (QK^T)
안녕하세요!'어텐션 기법 - 키, 쿼리, 밸류는 무엇인가?' 강의에서 (QK^T)쿼리와 키 transpose한 것이 어떻게 쿼리와 키의 유사도를 나타내는지 잘 이해가 가지 않습니다.
- 미해결최신 딥러닝 기술 Vision Transformer 개념부터 Pytorch 구현까지
training
안녕하세요 수업 잘 듣고 있습니다. 제 input 파일들 (이미지, annotated file)로 Vision transformer를 colab에서 훈련해보려고 시도해보았습니다. 그런데, RuntimeError:CUDA out of memory가 뜨더라구요. 제 질문은 cifar10과 수업시간에 사용하신 hyperparameters로 colab에서 훈련을 해보셨는지요?CUDA out of memory를 피할 수 있는 방법이 없을까요? 제 input image가 720x496 grayscale일인 관계로 batch_size=1, patch_size=4로 설정을 해보았지만, colab에서 주는 GPU사이즈로는 감당하기가 어렵네요.
- 미해결최신 딥러닝 기술 Vision Transformer 개념부터 Pytorch 구현까지
Image가 입력일 때 Cross Attention 결과가 궁금합니다.
안녕하세요. 선생님Cross Attention에 대한 질문을 드리고 싶습니다. Flatten 및 embedding된 이미지 A(784xC), 이미지 B(1024×C)가 있을 때, 이미지 A를 Cross Attention의 Key와 Value로,이미지 B를 Cross Attention의 Query로 사용하려고 합니다. Scale dot attention 계산 과정 중Softmax(QK^T/sqrt(d_k)까지 하면(1024x784)인 행렬이 나올테고 이 행렬에 Value를 행렬곱하면(1024xC)가 나올텐데그럼 Attention한 결과(1024xC)는 이미지 A에 대한 내용이 맞나요? 원래 이미지 A는 784행으로 이루어져 있었는데결과는 1024행으로 나와서 헷갈려서요.
- 해결됨최신 딥러닝 기술 Vision Transformer 개념부터 Pytorch 구현까지
Transformer의 input에 대해 질문드립니다.
안녕하세요. Transformer에 대해 공부하면서 궁금한 점?이 있어 질문 글을 올리게 되었습니다. Transformer는 기존 seq2seq 구조와 다르게 input이 통째로 들어가서 병렬계산이 가능하다는 장점이 있다고 알고 있었습니다. 하지만 Transformer의 input도 문장의 위치에 따라 Positional Encoding(위치에 따른 sin, cos 값)이 더해지는 형태이기 때문에 일련의 sequence 형태를 가져야 된다 생각했습니다. 위는 제가 만든 그림예시인데, input 문장이 "I am student"라면, "I student am"처럼 순서를 바꿀 경우 positional encoding 값이 위치에 따라 특정 값이 들어가고 기존의 input 값과 다르기 때문에 결과적으로 Transformer의 input도 순서를 가져야만 된다라는 결론에 도달했습니다. 그렇게 된다면 순차적으로 값을 입력하는 기존 RNN 및 LSTM의 seq2seq와 input 측면에서 크게 나아진점이 없어보이는데 이 관점이 맞는걸까요? 제가 생각했던 것을 글로 표현하여 질문을 하다보니, 두서가 없는 점 죄송합니다.
- 미해결최신 딥러닝 기술 Vision Transformer 개념부터 Pytorch 구현까지
ViT에 대한 전반적인 질문 드립니다!
선생님 안녕하세요, 덕분에 좋은 강의 잘 들었습니다! 조금 기초적인? 질문이 있는데요, 어텐션의 key, query, value를 사용해서 key와 query간의 유사도를 도출하고 그 값을 value값에 곱해줌으로써 이미지 안에서 중요한 부분과 상대적으로 덜 중요한 부분을 나타내어 학습을 원활하게 한다고 이해했습니다. 하지만 실질적으로 구현했을 때 key, query, value 는 처음에 임의의 Linear Layer에 불과하고 여기에 임베딩된 이미지 패치가 들어오고 연산이 진행되면서 점점 모델의 정확도가 올라가게 되는데요, 그럼 이 과정이 어떤 계산 과정을 거쳐서 성능이 좋아지는것은 확인 하였지만 정확히 왜 이렇게는 되는지 모르는 과정인가요? 또한, 멀티헤드를 사용하는 이유가 다양한 관점?에서 볼 때 더 좋은 성능이 나온것이 증명되는것으로 이해했는데 맞게 이해 했을까요? 현재 예제에서는 12개의 Layer들과 통해 8개의 헤드를 통해 총 96개의 어텐션 맵이 도출되게 됩니다. 처음 어텐션이라는 주제를 접했을때 상상속으로는 이러한 96개의 어텐션 맵들이 종합되어 작동할것이라고 예상했는데 실제로는 그렇게 작동되지 않는것으로 이해했습니다. 그렇다면 결과 분석을 할 때 특정 이미지에 대해서 어떠한 어텐션이 결과적으로 적용되어 해당 이미지의 어떤 부분에 집중하였는지를 알 수 있는 방법이 있을까요? 마지막으로 클래스 토큰에 해당하는 벡터만 분류에 사용하는 아이디어 역시 어떠한 증명?을 통해 나온 결과가 아니라 단순히 실험적으로 돌려보니 이렇게 해도 결과가 잘 나오더라.. 라는 식으로 접근한 방식인지도 궁금합니다 ^^ 항상 감사합니다 선생님!
- 해결됨최신 딥러닝 기술 Vision Transformer 개념부터 Pytorch 구현까지
Key query value관련 질문
안녕하세요 강사님. 비전 트랜스포머를 열심히 듣고 있는 학생입니다. 보통 키, 쿼리 밸류하면 어떤 임베딩된 입력을 키에 따로, 쿼리 따로 밸류 따로 linear연산을 수행을 하고 쿼리와 키를 내적을 하는 걸로 알고 있습니다. 여기서 궁금한 점이 있는데 키 쿼리 밸류 별로 linear(선형 연산)연산을 왜 하는지 궁금하게 되었습니다. 패치(이미지)에서 feature을 더 잘 뽑으려고 하는 것인가요?
- 미해결최신 딥러닝 기술 Vision Transformer 개념부터 Pytorch 구현까지
Fine tuning 관련하여 질문 드립니다.
안녕하세요! 항상 강의 잘 듣고 있습니다! 다름이 아니라 현재 파일에 포함된 vit.ipynb 파일에서는 train 부분에서 pretrain이 1로 설정되어 있어서 제공된 model.pth을 사용하여 파인 튜닝하게 되는데 해당 모델은 어떤 데이터를 어떤 방식으로 학습시킨 모델인가요? 그리고 보통 트랜스포머를 사용할때 아주 큰 데이터셋에 pretrain 시킨 모델을 가져와서 더 작은 데이터셋에 대해 파인 튜닝하여 사용한다고 이해하였습니다. 이 과정에서 image resize, MLP 헤드 부분을 클래스 수에 맞게 교체한다고 작성되어 있는데 여기서 헤드 부분을 교체한다는게 k에 해당하는 MHA의 헤드 수 인가요 아니면 cifar 10의 10개의 num_class인가요? 이외에도 파인튜닝이 더 필요한 부분이 있는지 궁금하고 또 파인튜닝과 관련된 추가적인 자료 알고계신게 있는지 궁금합니다. 마지막으로 파인튜닝하여 사용할때 pretrained된 트랜스포머의 구조와 사용하려고 하는 트랜스포머의 구조가 일치해야 하는데, 어떻게 때와 목적에 맞는 pretrained 모델을 구하는지도 알려주실 수 있으실까요? 감사합니다!
- 미해결최신 딥러닝 기술 Vision Transformer 개념부터 Pytorch 구현까지
코드 질문
강사님 안녕하세요. 강의를 듣다가 질문이 생겨서 고민 후에 질문 드립니다. Q1. 빨간 도형으로 쳐진 부분이 이론적으로는 하나씩 대응해서 연산하는 거라고 이해는 되는데 코드로 접근할 때는 작동 논리가 머리에 쉽게 들어오지 않습니다 ㅠㅠ 코드 설명을 부탁드리고 싶습니다!! 감사합니다 :) Q2. visuliazation.ipynb 에서 이미지에 Inverse Normalization을 적용하신 이유와 이미지에 대해 Normalization와 Inverse Normalization의 차이가 궁금합니다. 개인적으로 보통 이미지에 대해 정규화 및 scaling을 위해서 Normalization 한다고 알고 있어서 궁금해서 질문 드립니다. 감사합니다 :)
- 미해결최신 딥러닝 기술 Vision Transformer 개념부터 Pytorch 구현까지
Dh의 의미
안녕하세요. 강의 잘 듣고 있습니다. ViT 구조 설명에서 Dh의 의미가 궁금합니다. D x 3Dh에서 Dh요! 슬라이드에 표기된 것처럼 Dh = D/k 인가요? 만약 그렇게 되면, 왜 key로 D를 나누는 지 궁금합니다!