모델 변이 테스트(Model Mutation Testing)

Mollang·2023년 3월 24일
0

딥러닝

목록 보기
1/2

모델 변이 테스트

모델 변이 테스트는 모델 검증 테스트와는 결이 다릅니다. 모델이 성능을 안정적으로 유지하고 있는지 검증하는 방법인데요, 변이 테스트를 수행하면서 문제점을 발견하고 수정하여 성능을 개선함으로써 모델의 정확도를 높일 수 있습니다.

일반적으로 검증셋에 대한 성능 테스트는, 모델이 검증셋을 얼마나 맞췄는지에 대한 score를 통해 확인합니다. 위 도식에서는 모델 평가에 해당하는 부분입니다.

Score와 Loss로만 모델의 성능을 파악하면 위험한데요, 모델은 "학습 데이터"를 가지고 훈련하기 때문입니다.

학교 내신 시험만 본 적 있는 학생이 처음 모의고사 시험을 치러간다고 생각해봅시다. 학교 선생님이 지도한 문제 풀이에 익숙해져있다가, 난생 처음 보는 유형의 문제를 맞닥뜨리게 됩니다. 내신 시험과 동일한 수준의 점수를 받는 것을 어려울 것입니다. 학생의 점수는 내신 시험에만 특화되어 있기 때문입니다. 학생이 모의고사에서도 좋은 점수를 받으려면 모의고사 문제 유형을 다시 공부해야겠죠.

학습데이터와 형식이 다른 데이터에 대해서도 일관된 성능을 보여줄 때 비로소 모델의 성능을 일반화할 수 있습니다. 결론은, 형식이 다른 데이터를 넣어 모델의 대처 능력을 확인하는 것이 변이테스트입니다.

모델 변이 테스트는, score가 아닌 모델의 대처 능력을 확인하는 과정입니다. 기존의 입력 형식과는 다른 '변이'데이터를 넣어 모델이 어떻게 처리하는지 확인하는 것이죠.
모델의 한계를 확인하는 단계로, 과연 어디까지 맞출 수 있는가를 보는 테스트입니다. 궁극적으로는 모델이 다양한 입력에 대해 일관된 성능을 발휘할 수 있도록 하는 것이 목표입니다.

💁‍♀️ 예를 들어보겠습니다. 일기 감정 분류 모델을 구축하였을 때의 일입니다.

일기를 입력받았을 때 일기의 메인 감정을 맞추는 태스크였습니다.
성능이 우수하고 학습 소요시간이 적은 모델 3개를 선택하여 동일 코퍼스로 모델링을 진행하였습니다.

최종 모델을 선정하는 단계

  • 3개의 모델 간 점수 격차가 크지 않음
  • 검증 테스트에서 가장 성능이 좋은 A 모델
  • 검증 테스트에서 가장 성능이 좋지 않은 B 모델

변이 테스트(모델 능력 테스트)

모델 변이 테스트를 진행하면 모델의 취약점을 파악하기 용이합니다.
취약점을 보완하는 방향으로 기존 학습데이터를 재설계할 수 있는 것이죠.

모델이 어디까지 맞추고 어디부터는 못맞추는지 한계를 점검하고자 했습니다.
이를 위해 학습/검증데이터와 형식이 다른 변이데이터 1000개를 수집하였습니다.

학습/검증데이터는 인간이 읽었을 때 감정을 분류하기 쉬운 데이터였습니다.
문장 안에 감정과 연관된 키워드가 있었죠.

"어제 회사에서 권고사직을 당했다. 당장 내일부터 나오지 말라고 한다..."

반면 새로 수집한 변이데이터는 인간이 읽었을 때도 직관적으로 감정을 분류하기 어려운 데이터였습니다. 문장 안에 서로 다른 감정을 나타내는 키워드가 혼재되어 있었고, Main 감정이 없는 경우가 많았습니다. 아예 감정이 드러나지 않는 평서문이 존재하기도 했습니다.

"어제 친구랑 밥을 먹었는데 너무 맛있었다. 그러고서 회사로 복귀했더니 업무 폭단이다. 진짜 스트레스 받는다. 지금은 집와서 퇴근 후 맥주를 마시고 있다. 역시 맥주가 최고지 행복해ㅎㅎ"

저희 팀은 1000개의 데이터를 직접 검수하여 라벨링을 진행했습니다. 클래스는 "없음", "긍정", "부정"으로 분류하였습니다. 이후 3개의 모델에 1000개의 데이터를 입력하여 추론값을 확인하였을 때 재밌는 결과를 확인할 수 있었습니다.

검증테스트에서 가장 성능이 좋지 않은 B모델이 3개의 감정 라벨을 골고루 잘 맞추는 것을 확인할 수 있었습니다.

추가 변이테스트 진행
이후 변이테스트를 추가로 진행하였습니다. "아..", "아!" 등의 짧은 감탄사 그리고 3000문장 이상의 일기 데이터, 연극 대사, 드라마 대사 등을 입력하여 모델이 어떤 식으로 처리하는지 점검하였습니다.

2차례에 걸쳐서, 모델의 취약점을 파악하였습니다. 저희는 이를 보완하기 위해 데이터셋을 다시 디자인했습니다. 취약한 감정의 데이터를 추가적으로 수집하고, 감정이 혼재된 문장을 추론할 수 있도록 증강을 했죠.

모델 변이 테스트는 모델 학습이 끝난 후에 지속적으로 수행해야 합니다. 모델이 조작된 학습 환경이 아닌, 실제 환경에서도 일관된 성능을 유지할 수 있도록 보장해야 하기 때문입니다. 모델이 학습 데이터에만 적응하는 경우가 많기 때문에, 안정적인 성능을 위해선 필수입니다.

0개의 댓글