전체 글

One By One
자주 나오는 바이그램 활용 함께 자주 등장하는 단어 조합이 있을 때, 예를 들면 '대한' 뒤에는 '민국'이 등장할 때가 많다. 이 둘은 하나의 바이그램(2-그램)을 형성한다. 대한 뒤에 민국을 예측하는 것은 당연한 결과임에 예측으로 얻는 것이 없다. 따라서 이 두 단어를 합쳐서 나타내어 2-그램, 3-그램을 형성해 word2vec에 포함한다. 2-그램, 3-그램들을 공둥 출현 횟수에 기초한 score을 이용해 식별한다. $ score(w_i,w_j)=\frac{count(w_i,w_j) - \sigma}{count(w_t) \times count(w_j)} $ 바이그램 score function 단어 $w_i$와 $w_j$의 바이그램 점수가 특정 threshold($\sigma$)보다 높으면 그 둘의 쌍..
연속 단어 모음 접근 방식 연속 단어 모음(CBOW) 접근 방식에서는 주어진 단어들에 기초해서 그 중심 단어를 예측한다. 따라서 하나의 훈련 견본은 하나의 입력 단어와 다수의 출력 단어들이 아니라 다수의 주변 단어들과 하나의 중심 단어로 구성된다. 다수의 주변 단어들은 멀티핫 벡터로 표현한다. 이 멀티핫 벡터는 주변 단어들의 원핫 벡터들을 모두 합한 것이다. painted가 기대출력일 때 $W_{t-2}$ = Claude $W_{t-1}$ = Monet $W_{t}$ = painted $W_{t+1}$ = the $W_{t+2}$ = Grand 문서를 토큰화해서 얻은 주변 단어 멀티핫 벡터와 목표 단어 원핫 벡터의 쌍들로 이루어진 훈련 자료 집합으로 신경망을 훈련한다. 즉 목표 단어 $w_t$의 원핫 벡..
스킵그램 접근 방식 스킵그램 접근 방식에서는 주어진 입력 다넝에 기초해서 일정 범위 이내의 주변 단어들을 예측하도록 모형을 훈련한다. painted 주변 단어를 예측하는 예시이다. painted에 대해 신경망은 claude, monet, the, grand 라는 주변 단어 스킵그램을 출력한다. skip gram은 skip 말그대로 painted를 시작해 Monet과 the 토큰을 건너 뛰고 claude. Grand를 예측하는 것이다. 주변 단어들을 예측하는 신경망의 구조는 신경망의 구조와 비슷하다. 스킵그램을 위한 신경망의 구조는 입력층과 은닉층, 출력층으로 이루어진 다층 신경망이다. 은닉층은 n개의 뉴런으로 구성되어있으며 여기서 n은 단어하나를 표현하는 벡터의 차원 수이다. 입력층과 출력층은 각각 M개..
이전에 LSA나 LDiA같은 축소 기법으로 사라진 단어의 희미한 의미를 복구하는 방법이다. 이전 차원 축소 방법은 단어 주변의 문맥을 그냥 무시했다. 단어 모음(bag-of-words) 자료 구조는 그냥 한 문서의 단어들을 통계적 문서에 집어 넣은 것 뿐이다. Word2Vec은 문서나 문장의 모든 단어가 아니라 한 단어의 이웃 단어 몇 개만으로 작은 단어 모음을 만든다. 이떄 그런 단어 모음이 문장들의 경계를 넘지는 않게 한다. 인접한 문장의 단어들로 하나의 단어 모음을 만들지는 않는다. 단어 벡터 훈련 과정이 문서 전체가 아니라 서로 관련된 단어들에 집중하게 된다. 단어 벡터 훈련 과정이 전체가 아니라 서로 관련된 단어들에 집중한다. 이런식으로 만들어낸 새로운 단어 벡터를 이용하면 동의어나 반의어를 식..
· Python
Pytorch는 BackPropagtion을 구현할 때 Autograd 방식으로 쉽게 구현할 수 있도록 되어 있다. BATCH_SIZE = 64 INPUT_SIZE = 1000 HIDDEN_SIZE = 100 OUTPUT_SIZE = 10 BATCH 크기 64가 의미하는 것은 한 번에 들어가는 데이터의 양이다. INPUT의 크기는 학습 시킬 데이터의 양이다. OUTPUT은 말그대로 출력 데이터의 크기이다. x = torch.randn(BATCH_SIZE, INPUT_SIZE, device = DEVICE, dtype = torch.float, requires_grad = False) y = torch.randn(BATCH_SIZE, OUTPUT_SIZE, device = DEVICE, dtype = to..
GAN GAN은 생성자(Generator)와 식별자(Discriminator)라는 신경망 2개가 서로 경쟁하면서 학습하는 생성 모델이다. 생성자(Generator)는 가짜 데이터를 만드는 모델이다. 식별자를 속이는 데 목적이 있다. 랜덤 노이즈를 입력해 가짜 데이터를 만들어 식별자가 이를 극복하지 못하도록 학습을 진행한다. 식별자(Discriminator)는 생성자가 만든 가짜를 식별한다는 목적이 있다. 원본 데이터와 생성자가 만든 데이터 모두를 훈련 데이터로 삼아 아주 작은 차이도 식별하도록 훈련한다. 이미지라면 생성자는 어떤 그림의 위작을 만들고 식별자는 위작인지를 감정한다. 생성자는 식별자가 속을 만한 진짜 그림을 그리려고 노력하고 식별자는 가짜 그림임을 알아내려고 노력한다. 이과정에서 점점 원본과..
다했다
B's