책/밑바닥부터 시작하는 딥러닝 2 (11) 썸네일형 리스트형 4장 word2vec 속도 개선 word2vec 개선 (1) 은닉층의 뉴런이 100개인 CBOW 모델을 생각해보자 다음의 두 계산이 병목이 된다. 1. 입력층의 원핫 표현과 가중치 행렬 $W_{in}$의 곱 계산 뉴런의 크기가 100만개라면 원-핫 벡터는 상당한 메모리를 차지하게된다. 또 이 원핫 벡터와 가중치 행렬의 곱 계산에도 상당한 자원을 소모하게 된다. 이는 Embedding 계층을 도입하여 해결한다. 2. 은닉층의 가중치 행렬 $W_{out}$의 곱 및 Softmax 계층의 계산 마찬가지로 다루는 어휘가 많아짐에 따라 계산량이 증가한다. 이는 네거티브 샘플링이라는 새로운 손실 함수를 도입해 해결한다. Embedding 계층 사실 이 계산은 단어 ID에 해당하는 행벡터를 추출하는 것뿐이다. 따라서 원핫 표현으로의 변환과 MatM.. 3장 word2vec 통계 기반 기법의 문제점 대규모 말뭉치의 어휘 수는 엄청 많기 때문에 통계 기반 기법에서는 거대한 행렬(PPMI 같은)을 만들게 된다. 이러한 거대한 행렬에 SVD를 적용하는 것은 현실적이지 않다. 또한 미니배치 학습이 불가능하다. 반면 추론 기반 기법은 신경망을 통해 미니배치 학습이 가능하고 이것의 부산물로 단어의 분산 표현을 얻어낼 수 있다. 추론 기반 기법 개요 추론이란 위의 그림처럼 맥락이 주어졌을 때 "?"에 들어갈 단어를 추측하는 작업이다. 모델 관점에서 보면 다음과 같다. 신경망에서의 단어 처리 신경망에서 you, say 같은 단어를 처리할 수 있는 방법으로 고정 길이의 벡터로의 변환을 사용할 수 있다. 여기서는 one-hot을 사용한다. (이 방법도 문장의 길이가 길어지면 문제점이 생길 것.. 2장 자연어와 단어의 분산 표현 시소러스 시소러스는 유의어 사전으로, 동의어나 유의어가 한 그룹으로 분류되어 있다. 또한 단어들의 의미에 상하위 관계가 존재한다. 시소러스는 다음과 같은 문제점들이 있다. 시대 변화에 대응하기 어렵다. 사람을 쓰는 비용이 크다 단어의 미묘한 차이를 표현할 수 없다. 통계 기반 기법 말뭉치(corpus)라고 부르는 텍스트 데이터를 이용한다. 통계 기반 기법은 말뭉치로부터 효율적으로 그 핵심을 추출하는 것이다. 말뭉치 전처리 def preprocess(text): text = text.lower() text = text.replace('.', ' .') words = text.split(' ') word_to_id = {} id_to_word = {} for word in words: if word not .. 이전 1 2 다음