Skip to content

기계학습 지도학습 #

Find similar titles

15회 업데이트 됨.

Edit
  • 최초 작성자
    Duskan
  • 최근 업데이트
    cloudgo

Structured data

Category
Computer science

지도학습 #

개요 #

기계학습에서 언급하였듯이, 기계학습은 크게 지도학습, 비지도학습, 강화학습으로 구분한다. 이중 지도학습은 데이터, 정답 Label과 같은 사전 정답정보를 기계학습 알고리즘에 학습시켜 학습 과정에서 정답 유무를 지도, 감독(Supervise) 한다.

지도학습의 기본적인 로직은 다음과 같이 이루어진다.

Image

그림 1. 지도학습 기본 로직, https://morganpolotan.wordpress.com/tag/supervised-learning/

앞서 언급하였듯이, 지도학습은 지도하려는 데이터(Traning set)와, 이 지도하려는 데이터들의 정답 정보(label)를 입력받아서 알고리즘에 따라 학습을 수행하여 예측모델(Predict Model)을 만든다. 예측 모델이 완성되면 만들어진 알고리즘은 이후 미래에 데이터가 들어올 때마다 데이터를 입력 받고 사전에 학습된 데이터들을 기반으로 예측 결과를 사용자에게 제공한다.

예측 모델 생성 과정 #

그림 1에서는 생략되어 있으나, 지도학습에서 예측모델을 만들기 위해서는 조금 더 복잡한 과정이 필요하다. 여기서는 현재 가지고 있는 정답 데이터들을 이용하여 예측 모들을 어떻게 생성하는지에 대해 다룬다.

테스트 데이터 분리 #

데이터를 확보한 후 지도학습 시작하기 전에 먼저 다음과 같이 데이터를 나누어야 한다.

Image

그림 2. 검증을 위한 Test Set 데이터 확보,

  • Training Set : 학습을 위한 데이터
  • Test Set : 데이터 검증을 위한 데이터

데이터를 Traning Set과 Test Set으로 나누는 가장 큰 이유는 Overfitting을 방지하기 위함이다. 만약 데이터를 학습 할 때에 Test Set도 학습에 활용된다면, 이미 Test Set은 데이터 학습에 영향을 주었기 때문에 이 자체가 Overfitting이 발생 하게 된다. 그러므로 이를 방지하기 위해 처음 학습 전부터 Test Set을 분리해두고 학습을 수행하며, Test Set은 최종적으로 학습된 알고리즘이 어느 정도의 예측률을 나타낼 수 있는지를 파악하기 위한 검증용으로만 활용하여야 한다.

예측 모델 생성 #

위와 같이 데이터를 분리한 후 우리는 7의 데이터를 가지고 학습을 시작한다. 지도학습을 수행 할 때에는 일반적으로 여러개의 알고리즘을 적용하여 결과들을 비교하며, 만약 1~2개의 알고리즘을 사용하더라도 학습 데이터 이외에 여러 Parameta들을 조정하며 어떠한 Parameta들을 적용할 때 효과적으로 지도학습이 잘 되는지 확인 하여야 한다.
그러나 Test Set 은 최종적으로 학습된 알고리즘을 검증하기 위한 용도로만 사용해야 하므로 (위 과정에서 Test Set을 사용하는 순간, Test Set을 이용한 검증은 객관성을 잃게 된다) 활용할 수 없으며, 그러므로 남은 7의 데이터를 Training Set과 지도학습 구현 중에 테스트하기 위한 Validation Set으로 분리한다.

Image

그림 3. 검증을 위한 Test Set 데이터 확보,

  • Training Set : 학습을 위한 데이터
  • Validation Set : 학습 과정에서 성능을 가늠하기 위해 사용되는 데이터
  • Test Set : 데이터 검증을 위한 데이터

최종적으로 데이터 분석가들은 그림3 에서처럼 데이터를 분리하여 지도학습을 수행한다. 우선으로 여러 가지 지도학습 알고리즘과 알고리즘 내 파라미터에 따라 Training Set으로 학습하고 학습된 알고리즘을 Validation Set을 이용하여 예측 결과를 비교하면서 적절한 학습 알고리즘을 선택한다.

알고리즘의 검증 #

이후 적절한 알고리즘을 이용하여 최종적인 지도학습이 완료되면 마지막으로 학습된 알고리즘을 이용하여 Test Set으로 객관적인 학습 알고리즘의 예측률을 검증한다. 이때 검증 과정에서 예측한 결과가 Validation Set을 이용한 테스트 결과와 비슷할 경우는 상관 없으나, 검증 과정의 예측룰이 더 낮은 결과는 Validation Set 학습 과정에서의 Overfitting을 의심해볼 필요가 있으며, 반대로 결과 낮을 경우 Test Set 이나 Training Set 혹은 Validation Set에서 어느정도 편항된 데이터가 학습되었을 가능성을 염두에 두고 원인을 분석 한 후 원인에 따라 적절한 학습을 재수행한다.

Overfittig #

지도학습뿐만 아니라, 기계학습 전반에 있어서 Overfitting은 학습된 결과에 대한 잘못된 판단을 가지고 올 수 있으며 이는 시스템 적용 후 큰 기회비용을 가져올 수 있으므로 충분한 주의가 필요하다. 예를 들어 상품 추천 시스템에서 Overfitting 된 알고리즘을 적용할 경우 알고리즘을 개발, 적용, 유지보수에 대한 비용과 고객의 충성도 하락등 많은 비용을 날려버릴 수 있으며, Overfitting 된 시스템이 진단 시스템, 약 처방 시스템 등 생명과 직결된 시스템에 연동 될 경우 더 큰 문제를 일으킬 수 있다. Overfitting에 대한 자세한 내용은 아래 링크에서 확인할 수 있다.

지도학습 예 #

Deep Learning(딥러닝) #

Image

그림 4. 딥러닝 알고리즘 예, https://www.nature.com/articles/nature14539

Deep Learning은 인공 신경망에서 파생된 기계학습 알고리즘으로, 사람의 시냅스 동작 과정을 본떠 학습 알고리즘으로 제안하였다. 인공 신경망은 1960-70년대 발표된 기계학습 알고리즘으로, 다른 여러 알고리즘과 함께 새로운 기계학습의 강자로 부상하였으나, 당시 컴퓨터 성능으로는 현재와 같은 다차원의 복잡한 인공신경망 알고리즘을 구현하는 것이 불가능하여 잊혔다가, 최근 컴퓨터 성능이 급속도로 증진됨에 따라 다시 활성화된 기계학습 방법론이다.

Supported Vector Machine(SVM) #

SVM은 데이터를 2차원 공간으로 사상한 후 회귀와 분류 기법을 활용하여 2개의 카테고리 주어진 정답데이터를 기반으로 기존의 정답에 따라 적절한 분류 모델을 생성하고, 새로운 데이터를 입력받을 시 학습된 분류 모델에 따라 적절하게 데이터를 분류한다. 분류 모델을 생성할 때에는 2차원 공간에 사상된 데이터들을 적절한 분류모델을 이용하여 나누는데 이때 가장 적합한 분류 모델을 생성하기 위해, 2개로 나누어진 분류 셋에서 "가장 멀리 떨어진 모델" 을 최적의 모델로 삼는다.

Image

그림 5. SVM 알고리즘 예, ftp://ftp.cse.yzu.edu.tw/CRAN/web/packages/e1071/vignettes/svmdoc.pdf

일반적으로 SVM을 사용할 때 쉽게 정의할 수 있는 선형 모델을 이용하여 많이 사용한다. 하지만 많은 데이터들이 단순한 선형 모델로 나누기 어려우며, 이러한 복잡한 데이터들을 분류하기 위해 SVM에서는 비선형 분류모델을 사용하기도 한다. SVM에서 비선형 분류를 위해서는 2차원 공간에 정의된 각 점을 다시 다차원 공간으로 사상하여 활용하는데 복잡한 다차원 공간의 사상을 좀 더 쉽게 하기 위하여 '커널 트릭'이라는 기법을 사용한다. 그러므로 비선형 모델 기반의 SVM은 이러한 커널 트릭 기법을 어떻게 활용하며, 얼마나 효과적인 커널을 찾는지가 매우 중요한 요소이며, SVM의 커널에 의해 주어진 데이터나, 이후 입력될 미래 데이터에 대한 분류 결과의 성능이 좌지우지된다.

Suggested Pages #

0.0.1_20230725_7_v68