Machine Learning Model Evaluation 에 대한 일반적인 접근법
- Training Set 는 모델을 훈련하는데 사용
- Dev Set 는 Cadidate 모델과 Model parameters 를 평가해서 가장 좋은 것을 선택할때 사용
- Test Set 는 알고리즘이 fine-tuned (미세 조정) 된 이후에 모델을 테스트하는 것에만 사용
- 훈련 되지 않은 Test set 을 사용하면 모델이 Unseen data 들을 생성시킬 수 있다.
평가의 종류
- Intrinsic Evaluation 고유 평가
- 다양한 Performance Metrics 와 독립적인 특정 어플리케이션을 기반으로 모델을 평가한다.
- 예시: 두 개의 서로 다른 언어 모델이 테스트 세트에 얼마나 적합한지 측정
(테스트 세트에 더 높은 확률을 할당하는 모델이 더 적합함을 나타냄)
- Extrinsic or end-to-end Evaluation 외부 및 엔드 투 엔드 평가
- 모델이 포함된 전체 응용 프로그램이 얼마나 잘 수행되는지 평가
- 예시: 두 개의 다른 언어 모델을 사용하여 Speech Transcriber (음성 변환기) 를 비교
Perplexity (복잡성)
- Perplexity (PP) 는 언어 모델을 평가하는 데 일반적으로 사용되는 확률 기반 Metric.
- PP 값은 단어 수로 정규화된 검정 세트의 Inverse (역/반대) 의 확률 Probability.
- 예시: PP for test set
- W = w1, w2, ..., wn
- 체인 룰을 적용할 수 있다.
- Perplexity 값은 낮을수록 좋다.
- Test Set 의 확률이 높을수록 PP 값이 낮음을 의미한다.
- PP 는 언어의 Weighted Average Branching factor 가중 평균 분기 인자로 생각할 수 있다.
- 단어 뒤에 올 수 있는 단어의 개수
- Branching factor 가 높을수록 언어 예측 가능성이 낮아지며, 즉 다음 단어가 무엇이어야 하는지에 대한 불확실성이 더 크다.
- Trigram 모델은 Bigram 모델보다 정보가 더 많고 불확실성이 적다.
- 두 언어 모델의 Perlexity 은 동일한 어휘를 사용하는 경우에만 비교가능하다.
언어 모델에서의 샘플링
- 모델이 학습한 내용이 타당한지 랜덤 샘플을 추출하고 결과를 검사한다.
- 더 많은 가능성이 있는 Phrases 구들이 더 자주 샘플링되며, 모델이 그것을 더 가능성이 높다고 간주하는 문장을 생성할 것이다.
언어 모델의 과제
- 단어의 일부 Sequence 시퀀스가 특정 Corpus 말뭉치에서 누락되거나 매우 infrequent (희소한/Sparsity) 한 경우
- 이 상황은 모델의 확률이 낮거나 0 으로 할당 될때 테스트 세트의 합리적인 Sequence 로 이어진다.
- 어휘 안의 몇몇 단어들은 심지어 Training set 에서 잃어 버릴 수 있다. (Unknown words 혹은 Out of Vocabulary(OOV))
Unknown words란?
- Unknown words 알 수 없는 단어들을 특수한 Token 을 할당하여 모델링할 수 있다.
- e.g. <UNK>
- <UNK> 토큰은 확률 계산 측면에서 다른 토큰과 동일하게 다뤄진다.
- <UNK> 는 사용할 어휘 크기를 제한하기 위해 (계산 요구사항을 줄이기 위해) 데이터 세트의 단어를 마스킹하는데 사용.
- Trade-off - Accuracy VS Compute requirement
Smoothing 이란? & Discounting 이란?
- Test Set 에서 Unseen (보이지 않는) 문자열들이나 이벤트들에 0 의 확률을 할당하지 않도록 하는 방법
- 빈번한 이벤트에서 보이지 않는 이벤트로 확률 질량의 일부를 재할당한다.
- 기본 접근법
- Laplace Smoothing (add 1 smoothing)
- 예를 들어, Smoothing 은 각 단어에 적용되어 각 단어에 최소 1의 카운트가 있는지 확인한다.
- Unseen event 의 최소 카운트는 0 에서 1 로 조정된다.
- N - 단어 토큰 수, V = 추가 Observations, 각각 단어당 한개
- 하지만 Laplace Smoothing 은 보이지 않는 이벤트를 변환시키는데 너무 공격적이며, 일반적으로 더 이상 사용하지 않는다.
- Laplace Smoothing (add 1 smoothing)
Backoff 란?
- 특정 값 n 확률을 정확하게 계산할 수 있는 예제가 충분하지 않은 경우 낮은 차수의 n-gram 사용
- 예시: Bigram 을 사용하여 Trigram 확률을 추정
Interpolation 이란?
- 낮은 차수의 n-gram 의 모든 확률을 목표 값에 대한 n-gram 과 함께 가중 평균으로 결합한다.
- 예시: Trigram 모델의 경우, 가중치 계수를 최대 1 로 Lambda 1, Lambda 2, Lambda 3 을 사용한다.
- Lambda 파라미터는 Dev set 를 기반으로 추정될 수 있다.
Context-Based Interpolation 이란?
- 각각의 특정 n-gram 에 대해 Lambda 파라미터를 계산한다.
Absolute Discounting 이란?
- 각 카운트에서 고정 (absolute) 수량 (discount d) 를 뺀다.
- Discount d 를 계산하는 방법
- 실험을 통해서 뺀다.
- Bigram 에서는 0.75 를 많이 사용하는 것으로 밝혀졌다.
- Discount d 를 계산하는 방법
- Discount 된 낮은 차수의 n-gram 추가 (Context-based interpolation)
- Original Bigram Model
- Bigram Model with Absolute Discounting
Kneser-ney Smoothing 이란?
- Absolute Discounting 을 사용
- 단어의 계속적인 새로움을 사용 - 새로운 Context 에 한 단어가 나타날 가능성
- 예시
- "glasses" 가 "Kong" 보다 새로운 Context 에서 나타날 가능성이 더 높다.
- Bigrams 의 유형의 수
대규모 언어 모델을 위한 문제점
- 지금까지 언급한 모든 상세한 Smoothing 을 적용하는 것은 계산적으로 불가능하다.
- 대신 'Stupid Backoff' 라는 알고리즘을 사용
- 데이터 집합에 있는 n-gram 에 대한 사용 수
- 존재하지 않는 경우, 낮은 차수의 n-gram 으로 이동하고 Discount Weight Lambda = 0.4 사용
Entropy 란?
- 엔트로피는 정보의 척도이다.
- 정보 이론에서 엔트로피는 정보 또는 메시지를 인코딩하는 데 필요한 최소 비트 수 이다.
- 임의 변수 X 의 엔트로피 (H) 는 다음과 같이 정의된다.
- X 값의 범위는 언어의 단어 집합 또는 문자 집합 등이다.
- n 단어들의 모든 유한 시퀀스는 다음과 같이 계산할 수 있다.
- 단어당 엔트로피는 다음과 같이 표현된다.
- 언어의 엔트로피는 무한 시퀀스가 가능하다고 가정한다.
- 몇 가지 가정은 다음과 같이 식을 단순화 할 수 있다.
Cross-Entropy 크로스 엔트로피란?
- 일부 데이터를 생성하는 데 사용되는 확률 분포를 모를 때 사용
- p 모델의 m 확률 분포를 사용한다.
- 동일한 단순화를 통해 다음과 같은 이점을 얻을 수 있다.
- 가능한 모든 시퀀스 대신 하나의 길고 충분한 시퀀스에 대한 엔트로피를 계산하여 p 모델에서의 m 분포에서 교차 엔트로피를 추정할 수 있다.
- 모든 모델 m 에 대해 다음 사항이 성립된다.
- Cross entropy H(p, m) 이 낮을 수록 H(p) 에 가깝기 때문에 m 은 p 를 더 정확하게 나타낸다.
- 두가지 모델 m1 과 m2 를 가지고 있을 때, 더 정확한 모델은 더 낮은 교차 엔트로피를 가질 것이다.
- 단어 W 에 대해 계산한 Perplexity 와 엔트로피 사이에는 다음과 같은 관계가 있다
-
'AI Master Degree > Natural Language Processing' 카테고리의 다른 글
WORD AND DOCUMENT EMBEDDINGS 단어와 문서 임베딩이란? (0) | 2022.10.09 |
---|---|
Naive Bayes & Classification 이란? (1) | 2022.10.08 |
N-Gram language models 이란? 엔 그램 언어 모델들이란? (2) | 2022.10.07 |
Text normalization 이란? 텍스트 정규화란? (0) | 2022.10.06 |
Words 에 대해서? (0) | 2022.10.06 |