Machine Learning

머신러닝 프로젝트 개발 과정 - 0. 문제 정의

BEOKS 2020. 2. 18. 22:36

1. 비즈니스 목적 정의

첫 번째로 생각해야 할 것은 완성된 시스템의 비즈니스 목적이 무엇인지 알아야 합니다.

목적에 따라서 문제를 어떻게 구상할지, 어떤 알고리즘을 선택하고 어떤 성능지표를 사용할지 결정할 수 있기 때문입니다.

 

예를 들어 캘리포니아 구역의 데이터(인구수, 위치, 중간소득 등)를 받아서 해당 구역의 주택 가격을 예측하는 프로그램을 작성한다고 생각해봅시다. 

 

참조 https://tensorflow.blog/

 

파이프라인이란?
데이터 처리 컴포넌트(하나의 시스템)들이 연속되어 있는 것을 데이터 파이프라인이라고 합니다.
각각의 컴포넌트들을 결괏값을 도출하는데 소비되는 시간이 다릅니다. 따라서 각 컴포넌트는 비동기적으로 작동하게 되는데 이를 해결하기 위해서 파이프 라인을 사용합니다.
각 컴포넌트 사이에는 컴포넌트들의 결과값을 출력하여 DB에 저장하고 저장된 데이터는 다음, 하위 컴포넌트의 연산이 끝나기를 기다렸다가 이용되어 비동기적으로 작동하는 컴포넌트들을 연속적으로 이어 데이터를 처리할 수 있습니다.

2. 현재 설루션 파악

현재 설루션을 파악하는 것은 시스템의 해결방법은 물론 참고 성능으로도 확인할 수 있습니다.

예를 들어 현재 시스템은 주택 구역을 전문가들이 각각 데이터를 참고하여 수동으로 예측하고 있다고 합시다. 전문가들이 예측에 사용하는 방법은 시스템을 구상하는 토대가 될 수 있으며 추후 시스템을 설계하고 나온 결과물들과 기존 설루션의 결과물을 비교해서 성능을 참고할 수 있습니다.

3. 시스템 구성 결정

시스템에 사용될 학습 종류, 알고리즘 등을 결정할 시간입니다.

여기서 지도, 비지도, 배치, 온라인 등을 시스템을 구현하기 위한 세세한 구성을 작성할 시간입니다.

위 예시에서 주택 가격을 예측하는데 주어지는 데이터들은 샘플(위치, 인구수, 중간소득 등)과 레이블(주택가격)으로 이루어져있습니다. 따라서 이는 전형적인 지도 학습입니다. 또한 예측값으로 주택가격을 도출해야 하기 때문에 회귀(regression) 문제에 해당합니다. 마지막으로 샘플이 일차원이 아니라 다차원이기 때문에 다변량 회귀 (multivariate regression)에 해당합니다. 주택 가격은 시시각각 변하므로 갱신율이 높으므로 온라인 학습을 선택하도록 합니다.

4. 성능 측정 지표 선택

위에서 다변량 회귀를 선택하도록 했으므로 이번에는 성능 측정 지표를 정의해봅시다.

 

전형적인 성능 지표로는 RMSE( Root Mean Square Error )를 선택할 수 있습니다.

참조 https://tensorflow.blog/

아 RMSE는 매우 자주 사용되는 성능 지표이지만 데이터의 이상치에 따라서 다른 성능 지표를 사용할 수 있습니다.

MAE(평균 절대 오차)는 RMSE가 norm2를 사용하는데 반해 norm1을 사용하기 때문에 결괏값과 이상치 차이 값에 많이 구애받지 않기 때문에 RMSE보다 학습률은 느릴 수 있지만 이상치 데이터로 인한 정확도 감소를 회피할 수 있습니다.

5. 가정 검사

마지막으로 지금까지 만든 가정을 나열하고 검사하는 것이 좋습니다.

지금까지 정의했던 시스템 구상에서 심각한 문제가 발견될 수 있습니다. 예를 들어서 하위 컴포넌트에 넘겨줄 데이터가 사실은 주택 가격이 아니라 저가, 보통, 고가 3가지 중 하나로 결정하여 넘겨준다면 이는 분류(Clustering) 문제로서 만약 시스템 구축까지 마친 상태였다면 지금까지 다변량 회귀로 설계했던 시스템이 무용지물이 되는 꼴이 됩니다. 

 

위 내용은 Hands on Machine Learning with Sikit-learn & Tensor Flow를 바탕으로 작성되었습니다.