안녕하세요
오늘은 머신러닝이 어떠한 과정으로 진행되며 그 과정에서 중요한 개념에 대해 알아보도록 하겠습니다.
머신러닝은 말그대로 기계학습입니다. 정해지지 않은 알고리즘을 각각의 데이터들의 특징을 분석하여 하나의 형태로 표현하는 과정이라고 할 수 있습니다.
주요 개념은 4가지로 구성이 됩니다. '모델'-'손실함수'-'최적화'-'모델 평가' 이 4가지 개념 중 '모델'에 대해 알아보겠습니다.
머신러닝을 하기 위한 틀과 같은 개념으로, 데이터를 분석하기 위한 모델을 설정함으로써 보다 효율적으로 문제를 해결할 수 있습니다. 즉 모델을 가정하고, 수식화하여 표현하고, 모델을 통해 학습하고, 그 결과를 평가한 뒤 반복 과정을 통해 유의미한 패턴이나 결과를 도출해내는 과정을 머신러닝 과정이라고 볼 수 있습니다. 이 과정은 처음부터 정해져 있는 것이 아니기 때문에 많은 시행착오를 겪어 단계별로 접근해야 합니다.
모델을 가정할 경우 '간단한 모델', '복잡한 모델', '구조가 있는 모델'로 나눌 수 있습니다.
'간단한 모델'은 말 그대로 가정을 명확하게 하여 변수를 줄이는 모델입니다. 간단하고 쉽게 설정하여 결과값을 도출할 수 있다는 장점은 있지만, 제약 사항이 많기 때문에 복잡한 구조의 데이터를 분석할 수는 없습니다. 선형 모델 중 선형 회귀라는 대표 모델이 있습니다. 간단한 가정으로 간편하게 학습을 할 수 있는 모델입니다. 데이터의 변화보다 모델 자체의 변화가 더 적기 때문에 분산은 적다고 할 수 있습니다.
'복잡한 모델'은 여러가지 상황을 모두 고려하여 데이터에 대한 결과값을 유연하게 구성하는 모델입니다. 가정이 정해져 있지 않기 때문에 복잡한 데이터 분석도 가능하지만, 불필요한 노이즈까지 학습하여 그 결과값을 이해하기 어렵거나 성능이 떨어질 수 있습니다.
'구조가 있는 모델'은 입력과 출력의 관계뿐 아니라 구조 자체를 모델링하는 형태를 말합니다. 순차 모델, 그래프 모델 등이 있습니다. 순차 모델의 대표적인 예로는 CRF(조건부 랜덤 필드, 조건부 무작위장), RNN(순환 신경망, 재귀 신경망)이 있습니다. 특징은 특정 시점의 상태를 저장하고 각 시점의 입력,출력에 따라 변화한다는 점입니다. 그래프 모델은 그래프를 이용해서 모델링을 합니다. 대표적으로 마르코프 랜덤 필드(MRF)가 있습니다. 그래프 모델은 순차 모델보다 더 복잡한 관계를 표현할 수 있습니다.
모델은 '데이터의 패턴을 잘 학습한 모델'이 잘 만들어진 모델일 것입니다.
모델의 복잡도와 표현력에 대한 균형을 다루는 방법에는 '편향-분산 트레이드오프'와 균형을 자동 학습하게 하는 '정규화'가 있습니다.
편향은 데이터와 머신러닝 예측값 간의 거리로 떨어질수록 편향이 크다, 붙어 있을수록 편향이 작다라고 볼 수 있습니다. 분산은 예측값들끼리의 거리입니다. 데이터에 대한 예측값이 서로 떨어져 있다면 편향은 작을 수 있지만 분산은 클 수 있습니다.
편향을 줄일 수 있는 방법으로 '부스팅'과 분산을 줄일 수 있는 방법으로 '랜덤 포레스트'가 있습니다.
즉, 좋은 모델이란 데이터의 예측값을 잘 표현하여 크게 벗어나지 않고(편향을 줄이고) 유연하게 반영하면서, 너무 복잡한 구조가 아니어서 결과를 도출할 수 있는(분산이 작다) 모델입니다.
'정규화'는 모델이 더 복잡해지는 것을 조절하는 방법입니다. 모델 변경을 통해 덜 복잡한 새로운 모델로 전환하는 방법과 모델 안의 인자에 제한을 주어 복잡도를 낮추는 방법이 있습니다. 모델이 너무 복잡해질 경우 학습 능력은 좋아질 수 있으나, 실제 사용할 때에는 시간이 오래 걸리거나 노이즈까지 포함하여 학습하는 등 성능을 떨어트릴 수 있습니다.
머신러닝은 데이터의 양이 많고 적고에 따라, 그리고 모델의 구조가 간단한지, 복잡한지에 따라 그 결과값은 다르게 나옵니다. 데이터 특징을 고려하여 적절한 모델 선정과 수식 함수, 그리고 반복 학습을 통해 올바르게 데이터의 패턴을 학습한 결과값을 도출하는 것이 중요합니다. 순차모델과 그래프 모델의 예시는 많으나 기본 개념은 여러 모델을 통해 데이터 패턴을 잘 설명할 수 있는 모델을 설정하는 것입니다. 그리고 좋은 모델을 만들기 위해서는 데이터와 예측값이 큰 차이가 나지 않도록 편향-분산 트레이드오프, 정규화 등 그리고 그 과정에서 설명된 부스팅, 랜덤 포레스트, 모델변경, 정규화 등의 과정을 거쳐야 한다는 것입니다. 이 과정에서 컴퓨터 과학 및 수리통계학적 개념이 많이 활용되고 있습니다.
각각의 자세한 개념은 지속적으로 포스팅하도록 하겠습니다.
다음에는 머신러닝 과정 중 데이터와 예측값의 차이를 표현하는 손실함수에 대해 알아보겠습니다.
감사합니다.
'머신러닝' 카테고리의 다른 글
[머신러닝 입문]머신러닝 주요 개념-모델 평가 (0) | 2020.03.29 |
---|---|
[머신러닝 입문]머신러닝의 주요 개념 - 최적화 (0) | 2020.03.28 |
[머신러닝 입문]머신러닝 주요 개념 : 손실함수 (0) | 2020.03.27 |
[머신러닝 입문]머신러닝의 관점과 기법 (0) | 2020.03.24 |
[머신러닝 입문]처음 배우는 머신러닝 입문자를 위한 정보 (0) | 2020.03.22 |