<목차>
1. NLP?
2. 텍스트 전처리
3. Word Embedding
4. 딥러닝과 자연어 처리
1. NLP?
◆ NLP(Natural Language Processing)?
: 컴퓨터가 인간의 언어(자연어)를 이해하고 생성할 수 있도록 하는 기술
텍스트나 음성 데이터 처리하여 유의미한 정보 추출하, 인간과의 상호작용에 사용
기계 번역, 감성 분석, 챗봇, 음성 인식 등 다양한 응용 분야에서 사용
[자연어 처리의 주요 응용 분야]
1) 기계 번역
2) 감성 분석
: 텍스트 데이터에서 감정(긍정, 부정, 중립) 추출 기술,
ex. 영화 리뷰가 긍정적인지 부정적인지 분석
3) 챗봇
4) 음성 인식
5) 정보 검색
: 대규모 데이터베이스에서 사용자가 원하는 정보 검색, 검색 엔진
◆ 코퍼스(Corpus)
: 자연어 처리 연구와 모델 학습 위해 수집된 대규모 텍스트 데이터셋
언어의 실제 사용 반영하여 다양한 언어적 현상 분석 가능
[코퍼스의 형태]
1. 일반 텍스트 코퍼스: Wikipedia, 뉴스 기사, 소설 등 다양한 주제와 형식의 텍스트 데이터
2. 도메인 특화 코퍼스: 특정 분야에 관련된 텍스트 데이터 (ex. 의학 논문, 법률 문서)
3. 주석이 포함된 코퍼스: 텍스트와 함께 레이블(태그) 포함된 데이터 (ex. 감성 레이블, 개체명 레이블)
2. 텍스트 전처리
1) 토큰화(Tokenization)
: 문장을 단어, 부분 단어 또는 문자 단위로 분리하는 과정, "Hello, world!" → ["Hello", ",", "world", "!"]
2) 정규화 (Normalization)
: 텍스트의 일관성 유지하기 위한 변환 과정, 대문자를 소문자로 변환, 구두점 제거 등
3) 불용어 제거 (Stop Words Removal)
: 분석에 불필요한 일반적인 단어 제거 과정, "is", "the", “and"
분석에 큰 기여를 하지 않기 때문에 제거하여 모델의 성능 향상
4) 어간 추출(Stemming)
: 단어의 어간 추출하여 변형된 형태 제거 과정, "running" → “run"
5) 표제어 추출
: 단어의 표제어(기본 형태) 추출 과정, "better" → "good"
◆ 단어 임베딩
: 단어를 고차원 벡터로 표현하여 단어 간의 의미적 유사성을 벡터 공간에서 반영
단어 간의 관계 효과적 학습 및 표현 가능
단어 -> 단어의 의미적 정보 갖는 고정된 크기의 실수 벡터로 변환
##왜 단어 임베딩이 중요할까?
1) 차원 축소
- 원-핫 인코딩과 같은 방법에서는 단어의 개수만큼 차원 필요, but 단어 임베딩은 상대적으로 낮은 차원에서 단어 표현
2) 의미적 유사성
- 단어 간의 의미적 유사성을 벡터 공간에서 나타냄, "king" - "man" + "woman" ≈ "queen"
3) 학습 효율성
- 모델 학습의 효율성 높이고, 다양한 NLP 작업의 성능 향상
[주요 단어 임베딩 기법]
- Word2Vec, GloVe, …
3. Word Embedding
◆ Word2Vec
: 자연어 처리(NLP)에서 단어의 의미를 벡터 형태로 표현하기 위해 사용되는 임베딩 기법
단어를 고차원 벡터로 변환하여 단어 간의 의미적 유사성을 벡터 공간에 투영
특히 대규모 코퍼스에서 효과적으로 학습, CBOW(Continuous Bag of Words)와 Skip-gram 두 가지 형태 가짐
1) CBOW (Continuous Bag of Words) 모델
: 주어진 문맥 단어(주변 단어) 사용하여 중심 단어 예측
문맥 단어들이 중심 단어 결정에 중요한 정보 제공한다는 가정
2) Skip-gram 모델
: 중심 단어로부터 주변 단어들 예측
중심 단어가 주어졌을 때, 해당 단어의 문맥에 있는 단어들 예측

예시 문장: “The quick brown fox jumps over the lazy dog”
- 중심 단어: "quick"
- 문맥 단어: ["The", "brown"]
1) CBOW
입력: ["The", "brown"] → 원-핫 인코딩 → 은닉층에서 평균 계산 → 소프트맥스 회귀 → 출력: “quick"
2) Skip-gram
입력: "quick" → 원-핫 인코딩 → 은닉층으로 변환 → 소프트맥스 회귀 → 출력: ["The", “brown”]
한계점
- 문맥에 따라 달라지는 단어의 의미 파악X
- 학습 데이터에 없는 단어(Out-Of-Vocabulary)에 대해 벡터 생성 불가
[단어 임베딩 활용]
1. 텍스트 분류
- 단어 임베딩 사용하여 문서의 의미 벡터로 변환 후, 이를 입력으로 사용하여 텍스트 분류 모델 학습
2. 유사도 계산
- 두 단어 또는 문장의 임베딩 벡터 간의 코사인 유사도 등 계산하여 의미적 유사성 평가
3. 기계 번역
- 단어 임베딩 사용하여 소스 언어와 대상 언어 간의 의미적 매핑 학습
4. 딥러닝과 자연어 처리
◆ 순환신경망 (Recurrent Neural Network, RNN)?

: 순차 데이터 처리하는 데 특화된 인공 신경망의 한 종류
시계열 데이터, 자연어 처리(NLP), 음성 인식 등 순차적 특성이 중요한 문제에서 널리 사용
이전 단계의 출력을 다음 단계의 입력으로 사용하는 순환 구조
[RNN의 구조]
- 입력층: 입력 시퀀스의 각 요소 적용
- 은닉층: ‘이전 상태의 은닉 상태’와 '현재 입력’ 사용하여 새로운 은닉 상태 계산
- 은닉 상태 계산: ht = σ(Whht−1 + Wx xt + bh)
- 출력층: 은닉 상태를 사용하여 출력 계산
- 출력 계산: yt = ϕ(Wyht + by)
- Wh, Wx, Wy: 가중치 행렬, bh, by: 바이어스 벡터, σ: 활성화 함수, ϕ: 출력 활성화 함수
[RNN의 학습]
- 일반적인 신경망과 마찬가지로 역전파 알고리즘 사용하여 가중치 업데이트
| RNN의 장점 | RNN의 한계 |
| 1) 시퀀스 데이터의 순차적 특성 잘 반영한 모델 2) 시간에 따른 의존성 학습하여 이전 입력의 영향 현재 출력에 반영 가능 |
1) RNN이 긴 시퀀스를 학습할 때, 기울기가 소실되어 학습이 어려워지는 문제 발생 가능 2) 기울기가 너무 커져서 수치적으로 불안정해지는 문제 발생 가능 3) 긴 시퀀스에서 장기 의존성 학습하는 데 어려움 |
◆ 장단기 메모리 네트워크 (Long Short-Term Memory, LSTM)?

: RNN의 한계 극복하기 위해 고안된 모델
장기 의존성 효과적 학습
셀 상태(cell state)와 게이트 메커니즘 통해 정보 선택적으로 유지하거나 삭제
[LSTM의 구조]
1. 입력 게이트(Input Gate): 새로운 입력 정보 얼마나 반영할지 결정
2. 망각 게이트(Forget Gate): 이전 셀 상태 정보 얼마나 유지할지 결정
3. 출력 게이트(Output Gate): 현재 셀 상태 정보 출력으로 얼마나 반영할지 결정
[LSTM의 동작 원리]
1. 망각 게이트
: 이전 셀 상태에서 어떤 정보 버릴지 결정

ft는 망각 게이트의 활성화 값, σ 는 시그모이드 함수, Wf는 가중치 행렬, bf바이어스 벡터
2. 입력 게이트
: 현재 입력 xt와 이전 은닉 상태 ht−1를 사용하여 새로운 후보 셀 상태 ~Ct 생성하고 얼마나 반영할지 결정

it는 입력 게이트의 활성화 값, ~Ct는 후보 셀 상태, tanh는 하이퍼볼릭 탄젠트 함수
3. 셀 상태 업데이트
: 망각 게이트와 입력 게이트를 통해 이전 셀 상태 업데이트

Ct는 현재 셀 상태
4. 출력 게이트
: 현재 셀 상태 Ct를 기반으로 출력 값 결정하고, 은닉 상태 ht 업데이트

Ot는 출력 게이트의 활성화값, ht는 현재 은닉 상태

| LSTM의 장점 | LSTM의 단점 |
| 1) 기울기 소실 문제 해결: 셀 상태 통해 기울기 소실 문제 완화하여 긴 시퀀스에서도 효과적으로 학습 2) 장기 의존성 학습: 장기 의존성 효과적으로 학습하여 긴 시퀀스 데이터에서 중요한 정보 유지 3) 정보의 선택적 업데이트: 게이트 메커니즘 통해 정보의 유입과 유출조절하여 중요한 정보 선택적으로 유지 |
1) 복잡성: RNN에 비해 구조 복잡하여 계산 비용 높음 2) 학습 시간: 더 많은 파라미터와 복잡한 구조로 인해 학습 시간 길어짐 |
[LSTM 응용]
1) 텍스트 생성: 문학 작품을 학습하여 새로운 문장 생성
2) 기계 번역: 입력 언어를 출력 언어로 번역
◆ 게이트 순환 유닛 (Gated Recurrent Unit, GRU)

: 순환 신경망(RNN)의 변형 중 하나, 장단기 메모리 네트워크(LSTM)와 유사하게 RNN의 기울기 소실 문제 해결하기 위해 개발
- LSTM보다 단순한 구조
- 비슷한 성능 유지하면서도 계산 효율성 높임
- 입력 시퀀스가 길거나 복잡한 경우에 효과적
[GRU 구조]
- LSTM과 달리 셀 상태 사용X, 은닉 상태만을 사용하여 정보를 전달
1) 업데이트 게이트(Update Gate): 새로운 입력 정보 얼마나 현재 은닉 상태에 반영할지 결정
2) 리셋 게이트(Reset Gate): 이전 은닉 상태 정보 얼마나 반영할지 결정
[GRU 동작 원리]

1. 업데이트 게이트
- 현재값과 이전 은닉 상태로 업데이트 게이트 값 계산
2. 리셋 게이트
- 현재 입력, 이전 은닉 상태로 리셋 게이트 값 계산
3. 새로운 은닉 상태
- 리셋 게이트로 이전 은닉상태 저장, 현재 입력과 결
합하여 새로운 후보 은닉상태 계산
4. 최종 은닉 상태
- 업데이트 게이트 사용하여 이전 은닉상태와 새로운 후
보 은닉상태 결합하여 최종 은닉상태 계산
| GRU의 장점 | GRU의 단점 |
| 1) LSTM보다 구조 단순하여 계산 효율성 높음 2) 더 적은 파라미터로 LSTM과 유사한 성능 제공 3) 게이트 메커니즘 통해 기울기 소실 문제 완화 (추가할 건 추가하고 삭제할 건 삭제하는 식으로 문제 완화) |
LSTM에 비해 구조가 단순하여, 일부 복잡한 패턴 학습하는 데는 LSTM보다 효과적이지 않을 수 있음 |
'인공지능과정 이론 수업' 카테고리의 다른 글
| Day17_생성형AI I (+Attention is All You Need) (2) | 2024.07.25 |
|---|---|
| 생성형 AI Day16_딥러닝 IV / PyTorch, Seq2Seq, autoencoder, GAN, 모델 최적화 (2) | 2024.07.24 |
| 생성형 AI Day14_딥러닝 II / Computer Vision, CV&DL, CNN, 주요 모델 (0) | 2024.07.22 |
| 생성형 AI Day13_딥러닝 I / DL이란?, 원리, DL overfitting&해결방법 (0) | 2024.07.18 |
| 생성형 AI Day12_머신러닝 IV / 앙상블 기법, 추천 알고리즘, RL, hyper parameter tuning, ML&윤리 (2) | 2024.07.17 |