---
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알파벳일 때의 전처리 결과가 달라질 것이다.
- 이 때, 빈도수가 가장 높은 단어들 위주로 선택한다면 의미 있는 결과들만 선택할 수 있을 것이다.