Training an RNN Language Model 이전 강의에서 RNN에 대해 살펴보았습니다. 그렇다면 RNN의 학습은 어떻게 이루어질까요?입력 corpus에 대해서, 각각의 timestep t에 대해 RNN이 생성해내는 t에서의 출력을 y_hat_t라고 하고, 정답 출력을 y_t라고 한다면, 다음과 같은 손실 함수를 통해 학습이 이루어집니다: cross-entropy계산을 통해 정답 단어에 대한 분포와 출력해낸 단어의 분포가 같도록 학습을 하는 것입니다. 이때 전체 손실을 각각의 timestep에 대한 손실의 평균을 사용합니다: 학습하는 과정을 그림으로 나타내면 다음과 같습니다: 이때 이런 학습 방법을 Teacher forcing이라고 합니다. 이는 이전 timestep에서 생성된 출력을 다음 t..
A bit more about Neural Networks We have models with many parameters! Regularization! 규제 혹은 정규화는 매우 중요합니다. L2 정규화가 그 예시입니다: 전통적인 관점에서 정규화는 모델의 과적합(overfitting)을 막는데 매우 중요한 역할을 합니다. 이때 과적합이란 Training set에 너무 과하게 적합하여 실제 데이터 분포에 대해서는 성능이 좋지 못한 것을 말합니다: 이렇게 과적합이 심한 모델의 경우, 실제 데이터 분포에 대해서는 정확하게 예측할 수 없기 때문에 적절한 수준에서 학습을 끝내줌으로써 과적합을 막는 것이 매우 중요합니다. 하지만 위에서 설명한 L2 정규화는 신경망에는 적용하기 힘듭니다. 신경망의 경우는 파라미터의 ..
NER: Binary classification for center word being location 지난 강의의 마지막에 살펴보았던 NER의 과정은 다음과 같습니다: 이번 시간에는 NER의 과정을 따라가며 역전파와 미분 계산에 대해 살펴보겠습니다. 하지만 이때 함수 f에 대해 먼저 살펴보고 가는것이 좋습니다. Non-linearities, old and new 비선형성을 추가해주는 함수 f()에는 정말 다양한 함수들이 들어갈 수 있습니다. Non-linearities (i.e., "f" on previous slide): Why they're needed 그렇다면 왜 이런 비선형성을 도입해야할까요? 신경망 네트워크(Neural networks)는 회귀나 분류등의 예측을 수행하는 함수를 갖습니다. 이때..
The skip-gram model with negative sampling 이전 강의에서 사용한 Skip-gram의 확률식을 살펴보면, 분모의 정규화식을 계산하는 데 모든 단어에 대해 exp의 합을 구하는 것을 알 수 있습니다. 만약 vocab의 크기가 50만이라면 해당 계산을 50만번 해야한다는 의미입니다. 이는 너무 계산비용이 비싸기 때문에 negative sampling이라는 기법을 통해 해당 문제를 해결하고자 합니다. negative sampling의 핵심 아이디어는 실제 window안에 들어있는 중심 단어와 맥락 단어 쌍을 맞추고, 랜덤한 단어와 중심 단어 쌍의 틀리게 하는 방향으로 로지스틱 회귀를 진행하는 것입니다. 이때 랜덤한 단어는 10~15개의 단어로 기존 방식(=vocab size)에..
Human langauge and word meaning 인간의 언어는 맥락이 있고, 상황마다 다르게 해석될 수 있습니다. 그래서 사람들에게 언어는 유용한 도구가 될 수 있지만, 반대로 컴퓨터에게는 이해하기 어려운 지점입니다. How do we represent the meaning of a word? 어떤 단어의 뜻을 표현할 때는 흔히 어떤 생각이나 실제 물체와 단어를 연관짓는 방법을 사용합니다. 예를 들어 나무의 뜻을 표현할 때는 나무를 나타내는 그림이나, 나무에 대한 다른 생각들을 이용해서 표현합니다. How do we have usable meaning in a computer? 하지만, 이런 단어의 뜻을 컴퓨터에 이식할 수는 없습니다(그림을 그려서 넣어줄 수도 없고). 그래서 이전에 NL..