
이번 과제에서는 neural dependency parser를 만들어 본다.
# 문제

문제 해석 : 우리가 기존에 사용하던 stochastic gradient descent 의 경우 다음과 같은 식을 만족한다. 이 때, J 는 loss function 이고 α 는 learning rate 를 의미한다. 우리는 각 loss 에 대한 파라미터의 gradient 값을 learning rate에 곱해서 파라미터 값을 업데이트하는 방식으로 학습을 진행했다.

이번에 새로 다뤄볼 Adam optimizer 의 경우 다음과 같은 식을 만속시키면서 학습을 진행한다. β 값은 0에서 1 사이의 (보통 0.9를 사용한다) 하이퍼파라미터로 사용한다.

Adam optimizer가 m을 사용함으로서 어떻게 학습에 도움이 되는지 이야기해보자.

문제 해석 : Adam 은 추가적으로 adaptive learning rate v 를 다음과 같이 사용한다.

Adam 이 전체 업데이트를 √v 로 나눠주는데, 이러한 방식으로 학습을 진행하면 어떤 파라미터가 더 크게 업데이트를 하게 되는가? 이러한 업데이트 방식이 학습에 어떠한 도움이 되는지 이야기해보자.





Adam optimizer 에 대한 논문을 한 번 읽어봐야 겠다. (링크)
# Dependency parser
Dependency parser는 각 단어들 사이의 관계를 학습하면서 문장의 문법적인 구조를 나타낼 수 있다. 이번 과제는 transition-based parser로서, 순차적으로 하나씩 parsing 해나간다. Parser는 다음과 같은 구성을 지닌다.
- stack : 현재 처리되고 있는 단어들의 목록. [ROOT] 만 보유하고 있는 경우 stack은 비어있다고 판단한다.
- buffer : 나중에 처리되어야 할 단어들의 목록
- dependency list : parser가 예측한 dependency를 저장하는 list
Parsing 을 진행할 때 각 step 마다 다음과 같은 3가지 연산 중 하나를 수행한다.
- SHIFT : buffer에서 첫 단어를 stack 에 추가
- LEFT-ARC : 가장 마지막에 추가된 단어 a 가 그 전에 추가된 단어 b 에 dependent 한 경우, a->b 의 dependency를 생성하고 b를 stack에서 제거한다.
- RIGHT-ARC : 두 번째로 마지막에 추가된 단어 a 가 그 직후에 추가된 단어 b 에 dependent 한 경우, a->b 의 dependency를 생성하고 b를 stack에서 제거한다.




'대학원 이야기 > CS224N : NLP with Deep Learning' 카테고리의 다른 글
[CS224N] Assignment 4 (풀이 중) (0) | 2020.11.10 |
---|---|
[CS224N] Assignment 2 (1) | 2020.10.26 |
[CS224N] Lecture 7 - Translation, Seq2Seq, Attention (수정 중) (0) | 2020.08.24 |
[CS224N] Lecture 7 - Vanishing Gradients, Fancy RNNs (1) | 2020.08.23 |
[CS224N] Lecture 6 - Language Models and RNNs (0) | 2020.08.23 |
댓글