Project
오늘의 목표 및 진척상황
- Pororo Data 실험
- Bucketing 실험
직면했던 문제와 학습한 내용
- Pororo Data 실험
하루 종일 Pororo로 증강한 Data랑 씨름했다. 먼저, Pororo Library의 기계번역을 통해서 Data를 생성했다. 총 8480개의 Data가 추가됐다. 예시를 보면 다음과 같다.
각 문장이 미묘하게 다른 말투로 동일한 정보를 제공하고 있어서, 매우 적절한 데이터 증강 방법이라고 생각했다.
위 데이터 전체를 추가해서, 저 중 20% Data를 Validation으로 설정하고 학습을 진행해봤다.
Validation Set에 대해서 너무 큰 성능 향상을 보여, 오히려 고민이 시작됐다. 그리고 실제로 LB의 Score는 바닥을 쳤다. 곰곰히 생각해보니, Data Licking의 이슈가 있는 것 같았다. 문장의 뉘앙스는 다를지언정 Entity는 동일하고, 동일한 Label을 갖기 때문이다. 이에, Validation Set을 새로 구성했다.
이번엔, 번역을 통해 증강되지 않은 Unique한 Data만을 추출해 Validation Set으로 구성했다. 그리고 학습을 진행하니, 동일 Class만을 예측하는 방식의 학습이 이루어졌다. 0번 Class의 분포가 워낙에 많았는데, 번역 과정에서도 0번 Class가 압도적으로 많아지는 것을 확인할 수 있었다. 그런 와중에 번역에 활용되지 않은, 다른 Class의 Data를 Validation으로 활용하니 학습이 정상적으로 진행되지 않았던 것 같다.
그래서 이번엔, 그나마 다른 분포를 갖는 중국어 번역 Data와 0번 Class를 제외한 Data들을 추가해서 학습을 진행시켜봤다.
Validation 기준으로 Loss도 높고 Accuracy도 낮게 나온 것을 볼 수 있는데, 실제로 제출을 해보면 거의 유사한 Score가 나온다. 즉, Validation Set의 분포가 Test 분포와 다르고, 0번 Class가 더 적게 (더 어렵게) 설계 되어 있는 것을 알 수 있다.
0번 Class에 대해서 비율을 조금만 더 높여보려고, 영어와 일본어 번역 Data를 차례로 추가해서 실험해봤다.
일본어 Data를 추가했을 때는, 0번 Class의 비율 때문인지, 일정 Step 이후로 예측 Class가 고정되어 버렸다. 영어 Data를 추가했을 때는, 학습은 진행되나 Score자체는 매우 낮았다.
기대에 비해 성능 향상이 없어서 아쉽지만, 어떻게 잘 조작해보면 쓸모가 있지 않을까 생각해본다.
추가로 진행 할 사항
- Bucketing 구현
- 수지님, 규진님 Data 확인 및 증강 방법 강구
- R-BERT 형태의 Model 및 Task 구현
'네이버 부스트캠프 AI Tech' 카테고리의 다른 글
[P2] Day 57 (0) | 2021.04.26 |
---|---|
[P2] Day 56 (0) | 2021.04.26 |
[P2] Saturday 17 April (0) | 2021.04.26 |
[P2] Day 55 (0) | 2021.04.26 |
[P2] Day 54 (0) | 2021.04.26 |
Uploaded by Notion2Tistory v1.1.0