티스토리 뷰
이전에 다뤘던 고양이 인식 예시에서, "이상적인" 오류율이란 "이상적인" 분류기를 통해서 얻을 수 있는 것, 즉 거의 0%의 오류율을 얻는 것이다. 인간이 거의 고양이가 들어 있는 사진을 잘 인식하는 것과 같이 기계도 동일하게 잘해주길 원한다.
이렇게 인식하는 것이 아닌 다른 문제는 조금 더 어렵다. 예를 들어 음성 인식 시스템을 만들고 있을때, 14% 정도의 음성이 많은 배경 소음을 담고 있던가, 인간이 들어도 제대로 인식하기 힘들만큼 불분명한 것을 알았다. 이런 케이스라면 "이상적인" 음성 인식 시스템은 거의 14%의 오류율을 나타낼 것이다.
해당 음성 인식 문제에서 만든 알고리즘이 다음과 같은 성능을 얻었다고 치자:
- 학습 데이터 오류 = 15%
- 개발 데이터 오류 = 30%
학습 데이터를 통한 성능은 이상적인 오류율인 14%에 거의 근접하다. 이 말은 bias 과점이나 학습 데이터 관점에서 더 개선시킬 영역이 그렇게 크지 않다는 것이다. 대신 variance에 의한 오류를 개선시킬 여지는 충분히 있다.
이 예제는 이전 포스트에서 다뤘던 3번째 케이스와 유사한데, 그때도 15%의 학습 오류와 30%의 개발 오류를 가지고 있었다. 이때 이상적인 오류율이 0%대라면, 15%의 학습 오류는 개선할 여지가 많이 남아있다. 이 말은 bias를 감소시키는 변화 자체가 전체 학습에 도움이 될 수 있다는 것을 의미한다. 그런데 만약 이상적인 오류율이 14%라면,동일한 학습 데이터 성능은 분류기의 bias에 대한 개선이 이뤄질 부분이 거의 없다는 것을 의미한다.
이상적 오류율이 0% 가 아닌 값을 가지는 문제라면, 적용하는 알고리즘의 오류를 조금 상세하게 나눠볼 필요가 있다. 앞에서 다뤘던 음성 인식 예제를 살펴보면 30%에 달하는 총 개발 데이터에 대한 오류는 아래와 같이 쪼개볼수 있다.(테스트 데이터 오류도 동일한 방식으로 접근할 수 있다.)
- 이상적 오류율("unavoidable bias - 회피 불가능한 bias") : 14% 세상에서 제일 좋은 음성 시스템도 14%의 오류를 가진다고 치면, 해당 오류는 알고리즘 bias에서 "피할 수 없는" 부분이라고 생각할 수 있다.
- Avoidable bias - 회피 가능한 bias : 1%. 이 값은 학습 오류와 이상적 오류와의 차이를 통해서 계산된다. (만약 이 값이 음사라면, 지금 학습 데이터에서의 성능이 이상적인 성능보다 좋은 것이다. 이 말은 학습 데이터에 대해서는 overfitting되고 있다는 것을 의미한다. 그리고 알고리즘이 학습 데이터에 대해서 너무 많이 기억되고 있다는 것을 의미하기도 한다. 이 경우는 다른 bias를 줄이는 방법을 적용하는 것보다, variance를 줄이는 방법에 초점을 맞춰야 한다.
- Variance - 분산 : 15%. 개발 데이터 오류와 학습 데이터 오류간의 차이
이전에 다뤘던 정의와 위의 내용을 연결했을 때, Bias와 Avoidable Bias간의 관계는 다음과 같이 정의할 수 있다.
(이 정의들은 학습 알고리즘 개선에 대한 직관을 키우기 위해 선택된 정의이다. 사실 통계학자들이 정의하는 Bias와 Variance의 의미와는 다르다. 엄밀히 말해서 "Bias"라고 표현하는 것은 "Bias에 기여하는 오류"라고 해야 하고, "Avoidable bias"도 역시 "이상적인 오류율을 넘어서 학습 알고리즘의 bias에 기여하는 오류"라고 표현해야 한다.)
Bias = 이상적인 오류율("unavoidable bias") + Avoidable bias
위의 수식에서 "avoidable bias"는 지금 사용하는 학습 알고리즘이 "이상적인 분류기"에 비하여 학습 데이터상에서 얼마나 안좋은지를 나타내는 지표라고 보면된다.
Variance의 개념은 이전에 다뤘던 내용과 동일하다. 이론적으로 엄청난 학습 데이터 상에서 학습시킬 때, 언제나 variance를 0에 가깝게 줄일 수 있다. 결국 충분히 데이터를 많이 가진 상태에서 모든 variance는 "avoidable"하고, "unavoidable variance"라는 존재하지 않는다.
또 다른 예시 상에서 이상적인 오류율이 14%라고 할때, 아래의 값을 얻었다:
- 학습 데이터 오류 = 15%
- 개발 데이터 오류 = 16%
이전 포스트에서 위와 같은 경우를 high bias classifier라고 불렀었는데, 여기서는 avoidable한 bias로 인한 오류가 1%이고, variance에 의한 오류가 1% 라고 다시 표현할 수 있다. 결국 지금 알고리즘은 이미 잘 동작하고 있는 상황일 것이고, 개선할 부분이 거의 없을 것이다. 지금 값도 이미 이상적인 오류율보다 겨우 2%정도밖에 나쁘지 않다.
이런 예제들을 살펴봤듯이, 이상적인 오류율을 아는 것은 다음 진행 방향을 결정하는데 도움이 된다. 통계학적으로는 이상적인 오류율을 베이즈 오류율(Bayes Error Rate), 또는 베이즈율(Bayes rate) 이라고 부르기도 한다.
그러면 이상적인 오류율이란 것을 어떻게 알 수 있을까? 사진을 인식하거나 음성을 청취하는 것과 같이 인간이 상대적으로 잘하는 작업에서는 인간에게 시켜서 인간이 한 결과가 학습데이터 결과물에 비하여 얼마나 정확한지 정확성을 측정하면 된다. 이렇게 하면 대략적인 이상적 오류율에 대한 추정치를 얻을 수 있다. 만약 인간이 하기 어려운 작업들(예를 들어 추천 영화를 예측한다던가, 사람에게 어떤 광고를 보여줄지 결정하는 것)은 이상적인 오류율을 추정하기 어려울 수 있다.
뒤에 나올 포스트인 "인간과의 성능 비교" 장에서 학습 알고리즘의 성능과 인간의 효율간의 비교 과정에 대해서 자세하게 다룰 것이다.
마지막 몇 포스트에서 avoidable/unavoidable bias과 variance를 학습 데이터와 개발 데이터 오류율을 확인하면서 추정하는 방법에 대해서 배웠다. 다음 포스트에서는 bias를 줄이는 기술이나 variance를 줄이는 기술중 어느쪽에 우선시둬야 할지 평가를 하는 측면에서 다룰 예정이다. 현재 접하고 있는 문제가 high (avoidable) bias를 가졌느냐, high variance를 가졌느냐에 따라서 적용하는 기술들이 다르다.
< 해당 포스트는 Andrew Ng의 Machine Learning Yearning 중 chapter 22. Comparing to the optimal error rate을 번역한 내용입니다.>
'Study > AI' 카테고리의 다른 글
[MLY] avoidable bias를 줄이는 방법들 (0) | 2018.09.12 |
---|---|
[MLY] bias와 Variance간 tradeoff (0) | 2018.09.12 |
[MLY] Bias와 Variance에 대한 해결 방법 (0) | 2018.09.11 |
[MLY] Bias와 Variance의 예시들 (0) | 2018.09.10 |
[MLY] Bias와 Variance: 오류를 발생시키는 두개의 요인 (0) | 2018.09.10 |
[MLY] 기본적인 오류 평가시 고려해야 할 사항 (0) | 2018.09.10 |
[MLY] Eyeball 데이터와 Blackbox 데이터는 얼마나 커야 할까? (0) | 2018.09.09 |
- Total
- Today
- Yesterday
- Gan
- End-To-End
- ColorStream
- bias
- Distribution
- Kinect for windows
- 딥러닝
- 파이썬
- 한빛미디어
- dynamic programming
- Offline RL
- SketchFlow
- ai
- Expression Blend 4
- reward
- Kinect SDK
- Variance
- RL
- Windows Phone 7
- Policy Gradient
- Off-policy
- arduino
- TensorFlow Lite
- 강화학습
- PowerPoint
- DepthStream
- processing
- Kinect
- Pipeline
- windows 8
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |