Study/자연언어처리 NLP

NLP 대회 전략

김 도경 2025. 1. 17. 19:42
데이터 증강기법
  • 데이터가 다양해질수록 일반화 성능이 올라감

  • 자연어 데이터 증강기법
    - EDA (Easy Data Augmentation)
    - AEDA (An Easier Data Augmentation)
    - Back Translation

  • EDA (Easy Data Augmentation) : 4가지 규칙에 따라 단어 수준에서 변경하여 새로운 문장을 생성
    - Synonym Replacement (SR) : 유의어 교체  - 유의어 교체 , 특정 단어를 유사한 단어로 교체
    - Random Insertion (RI) : 임의 단어 삽입  - 임의 단어 삽입, 특정 단어 대신 임의 단어 삽입
    - Random Swap (RS) : 두 단어 위치 변경 - 두 단어 위치 변경 , 두개의 단어를 지정하여 서로 위치 변경
    - Random Deletion (RD) : 임의 단어 삭제 - 임의 단어 삭제, 특정 단어 삭제 후 공백 입력

  • AEDA (An Easier Data Augmentation)
    - EDA(Easy Data Augmentation) 의 더 쉬운 버전으로, 성능이 더 좋음
    - 다양한 문장부호(punctuation marks)를 입력문장에 추가하여 줌
  • Back Translation
    - 번역기를 활용하여 Source Language(예시 : 한국어) 를 Target Language(예시 : 일본어, 영어) 로 변경한 후, 다시 Source Language(예시 : 한국어) 로 변경하여 의미는 비슷하나 다른 문장을 생성하는 기법
    - 예시 : 한국어 > 일본어 > 한국어 / 한국어 > 영어 > 한국어
Ensemble & K-fold
  • Ensemble
    - 약한 모델들(weak learners)의 결과를 모아서 투표(voting)를 통해 결과값을 예측하는 강력한 모델(strong learner)을 만든다.
    - 투표(voting)에는 하드 보팅(Hard-voting)과 소프트 보팅(Soft-voting) 2가지 존재

  • Hard-voting
    - 모델의 결과 예측값을 하나의 투표로 판단하여 가장 많은 표를 받은 결과를 최종 결과로 산출
    - 예를 들어, 분류 테스크에서는 가장 많은 모델들이 예측한 레이블을 정답으로 예측

  • Soft-voting
    - 모델별로 logit 값이 나오면 이 값들을 평균내서 가장 높은 값을 정답으로 예측
    - 분류 테스크에서는 레이블별 예측확률(probability)들을 평균내서 가장 확률 높은 레이블을 정답 레이블로 예측

  • K-fold Cross Validation
    - k의 숫자만큼 데이터셋을 분할하여 , k번 돌아가며 각각을 평가 데이터로 두고 학습
    - 데이터셋이 작을때 전체 데이터를 학습에 사용할 수 있다는 이점이 있으며, 각각 학습된 모델을 추후 앙상블 할 수 있음

    - sklearn 라이브러리 활용하여 데이터셋 나눔
        - n_splits : 기본값은 5이며, 몇개의 fold로 나눌 지를 결정하는 인자
        - shuffle : 기본값은 false이며, 배치로 나누기 전에 데이터를 섞어주는 인자 
        - random_state : 기본값은 None이며, fold 를 나누는 환경을 고정시킬 수 있는 인자
추가적인 학습전략
  • TAPT(Task-Adaptive Pretrainig) : (내가 풀고자하는 task 와) 같은 task 의 데이터로 사전학습(pretraining)
    - 풀고자하는 task 에 해당되는 데이터셋을 추가 사전학습 진행
    - e.g) 의료 문서 요약 Task 문제를 풀고 있을때, 문서 요약 데이터셋의 본문만 가져와 사전학습 시키는 것

  • DAPT(Domain-Adaptive Pretraining): (내가 풀고자하는 task 와) 같은 domain 의 데이터로 사전학습(pretraining)
    - 기존모델(original LM)과 다른 domain 에 속하는 task 를 풀때, target domain 데이터셋을 추가 사전학습 진행
    - e.g) 의료 문서 요약 Task 문제를 풀고 있을때, 의료 도메인 모든 문서를 사전학습 시키는 것

  • 통상적으로 사전학습(Pretraining) > DAPT > TAPT 순서로 학습을 진행하며, TAPT가 DAPT에 비해 비교적 적은 데이터로도 성능향상을 이룰 수 있음

'Study > 자연언어처리 NLP' 카테고리의 다른 글

BERT 이후의 모델  (0) 2025.01.17
Encoder-Decoder Model (BART)  (0) 2025.01.17
Decoder Model (GPT)  (0) 2025.01.17
Encoder Model (BERT)  (0) 2025.01.17
자연어 처리 Task와 파이프라인  (2) 2025.01.15