본문 바로가기

딥러닝131

[딥러닝을이용한 자연어 처리 입문] 1008 사전 훈련된 워드 임베딩(Pre-trained Word Embedding) 1. 케라스 임베딩 층(Keras Embedding layer) 1) 임베딩 층은 룩업 테이블이다 - 임베딩 층의 입력으로 사용하기 위해서 입력 시퀀스의 각 단어들은 모두 정수 인코딩이 되어있어야 함(어떤 단어 → 단어에 부여된 고유한 정수값 → 임베딩 층 통과 → 밀집 벡터) - 이 임베딩 벡터는 모델의 입력이 되고, 역전파 과정에서 단어 great의 임베딩 벡터값이 학습됨 2) 임베딩 층 사용하기 - 문장의 긍, 부정을 판단하는 감성 분류 모델 만들기 2. 사전 훈련된 워드 임베딩(Pre-Trained Word Embedding) 사용하기 - 훈련 데이터가 적은 상황이라면 모델에 케라스의 Embedding()을 사용하는 것보다 다른 텍스트 데이터로 사전 훈련되어 있는 임베딩 벡터를 불러오는 것이 나은.. 2021. 5. 22.
[딥러닝을이용한 자연어 처리 입문] 1006 패스트텍스트(FastText) FastText는 하나의 단어 안에도 여러 단어들이 존재하는 것(각 단어를 글자 단위 n-gram의 구성으로 취급)으로 간주함. 즉 내부 단어(subword)를 고려하여 학습을 진행 1. 내부 단어(subword)의 학습 - n-gram의 n을 3으로 잡은 경우 apple , : (끝), (특별 토큰) - 내부 단어들을 벡터화한다는 의미는 저 단어들에 대해서 Word2Vec을 수행한다는 의미 2. 모르는 단어(Out Of Vocabulary, OOV)에 대한 대응 - 학습 후 모든 데이터 셋의 모든 단어의 각 n-gram에 대해 워드 임베딩이 되므로 데이터 셋만 충분하다면 내부단어를 통해 OOV에 대해서도 다른 단어와의 유사도를 계산할 수 있음 3. 단어 집합 내 빈도 수가 적었던 단어(Rare Word.. 2021. 5. 21.
[딥러닝을이용한 자연어 처리 입문] 1005 글로브(GloVe) 글로브(Global Vectors for Word Representation, GloVe)는 카운트 기반과 예측 기반을 모두 사용하는 방법론으로 카운트 기반의 LSA(Latent Semantic Analysis)와 예측 기반의 Word2Vec의 단점을 지적하며 이를 보완한다는 목적으로 나왔고, 실제로도 Word2Vec만큼 뛰어난 성능을 보여줌 Word2Vec와 GloVe 중에서 어떤 것이 더 뛰어나다고 말할 수는 없고, 이 두 가지 전부를 사용해보고 성능이 더 좋은 것을 사용하는 것이 바람직함 2. 윈도우 기반 동시 등장 행렬(Window based Co-occurrence Matrix) - 단어의 동시 등장 행렬은 행과 열을 전체 단어 집합의 단어들로 구성하고, i 단어의 윈도우 크기(Window Si.. 2021. 5. 21.
[딥러닝을이용한 자연어 처리 입문] 1004 네거티브 샘플링을 이용한 Word2Vec 구현(Skip-Gram with Negative Sampling, SGNS) 1. 네거티브 샘플링(Negative Sampling) - Word2Vec의 진행 과정 중에서 만약 현재 집중하고 있는 중심 단어와 주변 단어가 '강아지'와 '고양이', '귀여운'과 같은 단어라면, 사실 이 단어들과 별 연관 관계가 없는 '돈가스'나 '컴퓨터'와 같은 수많은 단어의 임베딩 벡터값까지 업데이트하는 것은 비효율적임 - 네거티브 샘플링은 Word2Vec이 학습 과정에서 전체 단어 집합이 아니라 일부 단어 집합에만 집중할 수 있도록 하는 방법 주변 단어들이 아닌 단어의 집합을 만들어 부정(negative)으로 레이블링하고 주변 단어들은 긍정(positive)으로 레이블링 한 후 두 집합간 이진 분류 문제로 변환 - Word2Vec보다 훨씬 연산량에서 효율적 3. 20뉴스그룹 데이터 전처리 하기 .. 2021. 5. 21.