word2vec 연산 과정에서 병목은 입력층의 원핫 벡터와 W_in의 곱 계산, 은닉층과 W_out의 곱 및 출력함수 계산입니다. - 원핫 벡터와 W_in 곱 계산 임베딩 계층 구현을 통해 해결할 수 있습니다. 원핫 벡터는 해당 index의 값만 1, 나머지는 모두 0입니다. 그러므로 행렬 연산 (W_in과의 곱)을 굳이 하지 않고, W_in에서 해당 행을 가져오면 됩니다. - 은닉층과 W_out의 곱 및 출력함수 계산 이는 네거티브 샘플링을 이용해 계산하면 됩니다. 1. 이진 분류 해당 값이 정답인지 아닌지만 판단하도록 만드는 것이 이진 분류입니다. 해당 값이 yes, no 둘 중 하나가 되게 하기 위한 것입니다. 이 때 시그모이드 함수를 이용하여 판별할 수 있습니다. 출력 함수로 시그모이드를 이용하고..
통계 기반 기법은 단어의 동시발생 행렬을 만들고 이를 SVD에 적용합니다. 단순히 생각했을 때 (n,n) 행렬을 SVD를 계산하는데에는 O(n^3)이 걸립니다. 그러므로 큰 데이터에서는 시간이 너무 오래 걸립니다. 추론 기반 기법은 신경망을 이용해 미니배치로 학습을 시킵니다. 그리고 학습 과정을 통해서 가중치를 갱신합니다. 미니배치를 이용하므로 어휘 수가 많은 경우도 처리할 수 있습니다. 추론 예시 : you ? goodbye and I say hello. 라는 문장에서 ?에 어떤 말이 들어갈 지를 추측하는 것입니다. 맥락으로 ?의 앞 뒤 단어를 사용하여 이 단어들 (you, goodbye)를 어떤 모델에 넣어 나올 수 있는 단어들의 확률을 구하는 것입니다. 원-핫 벡터 : "you say goodbye..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cTJDve/btqUsc1sV4k/ix8K8JApvpD1KiQgMCyzB1/img.png)
1. 점별 상호 정보량 (PMI) PMI의 식은 다음과 같습니다. P(x), P(y)는 x,y가 일어날 확률, P(x,y)는 x,y가 동시에 일어날 확률입니다. 이를 동시발생행렬에 적용해봅시다. N은 말뭉치에 포함된 단어의 수, C(x), C(y)는 x,y의 등장 횟수, C(x,y)는 x,y의 동시 발생 횟수입니다. 이를 이용해 N=10,000, "the"=1,000, "car"=20, "drive"=10, "the, car"=10, "car, drive"=5 라고 한다면 PMI("the","car") ≒ 2.32, PMI("car", "drive") ≒ 7.97 입니다. 이를 이용하면, the라는 것이 많이 나왔지만, car와 drive의 연관성이 더 큰 값을 나타내는 것을 알 수 있습니다. PMI의 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/NFBjw/btqUnLCp5HJ/HZ57aCbnOKnlANjH4xPBL1/img.png)
책 : 밑바닥부터 시작하는 딥러닝 2 chpater 2 text, 즉 글을 인식할 때 단어 자체로 분류를 할 수도 있지만, 앞 뒤 문맥 (context)을 파악하도록 말뭉치 (corpus)를 이용할 수 있다. 1. 말뭉치 전처리 (preprocessing) 전처리라는 것은 미리 어떤 것을 처리해 놓는 것이다. 여기서는 텍스트 데이터를 단어로 분할하는 과정을 의미한다. 그리고 단어에 id를 부여하여 해당 단어가 몇 번째 단어인지 구분한다. 예시 코드 def preprocess(text): text = text.lower() text = text.replace('.', ' .') words = text.split(' ') word_to_id = {} id_to_word = {} for word in word..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/drrSPH/btqUf0GaoRz/r2orwLakhv3M5ko2TPunx1/img.png)
어제까지 1권 복습을 마무리하고 오늘 새로운 책 2권을 가지고 공부를 시작합니다. 1장 내용은 전체적으로 복습이고, 2권에서 어떤 모델을 이용하여 적용해 나갈 것인지에 대한 간략한 설명이 나와있습니다. 책 : 밑바닥부터시작하는 딥러닝 2 코드 : github.com/WegraLee/deep-learning-from-scratch-2 WegraLee/deep-learning-from-scratch-2 『밑바닥부터 시작하는 딥러닝 ❷』(한빛미디어, 2019). Contribute to WegraLee/deep-learning-from-scratch-2 development by creating an account on GitHub. github.com 위 github 주소에 나선형 데이터셋이 주어져있습니다...