머신러닝 개요

 

1. 머신 러닝(ML : Machine Learning) 개념

  • 데이터에서 지식을 추출하여 예측하는 자기 학습 알고리즘과 관련된 인공지능의 하위분야로 머신러닝 출현
  • 애플리케이션을 수정하지 않고도 데이터 기반으로 패턴을 학습하고 결과를 추론하는 알고리즘 기법
  • 여러 특징(feature)를 가지는 복잡한 데이터를 기반으로 숨겨진 패턴을 인지하고 해결한다
  • 알고리즘을 통해 예측 오류를 최소화하기 위한 수학적 기법 적용
  • 데이터에서 효율적으로 지식을 추출하여 예측 모델과 데이터 기반 의사결정 능력을 점진적으로 향상시킴

2. 머신러닝의 세 가지 종류 

현재 머신러닝은 지도학습(Supervised Learning), 비지도 학습(Un-supervised Learning), 강화학습(Reinforcement Learning) 으로 분류된다. 각각의 개요와 특징을 살펴보면 다음과 같다.

 

3. 지도학습

지도란 희망하는 레이블(출력 신호)가 있는 일종의 샘플을 의미한다. 즉, 레이블 값을 사람이 지정해주어 분류한 데이터를 머신러닝 알고리즘에 넣고 이를 바탕으로 예측모델을 생성하는 것이다. 궁극적으로 새로운 데이터을 예측모델에 넣었을 때 올바른 레이블 값을 예측해 내는 것이 목적이다. 이 때문에 보다 정확하게 레이블 값을 예측해 낼 수 있도록 모델의 정확도를 향상시키는 것이 핵심이다. 지도학습의 종류는 분류(classification)와 회귀(regression)로 나누어 진다.

 

  • 명확한 결정 값이 주어진 데이터를 학습 → 답이 정해져 있는 데이터를 학습하고 본 적이 없는 데이터를 예측한다.
  • 레이블된 훈련 데이터를 사용하여 알고리즘을 통해 학습하고 예측 모델을 구축한다.
  • 예측 모델에 새로운 데이터를 입력하면 예측 값을 반환한다.
  • 지도학습의 종류 : 분류(Classification), 회귀(Regression)

 

3.1 분류 (Classification)

과거의 관측을 기반으로 새로은 샘플의 범주형 클래스 레이블을 예측하는 것이 목적이다. 예를 들면 사전적으로 어떤 리뷰에 대해 긍정/부정의 두 가지 레이블로 나눈 훈련 데이터 셋을 만든다. 그리고 이 데이터를 알고리즘으로 학습한 뒤 모델을 생성한다. 이 후 본 적이 없는 새로운 리뷰에 대해 이 리뷰가 긍정 or 부정 어디에 해당하는 지 예측해내는 식이다. 이처럼 개별 클래스 레이블이 있는 지도학습을 분류(Classification)라 한다. 분류는 결국 어떤 데이터가 클래스에 해당하는 지 구분할 수 있는 규칙을 학습하는 것이다. 

 

  • 클래스 레이블 예측이 목적 (긍정/부정, 상/중/하, 양주/소주/맥주/막걸리)
  • 스팸 메일 분류 / 감성 분석 / 손글씨 인식 / 품종 분류

 

3.2 회귀(Regression)

회귀는 연속적인(continuous) 출력 값을 예측하는 것이다. 예측 변수(설명 변수, 독립 변수)와 연속적인 반응 변수(종속 변수, 결과)가 사전적으로 주어져 있을 때 둘 사이의 관계를 학습하여 새로운 출력 값을 예측한다. 머신 러닝에서는 이렇나 예측 변수를 주로 특성(feaure)라고 하며 반응 변수를 타깃(target)이라 한다. 예를 들면, 우리는 다양한 요소로 우리 동네 집값이 얼마인지 예측할 수 있다. 아주 간단하게 집의 평수에 따른 집값의 관계를 나타내면 이는 단순 선형 회귀이다. 그러나 집 값이 영향을 미치는 요소들이 매우 많음을 우리는 경험적으로 알고 있다. 지하철 역까지의 거리, 브랜드, 학군, 신축 여부에 이르기까지. 이때 집 값(타깃)에 영향을 미치는 수많은 요소 신축여부 등(특성)의 관계를 학습하는 것이 회귀이다. 

 

  • 연속적인 출력 값을 예측
  • 타깃(결과)과 특성(설명변수)의 관계를 찾는 것

 

4. 비지도학습

비지도학습에서는 레이블되지 않거나 구조를 알 수 없는 데이터를 대상으로 알려진 출력값 또는 보상 함수 등의 도움을 받지 않고 의미있는 정보를 추출하기 위해 데이터 구조를 탐색한다. 즉, 데이터가 어떻게 구성되었는지를 알아내는 것이다. 비지도학습은 지도학습 또는 강화학습과는 달리 입력값에 대한 목표치가 정해지지 않는다. 사전에 답이 정해지지 않은 데이터를 넣고 유의미한 구조를 반환하는 것이다. 

 

4.1 군집분석 (Clustering)

사전 정보 없이 쌓여 있는 데이터들을 특성을 고려하여 군집(cluster)를 정의하고 군집의 특성을 정의하는 것이다. 각각의 군집은 군집 안에서는 특성에 따라 유사성을 공유하고 다른 특성과는 차이점을 가진다. 즉, 사전에 레이블되지 않은 데이터에서 각각 서브그룹으로 나누는 군집화를 진행하는 것이다. 데이터 마이닝의 한 방법으로 사전에 레이블 되어 있지 않은 정보를 조직화하고 데이터에서 의미 있는 관계를 형성하는 도구이다.

 

  • 레이블되지 않은 데이터로 그룹화하기
  • 군집별로 공유하는 특성을 가지며 다른 군집과는 차별점으로 나타날 것

 

4.2 차원축소 (Dimensionality reduction)

하나의 관측 샘플이 여러 측정 지표, 특성을 가질 때 이를 많은 차원을 가진다고 한다, 매우 많은 특성을 가진 데이터 셋은 머신 러닝의 알고리즘 계산 성능과 시간에 큰 영향을 미치게 된다. 따라서 비지도 학습의 차원 축소는 noise를 가지는 데이터를 제거하기 위해 특성 전처리 단계에서 적용된다. 이 때, 알고리즘 예측 성능에 미치는 영향을 최소화하는 특성을 선별하여 차원을 축소하는 과정이 중요하다. 많은 특성들을 subspace로 데이터를 압축할 수 있다. 

 

  • 대표적인 차원 축소 기법 : PCA (주성분분석)
  • 과적합 방지 및 숨겨진 의미 추론가능

 

5. 강화학습

강화학습은 다양한 환경과 상호작용하여 시스템 성능을 향싱하는 것을 목표로 한다. 궁극적인 목표와 관련하여 정의된 보상함수를 극대화하며 실시간으로 변하는 환경을 고려한다. 그 유명한 AlphaGO 또한 강화학습 알고리즘을 이용한 것이다. 바둑은 한 수씩 지날 때마다 환경이 급변하게 된다. 최종 목적의 보상함수는 승패이며 이 때, 상대방의 수에 따라 환경은 변하고 변한 환경에 따라 최종 목표인 승리라는 보상함수를 극대화하는 방향으로 학습하여 내가 둘 수를 반환하는 것이다.  이러한 강화학습은 행동을 수행하고 즉시 혹은 지연된 피드백을 통해 얻은 보상을 최대화하는 방향으로 행동을 학습하게 된다.

 

 

'머신러닝 교과서 with 파이썬, 사이킷런, 텐서플로 개정 3판' 을 참고하여 작성하였습니다.