--- tags: 'Mentoring' --- # 0908 멘토링 - 필수 과제 2번 RNN 모듈을 학습할 때, optimizer를 따로 사용하지 않고, grad를 더해주는 방식을 사용한 이유가 있을까요? - 멘토님도 출제자의 의도가 궁금하다 - github1s.com 링크로 들어가면 vs Code처럼 볼 수 있다. - 밑바닥 부터 시작하는 딥러닝 3 -> 프레임워크의 원리를 알려준다. - 출제자에게 질문하기로 - logits : 검색해보니 softmax의 역함수 관계라고 하는데 단순히 모델 출력단을 의미하는 단어로 사용하는 단어인지 혹은 특별한 수학적 의미가 있는지 궁금합니다. - 과제에서 bptt 사이즈를 선언한 이유 1. 수업에서 배운 bptt의 사이즈는 모든 parameter에 대해서 back propagation을 수행할 수 없으니 일부 영역만 back propagation으로 업데이트 하는 것 2. 코드는 batch size에서 bptt 사이즈만큼을 다시 잘라서 가져온다. - 더 멀리 가지 않고, 사이즈 만큼만 역전파를 실행한다. - Truncated BPTT - dictionary를 하나에 쓰는 것에 대한 문제점? - 피어세션에서 이어서 NLP에서 단어를 숫자로 바꾸는 부분이 가장 중요. 이러한 과정이 Encoding, Embedding - Encodding - 문장을 toeknization할 때 문자를 숫자로만 바꿔주는 것 - 단어들 사이의 관계를 고려하지 않는다. - spacy, nlkt - konlpy TF-IDF(Team frequency inverse documnet frequency) - 빈도가 높다면 가중치를 적게 준다.(관사 같은 것들) - 빈도가 적으면 가중치를 높게 준다. Embedding - Word2Vec, GloVe - 문장을 vector 단위로 변환 가령 I like tennis를 인코딩하면 [0,1,2] 벡터화하면 I에 대한 벡터, like에 대한 벡터 등이 모여서 하나의 matrix를 형성 전자는 space, 후자는 dense 문제는 like, liked 같은 경우 인코딩을 할 때 전혀 다르게 된다는 것이다. 하지만 우리가 원하는 것은 어느 정도 같은 의미를 가지게 해줘야 한다는 것이다. 이를 위해 나온 것 SentencePiece / WordPiece 시제 표현이나 과거형 같은 것들을 분리해서 벡터화하자. - prefix, suffix를 분리하는 역할을 할 수도 있다. - tokenizer의 역할을 한다. 기존처럼 toeknization의 역할을 이것으로 사용하는 것이다! sentencepiece → 리소스를 매우 많이 잡아먹는 작업이다. - 영어의 경우 알파벳을 기준으로 한다. - 앞에는 항상 언더바를 붙이는데 실제로는 매우 다양한 옵션이 있다. - 가령 'I like'를 전처리해본다고 하자. - 기준이 3알파벳, 4알파벳일 때의 전처리 결과가 달라질 것이다. - 이 때, 빈도수가 가장 높은 단어들 위주로 선택한다면 의미 있는 결과들만 선택할 수 있을 것이다.