[MLY 번역] 10. Having a dev set and metric speeds up iterations

안현진
MLY_KOREA
Published in
2 min readAug 30, 2018

[MLY 번역]

Andrew ng의 Machine Learning Yearning을 번역한 글입니다. 중간중간 실험가능한 내용이 있을 경우 c++ 혹은 tensorflow를 이용한 실험과 함께 업로드할 예정입니다. 일주일에 2회, 회당 5개씩 업로드될 예정입니다.

번역: 안현진,정주안

새로운 문제에 어떤 접근방식이 가장 효과적인지 미리 아는것은 매우 어렵습니다. 심지어 머신러닝에 경험이 많은 연구자들이라 할지라도 만족할만한 것을 얻기까지 수십가지 아이디어를 시도해봅니다. 머신러닝 시스템을 구축할때, 저는 주로 아래와 같이 합니다.

  1. 시스템을 구축하기 위한 아이디어 구상으로 시작합니다
  2. 아이디어를 코드로 구현해봅니다
  3. 그 아이디어가 얼마나 잘 작동하는지 알아보기 위한 실험을 수행합니다.(보통 처음 떠올렸던 아이디어 중 몇개는 작동하지도 않습니다!) 이러한 학습을 바탕으로 다시 아이디어를 구상하고 위의 과정을 반복합니다

이것은 반복적인 과정입니다. 이 과정을 더 빠르게 할 수 있다면, 여러분은 더 빠른 진전을 얻을 수 있습니다. 이것이 디벨롭셋/테스트셋과 지수(metric)를 갖는 것이 중요한 이유입니다. 아이디어를 실험할 때마다 디벨롭셋을 사용하여 아이디어의 퍼포먼스를 측정하면, 여러분이 올바른 방향으로 나아가고 있는지 알 수 있습니다.

반면에 여러분이 이런 특정한 디벨롭셋과 지수를 가지고 있지 않다고 해봅시다. 따라서, 여러분은 매번 새로운 고양이 분류기를 만들고, 앱에 통합하고, 분류기의 성능이 나아졌는지 감각적으로 느끼기 위해 몇시간동안이나 앱을 가지고 놀아보아야 합니다. 이것은 정말 엄~청나게 느립니다! 또한, 만약 여러분이 앱을 가지고 노는 동안 팀원들이 분류기의 성능을 95%에서 95.1%까지 개선시켜도 아마 여러분은 그 0.1%의 성능향상을 체감할 수는 없을 것입니다. 그러나 대부분의 시스템 개선은 그러한 많은 0.1%의 진전이 모여서 서서히 이루어집니다. 디벨롭셋과 지수를 가지고 있는것은 여러분이 어떤 아이디어가 시스템성능에 자그마한(혹은 매우 큰) 향상을 주는지 알 수 있게 해주고, 따라서 어떤 아이디어를 더 발전시키고 어떤건 버려야 할지 빠르게 알 수 있게 해줍니다.

--

--