NLP 20

Day 42. Preprocessing

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

Day 41. RNNs with Attention

오늘은 Attention의 개념을 다뤄보겠습니다. Sequence-to-sequence 구조의 RNN계열 모델에서 attention이 왜 필요한지, 어떻게 적용될 수 있는지 살펴보도록 하겠습니다. Sequence to sequence sequence to sequence model을 보면, 한쪽은 encoder, 다른 한쪽은 decoder라는 부분으로 나뉘어져 있다. 간단하게, encoding은 문장이 들어가는 부분, decoding은 문장이 나오는 부분이라고 생각하자. 이들은 각각 RNN 혹은 LSTM 혹은 GRU를 기반한 구조가 된다. 위 그림은 챗봇의 예제로써, 질문이 들어왔을 때, 그것에 답을 하는 task를 수행하는 것이다. 이 질문은 LSTM에 기반해서 하나씩 입력을 받아 다음 step으로 넘..

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에서 강력한 성능을 보이면서 현재까지 각광받고 있는 접근법입..

Day 36. Topic Modeling

Topic Modeling은 Text Mining 기법 중에서 가장 많이 활용되고 있습니다. Topic Modeling은 Unsupervised Learning 기반의 방법 중 하나로써, 말 그대로 여러 문서들에서 주제를 찾아내는데 사용하는 알고리즘 중 하나입니다. 아주 많은 문서의 주제들을 추출할 수 있고, 시간별로 이 방법을 적용하여 대중의 트렌드를 파악하는 등 다양하게 적용되고 있습니다. Topic Modeling 비정형 데이터 (raw 정보에 가까운 데이터) : 이미지, 텍스트 등 정형 데이터 : table 형태로 구성된 정보들 이러한 text data들을 숫자로 나타내는 (전처리 하는) 방법을 Bag-of-Words 라고 한다. (예시) 뉴스 기사 정보들을 100개 정도 모았다고 가정했을 때, ..

[CS231n] 10강. Recurrent Neural Networks (RNN)

* 강의 자료는 아래에 있습니다!! 오늘은, RNN에 대해 알아보겠습니다. 일반적인 신경망들은 'one-to-one' 과 같은 모양을 가진다. 기본 신경망은 input layer, hidden layer, output layer를 거치는 구성을 갖는다. 이 'one-to-one' 모델은 input으로 fixed size인 이미지나 벡터를 입력받는다. 이 하나의 입력은 hidden layer를 거쳐서 fixed size를 가진 output vector로 내보내게 된다. 그러나 RNN에서는 one-to-one의 경우가 아닌, 위와 같은 one-to-many, many-to-one, many-to-many 로도 존재한다. 먼저, one-to-many의 예시로는 image captioning이 있다. 즉, 이 ..

NLP 2022.03.31

Day35. NLP intro

오늘은 NLP의 기초와 word embedding에 대해 알아봅시다! 먼저, NLP의 정의 입니다. NLP란, 컴퓨터와 인간 언어 사이의 상호작용, 특히 많은 양의 자연 언어 데이터를 처리하고 분석하도록 컴퓨터를 프로그래밍하는 방법과 관련된 언어학, 컴퓨터 과학 및 인공지능의 하위 분야이다. NLP의 목표는 문서의 내용을 컴퓨터가 이해할 수 있도록 하는 것이며, '이해한다'는 것에는 문서 내 언어의 문맥적 뉘앙스도 포함한다. NLP는 문서에 포함된 정보와 인사이트를 정확하게 추출할 수 있을 뿐만 아니라 문서 자체를 분류하고 구성할 수 있다. NLP의 응용분야입니다. - 텍스트 분류 : 스팸 검출, 감정 분석, 등... - 질의응답 : 검색 엔진 - 기계 번역 - 챗봇 - 개인 비서(ex. siri, 빅스..