머신러닝의 데이터, 단계, 타입

머신러닝

2020. 5. 26. 08:11

 

 

1) 머신러닝의 타입 (1) : 지도학습 - (Murphy 2p)

머신러닝은 여러가지 타입으로 나눌 수 있는데, 먼저 예측/지도학습 방식 (Predictive/Supervised learning approach)에서의 목표는 입-출력 데이터 쌍 $D=${$(x_i, y_i)$}$_{(i=0)}^N$이 있을 때 입력$x$를 출력 $y$로 맵핑시키는 함수를 훈련하는 것이다. 여기에서 $D$는 트레이닝세트라고 불리며, $N$은 샘플의 개수이다. 가장 간단한 설정으로 보자면 각 입력 $x_i$는 사람의 키와 몸무게 등을 나타내는 숫자의 D차원 벡터일 수 있다. 이를 피쳐, 속성, 또는 공변량(Covariates)이라고 한다. 그러나, 일반적으로는 $x_i$는 이미지, 문장(자연어), 이메일 메시지, 시계열 데이터, 분자구조, 그래프 등의 복잡한 구조화 데이터(Complex Structured Data)등 일 수도 있다.

 

[그림] 분류와 회귀

마찬가지로 출력 또는 응답변수(Response Variable)의 형태는 모든 것이 가능하지만 대부분의 방법은 $y_i$가 유한 집합 $y_i \in$ {$1, 2, ..., C$}의 이산적인 범주형 변수 (e.g. 남성 or 여성 등, Categorical)이거나, 연속적인 실수값을 가지는 스칼라(e.g. 집의 가격, Real-value) 일 수 있다. $y_i$가 범주형(Categorical)인 경우의 문제를 분류(Classification)나 패턴인식(Pattern Recognition)이라고 하며, $y_i$가 실수형(Real-value)인 경우의 문제를 우리는 회귀(Regression)라고 한다. 

 

[그림] Ordinal Regression

또한 Ordinal Regression으로 알려진 다른 변형형태는 레이블 공간 Y에 등급 A ~ F와 같이 자연스러운 순서가 있는 경우에 발생한다. (Regression이지만 일정한 단계가 눈에띄게 보이는 것)

 

2) 지도학습(분류)의 데이터 - (PRML 2p)

[그림] 입력벡터와 타겟벡터

지도학습의 한가지 예로 이전 글에서 봤던 손글씨 예측 문제가 있다. 결과적으로 N개의 숫자들 {$X_1, X_2, X_3, X_4 , ... , X_N$}을 훈련집합(training set)으로 활용해서 변경 가능한 모델의 매개변수를 조절하여 모델을 학습한다. 훈련집합(training set)의 숫자들의 카테고리(정답)은 미리 주어지는데(지도학습, 분류), 보통 이미지를 직접 사람이 검사한 후, 직접 레이블을 부여한다. 각  숫자의 카테고리(0, 1, 2 ... 9등)을 타겟벡터 $y_i$로 표현할 수 있다. 이 벡터 $y_i$는 해당 숫자이미지의 실체가 무엇인지 나타내며, 각 입력 이미지 $x_i$ 하나당 타겟 벡터 $y_i$는 하나가 주어진다.

 

3) 지도학습(분류)의 훈련 및 테스트 단계 - (PRML 2p)

[그림] training phase와 test phase (prediction phase)

머신러닝 알고리즘의 결과물은 함수 $y(x)$로 표현할 수 있다. $y(x)$는 새로운 숫자의 이미지 $x$를 입력으로 받았을 때, 대상 벡터와 같은 방식으로 인코딩된 벡터 $y$를 출력하는 함수이다. 함수 $y(x)$의 정확한 형태는 훈련단계(training phase)에서 훈련집합을 바탕으로 결정되며, 훈련단계는 학습단계(learning phase)라고도 한다. 한번 훈련되고 난 모델은 시험 집합(test set)이라고 불리는 새로운 숫자 이미지들의 클래스를 찾아내는데 사용될 수 있다. 훈련단계에서 사용되지 않았던(모델이 한번도 본적 없는) 새로운 샘플 데이터들을 올바르게 분류하는 능력을 일반화(generalization) 성능이라고 한다. 실제 적용에서는 입력벡터와 training set이 상당히 다를 가능성(가변성)이 크다. 훈련데이터는 가능 한 모든 입력벡터의 그저 극히 일부분밖에 커버하지 못한다. (전세계의 모든 손글씨를 커버할 순 없는 것이니 말이다) 따라서 머신러닝/패턴인식 분야에서 가장 중요한 목표는 바로 이 일반화이다.

 

4) 머신러닝의 전처리 단계 - (PRML 3p)

대다수의 실용 애플리케이션에서는 원래 여러 입력변수들을 전처리(preprocess)하여 새로운 변수 공간으로 전환할 수 있는데, 이렇게 함으로써 머신러닝/패턴인식 문제를 더 쉽게 해결할 수 있다.

[그림] 전처리로 인한 가변성 감소

예를 들어 손글씨 숫자인식 문제에서는 숫자들이 고정된 크기에 박스에 올바르게 들어갈 수 있도록 숫자들을 변환, 축소, 확대, 이동한다. 이는 각 클래스 내의 가변성을 크게 줄일 수 있다. (오른쪽 상단 / 왼쪽 하단에 있는 것보다 둘다 중앙에 있는 것이 가변성이 적음) 이렇게 되면 컴퓨터가 각 클래스를 구별해내기 더 쉬워진다. 이러한 전처리 과정은 특징추출 (feature extraction)과정이라고 불리기도 한다. (윗윗 그림에서 feature extractor단계에 해당) 테스트 집합(test set)의 새로운 데이터를 모델에 입력하여 결과를 추론할 때 훈련집합에서 사용한 것과 같은 전처리를 동일하게 적용해야하는 것을 잊지 말아야한다. (모델은 그렇게 배웠기 때문)

 

계산과정의 속도를 높히기 위해 전처리 과정을 활용하는 경우도 있다. 만약 고해상도의 비디오 스트림에서 실시간으로 얼굴을 인식해야 하는 경우를 생각해보자. 컴퓨터는 초마다 굉장히 많은 픽셀을 다뤄야하며, 이 픽셀 데이터를 복잡한 머신러닝/패턴인식 알고리즘에 바로 적용하는 것은 계산적으로 실행 불가능한 일이 될 수도 있다. 그러나 모든 데이터를 전부 다 사용하는 것 대신, 얼굴과 얼굴이 아닌 것들을 구별할 수 있는 차별적인 정보를 갖고 있으면서 동시에 빠르게 계산 가능한 유용한 특징들을 찾아내서 원본 데이터 대신 사용할 수 있을 것이다. 이러한 전처리를 차원감소(dimensional reduction)라고 한다. 전처리 과정은 반드시 주의를 기울여야하는데, 그 이유는 많은 정보들이 전처리 과정에서 버려지게 되는데, 만약 버려진 정보가 매우 중요한 정보였을 경우 시스템 전체의 정확도가 악화될 수 있기 때문이다.

 

5) 머신러닝의 타입 (2) - 비지도학습 - (Murphy 2p + PRML 3p)

[그림] 비지도학습 : 클러스터링
[그림] 비지도학습 : 밀도 추정

머신러닝의 두번 째 타입은 설명/비지도학습 (descriptive/unsupervised learning approach)방식이다. 여기에서는 $D=${$(x_i)$}$_{i=0}^N$인 입력이 제공된다. 즉, 라벨이 없고 입력데이터만 주어지는 학습 방식을 의미한다. 학습의 목표는 데이터에서 관심 패턴(interesting pattern)을 찾는 것이다. 이것은 때때로 지식 발견 (knowledge discovery)라고 한다. 이 것은 어떤 종류의 패턴을 찾아야하는지 명확하게 정의되지 않은 문제에 해당하는데, 우리가 모델에게 어떤 패턴을 찾고 있는지 정확하게 말해주지 않았기 때문에 명확하게 에러를 측정할수 있는 메트릭이 없다. 이러한 특징은 지도학습에서는 예측y와 실제 라벨y를 비교하여 직관적으로 에러 측정이 가능한 것과 대비되는 성격이다. 이런 학습의 예시로 집단화(clustering)문제, 입력공간에서 데이터의 분포를 찾는 밀도추정(density estimation) 문제, 높은 차원의 데이터를 2차원 혹은 3차원에 투영하여 이해하기 쉽게 만들어주는 시각화(visualization) 등이 비지도 학습의 예시이다.

 

6) 머신러닝의 타입 (3) - 강화학습 - (PRML 3p)

[그림] 강화학습

머신러닝의 세번째 유형은 강화학습(reinforcement learning)이라고 알려진 방법이다. 강화학습은 주어진 상황에서 보상을 최대화하기 위한 행동을 찾는 문제를 해결하는 방법이다. 강화학습은 다른방법들과 달리, 학습 알고리즘에 입력값과 최적의 출력값을 예시로 주지 않는다. 강화학습 과정중에는 시행착오를 통해서 이들을 직접 찾아내게 되는데 보통의 경우 알고리즘이 주변의 환경과 상호작용할 때 일어나는 일들을 표현한 연속된 상황과 행동들이 문제의 일부로 주어지게 된다. 많은 경우 현재의 행동은 직후의 보상뿐만 아니라 다음 모든 다음 타입스텝 전부의 보상에 영향을 미치게 미친다. 예를 들어 뉴럴네트워크에 적절한 강화학습 테크닉을 사용하면 Backgammon(서양 윷놀이)를 매우 잘해내는 알고리즘을 훈련시킬 수 있으며, 여기에서 네트워크(모델)은 현재 보드 상태와 주사위의 결과를 입력으로 받았을 때, 이전보다 잘해진 다음 플레이를 출력 값으로 내놓을 수 있게 학습되어야한다. 

 

이러한 학습은 해당 네트워크 알고리즘이 자기 자신의 복사본과 아주 많은 수의 게임을 수행하게 함으로서 가능해지는데, 여기에서 어려운 점은 모델은 게임 도중에 매우 다양한 작업을 선택할 수 있지만, 보상은 오직 게임이 끝났을 때 승리라는 형태로만 주어진 다는 것이다. 때문에 보상은 최종 승리까지 이끄는 모든 선택지들에 대해서 고루고루 잘 분배 되어야한다. 이 것은 신뢰할당(credit assignment) 문제의 예시이다. 일반적으로 강화학습은 탐사(exploration)과 이용(exploitation) 사이에 트레이드 오프가 있다. 탐사과정은 시스템이 새로운 종류의 행동을 시도하여 각각이 얼마나 효과적인지 확인하는 과정이고, 이용은 이미 알고 있는 높은 보상을 주는 행동을 수행하는 것이다. 탐사와 이용 중 어느 하나에 너무 집중한 알고리즘은 그리 좋지 못한 결과를 내놓게 된다. 강화학습은 그간 머신러닝의 주요 연구분야 중 하나 였지만, 자세한 내용은 이 책의 범위를 넘어가게 된다. 그러나 강화학습의 기초가 되는 결정이론에 대해서는 Murphy책의 섹션 5.7의 결정이론에서 논의한다. 강화학습의 자세한 내용은 Kaelbling et al. 1996; Sutton and Barto 1998; Russell and Norvig 2010; Szepesvari 2010; Wiering and van Otterlo 2012 등을 참고하라.

 

'머신러닝' 카테고리의 다른 글

머신러닝은 무엇이고 왜 필요한가?  (0) 2020.01.08