-
딥러닝의 발전
-
단어 임베딩(Word2vec, GloVe)를 통해 단어를 벡터로 표현하여 컴퓨터가 자연어를 이해할 수 있도록 만듦
-
딥러닝 모델(CNN, RNN, LSTM)들을 통해 자연어를 처리할 수 있는 기술이 급진적으로 성장
-
산업에서의 신경망 적용
- 구글 신경망 기계 번역(GNMT)
- 전체 문장을 하나의 번역 단위로 간주해 한 번에 번역하는 신경망 기반 적용
- 번역 오류가 55 -> 85%까지 개선
-
단어 임베딩의 한계
- 단어 벡터의 질이 떨어짐
- 단어의 위치에 상관없이 동일벡터 할당
- 다의어에 대해 풍부한 의미를 가지지 못함
- 문맥으로 단어의 의미를 파악할 수 있도록 벡터가 생성되어야 함
-
대용량 학습 데이터의 필요
- 현실적인 task를 풀 수 있는 모델을 학습시킬 만한 많은 데이터를 확보 필요
- 대용량 학습 데이터가 없음
- 코퍼스 양이 너무 적어 한계
-
CV분야에서의 발전
- AlexNet이 여러 task에서 도움이 되는 것을 확인
-
Transfer Learning
- 특정 도메인 task로부터 학습된 모델을 비슷한 도메인 task 수행에 재사용
- 장기 -> 체스, 자전거 -> 오토바이
-
CV에서의 Transfer Learning
- 모델 사전 학습 수행
- 대량의 이미지에서 학습된 일반적인 특징 정보 획득
- 학습된 정보를 전이시킴
-
NLP에 적용
- 대량의 코퍼스를 활용하여 특정 방식으로 모델을 미리 훈련시킴
- 언어의 전반적인 특징 정보를 학습한 사전 학습 모델 생성
- 사전 학습된 모델을 문서 분류, 대화 처리 등과 같은 다양한 task에 활용
-
Transfer Learning
-
Pre-training
- Downstream task(구체적으로 풀고 싶은 문제)에 대해 fine-tuning하기 위해 필요한 모델 파라미터를 초기화하는 작업
- '많은 양의 코퍼스'에 기반하여 특정 학습 방식으로 모델 훈련
-
Fine-tuning
- 여러 downstream task에 맞추어 pre-training 단계에서 학습된 파라미터를 조금씩 조정
-
Pre-traing & Fine tuning 효율성
-
풍부하고 유용한 지식 습득 가능
-
학습 데이터에 레이블링 되지 않은 코퍼스가 사용되기 때문에, 학습 데이터를 제한없이 확보 가능
-
downstream task에 대해서 더 빠르게 모델 학습이 수렴하여 효율적인 학습 시간 확보 가능
-
빠른 학습 수렴 시간, 컴퓨팅 리소스 절약
-
ELMo(Embeddings from Language Models)
-
언어 모델 기반으로 문맥 정보를 반영한 단어 임베딩
-
문장 전체를 보고 단어 임베딩 생성
-
대용량 데이터로 언어 모델을 pre-training 수행
-
사전 훈련된 언어 모델을 fine-tuning하여 다양한 task에 적용
-
구조
- 2개의 층으로 이루어진 순/역방향 LSTM을 독립적으로 학습하는 언어 모델
- 위쪽 -> 단어의 문맥 정보
- 아래쪽 --> 문법 정보
-
pre-training
- 다음 단어를 예측하는 언어 모델링 작업을 통해 언어 모델 사전 학습 진행
- 문장 전체가 입력으로 들어오고 순차적으로 다음 단어를 예측하며 단어 임베딩을 학습
- 단어의 순서에 따라 임베딩 값이 달라지기 때문에 문맥 정보가 반영된 임베딩 생성
-
FFNN(피드 포워드 신경망, 순방향)
- 입력층에서 출력층 방향으로 연산이 전개되는 신경망
-
Contextualized Word Embedding
- 순방향 LSTM의 은닉 벡터 및 토큰 임베딩 벡터와 역방향 LSTM의 은닉 벡터 및 토큰 임베딩 벡터를 이어 붙임 (문맥 정보를 담고 있음, 토큰의 좌우 방향 모두의 데이터를 알고 있기 때문에)
- 이어 붙은 벡터에 가중치를 각각 곱한 후 더하여 최종 ELMo 임베딩 벡터 생성
-
Fine-tuning
- 각각의 가중치는 수행하고자 하는 task에 따라 달라짐
- 문맥적인 의미가 중요 -> 상위 LSTM에 높은 가중치
- 구조 관계가 중요 -> 하위 LSTM에 높은 가중치