자연어처리 12

[자연어처리 CS224N] #2-1. Word2Vec Optimization (SGD)

지난 포스팅에서 우리는 Word2vec으로 워드 임베딩을 하기 위한 손실 함수를 구했다. 우리가 학습해야 하는 벡터들(u,v)은 다 파라미터이다. 우리가 가진 목적 함수 J(θ)를 최소화 하기 위해서는 경사하강법(gradient descent)이라는 알고리즘을 사용한다. 경사하강법이란 J(θ)의 gradient를 계산해서, 기울기가 작아지는 방향으로 조금씩 나아가는 것이다. 우리는 u와 v를 이용해서 목적 함수를 만들었으므로 이 목적 함수를 최소화하는 파라미터를 찾는다면, 워드 임베딩이 잘 된 것이라고 할 수 있을 것이다. 아래 식을 보자. θ new 를 구하기 위해서는 θ old에서 (J(θ)를 편미분한 값 * α)를 빼주면 된다. α는 step size 혹은 learning rate라고 한다. 이는 ..

자연어처리 2024.03.19

[자연어처리 CS224N] #1. Introduction and Word Vectors

하하 나는 인공지능을 많이 공부해보지 않아서 잘 모르는데... 어쩌다보니 자연어처리 수업을 듣게 됐다. 최대한 이해하려고 부여잡으면서 열심히 해볼게... cs224n 강의자료를 활용하였고, 국민대학교 김장호 교수님의 강의를 듣고 정리한 글입니다. 공부하며 정리한 글이기에 오류가 매우매우 많을 수 있음을 밝힙니다. 우리는 단어를 어떻게 표현하는가? 단어에 대한 일반적인 언어의 사고방식은 denotational segmantics이다. 이는 '표의적(표시적) 의미론'이라고 한다. 우리는 '나무'라고 하면 자연스럽게 나무의 이미지가 떠오른다. 근데 컴퓨터는 어떻게 의미를 알지? 예전에 사용되던 방식은 WordNet 이었다. WordNet은 동의어(synonym sets)와 상의어(hypernyms)를 포함한 ..

자연어처리 2024.03.11