한 페이지 머신러닝

머신러닝 모델의 종류 (학습 방식에 따른 분류)

우리는 사람 대신 결정 (decision)을 해주는 기계를 만드는 중입니다.
딥러닝 붐이 일면서, 머신러닝에 곧 딥러닝이 전부인 것처럼 보여지기도 하는데요.
딥러닝 외에도 매우 다양한 종류의 머신러닝 모델이 있습니다. 
이번 시간에는 그 다양한 모습을 개괄해보도록 하겠습니다.
모델이 어떤 식으로 학습을 하는지에 초점을 두어 구분을 해 보려고 합니다.

우리의 기계 M은, 기본적으로 의사결정 (decision making)을 합니다.
1)사람이 제공해주는 데이터셋을 받아서
2)학습을 한 다음
3)본적이 없는 데이터 포인트에 대하여 결정을 내립니다.

머신러닝 모델을 만드는 데는 그래서 항상 어떤 가정 (assumption)이 뒷받침되는데요.
학습하는 데이터가 어떤 환경 또는 공간 (space)에서 발생한 것인지에 대한 가정입니다.
그림 아래부분의 보라색 사각형들입니다.
i.i.d.는  independent and identically distributed의 줄임말로,
학습하려는 데이터 점들끼리 서로 아무 관련이 없고 (independent)
한곳에 몰려있거나 하지 않고 균일하게 (identically) 
분포되어 있다(distributed)라는 뜻입니다.
이것은 실제 사람의 상황과는 너무나 동떨어져 있는 가정이지요.
모든 인과관계가 복잡하게 뒤엉켜 있고, (dependent)
80%의 부를 20%의 인구가 차지하는가 하면, (not identical)
명백하게 인위적으로 어떤 사건을 일으키기도 합니다. (not distributed)
그러나 실제와 동떨어졌더라도 강력한 가정을 두는 것으로,
수학적인 표현이 좀더 깔끔하고 수월해지는 장점이 있습니다. 물론 계산도요. 

i.i.d.상황 외에도 데이터는 다양한 상황에서 발생할 수 있습니다.
확률변수끼리 순서대로 분포되어있다는 가정이나 (successively dependent)
하나 두개 세개 셀 수있는게 (discrete) 아니라 연속적으로 분포되어있다는 가정이나 (continuous)
어떤 주인공(agent)이 환경으로부터 영향을 받고 환경에도 거꾸로 영향을 준다는 가정이나
변수들이 서로 계층(hierarchy)을 이루고 있다는 가정 등
실제 상황을 표현하는데 가장 근접한 수학적인 모델이 무엇인지를 잘 살펴서,
이로부터 데이터 셋이 발생했다는 근거로 사용합니다.

그래서 일단 데이터셋을 손에 넣으면,
그 데이터셋이 어느 상황에서 나왔다고 보는 것이 가장 그럼직 한지를 사람이 먼저 판단을 해 주어야,
그에 따라서 적합한 머신러닝 방법을 선택할 수가 있습니다.

머신러닝 모델은 모델의 구조에 따라 크게 세 가지로 분류해볼 수가 있는데요,
첫째는 parametric 모델입니다. 
둘째는 semi-parametric 모델이고요.
셋째는 non-parametric 모델입니다.
잘 알려진 인공신경망 혹은 딥러닝이라고 하는 것은, 여러가지 parametric 모델중 하나입니다.

parametric모델은,
위에서 살펴본 가정에 따라서 사람이 적합한 구조의 모델을 선택한 후에,
데이터셋을 집어넣어서 그 모델에 들어있는 파라미터(parameter)를 튜닝하는 방식으로 학습을 합니다.
그래서 찾아낸 최적의 파라미터는, theta 위에 세모 모자를 씌워놓은 변수로 표시해줍니다.
그래서 본적없는 데이터 (unknown datapoints) x를 어느 곳으로 보내야 할지 확률적으로 p(x|C) 결정을 합니다.

non parametric모델을 살펴보면,
여기서는 파라미터를 추정하거나 교정하는 식으로 동작하지 않습니다. 
데이터가 스스로 말하게 한다 (dataset speaks itself)는 것인데,
단순하게 보자면 히스토그램 을 사용한다고 말할 수 있습니다.
데이터의 분포를 표현해놓고, 비슷한 입력에는 비슷한 출력을 내놓는다는 방침만 세우는 것이죠.

마지막으로 semi-parametric모델을 보면,
여러 모양의 국소적인 (local) 확률밀도 (density)를 중첩해서 통합된 확률밀도함수를 구합니다.
non-parametric모델과 parametric모델의 중간 형태라고 볼 수 있습니다.

각 모델의 상세한 내용은 차차 다루기로 하고요..
parametric 모델은, 설계하는 사람이 모델의 형태를 강제로 고정해놓고 파라미터만 배우도록 한다는 점에서
유연성(flexibility)이 적고, 따라서 bias가 비교적 크게 나타납니다.
bias란... 한국어로 '치우침'이라고 할까요.
사격에서 총을 여러발 쏘았을 때, 탄착군이 전반적으로 치우치는 형상을 떠올리시면 되겠습니다.

non-parametric모델은, 설계자가 모델에 개입하는 정도가 적고, 데이터를 거의 있는 그대로 사용한다는 점에서
서로 다른 데이터에 대해서 유연하게 사용할 수 있고, bias 정도도 적다는 특징이 있습니다.
유연하니->범용적이고->그래서 뭔가 좋은 것처럼 보이지만 그러나 반드시 좋기만 한 것은 아닌데,
모델의 결과가 모델의 구조보다 데이터에 더욱 예민하게 반응한다는 뜻이니까요. 
데이터가 수시로 바뀜에 따라서 내놓는 결과도 수시로 바뀐다, 즉 분산(variance)이 일관되지 않다는 말이 됩니다.

어느 모델을 사용하든 정답이라고 할 수는 없고,
상황에 따라서, 또 가정에 따라서, 여러 모델을 반복적으로 실행해보고 그 중에 최적의 모델을 탐색하는 것은
여전히 사람의 몫입니다.



 

댓글

댓글 본문