Machine Learning

머신러닝 시스템의 종류( 지도, 비지도, 준지도, 강화, 배치/온라인, 사례/모델기반)

BEOKS 2020. 2. 15. 23:27

지도학습(supervised learning)

정의

머신러닝을 통해서 프로그램을 만들기 위해서 데이터의 샘플과 레이블(부가정보)을 주어 학습시키는 것을 의미합니다.

레이블을 쉽게 설명하자면 샘플의 부가정보이자 추후 새로운 데이터에서 알아내고 싶은 목표치입니다. 예를 들어 신발 매장에 가면 신발들(샘플)에는 가격표(레이블)가 하나씩 달려있는 것처럼 말이죠. 레이블에는 가격뿐만 아니라 신발의 사이즈, 바코드 등이 적혀있듯이 하나의 샘플에도 여러개의 레이블을 표시할 수 있습니다.

지도학습의 목표는 수많은 샘플&레이블 정보를 머신러닝 모델에 학습시켜 추후, 모델에 새로운 샘플 데이터가 들어왔을 때 레이블 정보를 예측하는 것입니다.

위와 똑같이 신발을 통해서 예시를 들자면 사람(머신러닝 모델)에게 수많은 샘플(신발)&레이블(가격)을 알려주어 사람이 샘플과 레이블의 연관성을 학습하도록 한 다음 새로운 신발을 보여주어 가격을 예측할 수 있도록 하는것입니다.

 

모델 종류

1. 분류 ( classification )

위 정의를 통해서 학습된 모델을 새로운 데이터를 구분(분류)할 수 있습니다.

예를 들어 스팸메일을 구분하고 싶을 경우 샘플에는 메일의 내용 레이블은 스팸메일이 맞다/아니다를 입력하여 모델을 학습시키면 새로운 메일이 왔을 때 메일이 스팸인지 아닌지 분류할 수 있습니다.

 

2. 회귀(regression)

회귀는 분류와 달리 레이블에 분류의 기준이 아닌 상수값 등을 입력하여 학습시켜 새로운 데이터의 가치(상수값)를 판단하는 것입니다. 정의에서 예시를들었듯이 신발에 가격(상수값)을 매겨 학습시켜 새로운 신발의 가격을 예측하는 것입니다. 이는 분류와 달리 레이블이 겹치는 종류가 적기 때문에 학습모델이 제대로 작동하기 위해서는 분류보다 많은 데이터가 필요합니다.

 

알고리즘

종류 : KNN, Linear regression, Logistic Regression , SVM, decision tree & randon Forests, Neural Network

지도학습에 사용되는 신경망 알고리즘은 따로 글을 작성하여 설명하도록 하겠습니다.

 


비지도학습(unsupervised learning)

정의

지도학습과는 달리 오직 데이터의 샘플들을 통해서 머신러닝 모델을 학습시키는 것을 의미합니다.

데이터는 있지만 레이블 없으므로 주로 주어진 데이터들을 분석하는데 사용됩니다. 

 

모델 종류

1. 군집(clustering) 

데이터에 포함된 특징을 분석하고 연관된 특징끼리 나누어 그룹화를 진행하는 것을 의미합니다.

예를 들어 블로그 방문자의 전체 데이터가 있다면 이를 분석하여 방문자들의 특징(ex.전체 방문자의 40%는 오후 7시 ~ 9시 사이에 접속하는 경우가 많다 등)을 알아 낼수 있습니다. 

알고리즘 종류 : k - Means, HCA(Hierarchial Cluster Analysis), Expectation Maximization

 

2. 시각화(visualization)

레이블이 없는 고차원 데이터를 넣으면 도식화가 가능한 2D,3D 모델을 만들어 보여줍니다.

 

알고리즘 종류 : t-SNE

t-SNE

3. 차원축소(dimmensionality reduction)

데이터에 너무많은 부가정보(차원)이 있을경우 이를 간소화 하되 데이터의 정보손실을 최소화 하기위한 모델입니다.

 

알고리즘 종류 : 주성분 분석 (PCA) ,  커널 PCA, 지역적 선형 임베딩(LLE)

 

4. 변칙 탐지(anomaly detection)

정상 샘플로 훈련된 모델을 사용하여 새로운샘플이 정상적인 데이터인지 변칙된 이상치인지 파악합니다.

 

5. 연관 규칙 학습(association rule learning)

주어진 대량의 데이터에서 특성 간의 흥미로운 관계를 찾는것을 의미합니다.

예를 들어 슈퍼마켓에서 상품을 구입한 사람들의 구매기록에서 연관규칙학습을 통해서 바베큐 소스와 감자를 구입한 사람은 스테이크도 구매할 가능성이 크다는 관계를 찾을 수 있습니다.

알고리즘 종류 : Apriori, Eclat


준지도학습 ( semisupervised learning)

정의

학습하는 데이터가 대부분 레이블이 없지만 일부는 레이블이 있는 경우의 학습을 의미합니다.

예를들어 구글 포토 호스팅의 경우 clustering을 통해서 여러가지 사진에서 사람의 얼굴을 분석하여 똑같은 사람끼리 분류를 할 수 있습니다. 이때까지는 비지도학습을 통해서 자체적으로 분류를 하였지만 만약 새로 추가된 사진에 이미 분류했던 사람의 얼굴과 그 사람의 이름(레이블)이 올라왔을경우 이미 군집된 샘플들을 통해서 지도 학습을 수행할 수 있습니다.

강화학습(Reinforcement Learning)

지금까지 다루었던 학습은 데이터 중심의 학습이었지만 강화학습은 최상의 전략을 구사하기 위한 학습 방식으로서 이전의 학습과는 매우 다릅니다.

 

정의

학습을 위한 시스템(에이전트)을 구축하고 시스템의 환경을 관찰하며 시스템의 행동에 따라 보상과 벌점을 주어 시스템이 최대한 많은 보상을 받도록 강화시키는 학습을 의미합니다.

최근에 많은 이슈를 일으켰던 딥마인드의 알파고 프로그램이 강화학습의 예시입니다. 


배치학습과 온라인 학습

 

머신러닝 시스템을 분류하는데는 훈련 데이터의 스트림에 따라서 배치학습과 온라인 학습으로 구분할 수 있습니다.

배치학습의 경우  mini-batch 학습과 혼동할 수 있으니 정적 학습이라고 생각하시는게 좋습니다

 

배치학습

정의

입력스트림이 정적인 학습을 의미합니다. 대량의 데이터를 순차적으로 모두 학습을 시킨 후 완성된 학습모델은 더 이상의 학습을 하지 않고 실전에 투입됩니다. 보통 샘플 데이터의 갱신률이 낮은 정적 데이터의 경우 사용합니다.

 

장점

데이터를 모델링하는데 빌드 및 테스트가 쉽습니다. 새로운 데이터가 추가되었을 때 기존의 모델링을 위한 코드는 계속 유지하여 빌드를 하기 간편하고 기존의 모델과 비교를 통해서 테스트 하기도 간편하기 때문입니다.

 

단점

새로운 데이터를 학습하기 위해서는 기존에 학습했던 데이터를 포함하여 전부 새로 학습해야 합니다. 이는 갱신률이 높을 경우 지속적으로 대량의 컴퓨팅 자원을 중복해서 소모한다는 단점이 발생합니다. 이를 방지하기 위해선 온라인 학습을 사용하는 것이 옳습니다.

온라인 학습

정의

데이터를 순차적으로 한 개씩 또는 미니배치(mini-batch)라고 불리는 단위로 쪼개어 학습하는 것을 의미합니다. 보통 데이터의 갱신률이 높은 동적데이터의 경우 사용합니다.

 

장점

mini-batch단위로 데이터를 학습하기 때문에 한 번의 학습을 하는데 필요한 컴퓨팅 자원이 축소되며 배치학습과 달리 예전에 사용했던 데이터 자료가 필요하지 않고 갱신률이 높은 데이터의 경우 해당 데이터만 처리하면 되므로 이 또한 컴퓨팅 자원을 축소시킬 수 있습니다.

 

단점

시시각각 업로드 되는 데이터가 모두 정확하다고 할 수는 없습니다. 노이즈가 심한 데이터가 업로드 될경우 모델의 정확성을 낮추기위해 이를 실시간으로 감시해야할 시스템을 구축해야합니다. 이러한 이유로 모델링을 구축하는 것은 녹록지 않으며 복잡성으로 인해 에러 및 버그를 지속적으로 수정해야할 가능성이 있습니다.


사례 기반 학습과 모델 기반 학습

 

머신러닝 시스템을 나누는 또 한 가지의 요소는 어떻게 모델을 일반화 할 것인가 입니다. 일반화는 시스템이 훈련데이터를 계속 학습하여 추후 새로운 데이터가 들어온 경우 이를 정확히 판단할 수 있는 것을 의미합니다. 일반화를 위해 방법에는 크게 사례 기반 학습과 모델 기반 학습이 있습니다.

 

사례 기반 학습

정의

사례 기반 학습은 말 그대로 시스템이 지금까지 학습했던 모든 훈련데이터를 기억하고 이에 기반하여 새로운 데이터를 판단하는 것을 의미합니다. 

출처 https://stickie.tistory.com/45

새로운 데이터와 기존의 데이터를 비교하여 어느 쪽이 더 가까운지 유사도를 계산, 판단하는 것이 사례 기반 학습입니다.

 

모델 기반 학습

정의

모델 기반 학습은 훈련 데이터를 통해 일반화를 위한 기준(모델)을 만들고 이를 통해서 새로운 데이터를 판단하는 것을 의미합니다.

출처 https://stickie.tistory.com/45

사례 기반의 경우 새로운 데이터가 들어온 경우 매번 유사도를 계산해야 하기 때문에 컴퓨팅 자원이 많이 소모되어 시간이 많이 걸릴 수 있지만 모델 기반 학습은 새로운 데이터가 모델의 어떤 영역에 있는지 단번에 알 수 있기 때문에 빠르게 판단할 수 있습니다.

 

모델 구축 과정

우선 모델을 표현할 함수를 생성합니다. 데이터에 따라서 위 사진처럼 비선형으로 진행 할 수도 있고 선형으로 진행 할 수도 있습니다.초기함수는 미지수인 파라미터를 입력하여 생성됩니다. 이 파라미터가 훈련용 데이터를 통해서 정확도가 올라가도록 갱신하여 학습을 진행하도록 합니다. 파라미터는 가중치와 같은 의미이기 때문에 가중치를 판단할 손실 함수처럼 파라미터의 정확도를 판단 할 효용함수(또는 적합도 학수)를 생성합니다. 이후 공급된 훈련데이터를 적용하고 적합도 함수를 통해서 파라미터 값을 갱신하여 모델이 일반화되도록 진행합니다. 이를 통해서 궁극적으로 시스템이 일반화 되도록 할 수 있습니다.