본문 바로가기

Study

'머신 러닝 프로젝트 구조화' 강좌 - 2주차(1) 정리

'머신 러닝 프로젝트 구조화' 강좌 - 오류 분석 - 2주 차 정리

  • Andrew Ng 강사님의 머신 러닝 프로젝트 구조화 [2주차] 오류 분석 강좌를 보고 정리한 내용
  • [K-MOOC x COURSERA] 구독권을 통해 강좌를 수강함

교육 기관 : https://www.deeplearning.ai/


2주차(1) 강좌 후기

  • 머신러닝 알고리즘의 성능이 목표 설정과는 다를 때 점검하는 방법과 머신러닝 관련 프로젝트를 할 때 강사님의 조언에 따라 해 볼 생각이다. 빠르게 서비스를 만들고 테스트를 반복해 성능을 향상하는 것인데 이 방법은 실력 있는 개발자들이 추천하는 방법과 동일하여하지 않을 이유가 없는 것 같다.

1. 오류 분석 수행

오류 분석이란?

현재 시점에서 알고리즘 성능이 좋지 않을 때 점검하는 것

예시
  • 강아지/고양이를 분류하는 알고리즘에서 강아지를 고양이로 잘못 분류하는 경우가 있다.
  • 이 상황에서 성능을 향상 시키기 위해 대략 100개의 미스레이블된 dev set 샘플을 가지고 와서 수동으로 검사하는 방법이 있음
  • 잘못 레이블된 샘플 중 5%만이 강아지 사진이라고 했을 때 가장 잘할 수 있는 것은 강아지 문제에 많은 시간을 투자하는 것
요약

오류 분석을 진행한다는 것은 알고리즘이 잘못 카테고리화한 것들에 대해서 dev set example을 수동으로 보는 것을 말함


2. 레이블이 잘못 지정된 데이터 정리

데이터가 잘못 레이블된 example이 있을 경우?

첫 번째

  • 딥러닝 알고리즘이 트레이닝 세트에서 random error을 상대로 강함
  • 이 오류들이 완전 무작위의 수치가 아닌 이상, 이 오류들을 그대로 놔둬도 괜찮음

하지만

  • 딥러닝 알고리즘은 systemic error에는 덜 강함.
  • 예를 들어, 레이블 한 사람이 지속적으로 흰색의 강아지를 고양이로 레이블 했다면 이것은 문제. 분류기가 모
  • 든 흰색 강아지를 고양이로 분류하도록 배웠기 때문
만약 dev set에서 레이블을 수동으로 검사하고 이런 레이블들을 직접 고치려고 한다면
  • 첫째로, 여러분이 어떤 방식의 프로세스를 적용하던 dev set와 test set에 동시에 적용시키라고 권장. dev set와 test set는 같은 분포에서 온 경우 더 효율적인 성능을 얻기 때문에
  • 둘째로, 여러분의 알고리즘이  잘 맞춘 것들을 포함해서 틀린 것들의 example을 잘 살펴볼 것.  알고리즘이 단순히 운으로 맞췄을 수도 있으니 맞춘 것도 확인할 것

3. 최초 시스템을 빠르게 구축한 다음 반복

정말 새로운 러닝 어플을 작업할 때의 조언
  1. 지저분하게라도 시스템을 일단 만들기
  2. 이 시스템을 이용해서 편향/편차 분석을 진행
  3. 오류 분석
  4. 이런 분석 결괏값으로 다음 단계의 우선순위를 결정