개요
머신러닝(Machine Learning)이란 무엇일까요? 또한 흔히 우리가 일컫는 인공지능, 머신러닝, 딥러닝은 무엇일까요?
인공지능은 컴퓨터 시스템을 통해 인간의 지능이 갖는 기능을 가진 것을 말합니다. 머신러닝은 이러한 인공지능을 구현하는 것 방법 중 하나입니다. 딥러닝은 머신러닝 내에서 사용하는 기술입니다. 이러한 개념을 알아둔 상태로 오늘은 머신러닝에 대해서 알아보도록 하겠습니다.
머신러닝의 분류
머신러닝을 공부하면 다양한 모델과 학습 방법을 알게 될텐데요, 이 학습 방법을 크게 분류하면 총 3가지로 나눌 수 있습니다. Supervised Learning, Unsupervised Learning, Reinforcement Learning 입니다.
1. Supervised learning (지도학습)
완전 지도 학습이라고도 합니다. 목표값이 제시된 데이터가 학습 데이터로 제공됩니다. 이 Supervised Learning으로 해결할 수 있는 것으로는 Classification, Regression이 있습니다.
(1) Classification(분류)
데이터를 label에 따라 나누는 방법입니다.
- Binary classification(예/아니오)
- multi label classification(개/고양이/소..)
(2) Regression
feature을 토대로 값을 측정합니다. 결과는 연속된 그래프로 나옵니다.
- 주식 값 예측
이 Supervised Learning은 목표값이 제시된 데이터가 얼만큼 제공되었느냐에 따라 또 나눌 수 있습니다. Fully Supervised Learning, Weakly Supervised Learning, Semi Supervised Learning이 있습니다.
Fully Supervised Learning (완전지도학습)
학습 데이터 전체에 label이 달려 있을 때 사용 가능한 학습 방법입니다.
Weakly supervised Learning (약지도학습)
Bootstrapping, self-training이라고도 합니다. 실제 Fully Supervised Learning과 비교하여 학습 시에 사용하는 GT Label과 Test 시에 비교하는 GT Label이 다르다는 특징이 있습니다. 이 방법은 train Label을 생성하는 데 드는 cost가 적어진다는 장점이 있습니다. 이 학습법은 크게 두가지 방법로 나뉩니다.
한 방법은, 학습 데이터 대비 적은 수의 labeled 데이터로 classifier를 학습합니다. 그리고 Unlabeled data를 그 classifier에 통과시켜 label을 붙이고, 다시 train을 수행합니다. 이 과정을 계속 반복하면서 classifier를 더 정교하게 학습합니다. positive example 예측이 잘못된 경우가 많으면, classifier가 더 나빠질 수 있다는 문제점이 있습니다
또 하나의 방법은, 기존의 Fully supervised learning 때 사용하는 학습 데이터 라벨보다 부족한 정보를 가지는 라벨만을 가지고, 더 많은 정보를 갖는 라벨을 생성하는 방법입니다. 학습 과정에 원래의 라벨을 생성하는 것이 아닌, 학습 때 생성한 가중치를 이용해 테스트할 때만 생성하게 됩니다. Temporal Actioin Localization, Segmentation 등에 사용됩니다.
Semi Supervised Learning (준지도학습)
Label이 있는 데이터와 Label이 없는 데이터(unlabeled)를 같이 사용하는 학습 방법입니다.
2. Unsupervised learning (비지도학습)
비지도학습이라고도 합니다. 목표값이 제시되지 않은 데이터가 학습 데이터로 주어집니다. 데이터의 숨겨진 특징(Hidden feature)이나 구조를 발견하는 데에 사용됩니다. Label이 없는 데이터만 가지고 학습하기 때문에, 모델이 잘 학습되었는지 판단하기 어렵습니다.
(1) Clustering(군집화)
Label이 주어지지 않은 데이터를 일정한 개수의 cluster(군집)으로 모으는 방법입니다.
(2) Autoencoder
데이터를 내부 표현으로 바꾸는 Encoder, 내부 표현을 데이터로 바꾸는 Decoder로 구성된 모델입니다. 내부 표현을 인코딩된 값으로 활용 가능합니다
3. Reinforcement learning
Unsupervised learning의 일부라고도 할 수 있습니다. 어떤 state에서 action을 취하고 reward를 받아 점차 효율적인 방식으로 행동을 강화합니다.
- Q-learning
- DQN (Deep-Q-Network) : 딥러닝과 결합된 Q-learning.