본문 바로가기

DM ML AD

내맘대로 알고리즘의 분류

Remark.
이 글은 이해를 돕기 위한 지극히 개인적인 관점에 의해 작성한 것이므로 일반화하지 말기 바람
개별 알고리즘의 상세한 설명은 다른 텍스트북이나 리소스를 참조하기 바람

 

일반적으로 기계학습 알고리즘은 크게 Unsupervised (비지도) 학습과 Supervised (지도) 학습으로 나뉜다. 최근에는 여기에 Reinforcement (강화) 학습을 추가해서 3개고 분류하는 경향이 있다. 좀 더 깊이 들어가면 정답 데이터 (Y)를 얻기 힘든 현실을 반영해서 Unsupervised와 Supervised의 특성을 결합한 Semi-supervised 학습이 추가될 수 있다. 정답은 아니지만 바람직한 방향으로 가이드하는 Reinforcement도 Supervised의 일종으로 봐야 한다는 게 저 개인의 생각이지만, 일반적으로는 이 둘을 분리한다.

이렇게 분류해서 PCA나 클러스터링은 unsupervised에 속하고, classification이나 regression은 supervised에 속한다 식으로 결론을 지으면 뭔가 많이 허전하다. 기계학습을 매우 협소한 범위로 축약시킨 느낌이 강하다. 그래서 좀더 넓은 범위에서 그리고 조금 다른 시각에서 기계학습 알고리즘을 분류한다. 지극히 개인적인 관점이니 그냥 참조만 하고 다른 곳에 -- e.g., 면접이라든가 -- 가서 이 내용을 가지고 자신 있게 말하지는 말기 바란다.

대략 아래 그림과 같다.

  • Characteristic

    • 설명하기 다소 어려운데, 데이터에 내재한 특성을 파악하고 활용하는 거다. Supervised 방식도 가능하지만 기본적으로 주어진 데이터만으로 그 속의 규칙과 함의를 찾고 활용한다. 대표적으로 PCA가 이 카테고리에 속하는데, PCA는 데이터의 분포를 활용해서 차원을 축소하고 노이즈 데이터를 줄이는 방법이다. 많은 디멘전 축소 방식이나 이를 통한 시각화도 여기에 포함된다. 새로운 데이터가 주어졌을 때 가장 먼저 하는 EDA도 큰 틀에서 여기에 속한다고 볼 수 있다. 그리고 피쳐들 간의 규칙이나 샘플들 간의 규칙을 찾는 Association도 데이터의 특성을 파악 또는 활용하는 거라 볼 수 있다.

  • Grouping

    • 두번째도 Unsupervised에 속하는데, 흔히 클러스터링이라 불리는 군집화 단계다. 앞서 말한 Association은 군집화에 살짝 겹쳐있는 느낌^^ 어쨌든 단순히 데이터의 특성을 파악하는 것을 넘어서 유사한 (또는 관련성 높은) 데이터를 하나로 묶어준다.

  • Prediction

    • 예측부터는 정답 데이터 (Y)가 필요한 Supervised에 속한다. 예측 모델을 y = f(x)라 표시한다면 프리딕션은 주어진 x에 대해서 y값을 찾는 거다. 어떤 카테고리 또는 클래스에 속했느냐는 Classification이 되고, 순서가 있는 클래스가 매우 극한으로 세분화되면 어느 순간 실수 값 (클래스)를 예측하는 Regression이 된다. 그리고 앞서 언급했듯이 개인적으론 Reinforcement도 supervied prediction으로 본다 (일반적인 관점이 아니니 무시해도 좋다). 어쨌든 주어진 X에 대해서 결괏값 Y를 찾는 문제다.

  • Optimization

    • 예측 모델을 학습할 때 loss 함수의 최적/최소값을 찾는 optimization을 의미하지는 않는다. 프리딕션이 x에 대한 y를 찾는 문제라면, Optimization은 특정 y값을 얻기 위한 X를 찾는 과정이다. 즉, y = f(x) 모델을 이용해서 x = f-1(y)를 찾는 거다. Y = 0이 되는 X값은? 또는 f(x)가 최소가 되는 X값은? 과 같은 문제를 푸는 거다. 예를 들어, 20대 남성의 광고 A에 대한 CTR이 10%라는 것을 계산하는 것은 예측 문제이고, A 광고의 CTR이 15%가 되는 조건 (유저군)을 찾는 것이 최적화 과정이다. 실제 공장의 많은 프로세스들에는 예측을 넘어 최적화가 필요하다. 가장 대표적인 최적화 방식은 LP에서 Simplex method가 있고, 복잡한 문제에서는 Genetic Algorithm (GA)나 Simulated Annealing (SA)와 같은 Evolutionary 방식을 많이 사용한다. 그리고 예측모델을 바탕으로 한 Simulation도 최적 솔루션을 찾는 좋은 방법이다. 앞서 말한 GA나 SA도 결국 simulation을 순차적 (evolutionary)으로 적용한 거다.

  • Control

    • 마지막은 다소 기계학습과 거리가 있어 보이지만, 제어 Control가 마지막 최종 보스라 생각한다. Optimization을 통해서 최적 X값을 찾았다면 이걸 실제 문제에 적용해야 하는데, 이제 Control이다. 예측 모델 기반으로 예측하고 실행하고 피드백을 받아서 예측모델을 재학습해서 다시 예측, 실행, 피드백을 반복하는 Model Predictive Control (MPC)라는 개념도 알아두면 좋다.

이상의 구분은 지극히 개인적인 생각이다. 일반화하면 다소 위험할 수 있으니 그저 참고용으로만 사용하기 바란다. 하지만 군집화와 예측을 넘어 최적화와 제어를 고려하지 않고 기계학습/인공지능을 학습한다면 속된 표현으로 화장실에서 뒷처리를 제대로 하지 않고 바지를 올린 것과 별반 다르지 않다.

 

 

 

 

반응형