실험을 잘한다는 것은 무엇일까?

Dophi·2023년 1월 25일
0

컨퍼런스

목록 보기
7/14

소개글

각종 컨퍼런스에 나온 강연들을 정리해보면서 공부해보고 있습니다.
이번 포스팅은 if(kakao) 2022에서 김성진님께서 강연해주신 내용을 정리했습니다.
제목은 "실험을 잘한다는 것은 무엇일까?"이며 머신러닝과 관련해서 여러 테스트를 진행하면서 느끼셨던 점에 대한 내용입니다.
말투는 편한 말투로 작성하니 양해 부탁드립니다.

영상 다시보기
문서 자료

발표내용

머신 러닝 기술을 활용하여 비지니스 문제를 해결하는 과정에는 많은 실험이 필요

상황 가정

  • 특정 서비스 부서에 AI 기술을 제공하고 있음
  • 몇몇 논문을 통해 성능이 좋다고 입증된 솔루션A를 알게 됨
  • 빠르게 구현한 후 서비스 환경에서 실험해봤지만 성능이 애매함

성능이 애매하다 -> 기존 솔루션 대비 성능이 비슷하거나 떨어진다

보통 두가지 선택지가 존재함

포기할 경우

  • 다른 솔루션을 찾아야함
  • 하지만 솔루션A도 잘될거라 생각해서 채택한건데 별로였음
  • 다른 솔루션을 어떤 기준으로 찾아야 하는지?
  • 실험 결과를 어떻게 남겨야 다음 실험에 도움이 될 수 있을지?

  • "나"는 솔루션 A를 포기했지만 다른 누군가는 계속 실험할 수 있음

보완할 경우

  • 어디서부터 보완하는게 좋을지?
  • 보완할 부분이 많은데 우선순위 판단은 어떻게 할지?
  • 보완을 하게 되면 마무리 조건은 어떻게 세울지?

마무리 조건
-> 이 보완 실험을 언제까지 혹은 어디까지 진행해보고 진척이 없으면 마무리 하겠다는 기준
-> 마무리 조건이 없으면 끝없이 보완->실험->실패 과정을 반복하게됨

두가지 경우 모두 여러 의문점들이 생겨나는데, 이는 실험을 잘한다는건 뭔지에 대한 고민으로 이어졌다고 합니다.

실험을 잘한다는건 뭘까요

실험에는 승부수가 있어야 함
승부수 -> 이 실험이 성공할거라고 생각하는 이유

두가지 특징을 파악하는 것이 중요

  • Key Feature - 문제 해결의 핵심이 되는 특징 (ex. 적은 데이터로도 효율적인 학습이 가능하다)
  • Environment - 문제 환경 (ex. 데이터가 적다)

승부수가 있다면

  • 실험 결과 분석이 쉬워지고, 이를 토대로 다음 실험에 도움이 될 수 있음
    • 승부수가 되는 Key Feature 구현을 제대로 했는지 확인
    • Key Feature가 실제로 문제 해결에 도움이 되는지 확인
  • 실험 사이클을 짧게 가져갈 수 있음
    • 어떤 부분을 중요하게 구현해야 하는지 정확하게 알고 있기 때문

앞선 질문들은 Key Feature에 기반해서 판단하면 됨

  • Q1. 실험 결과를 어떻게 남겨야 다음 실험에 도움이 될 수 있을까?
    • ex. Key Feature를 구현해냈을 때 현실과 다른 점을 포커싱해서 분석하면 됨
  • Q2. 보완 실험은 어디서부터 진행하는게 좋을까?
    • ex. Key Feature를 검증하고 보완하는 것을 우선순위로 잡으면 됨
  • Q3. 마무리 조건을 어떻게 세우는게 좋을까?
    • ex. Key Feature를 제대로 만들어서 실험을 했을 때 문제 해결이 되는지를 기준으로 확인하면, 가설이 맞았는지 틀렸는지 알 수 있음

승부수를 잘 세우려면?

  • 내가 풀려는 문제(+환경)를 이해해야 함
  • 기존 솔루션에 대해 이해해야 함
  • 내가 구현하려는 솔루션에 대해서도 깊이 있게 이해해야함

물론 다른 정답이 있을 수도 있지만, Key Feature와 Environment를 잘 파악하고 승부수를 잘 세웠을 때, 실험이 잘되고 있다고 느끼셨다고 합니다.

마무리

  • 실험에는 승부수가 있어야 함
  • 실험 결과가 나쁘면 알고리즘 이슈인지, 엔지니어링 이슈인지 명확하게 파악해야함
  • 디버깅을 위해 Key Feature를 구현해낼 수 있는 단순한 솔루션부터 접근하는 것이 좋음
  • 실험 실패 원인이 솔루션이 아닌, 환경에 있는 경우도 많으니 주의해야함
  • 실험 과정에서 어쩔 수 없이 많은 실패를 경험하게 됨
  • 시행착오를 겪을 때마다 교훈을 하나씩 얻어가다 보니 결국에는 좋은 결과를 만들 수 있었던 것 같음
profile
개발을 하며 경험한 것들을 이것저것 작성해보고 있습니다!

0개의 댓글