머신러닝 프로젝트 Flow
문제정의의 중요성
우리 삶의 대부분의 현상과 상황은 어떠한 문제로 정의할 수 있다.
문제를 정의하는 것은 어떤 특정 현상을 파악하고 이 현상속에서 발견한 특징을 정의하는 과정을 의미한다. 따라서 어떤 문제를 잘 해결하기 위해서는 문제를 정의하는 과정이 매우 중요하다. 문제 정의가 명확하지 않는 경우 무엇을 해야할지 결정하기 어려워질 수 있다. 예를들어 "사람들을 행복하게 만들고 싶다"라는 하나의 문제는 다소 난해할 수 있다. 구체적 대상이나 행복의 구체적 정의 등과 같이 여러가지 요소를 조금 더 구체적으로 정의할 수록 문제해결이 수월해지게 된다.
프로젝트 Flow
-
현상 파악
- 어떤 일이 발생하고 있는가?
- 해당 일에서 어려움은 무엇인가?
- 해당 일을 해결하면 얻는 이점은 무엇인가?
-
목적, 문제 정의 및 구체화
- 무엇을 해결하고 싶은가?
- 무엇을 알고 싶은가?
- 문제를 쪼개서 분석하고 어떤 어려움을 겪고 있는지 파악
- 데이터로 할 수 있는 일을 만들어서 진행하되 무조건 알고리즘 접근이 최상은 아니라는 방법을 제시할 수 있어야 함(간단한 방법부터 점진적 접근필요)
-
프로젝트 설계
- 문제 정의
- 최적화할 Metric 선택
- 데이터 수집, 레이블 확인
- 모델 개발
- 모델 예측 결과를 토대로 Error Analysis
- Error를 토대로 다시 모델 학습 또는 최신 데이터를 토대로 재학습
- 이런 과정의 반복으로 이루어져 있기 때문에 문제 정의 후 프로젝트 설계를 최대한 구체적으로 해야한다.
- 머신러닝 문제 타당성 확인(머신러닝이 사용되면 좋을지 안좋을지 확인)
- 큰 목표(Goal)와 세부 목표(Objectives) 및 지표 결정
- 제약 조건(개인정보, 레거시 환경 등) 확인
- 베이스라인 및 프로토타입 설계(voila, streamlit, gradio)
- Metric Evaluation, 모델의 성능 지표와 별개로 비즈니스 목표에 영향도 파악(모델의 성능 지표: RMSE, 비즈니스 지표: 매출 등)
-
Action
- 모델 개발 후 배포 및 모니터링
- 정의한 지표가 어떻게 변하는지 파악하기
- 잘못 예측이 되는게 있는지, 있다면 어떤 Feature와 연관이 있는지 파악
- 추가 원인 분석
- 새롭게 발견한 상황을 파악해 어떤 방식으로 문제를 해결할지 모색하고 위의 과정을 반복한다.
비즈니스 모델
현장에서 업무할 때 중요한 것이 무엇인지 알아야 한다. 회사에서 가장 중요한 것은 비즈니스라고 볼 수 있다. 회사는 비즈니스 모델을 만들고 이를 통해 매출이 발생하기 때문에 비즈니스의 이해도가 높을 수록 문제 정의를 잘 할 가능성이 높다.
- 회사의 비즈니스 파악하기
- Use case를 활용하여 접목하거나 활용할 수 있는지 파악하기
- 데이터를 활용할 수 있는 부분은 어디인가(Input)?
- 데이터로 무엇을 할 수 있을까?
- 데이터의 신뢰성, 정합성, 레이블 등 확인하기
- 무엇 보다 왜 해야하는가도 중요한 요소이다.
- 모델을 활용한다고 하면 예측의 결과가 어떻게 활용되는가(Output)?
- 수동으로 진행해야 하는 업무를 자동화
- 고객에게 바로 노출하여 더 좋은 가치를 제공하거나 매출증대
- 위와 같은 이점을 활용하여 비즈니스 모델을 활용할 수 있다.