반응형

자연어처리 3

Transformer(4) - 모델의 학습과정 정리

Transformer는 기존의 모델들과 달리 CNN의 Convolution이나 RNN의 Cell들을 이용하지 않아 낯설게 느껴져서 다시 한번 모델의 총과정을 리뷰한다. Transformer의 Input data로 Embedding 된 벡터를 넣어주는데 이때 들어가는 벡터에 Positional Encoding 방법으로 벡터의 순서를 표시해준다. 다음으로 Multi-Head Attention에서 self-attention을 수행해주고 단어 간의 관련도를 계산해준다(query, key, value가 모두 같은 sequence가 된다). 이 과정이 Transformer의 성능을 끌어올리는 핵심이다. Attention의 내적연산으로 같은 문장 내 단어끼리의 의미적, 문법적 관계를 포착해내는 중요한 과정이다. Mu..

Transformer(1) - Scaled Dot-Product Attention

Transformer를 이해하기 위해서는 우선 Self attention에 대한 이해가 필요하다. 셀프 어텐션은 문장에서 각 단어끼리 얼마나 관계가 있는지를 계산해서 반영하는 방법이다. 즉, 셀프 어텐션으로 문장 안에서 단어들 간의 관계를 파악할 수 있는 것이다. 예를 들어, '나는 자연어 처리를 즐겨한다.'라는 문장에서 '자연어'라는 단어에 대해 관계를 측정한다. 이때, 밑의 표처럼 나왔다고 하면 각 단어에 대한 어텐션 스코어가 나온다. 어텐션 스코어는 각 단어 간의 관계를 측정한 값이고 어텐션 스코어 값을 하나의 테이블로 만든 것을 어텐션 맵이라고 부른다. 나는 자연어 자연어 자연어 처리를 자연어 즐겨한다 자연어 Dot product Dot product Dot product Dot product 0..

Embedding 이란 무엇인가 이해하기

인간의 언어(자연어)는 수치화되어 있지 않은 데이터이기 때문에 머신러닝, 딥러닝 기법을 바로 사용할 수가 없다. (수치화되어있는 데이터의 예로는 Mnist나 꽃의 종류처럼 숫자로 분류가 가능한 것들을 말함.) 그래서 자연어 처리에서 특징 추출을 통해 수치화를 해줘야 하는데 이때 사용하는 것이 "언어의 벡터화"이다. 이런 벡터화의 과정을 Word Embedding이라고 한다. 가장 기본적인 벡터화의 방법은 One-hot encoding 방법이다. 예를 들어, 남자와 여자를 표현하는 벡터를 만든다고 할 때 각각을 [1,0] [0,1]로 만드는 방법이다. 그런데 이 방법은 단어가 많아지면 벡터 공간이 매우 커지고 실제 1인 값은 한 개뿐 이므로 매우 비효율적이다. 또 이런 표현방식은 단어가 뭔지만을 알려줄 뿐..

반응형