15. 오류 분석중에 여러 아이디어를 동시에 평가하기

15. 오류 분석중에 여러 아이디어를 동시에 평가하기

고양기 탐지기를 개선할 몇 가지 아이디오를 갖고 있다.

  • 강아지를 고양이로 인식하는 알고리즘 문제 수정
  • 큰 고양이(사자, 표범 등)를 집고양이로 인식하는 알고리즘 문제 수정
  • 흐린 사진에 대한 시스템 성능 개선
  • ….

이러한 모든 아이디어를 효율적으로 동시에 평가할 수 있습니다. 필자는 스프레드시트를 만들고, 100개의 잘못 분류된 개발 데이터셋 이미지를 보면서 이 스프레드시트를 채워나갑니다. 구체적인 사례(Example)을 기억하는 데 도움이 되는 내용이 있다면 주석에 추가합니다. 이 프로세스를 설명하기 위해서, 4개 Example의 작은 개발 데이터셋으로 만든 스프레드시트를 살펴보겠습니다.

이미지 큰 고양이 흐린 사진 주석
1 v 특이한 pitbull 색
2 v
3 v v 사자: 비 오는 날 동물원에서 찍은 사진
4 v 나무 뒤에 표범 사진
전체 중 비율 25% 50% 50%

위 테이블에서 3번 이미지는 큰 고양이와 흐린 사진 컬럼에 체크되어 있습니다. 하나의 Example은 여러 범주와 연관될 수 있으므로, 마지막 백분율의 합이 100%가 아닐 수 있습니다.

먼저 카테고리(개, 큰 고양이, 흐린 사진)를 작성한 다음에, Example를 수작업으로 분류합니다. 실제 잘못 분류된 Example을 살펴보다 보면, 새로운 에러 카테고리에 대한 아이디어가 떠오를 것입니다. 예를 들어서, 여러 사진을 살펴보다 보니, 많은 오류가 인스타그램 필터가 적용된 이미지에서 발생하고 있다는 것을 발견할 수 있습니다. 그럼 다시 스프레드시트로 돌아가서 새로운 인스타그램 컬럼을 추가합니다. 수작업으로 알고리즘이 잘못 분류한 Example을 살펴보고, 분류할 이미지애 레이블을 어떻게 정하는 것이 논리적이고 효율적인지를 스스로 질문하고 답하다 보면, 새로운 오류 범주와 솔루션에 대한 영감이 떠오르는 경우가 많습니다.

가장 유용한 오류 범주는 개선 방법이 있는 오류 범주입니다. 인스타그램 필터를 제거하거나 원본 이미지를 복구하는 것이 방법을 알고 있고 적용 가능하다면, 인스타그램 카탈로그를 추가하는 것은 큰 도움이 될 것입니다. 그렇다고 개선하는 방법을 알고 있는 에러 범주에만 집착할 필요는 없습니다. 이 프로세스의 목적은 어떤 이슈(오류 카테고리)를 집중해야 하는지 파악하고, 개선 효과가 가장 좋을 것으로 예상되는 영역에 대한 직관을 얻는 것입니다.

오류 분석은 반복적인 프로세스입니다. 분석을 시작할 때, 오류 범주에 대해서 전혀 모르는 상황이라고 해서 걱정할 필요는 없습니다. 잘못 분류된 이미지 몇 장을 살펴보다 보면 오류 범주에 대한 몇 가지 오류 범주가 떠오를 것입니다. 일부 이미지를 수동으로 분류한 후에는 새 범주를 추가하고, 새 범주를 고려하여 이미지를 다시 검토하는 일련의 작업을 수행합니다.

개발 데이터셋에서 잘못 분류된 100장 이미지의 한 오류 분석을 완료했다고 가정하겠습니다. 오류 분석 결과는 다음과 같습니다.

이미지 큰 고양이 흐린 사진 주석
1 v 특이한 pitbull 색
2 v
3 v v 사자: 비 오는 날 동물원에서 찍은 사진
4 v 나무 뒤에 표범 사진
….
전체 중 비율 8% 43% 61%

프로젝트에서 강아지를 잘못 분류하는 오류를 해결하는 작업을 수행할 경우 최대 8%의 오류를 줄일 수 있을 것이고, 흐린 이미지의 사자 사진을 잘못 분류하는 오류를 개선할 경우 더 많은 오류를 해결할 수 있을 것입니다. 이러한 현재 오류에 대한 직관을 기초로 어떤 오류 범주를 선택하고 집중해야 할지 결정할 수 있습니다. 또한 개발팀에 인력이 충분하다면 동시에 여러 오류 범주의 개선작업을 진행할 수 있으며, 위 오류 분석 결과를 근거로 큰 고양이를 잘못 분류하는 오류를 해결하는 그룹에 엔지니어 할당과 흐린 이미지의 개선 작업 그룹에 엔지니어 할당을 결정하거나 요청할 수 있습니다.

오류 분석이 현재 상태에서 가장 우선순위가 높은 작업이 무엇인지 알려주는 거창한 수식을 만드는 것은 아닙니다. 그러나 오류 분석을 통해서 프로젝트 모델의 개선 작업을 수행하여 특정 오류 범주 문제를 해결하면, 얼마나 성능이 개선되는지 예측할 수 있으며, 또한 각 오류 범주를 해결하는 데 필요한 작업량을 고려할 때 이용할 수 있습니다.

이 문서는 Andrew NG 교수님께서 집필 중인 Machine Learning Yearning의 15장 번역입니다. 원제는 “15. Evaluating multiple ideas in parallel during error analysis” 입니다. 원문 Ebook은 http://www.mlyearning.org [↗NW] 에서 내려받을 수 있습니다.

Last updated on 27 Dec 2018 / Published on 27 Dec 2018
김태완 avatar
작성자: 김태완
1999년 부터 Java, Framework, Middleware, SOA, DB Replication, Cache, CEP, NoSQL, Big Data, Cloud를 키워드로 살아왔습니다. 현재는 빅데이터와 Machine Learning을 중점에 두고 있습니다.
E-mail: taewanme@gmail.com

Powered by http://taewan.kim