게시글
질문&답변
파이썬 코드 다운로드 받을 수 있는 곳이 있을까요?
안녕하세요, Justin입니다. 파이썬 코드는 다음 링크에서 다운받으실 수 있습니다. https://github.com/Justin-A/torch_nlp_basic 첨부해주신 오류는 nltk 패키지를 이용하여 stopwords를 저장하지 않았기 때문에 발생하는 오류로 파악됩니다. import nltknltk.download('stopwords') 코드를 실행하신 이후 코드를 실행하시면 됩니다. 감사합니다.
- 0
- 1
- 354
질문&답변
Continual Learning 과 Transfer Learning 의 차이점
안녕하세요, Justin입니다. Continual Learning, Transfer Learning 모두 학습이 이루어진 가중치 상태에서 추가적으로 학습하는 것이 맞습니다. 이 때, 학습이 이루어진 시점과 학습이 완료된 모델의 부분을 분석가가 범위를 정의해주고, 업데이트 가중치도 조절해주어야 합니다. Continual Learning은 위의 내용에 해당되는 학습 기법을 일반적으로 표현하는 방식이며, Transfer Learning은 비슷한 도메인의 다른 Task에 해당되는 학습데이터를 추가 활용하여 가중치를 새로 업데이트하는 것을 통상적으로 일컫습니다. 예를 들어, ImageNET 데이터를 활용하여 분류하는 모형을 설계한 이후, 특정 도메인의 이미지를 활용하여 분류 및 객체 탐지를 할 수 있는 모형을 설계하는 것이 대표적인 Transfer Learning의 예시입니다.어떻게 보면 Continual Learning이 Transfer Learning을 포함하는 방식일 수 있겠네요. 감사합니다.
- 0
- 1
- 1.2K
질문&답변
train과 test 관련해서 질문드립니다!
안녕하세요, Justin입니다. 본 예제는 일정 문장들로 구성된 데이터를 활용하여 word2vec 작동 원리를 살펴보기 위한 예제입니다. Test를 할 때에는 당연히 Test 데이터셋을 활용하여 진행하는 것이 맞습니다. 단, 학습이 진행된 이후 실질적으로 어떻게 예측하는지 파악하기 위해 코드를 저렇게 구성하였습니다. 감사합니다.
- 0
- 1
- 161
질문&답변
Deep Learning 정의에 나온 Graphical representation learning에 대해서
안녕하세요, Justin입니다. Deep Learning 알고리즘은, 사용하는 여러 변수들을 다양한 비선형함수를 활용하여 고차원의 벡터 공간으로 여러번 투영하며 label 데이터로 올바르게 귀결시키는 것을 목표로 학습을 진행합니다. 기존의 다양한 머신러닝 알고리즘들은, label 데이터로 올바르게 귀결시키기 위해 다양한 가설들을 세워 변수들을 가공하는 과정이 필수적이었다면, Deep Learning 알고리즘은 무수히 많은 X ~ Y (Feature ~ Label) 쌍을 이용하여 자동적으로 변수를 가공하는 과정이 내포되어 있습니다. 학습을 진행하면서 완성이 된 딥러닝 구조 내, 여러 가중치와 비선형 함수를 이용하여, 기존 변수값을 새로운 벡터로 표현하는 것을 Representation Learning이라고 칭하며, 이에 대한 내용은 강의 내 전반적으로 녹아져있습니다. 따라서, 특정 강의 챕터에서 Graphical Representation Learning을 언급하진 않습니다. 감사합니다.
- 0
- 1
- 476
질문&답변
혹시 audio관련해서 stt나 tts등 pytorch 관련해서 강의 하실 수 있나요?
안녕하세요, Justin 입니다. 강의 제안에 대한 내용은 첨부된 github.com 링크 내 작성된 이메일로 연락주시면 감사하겠습니다. 감사합니다.
- 0
- 1
- 272
질문&답변
teacher_force = random.random() < teacher_forcing_ratio
안녕하세요, Justin입니다. teacher_force = random.random() input으로 이용되는 데이터의 조건을 무작위로 선별하는 코드입니다. random.random() 코드는 실행될 때마다 0~1 사이 실수 값을 반환해주며, teacher_forcing_ratio 값이 0.5로 제한하여, 무작위의 값이 1/2의 확률로 낮게 발생되기 때문에, input 으로 이용되는 데이터를 무작위로 다르게 설정할 수 있습니다. 감사합니다.
- 0
- 1
- 231
질문&답변
질문드립니다.
안녕하세요, Justin 입니다. 늦게 답변드려 죄송합니다. 1. train, label이 아닌, text, label로 분리합니다. 같은 실습 코드 내 train_model 함수를 참고해보시면, batch.text[0], batch.label 값 각각이 X, y 에 해당됩니다. 2. permute는 벡터의 차원 순서를 재배치합니다. 예를 들어, permute(1, 0, 2)의 경우, 기존 벡터 차원이 [32, 16, 100] 에 적용하였을 때, [16, 32, 100] 으로 변경됩니다. >>> x = torch.randn(2, 3, 5) >>> x.size() torch.Size([2, 3, 5]) >>> torch.permute(x, (2, 0, 1)).size() torch.Size([5, 2, 3]) 3. 네, 임베딩 벡터의 크기는 분석가 마음대로 조정할 수 있습니다. 4. final_state 값은 인코더의 히든스테이트 값 중 마지막 위치에 해당되는 벡터이므로, 이를 이용하여 디코더의 히든스테이트 값 중 첫 번째 위치로 지정합니다. 감사합니다.
- 0
- 1
- 203
질문&답변
context_size 질문드립니다.
안녕하세요, Justin입니다. 1. context_size가 2이기 때문입니다. skipgram 시 중심 단어로부터 2칸 내 단어들과 비교하기 위해 range(4)로 설정하였습니다. 2. skipgram 시 주변 단어 중 일부를 무작위로 추출하여 데이터를 구성하기 때문에, 이를 구현하기 위해서 해당 코드로 설정하였습니다. 이외 다른 방법으로도 무작위 추출 성격만 띈다면 코드는 변경 가능합니다. 3. random.random을 통해 0~1 사이 실수를 추출하여 이가 0.5 미만이거나 전체 단어 길이 - 3 값이 현재 i 값보다 큰 경우 rand_id 즉 주변 단어 중 일부를 지칭하는 인덱스 값을 0과 i-1 값중 1개의 정수로 표현하여 인덱스를 지정하고, 다른 경우는 i+3과 전체 단어 길이에서 1값을 뺀 값 사이의 정수로 표현하여 인덱스를 지정합니다. word2vec skipgram 방식의 원리를 이해하시면 코드 이해에 도움이 될 것 같습니다. 추천영상 : https://www.youtube.com/watch?v=sY4YyacSsLc 감사합니다.
- 0
- 1
- 169
질문&답변
파이썬 for 문 질문드립니다.
안녕하세요, Justin입니다. [y for x in vocab_list] 로 코드를 실행하시면, vocab_list 의 iterator 내 순환되면서 지정되는 값이 x로 지정되지만, y값을 리스트 내 저장하는 코드이기 때문에 에러가 발생합니다. 올바른 코드는 [x for x in vocab_list] 입니다. [y for x in vocab_list for y in x] 코드는 2단계입니다. 1. vocab_list 의 iterator내 순환되면서 지정되는 x값 2. 1번의 x값이 iterator이기 때문에 iterator값 내 순환되면서 지정되는 y값 즉, 이중 반복문을 통해서 중복된 iterator 값 내 1개씩 접근하는 것을 의미합니다. 이해를 돕기 위해 1가지의 예시를 들도록 하겠습니다. 2개의 코드는 결과가 같은 코드입니다. 1. output = [] for y in z: for x in y: output.append(x) 2. output = [y for x in y for y in z] 감사합니다.
- 0
- 1
- 184
질문&답변
학습시간 줄이는 방법에 대하여 문의 드리겠습니다.
우선 1000장을 이용하여 학습한 모델을 불러온 후, 해당 모델의 파라미터를 200장을 이용하여 학습을 추가로 진행하면 됩니다.
- 0
- 3
- 1K