from : 헬로, 데이터 과학 p.214 ~ p.217
지금까지 기계학습의 기본 개념을 살펴보았다. 이제 주어진 문세에 대해 기계학습 기법을 적용한는 과정을 알아보자. 기계학습 절차
기계학습의 첫 번째 단계는 학습기법을 결정하는 것이다. 학습 기법 결정하기
학습기법은 다음 2개를 통칭
- 학습대상을 표현하는 학습 모델
- 데이터를 바탕으로 모델을 만드는 학습 알고리즘
-
주어진 문제의 특성 : 학습 기법 결정에는 우선 주어진 문제의 다양한 특성을 고려해야한다.
- 만약 이미 주어진 정답을 맞추는 알고리즘을 원한다면 지도학습 기법(supervised learning)
- 데이터에 내재된 패턴을 찾기 원한다면 자율학습 기법(unsupervised learning)
- 만약 이미 주어진 정답을 맞추는 알고리즘을 원한다면 지도학습 기법(supervised learning)
-
주어진 데이터의 특성 : 학습 기법의 큰 방향은 주어진 문제의 특성에 따라 정해지지만, 구체적인 모델과 알고리즘의 선택은 주어진 데이터의 특성에 따라서 결정되어야 한다. 예를 들어 주어진 데이터가 많을 때 사용하는 학습 모델과 적을 때 사용하는 학습 모델은 다르다. 데이터가 적으면 단순한 모델만 학습할 수 있는 반면에, 데이터가 많으면 복잡한 모델을 학습할 수 있기 때문이다. 학습 알고리즘의 경우에도 그 종류에 따라 성능이 큰 편차를 보인다.
- 학습된 모델의 용도 : 학습 모델 결정의 마지막 기준은 학습된 모델이 사용될 용도다. 학습 모델의 용도는 크게
- 학습된 모델 자체에 관심을 갖는 경우: 이를 통해 주어진문제에 대한 더 나은 이해에 도달하려는 경우
- 학습 결과에 관심을 갖는 경우: 학습 모델을 현실적인 문제 해결에 활용하려는 경우
- 선형 모델 / 의사결정트리 모델 : 학습된 모델의 해석에 유리
- 신경망 / 앙상블
사용할 모델을 결정했다면 실제로 학습 모델을 만들어야 한다. 학습 모델을 만든다는 것은 결국 주어진 데이터와 학습 일고리즘에 기반하여 최저의 예측 결과를 낼 수 있는 매개변수를 결정하는 과정이다. 실제 학습은 알고리즘에 의해 이루이지지만 이 과정에는 다양한 고려사항이 존재한다. 학습 모델 만들기
- 학습 및 평가를 위한 데이터 나누기 : 기계학습을 위해 주어진 데이터를 모두 모델을 만드는 데 사용할 수 있는 것은 아니다. 학습 과정이 제대로 이루어졌는지를 확인하고, 사용 목적에 맞는 성능을 갖추었는지를 검정하기 위해서는 일단 만들어진 알고리즘을 제대로 평가해야 하고, 이를 위해서는 학습에 사용되지 않은 별도의 데이터가 필요하기 때문이다. 따라서 1000이라는 양의 데이터가 주어졌다면 그중 통상적으로 50~70을 학습에, 30~50을 평가에 사용하는 것이 일반적이다.
하지만 제대로 된 학습 및 평가를 하기에 주어진 데이터가 부족한 경우가 많다. 교차검정은 이럴 때 활용할 수 있는 기법으로, 주어진 데이터를 n개의 그룹으로 나누고, 그중 처음 n-1 개의 그룹을 사용하여 모델을 만들고 마지막 한 개의 그룹을 가지고 모델을 평가한다. 평가에 사용되는 데이터를 바꿔가면서 이를 n번 반복하면 전체 데이터에 대한 평가결과를 얻을 수 있다. 이렇게 하면 데이터의 모든 부분이 학습 및 평가 용도로 사용되므로, 주어진 데이터를 최대한 활용할 수 있는 방식이다.
- 모델 만들기 : 일단 데이터를 나누었다면 모델을 만들어야 한다. 이 과정에서는 위에서 만든 학습용 데이터가 활용된다. 최근에는 다양한 라이브러리 및 툴킷이 나와 있어 모델을 직접 구현하는 경우는 많지 않지만, 현업에서 요구되는 성능 및 유지보수의 편의성을 위해 직접 구현하는 경우도 있다. 모델의 종류에 따라 추가적인 설정값이 존재하는데, 이는 문제 및 데이터의 특성에 따라 적절히 결정한다.
- 모델 성능 : 마지막으로 학습된 모델 성능은 평가용 데이터를 활용하여 알아볼 수 있다. 문제 유형에 따라 다양한 평가 지표가 존재하는데, 회귀 기법 평가에는 예측값과 실제값의 차이를 제곱하여 평균한 RMSE(Root Mean Squared Error)가 가장 많이 쓰이고, 분류 기법의 평가에는 전체 데이터 가운데 올바로 분류된 항목의 비율을 나타내는 정확도(Accuracy)를 주로 사용한다.
댓글 없음:
댓글 쓰기