반응형

머신러닝(Machine Learning) 기본 개념(Basci Concept)

머신러닝은 주어진 데이터를 훈련시켜(training), 훈련된 지식을 기반으로 새로운 입력(test input)에 대해 적절한 답(test output)을 찾고자 하는 일련의 과정이라고 말할 수 있습니다. 

이때 훈련시키는 데이터가 질문(training input)과 정답(training output)이 모두 주어진 경우가 있고, 질문만 주어진 경우가 있습니다. 전자의 경우를 라벨링(Labeling)이 되어 있다고 말합니다.


1. 지도학습(Supervised Learning)

훈련 데이터에 라벨링이 되어 있는 경우. 

즉, 각 질문(input)에 대해 무엇이 정답(output)인지 훈련데이터가 알고 있는 경우입니다. 

예를 들면 (2, 4) -> (8), (4, 3) -> (12), 이런 식으로 훈련데이터가 주어져 있다는 것입니다.

ex) regression - (x,y)글의 데이터를 가지고 모함수 y=f(x)의 관계를 예측하는 방법

Classification - 각 그룹별 특징을 학습하여 새로운 데이터가 어느 그룹에 속해야 하는지 판단하는 방법


2. 비지도학습(Unsupervised Learning)

데이터만 잔뜩 주어집니다. 

즉 문제는 있는데 답은 없습니다. 

우리가 할 수 있는 건, 문제 유형 정도를 구분할 수 있겠습니다. 

이를 clustering이라고 합니다.  

ex) clustering - 어떠한 데이터끼리 군집으로 묶을 수 있는지 판단하는 방법

Dimension reduction - 독립적인 특징(축)들을 추출해 이를 중심으로 데이터를 압축하는 저차원으로 압축하는 방법


★ 요즘 비지도학습에 PCA(Principle Component Analysis, 주성분 분석) 알고리즘을 적용하고 딥러닝(Deep Learning)+오토엔코더(Autoencoder)로 확대되면서 인공지능 분야를 가장 핫한 분야가 되게 하였습니다.  이 부분은 나중에 정리해 보도록 하겠습니다.


3. 강화학습(Reinforcement Learning)

미리 정답이 주어져 있진 않고, 시행마다 잘한 정도를 보상(reward)하여 줍니다(이는 동물들이 학습하는 방법과 유사).

ex) 엘레베이터 스케쥴링, 컴퓨터 체스, 복잡한 로봇의 제어 등등


4. 그 외 : 일부만 라벨링이 되어 있는 경우도 있고, 정보가 점진적으로(incremental) 주어지는 경우도 있고, 데이터가 너무 많은 경우, 적은 경우 등 다양한 기계학습 문제가 존재합니다.



아래 그림은 scikit-learn(파이썬에서 많이 사용하고 있는 머신러닝 라이브러리) 관련 사이트에서 머신러닝 알고리즘을 한 눈에 볼 수 있도록 맵으로 제시하고 있습니다. 


머신 러닝에 대한 전체 윤곽을 그려볼 수 있어서 앞으로 머신러닝을 배워나가는 길잡이로 알고 있으면 좋습니다. 


원본 맵 보기(http://scikit-learn.org/stable/tutorial/machine_learning_map/)


반응형

+ Recent posts