Data Science/AI

[정리] 머신러닝이란 무엇인가? 머신러닝의 종류, 활용법 (핸즈온 머신러닝 챕터 1 : 사이킷런과 텐서플로를 활용한 머신러닝, 딥러닝)

토마토. 2021. 7. 15. 10:51

머신러닝 machine learning

머신러닝은 AI artificial intelligence의 한 분야이다.

machine이 learn한다는 머신러닝의 의미처럼

머신러닝은 '데이터을 통해 프로그램이 학습하는 컴퓨터 알고리즘'을 연구하는 분야다. 

프로그램이 수행하기를 원하는 기능은 'training task'

성능 평가는 'acurracy'

학습을 위해 주어지는 데이터는 'training data', 'training set'이라고 한다.

 

머신러닝의 예시

머신러닝은

알고리즘이 밝혀지지 않았거나, 

경우를 일일이 기술하기에는 너무 복잡한 경우에

유용하게 사용된다. 

 

예를 들면, 

추천 서비스

음성 인식

OCR 문자 인식

등이 있다.

 

머신러닝의 구분

머신러닝은 몇 가지 기준으로 분류될 수 있다. 

 

Q1. 데이터에 label이 있는가?

supervised learning

unsupervised learning

semisupervised

reinforcement learning

 

Q2. 프로그램이 점진적으로 개선될 수 있는가?

online learning

batch learning

 

Q3. 무엇을 참고하여 알고리즘을 구성하는가?

 instance-based learning

model-based learning

 

각 경우를 더 자세히 살펴보자. 

type 1.

supervised learning

supervised learning은 training 데이터가 'label'을 포함하고 있는 경우를 말한다. 

label은 사진을 사과라고 분류하는 것과 같은 정답을 말한다.

 

사용되는 경우

classification

regression

linear regression

logistic regression etc

 

unsupervised learning

supervised learning과 달리,

unsupervised learning의 training data에는 label이 없다.

 

사용되는 경우

clustering

visualization, dimensionality reduction

association rule learning 등

 

semisupervised

모든 데이터에 label을 다는 대신, 

한 종류의 데이터에 하나의 label을 연결하게 된다. 

예를 들면, '토마토', '강아지' 등의 정답을 하나씩 주는 식이다.

 

reinforcement learning

reinforcement learning은 최적의 전략을 찾는 것과 연관이 있다.

agent는 상황을 파악하고, 특정한 행동을 취하는 것을 반복한다.

agent가 행동을 하고 나면 reward나 penalty를 받고,

이를 통해 policy(행동 전략)을 발전시키게 된다.

 

예시

알파고가 reinforcement learning의 결과라고 한다. 

 

type 2.

batch learning

batch learning은 offline learning이라고도 불린다.

batch learning의 특징은 한 번에 모든 데이터를 학습시켜야 한다는 것이다.

한번 학습하고 나면, 추가적인 데이터 없이도 작동할 수 있다.

컴퓨터 메모리와 성능을 잡아먹는다는 단점이 있다.

 

online learning

online learning은 incremental learning을 할 수 있다.

mini-batch라고 불리는 작은 데이터를 학습시키면서

프로그램을 발전시키는 것이다.

 

이때 얼마나 빨리 데이터에 적응하는가를 의미하는

learning rate로 알고리즘을 평가한다.

 

type 3.

머신러닝의 궁극적인 목적은

데이터를 통해 학습한 내용을 새로운 경우에 적용하는 것이다.

어떤 기준으로 새로운 경우를 판단하느냐에 따라

instance-based learning / model-based learning

으로 구분된다.

 

instance-based learning

instance 개별 요소를 가지고 판단한다.

예를 들면, similarity가 있다. 

 

model-based learning

model을 사용하여 예측한다. 모델에는 linear model 등이 있다.

 

main challenges of machine learning

machine learning이 겪는 문제는주로 bad data와 관련이 있다.

data의 질적인 / 양적인 부족

data의 대표성 문제 등이 data와 관련한 약점이고,

 

알고리즘에 관하여서는

overfitting / underfitting

문제를 들 수 있다.

 

<testing and validating>

training set과 test set으로 구분한다.

 

 

<참고>

Geron, Aurelien. (2019). Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow. Sebastopol: O'Reilly Media, Incorporated.