티스토리 뷰
만든 알고리즘에서 발생하는 주요 오류 카테고리를 파악하기 위해서는 Eyeball dev set이 충분히 커야 한다. 만약 (이미지에서 고양이를 인식하는 것과 같이) 사람이 잘하는 것에 대해서 신경쓰려면, 몇가지 대략적인 가이드라인을 들 수 있다.
- 분류기가 10개 정도의 실수를 하는 eyeball dev set은 매우 작은 크기라고 고려할 수 있다. 보통 10개의 오류라고 하면, 이게 다른 오류 카테고리라고 정확하게 평가하기 어렵다. 하지만 만약 가지고 있는 데이터가 매우 작고, eyeball dev set에 더 넣을 데이터가 없다면, 해당 dev set은 없는 것보다 낫고, 프로젝트 내에서 우선순위를 정할때 도움이 된다.
- 분류기가 20개 정도의 실수를 하는 eyeball dev set이라면, 대략적으로 오류가 발생하는 원인을 찾을 수 있는 정도가 된다.
- 50개 정도의 실수가 발생한다면, 오류가 발생하는 주요 요인을 잘 찾을 수 있게 된다.
- 100개 정도의 실수가 발생하면, 오류가 발생하는 주요 요인을 매우 잘 찾을 수 있다. 언급한 것보다 더 많은 오류를 일일이 판단하는 사람들도 봐왔고, 심지어는 500개의 오류를 평가하는 케이스도 있었다. 이런 경우에는 할 수 있으면 충분한 데이터를 가지면 좋다.
만약 지금 쓰고 있는 분류기가 5%의 오류 발생률을 가진다고 하자. 그 상태에서 eyeball dev set내의 100개 정도의 잘못 라벨링된 데이터를 가지도록 하고 싶다면, eyeball dev set은 적어도 2000개 정도의 데이터를 가져야 한다.( 0.05 * 2000 = 100 ) 분류기의 오류율을 낮추면 낮출수록, 평가하기에 충분한 데이터를 확보하기 위해서는 eyeball dev set도 그만큼 더 커야 한다.
이와 반대로 사람이 잘 못하는 것에 대한 일을 신경쓰게 된다면, eyeball dev set을 확인하는 작업은 그렇게 도움이 안될 수도 있다. 왜냐하면 이걸 통해서 알고리즘이 왜 데이터를 잘 분류하지 못했는지 판단하기가 쉽지 않기 때문이다. 이같은 경우에는 eyeball dev set을 그냥 생략해도 된다. 이런 문제에 대해서는 뒤에 나올 포스트에서 다뤄볼 것이다.
그러면 blackbox dev set은 어떨까? 이전에 언급하기론 blackbox dev set은 대략 1000~10000여개 정도를 가지는 것이 일반적이라고 했다. 그 정의를 되돌이켜보자면, 1000~10000개 정도의 blackbox dev set은 hyperparameter를 수정하거나 알고리즘 사이에서 좋은 것을 선정하기에 충분하다고 했었는데, 그렇다고 더 많이 가지는 것이 해가 되지는 않는다. 100개 정도 되는 blackbox dev set은 작긴 하지만 그래도 유용하게 활용할 수 있다.
만약 기본적으로 가진 데이터가 적다면, 앞에서 언급한 목적을 수행하기 위한 eyeball dev set과 blackbox dev set을 나눌 데이터가 충분하지 않을 것이다. 대신 그 데이터들을 모두 eyeball dev set을 활용하면 좋을거 같다. 예를 들어 그 개발 데이터들을 모두 일일이 확인해보는 것처럼 말이다.
Eyeball dev set과 Blackbox dev set중에서, 나는 eyeball dev set이 더 중요한 것으로 여긴다.(만약 인간이 잘 해결할수 있고, 뭔가 일일이 확인해보았을때 해결할 수 있는 직관이 생기는 문제라면 말이다.) 만약 Eyeball dev set만 가지고 있으면, 오류 평가나 알고리즘 선택, hyperparameter 수정 같은 작업 모두를 해당 데이터로 수행할 수 있다. 단점이 있다면 해당 개발 데이터에 overfitting될 위험이 높다는 점이다.
만약 데이터에 대해서 많이 접근할 수 있다면, eyeball dev set의 크기는 일일이 평가해야 할 데이터들이 얼마나 많은지에 따라서 정의될 수 있다. 예를 들어 1000개 이상의 오류를 일일이 평가하는 사람은 거의 못본 것 같다.
< 해당 포스트는 Andrew Ng의 Machine Learning Yearning 중 chapter 18. How big should the Eyeball and Blackbox dev sets be?을 번역한 내용입니다.>
'Study > AI' 카테고리의 다른 글
[MLY] Bias와 Variance의 예시들 (0) | 2018.09.10 |
---|---|
[MLY] Bias와 Variance: 오류를 발생시키는 두개의 요인 (0) | 2018.09.10 |
[MLY] 기본적인 오류 평가시 고려해야 할 사항 (0) | 2018.09.10 |
[MLY] 개발 데이터가 많은 경우, 두 집합으로 나누고 하나에서만 확인하기 (0) | 2018.09.08 |
[MLY] 개발 데이터상에 잘못 라벨링된 것 정리하기 (0) | 2018.09.08 |
[MLY] 오류 평가 간에 여러개의 아이디어를 병렬로 평가하기 (0) | 2018.09.06 |
[MLY] 오류 평가: 아이디어 검증을 위한 개발 데이터 예제 탐색 (0) | 2018.09.06 |
- Total
- Today
- Yesterday
- dynamic programming
- 파이썬
- arduino
- ai
- Kinect for windows
- processing
- 딥러닝
- Variance
- windows 8
- DepthStream
- Gan
- Expression Blend 4
- Distribution
- Off-policy
- PowerPoint
- bias
- Kinect
- Pipeline
- Windows Phone 7
- Kinect SDK
- reward
- 강화학습
- SketchFlow
- Policy Gradient
- End-To-End
- Offline RL
- ColorStream
- TensorFlow Lite
- 한빛미디어
- RL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |