본문 바로가기

딥러닝/자연어(NLP)

나만의 자연어처리 공부방법

1. 학습교재 📚


'김기현의 자연어처리 딥러닝 캠프'를 사용했습니다.

자연어 처리에 대한 배경지식이 부족해서 전반적으로 이 분야를 설명해주는 책을 선택했습니다.

내용에 대해서 부족한 점은 많지만 한번 훑어보기에는 적당합니다.


2. 학습방법 👩‍🏫


자연어에 대한 설명을 건너 뛰고 시퀀스 모델링부터 학습을 진행했습니다.

딥러닝에 대한 단편적인 지식이 있으므로 NLP 모델에 중점을 뒀습니다.

A. 모델링 [중요도 :🌟🌟🌟🌟]


모델을 스터디한 순선대로 나열했습니다.

모델 중요도 설명
RNN ⭐⭐⭐⭐ NLP 모델들의 기초가 됩니다.
순차적으로 학습시키는 모델로 생각하면 됩니다.
LSTM ⭐⭐ 장기기억이 불가능한 RNN 를 개선했습니다
GRU LSTM의 복잡성을 개선했습니다. light version
CNN ⭐⭐⭐ 이미지 CNN과 원리가 같습니다
CNN에 대한 지식을 넓힐 수 있습니다.
seq2seq ⭐⭐⭐ 문장을 압축해서 의미를 파악합니다.
Attention ⭐⭐⭐ 현재 성능이 가장 좋은 BERT의 기본 요소입니다.
Transformer ⭐⭐⭐ 어텐션을 이용해 만들 모델입니다. 마찬가지로 Bert의 기본 요소입니다.
ELMO 양방향 LSTM을 사용해 문장 내 단어의 위치에 따른 의미를 파악할 수 있게 합니다.
BERT ⭐⭐⭐⭐⭐ 많은 Transformer를 쌓아서 만든 현재 가장 좋은 모델입니다.

B. 단어 임베딩 [중요도 :🌟🌟]


단순히 단어를 벡터로 바꾸는 작업입니다. 모델과 큰 상관은 없습니다.

word2vec, GloVE 두 가지 주요 방법이 있는데, 모델을 다룰 때는 많이 쓰지 않았습니다.

C. 모델 평가 [중요도 :🌟]


모델 평가 부분에서 크게 남는 것은 PPLBLEU입니다.
학습을 하면서 모델을 볼 때는 단순히 결과를 보면 대충 알 수 있습니다. (모델이 허접할 경우가 대부분이므로..)
따라서 NLP 모델에 대하여 심도 있는 공부를 진행하면서 비교가 필요할 때 알면 충분합니다.

D. 정규표현식 [중요도 :🌟🌟🌟]


NLP를 하다보면 정규표현식으로 데이터를 처리해야 하는 경우가 많이 있습니다.
일단 배워두면 코딩을 하는데 전체적으로 큰 도움이 됩니다.
스스로 공부하는 것보다 제대로 설명 1번 듣으면 충분합니다. (글로 공부하는 건 비추)

3. 후기 🧐


한국어는 영어에 비해서 형태소 분해(기쁜 --> [ 기쁘다, ㄴ ] )에 대하여 처리가 어렵습니다.
NLP 모델을 학습하면서 한국어를 바탕으로 할 경우 난이도가 올라가게 됩니다.
모델과 이론을 공부할 때는 한국어를 제외하고 라틴어 계열만 접하는 것이 도움이 되는 것 같습니다.

최신 모델을 접하는 경우가 많아서 **Jupyter보다 Colab으로 하는 게 낫습니다.**