티스토리 뷰

ADV 프로젝트 데이터 전처리의 마지막 파트인 Fold Set 활용 노이즈 정제 및 라벨링 검수 포스팅이다.

 

현재까지 과정을 정리해보면 다음과 같다.

 

웹 스크래핑을 통해 데이터를 수집 후 인력을 통해 1번의 데이터 라벨링 검수를 진행하였다. 

그 후 텍스트를 교정해주고 불균형을 해소시켜주었다. 

 

최종 학습 데이터로 사용하기 전에 제대로된 검수가 필요하다고 판단하였다. 

 

여러가지 방법을 고려하던 중 네이버 '클린봇' 학습과정에서 사용한 방식을 사용해보기로 하였다. 

d2.naver.com/helloworld/7753273

 

 

데이터 분석을 공부해본 사람이라면, 특히나 머신러닝을 통해 데이터를 학습 및 예측해본 사람이라면 K-Fold 방식에 대해서 알 것 이다. 

 

K-Fold란 데이터를 K개의 Fold 셋으로 나누어서, 하나의 Fold가 각각 한번씩 검증 데이터로 사용되고, 나머지 Fold로 학습하여 예측하는 방식이다. 

 

네이버의 클린봇 학습 과정을 참고하여, 위의 방식을 라벨링 검수에 활용하기로 하였다.

 

먼저 전체적인 과정을 도식화 해보자면 아래의 그림과 같다.

N개의 폴드로 데이터를 나눈 뒤 폴드셋을 활용해서 모델을 통해 예측하는 것은 K-FOLD의 과정과 똑같다.

 

폴드 하나가 예측이 되면 예측값과 실제값을 확인한다. 예측 레이블과 실제 레이블이 다른 결과를 보이는 데이터들을 우선적으로 검수하고, 레이블링이 잘못되어 있는 데이터를 교정해준다. 이러한 과정을 N번 거치고 나면 최종적으로 검수가 완료된 데이터 셋이 만들어진다.

 

우리는 총 6개의 Fold로 나누어서 해당 과정을 진행하였다.

 

정리하자면 다음과 같은 방식을 거친다.

 

1) 데이터를 일정 사이즈의 FOLD로 N 등분
2) N번째 FOLD 외의 데이터로 모델 학습 후 N FOLD 셋 예측
3) 예측 레이블과 실제 레이블이 다른 결과를 보이는 데이터 우선 검수
4) 레이블 오류 확인 및 교정

 

베이스라인 모델로 사용하였던 Bi-LSTM 모델을 통해 검수를 진행하였으며, 생각보다 많은 데이터에서 라벨링 불량을 검출해낼 수 있었다.

 

해당 과정을 거치고 난 후 베이스라인 모델의 F1-score를 약간이나마 높일 수 있었으며, 역시 인간지능으로 라벨링한 데이터는 확실한 검수를 거쳐야한다는 것을 배울 수 있었다. 

 

이렇게 많은 전처리 과정과 검수 과정을 거친 후 드디어 최종 데이터 셋을 얻어낼 수 있었다. 

 

다음 포스팅은 최종 학습 데이터셋을 사용하여 임베딩한 과정과 모델링 과정까지 설명해보도록 하겠다. 

반응형
댓글