정보이론
- Information Theory
- 딥러닝 기반 학습을 통해 예측 모형을 만드는 것
- 훈련 데이터를 바탕으로 새로운 데이터를 예측할 수 있는 확률 분포를 만드는 것
=> 따라서 예측 분포와 실제 정답의 분포 간의 정보량 차이 계산이 필요 - 정보이론
- 데이터나 시그널에 존재하는 정보의 양을 측정하는 이론
=> 해당 확률분포의 특성을 알아내거나 확률분포 간 유사성을 정량화
- 잘 일어나지 않는 사건은 자주 발생하는 사건보다 정보량이 많다는 것
1. 자주 발생하는 사건은 낮은 정보량
2. 덜 자주 발생하는 사건은 더 높은 정보량
3. 독립사건은 추가적인 정보량을 가짐
예) 동전을 던져 앞면이 두 번 나오는 사건에 대한 정보량 > 동전을 던져 앞면이 한번 나오는 정보량 - 정보량의 수치화
- 정보량: 어떤 Event에 대해 모두가 알만한 정보가 아니라 특이해서 놀람을 일으키는 정도
<=> 발생확률이 낮으면, 정보량이 높다
- 동전을 던져 앞면이 나오는 사건과 주사위를 던져 눈이 1이 나오는 사건
=> 전자의 정보량은 −log2 0.5 = 1, 후자는 −log2 1/6 = 2.5849
- 주사위 눈이 1이 나올 사건은 동전의 앞면이 나오는 사건보다 덜 자주 발생하므로 더 높은 정보량
- 불확실함을 해소하기 위해 필요한 질문(정보)의 수, 또는 어떤 Event가 발생하기 까지 필요한 시행의 수가 정보량 (information) - Shannon Entropy
- 정의: 정보량의 기댓값
=> 전체 사건의 확률분포의 불확실성의 양을 나타낼 때 사용
- 사건의 분포가 결정적(deterministic)=> 엔트로피 ↓
- 분포가 균등적(uniform) => 엔트로피 ↑ - Entropy의 특징
- 머신 러닝 문제에서 Entropy를 계산할 때, log의 밑을 e로 사용하는 자연 로그를 많이 사용
- 엔트로피 H(X)는 확률 분포 P(X)의 불확실 정도를 측정할 때 사용
- 엔트로피는 확률 분포 P(X)가 constant 또는 uniform distribution일 때 최대화
- 엔트로피는 항상 양수 - Cross Entropy
- 실제 데이터 P(X) 분포를 기준으로 미지의 Q(X) 분포에 대해 계산한 엔트로피
=> 정답 셋의 확률분포 P와, 모델 추론 결과의 확률분포 Q의 차이를 최소화하는 것 :: AI 모델의 학습 목표
- Cross Entropy 손실 함수 : 추정 확률 분포와 데이터가 따르는 실제 확률 분포 사이의 차이를 나타내는 함수
- 분류 문제에서는 로지스틱 함수로 출력결과가 표현 / 데이터의 라벨은 one-hot encoding로 표현
- Softmax 함수와 데이터의 확률분포 차이가 분류문제의 손실함수 - KL Divergence (Kullback Leibler Divergence)
- 정의: 두 확률 분포의 차이를 나타내는 지표 => KL을 최소화하는 것은 교차 엔트로피를 최소화하는 것
- P와 Q의 Cross Entropy = P의 엔트로피 + P와 Q의 분포차이
“Cross Entropy H(P,Q) 를 최소화 == KLD를 최소화하는 것”
One-hot Encoding
- One-hot Encoding
- 컴퓨터가 이해할 수 있도록 단어들을 벡터의 차원으로 매핑하는 작업
- 표현하고 싶은 단어의 인덱스에 1을 부여하고, 이외의 인덱스에 0을 부여하여 단어를 벡터로 표현하는 방식
- 과거 word representation 방법은 one-hot (or one-of-N) encoding 방식을 주로 사용해왔음
- One-hot encoding은 단어들 간의 관계성을 고려하여 표현하지 않음( Ex) Cat : Id3, dog : Id2 => animal)
- One-hot representation은 매우 높은 dimension을 가지는 문제점이 있음
통계적 언어모델
- 통계적 언어 모델 (SLM: Statistical Language Model)
- 언어 모델은 연속된 단어(token)의 시퀀스에 확률을 할당하는 모델
- 단어열이 가지는 확률 분포를 기반으로 각 단어의 조합을 예측하는 전통적인 언어 모델
- 모델의 목표는 실제로 많이 사용하는 단어열(문장)의 분포를 정확하게 근사하는 것!
- 이전 시퀀스에 대한 조건부 확률에 기반
- 이전 단어의 등장에 대한 이후 단어의 조건부 확률을 기반으로 다음 단어를 예측할 수 있는 확률 모델의 개발 - 카운트 기반 접근
- 조건부 확률 (Conditional Probability)
- 어떤 사건 A 일어났다는 가정하에 다른 B사건이 일어날 확률
- 이전 단어들의 출현을 기반으로 언어 모델에서 적합한 단어를 추론하는데 사용
- 조건부 확률의 연쇄 법칙 (Chain Rule)
- N개의 조건에 대해 연쇄적으로 조건부 확률을 적용 = 단어 시퀀스가 만드는 문장과 유사
- 문장에 대한 확률로 확장
=> 문장의 확률은 각 단어에 대한 예측 확률들의 곱
- 카운트 기반 접근의 한계
- 학습 코퍼스에 An adorable little boy is라는 단어 시퀀스가 없었다면 이 단어 시퀀스에 대한 확률은 0
- 이와 같이 충분한 데이터를 관측하지 못하여 언어를 정확히 모델링하지 못하는 ‘희소 문제(sparsity problem)’ 가 발생
=> 해당 문제를 완화하기 위해 N-gram 모델이 제안 - N-gram 언어모델
- N-gram은 n개의 연속적인 단어 나열을 의미
- 다음에 나올 단어의 예측은 오직 n-1개의 단어에만 의존
=> n-1번째까지 발생한 각 토큰의 조건부 확률의 곱으로 문장 혹은 단어의 흐름을 구성
- N-gram에서의 마르코프 가정
- 특정 시점에서 어떤 상태의 확률은 가장 최근 상태에만 의존한다는 가정
- 토큰 xi의 확률을 그 이전에 있는 토큰 전부가 아닌 직전 토큰으로부터 추론할 수 있다는 것
=> xi-1 토큰에 이전 시퀀스에 대한 정보가 모두 반영되어 있다고 가정
- Trade-off 문제
- 앞에서 몇 개의 단어를 볼지 n을 정하는 것은 trade-off가 존재
- 임의의 개수인 n을 1보다는 2로 선택하는 것은 거의 대부분의 경우에서 언어 모델의 성능을 높일 수 있음
- n을 크게 선택하면? => 실제 학습 코퍼스에서 해당 n-gram을 카운트할 수 있는 확률은 적어짐 => 희소 문제 => 모델 사이즈의 증대
- n을 작게 선택하면? => 희소문제는 완화할 수 있지만 정확도가 떨어짐
'Study > 자연언어처리 NLP' 카테고리의 다른 글
언어모델 평가 방법 (0) | 2025.02.03 |
---|---|
카운트 기반 언어모델 (0) | 2025.02.03 |
Natural Language 언어모델 (1) | 2025.02.03 |
NLP 대회 전략 (0) | 2025.01.17 |
BERT 이후의 모델 (1) | 2025.01.17 |