[LM 평가지표] Perplexity, PPL

2022. 2. 4. 16:49·인공지능(AI)/자연어처리(NLP)
유원준님의 딥러닝을 이용한 자연어 처리 입문의 펄플렉서티(Perplexity, PPL) 글을 요약한 게시글입니다

 

언어모델의 평가 방법(Evaluation metric of Language Model), Perplexity


PPL은 문장의 길이로 정규화된 문장 확률의 역수로, 문장 W의 길이가 N이라고 했을 때, PPL은 아래와 같다

$PPL(W)=P(w_1,w_2, \cdots, w_N)^{-\frac{1}{N}} = \sqrt{\frac{1}{P(w_1,w_2, \cdots, w_N)}}^N$

 

문장의 확률에 체인룰(chain rule)을 적용하면 아래와 같다

$PPL(W)=\sqrt{\frac{1}{P(w_1,w_2, \cdots, w_N)}}^N=\sqrt{\frac{1}{\Pi_{i=1}^N P(w_i | w_1,w_2, \cdots, w_{i-1})}}^N$

 

여기에 n-gram을 적용해볼 수도 있는데, 아래는 bi-gram의 경우의 식이다

$PPL(W)=\sqrt{\frac{1}{\Pi_{i=1}^N P(w_i | w_{i-1})}}^N$

 

수식을 보면 알 수 있지만 PPL은 낮을 수록 언어 모델의 성능이 좋음을 의미한다

 

 

분기 계수(Branching Factor)


분기계수란  선택할 수 있는 가능한 경우의 수를 의미하는데, 즉 PPL 값은 대상 언어모델이 어떤 시점에서 평균적으로 몇 개의 선택지를 가졌는지를 의미한다.

 

예로, 특정 테스트셋에서 PPL=10이라면, 해당 언어 모델이 다음 단어를 예측하는 모든 시점(time step)마다 평균 10개의 단어를 가지고 어떤 것을 output값으로 낼 지 고민했다고 볼 수 있다

 

 

평가 지표로 PPL 사용시 주의할 점


단, PPL이 낮다는 것이 사람이 직접 느끼기에 좋은 언어모델이라는 것을 반드시 의미하지 않는다는 점을 주의하자. 

 

또한 언어 모델의 PPL은 테스트셋에 의존하므로, 두 개 이상의 언어모델 비교 시 정량적으로 양이 많고 학습 데이터와 동일한 도메인의 테스트 셋으로 사용해야 신뢰도가 높다

반응형

'인공지능(AI) > 자연어처리(NLP)' 카테고리의 다른 글

End-to-End Memory Networks, 엔드-투-엔드 메모리 네트워크  (0) 2022.08.18
Prompt-Based Learning, 프롬프트 기반 학습  (0) 2022.08.08
[NLP] 워드투벡터(Word2Vec)  (2) 2021.10.13
[NLP] 단어 표현 방법(Word Representation)  (0) 2021.10.13
[NLP] 단어 표현 방법 : Bag-of-Word Model(Bow)  (0) 2021.10.13
'인공지능(AI)/자연어처리(NLP)' 카테고리의 다른 글
  • End-to-End Memory Networks, 엔드-투-엔드 메모리 네트워크
  • Prompt-Based Learning, 프롬프트 기반 학습
  • [NLP] 워드투벡터(Word2Vec)
  • [NLP] 단어 표현 방법(Word Representation)
계속지나가기
계속지나가기
NLP Engineer
  • 계속지나가기
    코딩스뮤
    계속지나가기
  • 전체
    오늘
    어제
    • 코딩스뮤:)
      • Algorithm
        • 백준 문제풀이
        • 프로그래머스 문제풀이
        • 알고리즘 이론
        • 자료구조
        • SW Expert Academy
      • 인공지능(AI)
        • LLMs
        • 자연어처리(NLP)
        • 컴퓨터비전(CV)
        • 딥러닝(DL)
        • 머신러닝(ML)
        • 인공지능기초수학
        • 선형대수학
      • 컴퓨터 세팅
      • Computer Science
        • 유닉스프로그래밍
        • 프로그래밍언어론
        • 디자인패턴
        • 클린코드
        • SW 영어
        • 리눅스
        • 논리회로
      • Server
        • Docker
      • 바이브 코딩
        • 클로드 코드
  • 블로그 메뉴

    • 홈
    • Who Am I(CV)
    • 태그
  • 링크

    • 깃허브 주소
  • 공지사항

  • 인기 글

  • 태그

    DigitalImageProcessing
    기계학습
    언어모델
    비지도학습
    군집화
    비용함수
    ComputerVision
    ML
    알고리즘
    파이썬 클린코드
    디지털이미지처리
    에지검출
    DIP
    선형회귀
    네트워크플로우
    machinelearning
    NLP
    지도학습
    최대유량
    SIFT
    f1-score
    LM
    컴퓨터비전
    결정경계
    networkflow
    머신러닝
    경사하강법
    패턴인식
    손실함수
    MaximumFlow
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
계속지나가기
[LM 평가지표] Perplexity, PPL

티스토리툴바