NLP lab

NLP lab/엔엘피

ELMo

엘모는 세서미 스트리트의 캐릭터다. TV는 아닌 것 같은데 어디서 봤을까...? 그렇다! Sake L의 노동요에서 본, 핵폭발을 배경으로 하고 있는 그 캐릭터다. 이후 등장하는 임베딩 모델인 버트도 세서미 스트리트에 등장하는 캐릭터 이름을 땄다. 문맥을 반영한 워드 임베딩의 필요성 실제 문장에서는 같은 단어라도 문맥에 따라 임베딩을 다르게 해야 할 때가 많다. 이는 다의어에 대해 임베딩할 때 많이 발생한다. ‘고소하다’라는 단어는 법대로 하자는 뜻과 고소한 맛이라는 뜻을 가지고 있는데, Word2Vec과 GloVe에서는 이를 문맥에 따라 제대로 반영하지 못하고 다른 의미인데도 같게 임베딩해버린다. 같은 표기여도 다르게 임베딩할 수 있도록 문맥을 고려해서 임베딩하자는 아이디어가, 문맥을 반영한 워드 임베딩..

NLP lab/엔엘피

Word2Vec, GloVe, FastText 요약

자연어처리 바이블, 딥 러닝을 활용한 자연어 처리 wikidocs 등을 참조해서 공부하며 정리했습니다. 과거의 단어 임베딩 기술이 채택했던 아이디어와 각 알고리즘의 단점을 개선하고자 했던 방법들을 알아본다. 0. 요약 Word2Vec 이전 1990년대 초부터 널리 사용 잠재 의미 분석(latent semantic analysis, LSA), 잠재 디리클레 할당(latent dirichlet allocation, LDA) 활용 Word2Vec 단어 임베딩 열풍을 불러옴 ELMo 이전까지의 임베딩은 단어 단위 임베딩 2013년도 Mikolov et al.이 발표한 두 편의 논문에서 제안된 알고리즘의 이름 두 개 계층을 사용하는 얇은 것 : 학습 방법이 단순해서 더 많은 데이터를 활용할 수 있고 성능 향상됨...

NLP lab/엔엘피

계층적 소프트맥스(Hierarchical Softmax, HS) in word2vec

계층적 소프트맥스(Hierarchical Softmax, HS)란? 기존 softmax의 계산량을 현격히 줄인, softmax에 근사시키는 방법론이다. Word2Vec에서 skip-gram방법으로 모델을 훈련시킬 때 네거티브 샘플링(negative sampling) 방법과 함께 쓰인다. 어떤 건지 알아보자. 내용은 유튜브 ChrisMcCormicAI 채널의 설명을 참조했다. 기존 소프트맥스를 Word2Vec에 적용할 때의 문제점 우리가 아는 일반적인 softmax 함수를 MNIST와 같은 간단한 데이터셋에 적용할 때는 문제가 없었다. MNIST는 주어진 그림을 0부터 9까지 분류하는 문제였으므로 output이 10개면 충분했다. 하지만 Word2Vec 훈련 시에는 output의 개수가 Vocabulary..

NLP lab/엔엘피

Context Free Grammar, CYK(CKY) 알고리즘

다루는 내용 문맥 자유 언어 문맥 자유 문법 촘스키 정규형 CYK 알고리즘 문맥 자유 언어(Context-Free Language, CFL) 문맥 자유 언어(Context-free language, CFL)는 문맥 자유 문법이 생성하는 형식 언어이다. (같은 문법이 다른 언어를 생성할 수도 있다.) 문맥 자유 문법(Context-Free Grammar) 문법 \( G=(N, \Sigma, R, S) \) 에서 모든 생성 규칙이 $$ A\,\to\, w $$ 의 형태이면 \(G\)를 문맥 자유 문법(Context-free grammer, CFG) 라고 한다. 이때 \( A \in N \) 이고, \( w \in (N\cup \Sigma)^{*} \) 이다. 여기서 \(N\)은 a finite set of ..

NLP lab/엔엘피

오토마타 이론과 형식 언어

오토마타 이론(Automata Theory)이란? 계산 능력이 있는 추상 기계와 그 기계를 이용해서 풀 수 있는 문제들을 연구하는 컴퓨터 과학의 한 분야이다. 추상 기계를 오토마타(Automata, 복수형) 또는 오토마톤(Automatnon, 단수형) 이라고 한다. 기계는 일반적으로 유한한 상태의 집합을 갖고 있다. 유한한 개수의 상태를 가질 수 있는 기계를 유한 상태 기계(finite-state machine), 오토마톤을 유한 오토마톤(finite automaton)이라 한다. 기계는 입력에 따라 현재 상태에서 다음 상태로 전이하며 출력을 내놓는다. 이는 계산 문제를 해결할 능력과 같다. 특정한 유한 오토마톤은 어떤 사건(event)에 의해 현재 상태(current state)에서 다른 상태로 변화할..

NLP lab/엔엘피

구구조와 의존 구조 분석

이번 장에서는 구문 분석의 대략적인 분류와 이론을 다룬다. A. 구구조 구문 분석 - 규칙 기반 - 통계 기반 - 딥러닝 기반 B. 의존 구조 구문 분석 - 구구조 구문 분석과의 차이 - 의존의 종류 - 분석 방법 C. 중의성 구구조 구문 분석 구구조란 문장의 요소들이 서로 짝을 지어 구와 절을 이룸으로써 형성되는 구조이다. 분석 방법으로는 규칙 기반, 통계 기반, 딥러닝 기반 분석이 있다. 규칙 기반 구구조 구문 분석 S → NP VP VP → V NP NP → DT NP S는 Sentence, NP는 Noun Phrase, VP는 Verb Phrase, DT는 Determiner를 의미한다. 이 문법 규칙을 'John hit the ball.'이라는 문장에 적용하면 위의 그림과 같은 분석 트리를 얻을..

NLP lab/수학

계산 그래프를 활용한 편미분 구하기, 역전파법 이해

0. 계산 그래프를 이용해 편미분을 구하는 방법이란? $$ z=(a+b) \cdot c|_{a=50, b=70, c=2} =240 $$ 이 식을 위의 그림처럼 계산 그래프로 표현할 수 있다. 역전파법을 이용해서 편미분을 구하면 $$ \left.\frac{\partial z}{\partial a}\right|_{a=50, b=70, c=2}=2 $$ $$ \left.\frac{\partial z}{\partial b}\right|_{a=50, b=70, c=2}=2 $$ $$ \left.\frac{\partial z}{\partial c}\right|_{a=50, b=70, c=2}=120 $$ 로 해석적으로 구한 해와 일치함을 확인할 수 있다. 왜 1부터 시작하는지, 왜 덧셈은 그냥 흐르고 곱셈은 반대쪽..

NLP lab/파이썬

[numpy] + 연산과 += 연산의 차이점

0. 요약 import numpy as np a = np.array([1, 2]) print(id(a)) a += 1 print(id(a)) b = np.array([1, 2]) print(id(b)) b = b + 1 print(id(b)) 1906123730816 1906123730816 1906122615264 1906162448144 Process finished with exit code 0 위 코드를 실행 시 알 수 있는 것처럼, numpy 배열 연산 시 a += 1 a = a + 1 은 다르게 동작한다. 위의 코드(제자리 연산)는 변수 a의 주소를 바꾸지 않고, 아래의 코드는 a의 주소를 바꾼다. 이를 알지 못하면 함수에 매개변수로 전달 시 예상치 못한 결과를 가져올 수 있다. 1. 문제 인..

NLP lab/수학

선형대수 복습

Transpose property \( (A+B)^T=A^T+B^T \) \( (AB)^T=B^TA^T \) \( (A^{-1})^T=(A^T)^{-1} \) \( A^T \) is invertable exactly when \(A\) is invertable. Transpose의 정의 : 세로줄을 가로줄로 바꾸는 행위(X) 모든 \(x\)와 \(y\)에 대해, \((Ax)^Ty=x^T(A^Ty)\)이도록 하는 \(A^T\)를 \(A\)의 transpose라고 한다.(O) Subspace의 정의 : 다음을 만족하는 벡터들의 집합을 subspace라 한다. If \(v\) and \(w\) are vectors in the subspace and \(c\) is any scalar, then (i) \(v..

heavyteil
'NLP lab' 카테고리의 글 목록 (2 Page)