티스토리 뷰

 학습 알고리즘에서 오류 평가를 수행하는 것은 다음 개선할 사항을 파악하기 위해서 머신러닝 시스템의 문제를 평가하는데 데이터 과학을 사용하는 것과 같다. 핵심은, 요소별 오류 평가는 어떤 요소가 개선에 있어서 큰 영향을 주는지를 알려준다는 것이다.

 웹사이트 상에서 고객이 물건을 사는 것에 대한 데이터가 있다고 가정해보자. 데이터 과학자는 해당 데이터를 분석하는데 다양한 방법을 사용할 수 있을 것이다. 그래서 웹사이트 상에서 가격을 올려야 할지, 혹은 서로 다른 마케팅 활동을 통해서 얻을 수 있는 고객의 영속적인 가치(lifetime value)에 대한 결정을 내릴 수 있을 것이다. 데이터를 평가하는데 있어 "올바른" 길이라는 것은 없고, 적용해볼만한 가치가 있는 방법들이 많이 있다. 이와 비슷하게 오류 평가를 수행함에 있어서도 "올바른" 길이 있는 것은 아니다. 이전 포스트 들을 통해서 당신이 만들고 있는 머신러닝 시스템에서 적용해볼 수 있는 유용한 직관에 대한 일반적인 디자인 패턴을 배웠다. 하지만 오류를 평가하는데 있어서 다른 방법을 시도해봐도 좋을것 같다.

 이전에 다뤘던 자율 주행 어플리케이션 예제로 돌아가보자. 여기선 차량 탐지 알고리즘이 가까운 차량에 대한 위치(속도도 포함된다)를 출력으로 내보내고, 보행자 탐지 알고리즘이 근처에 있는 보행자의 위치를 출력하면서 결국에는 이 출력을 바탕으로 길을 찾게 되는 형태로 되어 있다.

이 파이프라인을 디버깅하기 위해서는, 이전 포스트에서 다뤘던 것처럼 바로 절차를 확인하기 보다는 그냥 비형식적으로 다음과 같은 질문을 할 수 있다.

 1. Detect car 요소가 차량을 탐지하는데 있어서 인간 성능 지표와 얼마나 성능 차이를 나타낼까?
 2. Detect pedestrians 요소가 인간 성능 지표와 얼마나 성능 차이를 나타낼까?
 3. 전체적인 시스템의 성능은 인간 성능 지표와 얼마나 성능 차이를 나타낼까? 여기서 인간 지표 성능이란 인간이 (카메라 이미지로부터 얻은 데이터가 아닌) 이전의 두개의 파이프라인 요소로부터 얻은 출력을 바탕을 차의 경로를 지정하는 것을 나타낸다. 다른 말로 표현하면, 인간이 같은 입력을 받았을 때 경로 지정 요소가 보여주는 성능은 인간 지표와 비교했을 때, 얼마나 차이가 날까?

 만약 구성 요소 중 하나라도 인간 성능 지표에 못 미치는 것을 발견했다면, 해당 요소의 성능을 개선시키는데 초점을 맞출 수 있는 좋은 케이스를 가지게 된 것이다.

 수많은 오류 평가 기법은 인간 성능 지표가 측정되어야 한다는 점에서 인간이 할 수 있는 무언가를 자동화한 작업에서 잘 동작한다. 앞에서 다뤘던 예제들은 사실 함축적으로 이런 가정들이 포함되어 있었다. 만약 최종 출력이나 중간 요소 중 무언가가 인간도 잘 못하는 작업을 수행하고 있다면, 이런 가정은 적용할 수 없을 것이다.

 앞에서 소개한 방법은 인간이 풀수 있는 문제에 적용시켜 볼수 있는 또다른 이점이며, 이 문제를 해결할 강력한 오류 평가 기법이 있기 때문에 일의 경중을 조금더 효율적으로 지정할 수 있게 된다.

< 해당 포스트는 Andrew Ng의 Machine Learning Yearning 중 chapter 56. Error analysis by parts and comparison to human-level performance를 번역한 내용입니다. >


댓글