Carrying Out Error Analysis
인간 레벨까지 되지 못할 때, 수작업으로 문제를 파악하는 error analysis
강아지 이미지에 에러가 나는 고양이 분류기, 이 문제를 해결하기 위해 강아지 문제에만 몇 개월 동안 집중해도 될까?
잘못 라벨링된 dev set을 보면 100개 중 5개만이 강아지임을 확인할 수 있었음. 그렇게 되면 강아지 문제를 해결한다고 해도 10% 에러를 5% 해결한 9.5% 밖에 안 됨. --> "ceiling on performance"
그런데 만약에 100개 중에 50개가 강아지 사진이었다? 몇 개월을 강아지 문제에 쏟는다고 해도 가치가 있다고 볼 수 있음. 에러율은 50% 해결되어 5% 로감소할 것임
--> simple counting error anaylsis
[Evaluate multiple ideas in parallel]
검토 대상이 되는 dev set 이미지들을 스프레드 시트 형식으로 어떤 문제에 해당하는지 메모
수학적으로 무엇이 문제가 되는지 명백하게 정해지는 것은 아니나 어떤 방향으로 가야 할지는 참고할 수 있음
Cleaning Up Incorrectly Labeled Data
[Incorrectly labled examples]
학습데이터의 일부가 잘못 라벨링되어 있다고 해보자
- "mislabeled example" : 예측 결과가 잘못된 경우
- "incorrectly labeld example" : 데이터셋이 잘못 레이블된 경우
"training set"에 incorrectly labeld example이 있을 때 어떻게 해야 할까?
에러가 충분히 "random"하다면 굳이 다 고치지 않아도 된다 (데이터셋 크기가 크고 에러 비율이 크지 않은 이상)
반면 ML모델들은 "sysmetic" 에러들에는 robust 하지 않다
"dev/test set"에서는?
error analysis 할 때 incorrectly labeld 칼럼을 추가해서 살펴볼 수 있다
그 비율이 모델을 evaluate 하는 데 유의미한 영향을 미친다면 수정할 필요가 있다
overall dev set error를 살펴보고, 잘못 라벨링된 경우에 의한 에러와 다른 원인에 의해 라벨링된 에러의 비율을 비교한 후 문제 해결
Goal of dev set is to help you select between two classifiers A & B
[Correcting incorrect dev/test set examples]
dev/test 셋이 같은 분포를 가지는 것은 매우 중요, training 셋의 분포는 조금 다를 수도 있음
Build your First System Quickly, then Iterate
새로운 모델을 짓는다고 할 때, 존재하는 다양한 문제들 가운데 어디에 집중해야 하는 것인가? (ex. speech recognition이라고 한다면 시끄러운 배경, 사투리, 마이크와 먼 목소리far-field, 아이의 말, 말더듬기, 등등 여러 문제가 존재)
일단 모델링 빨리 하고, iterate 하라.
First, set up dev/test set and metric
--> 타겟을 설정하는 것과 같음
Then, build initial system quickly
Then, use bias/variance analysis & error analysis to prioritize next steps
build your fist system quickly then iterate
'인공지능 > DLS' 카테고리의 다른 글
[3.2.] Learning from Multiple Tasks (0) | 2022.07.20 |
---|---|
[3.2.] Mismatched Training and Dev/Test Set (0) | 2022.07.20 |
[3.1.] Comparing to Human-level Performance (0) | 2022.07.18 |
[3.1.] Setting Up your Goal (0) | 2022.07.17 |
[3.1.] Introduction to ML Strategy (0) | 2022.07.17 |