머신러닝의 정의 및 분류

2022. 2. 7. 00:31전공공부/머신러닝

본 포스팅은 Andrew ng 교수님의 coursera machine learning 강의를 듣고 요약했습니다. 또한 참고자료로 핸즈온 머신러닝(오렐리앙 제롱)를 참고했습니다.

 

 

크게 2가지 정의를 설명하셨습니다.

Arthur Samuel의 정의는 'The field of study that gives computers the ability to learn without being explicitly programmed'.

 

하지만 현재는 Tom Mitchell의 정의를 따르고 있습니다. "A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.".

E 는 같은 게임을 수만 번 반복하는 과정 혹은 데이터

T 는 게임을 수행하는 행위

P 는 다음 판 게임에서 이길 확률을 뜻합니다.

 

즉 E를 토대로 T를 시키고 P를 개선시키는 행위를 뜻합니다. 

 

머신러닝은 알고리즘을 작성하는 기존 솔루션보다 빨리 그리고 정확한 솔루션입니다.

데이터를 통해 머신러닝 알고리즘을 훈련하고 솔루션을 평가하는 방식으로 계속해서 피드백을 주고받으며 모델을 개선해 나갑니다. 

 

머신러닝 시스템은 다양한 종류로 분리가 가능하나, 수업에서는 지도학습과 비지도학습으로 분류했습니다.


Supervised Learning (지도학습)

훈련 데이터에 정답이 있는 형태로 모델을 만들어 정답을 예측합니다.

정답을 크게 2가지로 구분해서 예측하는데 하나는 classification(분류), regression(불연속적 값)입니다. 

다양한 feature를 활용해서 다양한 알고리즘으로 문제를 해결합니다.

 

Unsupervised Learning(비지도학습)

데이터에 정답이 없는 형태로 학습하는 경우입니다.

그렇다보니 구조를 찾는 즉, clustering(군집)합니다. 

예를 들어 구글의 많고 다양한 뉴스에서 연관성 있는 뉴스끼리 짝짓는 경우를 생각해 볼 수 있습니다.

이외에도 이상치 탐치(outlier detection), 연관규칙학습(Association rule learning), 시각화, 차원축소 등이 있습니다. 

 

cf)

강화학습 : 환경을 관찰해서 행동을 실행하고 보상을 받는 모델(알파고)


Batch learning (배치 학습)

시스템이 점진적으로 학습 불가능합니다.

가용한 데이터를 모두 활용해 학습하다보니 시간을 많이 소모해 오프라인에서 수행됩니다.

 

Online learing

데이터를 순차적으로 한개 씩 또는 미니배치라 불리는 작은 묶음 단위로 주입해서 시스템을 훈련합니다.

점진적으로 학습을 수행하며 컴퓨팅 자원이 제한된 경우에서 좋은 선택입니다.