goorm 5

Day 42. Preprocessing

오늘은 자연어 처리 데이터를 전처리 하는 과정을 배워보겠습니다. 전처리하는 파이프라인과 전처리하는 과정에서 활용할 수 있는 모듈을 배우고, 다룬 모듈을 활용해 간단하게 데이터를 크롤링하여 전처리하는 실습을 진행해보겠습니다. text data를 모델이 encode 할 때에는 아래와 같은 파이프라인을 거치게 된다. Normalization -> pre-tokenization -> tokenization -> post-processing 먼저, raw string이 덜 랜덤하고 깨끗해지는 과정을 통틀어 Normalization이라고 말한다. 예를 들면, white space(여백)을 제거하고, 특수기호를 제거하거나, 대소문자가 섞여있을때 하나로 통일해주는 과정이 있다. 이렇게 normalization 과정을 ..

Day 39. LSTM & GRU

오늘은 RNN의 long-term dependency에 대해 다뤄보도록 하겠습니다. RNN에는 어떤 문제가 존재하는지 살펴보고, 이 문제를 완화하는 방법인 LSTM과 GRU에 대해 다뤄볼 것입니다. 그리고, RNN에서 gradient exploding, vanishing이 왜 발생하는지 computational graph를 통해 살펴보도록 하겠습니다. 더불어 RNN의 base model들을 리뷰하고, 기존 RNN-based model의 overfitting 문제를 해결하기위한 방법들을 알아보겠습니다. Vanishing Gradient RNN은 long term dependency라는 문제가 있다. 이는, 오래전에 있었던 문제를 쉽게 까먹는다는 것이다. 예를 들면, 'Jane walked into the ..

Day 38. RNN

RNN에 대해 짧게 복습한 후, RNN의 다양한 task에 대한 설명을 다룰 것입니다. RNN RNN이라고 하는 것은, sequence data 혹은 time series data를 입력으로 받는 함수이다. sequence data라는 것은, 매 time step마다 들어오고 있는 입력이 있다는 것이다. 예를들면, ' I go home ' 이라는 문장이 있을 때, time step 이 1일때, I 가 들어오고, time step이 2일 때, go가 들어오게 된다. RNN의 기본 구조는 매 time step마다 동일한 function을 쓰고, 이 function의 출력은 현재 time step의 hidden state이고, 입력은 이전 time step의 hidden state vector와 현재 time..

Day 37. Word Embedding

기존의 Word를 Vector로 표현하는 방법은 Topic Modeling에서와 같이 Frequency(빈도) 기반의 방법론이 대세를 이루고 있습니다. 이러한 빈도 기반의 방법론에서 벗어나 Word Embedding을 distributed representation(분산 표현)으로 나타내고자 한 방법이 바로 Word2Vec과 GloVe입니다. 해당 방법론들이 등장한 이후로 빈도 기반의 word embedding 방법론은 모두 사라지고 현재까지도 distributed representation 즉, word의 의미를 Vector의 각 차원에 고루 값을 갖도록 하는 방법이 유행하고 있습니다. 각 차원의 의미를 해석하기는 어려워졌지만, 다양한 Task에서 강력한 성능을 보이면서 현재까지 각광받고 있는 접근법입..