Machine translation as building a conditional language model 지난 시간에 공부한 machine translation이 이전에 배운 language model의 구조와 유사한 부분이 있다는 것을 시각적으로 확인할 수 있습니다. machine translation에서는 input x가 예측값 y hat과 동시에 입력으로 들어가지 않는 다는 점을 제외하면 구조가 유사합니다. 그리고 이러한 구조를 'contional language model'이라고 부릅니다. input x라는 조건이 주어졌을 때, 예측값 y hat을 확률에 기반하여 예측하기 때문이죠. Finding the most likely translation 하지만 결국 확률의 문제이기 때문에, 주어진 조..
Sequence Models
Sequence to sequence model 여러 개를 입력으로 받고 여러 개를 출력하는 형태의 sequence to sequence 모델의 대표적인 예는 machine translation입니다. 기계 번역을 위한 학습 방식에는 여러 가지가 존재하지만, 초기에는 위처럼 입력을 쭉 받고, 이후에 예측 결과를 생성하면서 이를 입력으로 다시 제공하는 방식을 취했습니다. Image captioning sequence to sequence를 image captioning에 응용한 예시입니다. 이미지에 대한 feature를 최종적으로 4096차원의 벡터로 표현하는 CNN 모델입니다. 원래는 이 벡터에 softmax를 적용하여 확률을 추출해내지만, 우리가 하고 싶은 것은 이미지에 적합한 문장을 생성하는 것이므로..
The problem of bias of word embeddings 인공지능 모델은 텍스트의 정보를 그대로 학습하기 때문에, 텍스트에 녹아 있는 편향적인 내용을 그대로 반영할 수도 있습니다. 가장 대표적인 예시는 위와 같이 성과 관련된 것으로, 남-여 : 프로그래머-주부 / 의사-간호사 등으로 구분하게 된 모델이 있었습니다. 사실 실제 사회상을 잘 반영하는 것으로 볼 수도 있지만, 악의적으로 편향된 학습을 하게 된 모델이 미칠 영향은 생각보다 클 수 있습니다. 인공지능에 대한 신뢰도가 높아질수록 의사결정에 더 큰 영향력이 행사될 수 있기 때문이죠. (참고로 여기서 언급하는 bias는 딥러닝 모델에서 흔히 언급되는 variance-bias와 의미상 차이가 있습니다) Addressing bias in wo..
Sentiment classification problem Sequence Model로 처리할 수 있는 대표적 태스크 중 하나인 sentiment classification(감성/감정 분류)입니다. 입력(X)을 문장으로 받고, 각 문장이 어떤 평점에 해당하는지를 정답(Y)으로 삼는 구조입니다. Simple sentiment classification model 따라서 단어(토큰)마다 임베딩을 추출하여 평균을 구하고, 여기에 softmax를 적용하여 예측값을 구합니다. 만약 한 문장 내에 감성에 영향을 줄 수 있는 표현이 여러 번 등장하는 경우(예시에서는 good), 평균값에 이 vector의 값이 제일 많이 반영될 것입니다. RNN for sentiment classification 위에서 설명한 것을 ..
GloVe (global vectors for word representatoin) 굉장히 직관적이고 간단한 방식으로 유명한 GloVe 모델입니다. context i, target j의 관계에서, context가 주어졌을 때 target이 몇 번 등장했는지를 Xij 변수에 담습니다. 설정한 조건들에 따라서 Xij, Xji의 값이 같을 수 있습니다. Model 모델의 학습 방향은 당연히 손실 함수를 최소화하는 것입니다. i, j가 각각 target, context를 의미한다는 점을 고려해 본다면, 예측한 확률에서 각 target의 등장 횟수를 log를 취해 빼는 방식입니다. 가중치 인자에 해당하는 f는 this, is, of, a와 같이 자주 등장하지만 그 의미는 약한 stopwords에게는 적은 가중치를..
Defining a new learning problem skip-gram 모델은 위처럼 context 하나에 대해 target을 random sampling 하는 방식입니다. 위 예시에서는 k 변수를 4로 설정하여 실제 target을 제외한 후보를 네 개 추출한 것을 볼 수 있습니다. 만약 데이터셋이 작은 경우라면 이 k의 값을 키워 여러 개의 단어를 추출해보는 것이 좋습니다. 반대로 데이터셋이 크다면 k의 값을 줄이는 것이 효율적입니다. 결국 context - word 쌍을 input X로 주고, target y를 output으로 두어서 모델이 학습하게 됩니다. Model 위 소프트맥스 함수는, context와 target 쌍이 주어졌을 때, 예측 결과가 실제 target이었을 확률을 구하는 것입니다..