먼저 주어진 문제를 정의 해야 합니다.
1) 입력 데이터는 무엇인가요? 어떤 것을 예측하려고 하나요? 가용한 휸련 데이터가 있어야 어떤 것을 예측하도록 학습할 수 있습니다. 예를 들어 영화 리뷰와 감성 레이블이 태깅되어 있어야 영화 리뷰의 감성 분류를 학습할 수 있습니다. 이런 식으로 보통 가용데이터의 유무는 이 단계에서 제한 요소가 됩니다(데이터를 수집할 비용이 없다면).
2) 당면한 문제가 어떤 종류인가요? 이진 분류인가요? 다중 분류인가요? 스칼라 회귀인가요? 베터 회귀인가요? 다중 레이블 다중 분류인가요? 아니면 군집, 생성 또는 강화 학습 같은 다른 문제 인가요? 문제의 유형을 식별하면 모델의 구조와 손실 함수등을 선택하는 데 도움이 됩니다.
입력과 출력이 무엇인지와 어떤 데이터를 사용할 것인지 알기 전까지는 다음 단계로 넘어갈 수 없습니다. 이 단계에서 가설을 세워야 합니다.
3) 주어진 입력으로 출력을 예측할 수 있다고 가설을 세웁니다.
4) 가용한 데이터에 입력과 출력 사이의 관계를 학습하는 데 충분한 정보가 있다고 4가설을 세웁니다.
모델이 작동하기 전까지 이는 가설에 불과합니다. 검증될지 아닐지 기다려 보아야 합니다. 모든 문제가 해결되지는 않습니다. 입력 X와 타깃 Y의 샘플을 수집했다고 X에 Y를 예측하기에 충분한 정보가 있는것은 아닙니다. 예를 들어 주식 시장의 최근 가격 변공 정보를 가지고 주가를 예측한다면 실패할 가능성이 높ㅊ습니다. 과거 가격 정보에는 예측에 활용할 정보가 많지 않기 때문입니다.
풀기 어려운 종류의 문제는 시간에 따라 변하는 문제(nonstationary problem)입니다. 옷을 위한 추천 엔진을 구축한다고 가정합시다. 한 달치(8월)의 데이터로 훈련하고 겨율에 이 추천 엔진을 사용하려고 합니다. 여기서 문제는 사람들이 계정에 따라 구매하려는 옷의 종류가 바뀐다는 것입니다. 의류 구매는 몇 달에 걸쳐 보면 시간에 따라 바뀌어 유동적입니다. 시간에 따라 모델을 바꾸기 위해 어떻게 해야 할까요? 이런 경우에 최근의 데이터로 주기적으로 모델을 다시 훈련하거나 시간 분포에 맞게 데이터를 수집하여 시간에 따라 변하지 않는 무넺로 바꿉니다. 의류 구매처럼 순환성이 있는 문제는 몇 년치의 데이터를 모으면 결정릐 변활르 감지하는 데 충분할 것입니다. 1년 중 언제인지 기록한 시간도 메델에 입력해야 한다는 것을 잊지 마세요!
머신 러닝은 훈련 데이터에 있는 패턴을 기억하기 위해서만 사용한다는 것을 유념하세요. 이미 보았던 것만 인식할 수 있습니다. 미래를 예ㅖ측하기 위해 과거 데이터에서 훈련한 머신러닝을 사용하는 것은 미래가 과거처럼 움직인다고 가정한 것입니다. 사실 대부분 그렇지는 않습니다.
댓글 없음:
댓글 쓰기