
문제 정의 중요성
- 문제 정의 : 특정 현상을 파악하고, 현상의 이유가 되는 문제(Problem)을 정의하는 과정
- 문제를 "명확히" 정의해야 풀기도 쉬워짐
- 해결해야 하는 문제는 무엇이고 문제를 해결할 방법과 해결이 가져다 주는 이익을 생각하는 과정
ML Project 흐름
1. 현상 파악
2. 구체적인 문제 정의
- 앞선 현상을 구체적이고 명확한 요어로 정리해보기
- 가지고 있는 Data를 확인해보거나 필요한 Data를 수집하여 현재 상황에 대한 이유를 파악
- 룰 베이스 : 설명을 늘리는 방식. 당장의 문제를 해결할 수 있는 방버
- 추천 : 알고리즘 개발
- 문제를 쪼개서 파악
해결 방식 중 데이터로 해결할 수 있는 방법 고민
점진적으로 수행
3. 프로젝트 설계
- 문제 정의를 확실히 하고, 프로젝트 설계를 최대한 구체적으로 하는 것이 좋음
- 머신러닝 문제 타당성 확인
- 제품, 회사의 비즈니스에 어떤 가치를 줄 수 있는지 고려
- 머신러닝이 사용되면 좋은 경우
- 학습할 수 있는 패턴이 존재하는 경우(학습을 위한 목적 함수를 만들 수 있어야 함)
- 패턴이 복잡해야함(데이터가 존재하거나, 수집 가능해야 함),
- 목표 설정
- Goal : 프로젝트의 일반 목적, 큰 목적
- Objectives를 통해 최종적으로 얻고 싶은 목적
- Objectives : 목적을 달성하기 위한 세부 단계의 목표. 구체적인 목적
- Data 종류
- Label을 가진 Data : 바로 사용
- 유사 Label을 가진 데이터 : 선호도나 내가 원하는 정보를 예측하는 데 도움이 주는 Data
- Label이 없는 데이터: Labeling을 고민하거나 Label이 없는 상태에서 학습하는 방법 찾기
- 데이터셋을 만든느 일은 반복적이고 어려운 작업
- Self supervised Learning등을 사용해서 유사 Label을 만들어 사용하기도 함
- Multiple Objective Optimization
- 제약 조건
- 일정, 예산, 인원, privacy, 기술 및 윤리적 제약 등
- 모델이 좋아졌다고 판단할 수 있는 BaseLine 필요
- Voila, Streamlit, Gradio 등을 활용하여 프로토타입을 생성
- Metric Evaluatoin : 앞선 문제를 해결할 경우 (현재 상황의 문제 중) 어떤 지표가 좋아질지를 고민
- Docker, MLFlow, Linux에 대해서도 설명해 주셨지만 내가 생각할 때는 이 부분은 많이 중요한 것 같다. 솔직히 1시간 강의에 모든 내용을 담기에는 어려운 부분이라고 생각한다
- 따로 파트를 파서 공부를 수행하자!