티스토리 뷰

Study/AI

[MLY] 한 부분에 대한 오류 표시

생각많은 소심남 2018. 10. 15. 23:52

 이전 예제를 계속 살펴보자

 그래서 고양이 감지기가 다음과 같은 박스 이미지를 출력으로 내뱉었다.

그러면 다음 단계인 고양이 종 분류기는 위의 잘린 이미지를 받고, 사진 상에 고양이 없다고 하거나 y=0으로 잘못 출력을 할 것이다.

고양이 감지기는 매우 안좋게 동작했다. 하지만 고도로 숙련된 사람은 잘못된 이미지 상에서도 임의적으로 Siamese cat을 인지할 수 있다. 그러면 해당 오류는 고양이 감지기에서 발생한 것일까, 아니면 고양이 종 분류기에서 발생한 것일까? 모호한 부분이다.

 만약 위와 같이 모호한 케이스의 숫자가 적다면, 원하는 결정을 내리고 유사한 결과를 얻을 수 있다. 하지만 오류가 정확히 어디서 나타나는지를 명확히 확인하기 위한 정현화된 방법이 있다.

 1. 고양이 감지기의 출력을 손으로 직접 만든 박스로 대체하라

 2. 그러고 난 후에 고양이 종 분류기에 해당 이미지를 넣어봐라. 만약 고양이 종 분류기가 여전히 잘못 분류하고 있다면 해당 문제는 고양이 종 분류기에서 발생하는 것이다. 그게 아니라면 문제는 고양이 탐지기에 있는 것이다.

 다른 말로 표현하자면, 고양이 종 분류기에 "완벽한" 입력을 넣을 수 있도록 실험을 하자는 것이다. 두가지 케이스가 있다.

 - Case 1 : "완벽한" 박스 이미지가 주어진다 하더라도, 고양이 종 분류기는 여전히 y=0이라고 잘못된 결과를 출력한다. 이 경우 고양이 종 분류기에서 문제가 발생한 것이다.

 - Case 2 : "완벽한" 박스 이미지가 주어진 상태에서, 이제는 고양이 종 분류기가 잘 동작한다(y=1) 이 말은 고양이 감지기가  좀더 완벽한 박스 이미지를 줄수록 전체 시스템의 출력을 맞게 나올 것이다. 결국 오류는 고양이 감지기에 있는 것이다.

 잘못 분류된 개발 데이터 이미지에서 이런 평가를 수행하게 되면, 이제는 각 요소별로 어떤 문제가 있는지 명확해진다. 이를 통해 파이프라인의 각 요소로 인해서 발생하는 오류의 비율을 추정할 수 있고, 이를 통해서 집중해야 할 부분에 대해 결정을 내릴 수 있게 된다.

< 해당 포스트는 Andrew Ng의 Machine Learning Yearning 중 chapter 54. Attributing error to one part를 번역한 내용입니다.>

댓글