1. Introduction

1.1. Machine Learning: what and why?

우리는 빅 데이터의 시대에 살고 있다. 이러한 데이터의 홍수는 기계 학습이라는 자동적인 데이터 분석 방법을 필요로 한다. 하지만 여러 분야에서의 데이터는 롱 테일 특성, 즉 일부 종류의 데이터가 매우 흔하게 나타나고 다수 종류의 데이터는 드물게 나타나는 특성을 가지기 때문에 상대적으로 적은 크기의 데이터로부터의 분석 방법도 빅 데이터 시대에 의미가 있다.

1.1.1. Types of machine learning

기계 학습은 크게 두 종류로 나뉜다.

예측적 또는 지도 학습 방법에서의 목표는 N개의 입-출력 학습 데이터\mathcal{D} = \{\mathbf{x}_{i}, y_{i}\}_{i=1}^{N} 가 주어졌을 때 입력 \mathbf{x}으로부터 출력 y 로의 매핑을 학습하는 것이다. 이 때 학습 입력 데이터 \mathbf{x}_{i}특성, 성질, 또는 공변인 등으로 불린다. 비슷하게, 출력 데이터 또는 반응 변수 y는 어떤 유한 집합으로부터의 범주 변수 또는 명목 변수이기도 하고 실수 값을 가진 스칼라이기도 하다. y_i가 범주 변수이면 해당 문제를 분류 또는 패턴 인식이라 하며, y_i가 실수이면 해당 문제는 회귀 문제라 불린다. 라벨 공간에 순서가 주어졌을 때는 서수 회귀 문제가 된다.

표현적 또는 비지도 학습 방법에서는 입력 \mathcal{D} = \{\mathbf{x}_{i}\}_{i = 1}^{N} 내에서 흥미로운 패턴을 찾는 것이며, 이는 지식 발견으로도 불린다.

세 번째 방법으로 강화 학습도 존재하지만 그것은 이 책의 범위를 벗어난다.

1.2. Supervised learning

1.2.1. Classification

분류 문제는 입력 \mathbf{x}로부터 출력 y \in \{ 1, \cdots, C\}로부터의 매핑을 찾는 것이다. 클래스 수 C = 2일 때에는 이진 분류가 된다. C > 2일 때는 다중 클래스 분류가 된다. 클래스 라벨이 상호 배타적이지 않다면 다중 라벨 분류라고도 불리지만 이는 사실은 다중 출력 모델로도 볼 수 있다.

문제를 공식화하는 하나의 방법은 함수 근사로서, y = f(\mathbf{x})라 놓고 이 함수 f를 라벨된 학습 데이터로부터 학습한 뒤에 이로부터 예측을 하는 것이다. 이 때 주된 목표는 한 번도 본 적 없는 입력 데이터로부터의 예측 정확도를 높이는 것이다. 이를 일반화라고 한다.

1.2.1.1. Example

1.2.1.2. The need for probabilistic predictions

한 번도 본 적 없는 입력 데이터로의 일반화를 위해서는 확률적 모델이 필요하다. 이는 p(y | \mathbf{x}, \mathcal{D})로 나타낼 수 있다. 이 때 y에 대한 최적의 추측은 분포의 최빈값\hat{y} = \hat{f}(\mathbf{x}) = \mathrm{argmax}_{c=1}^{C} p(y = c | \mathbf{x}, \mathcal{D}) 가 되며 이는 최대 사후 확률이라고도 한다.

1.2.1.3 Real-world applications

Document classification and e-mail spam filtering

문서 분류에서, 특수한 사례로 스팸 메일 필터링이 있다. 이는 문서를 단어 가방 형식의 벡터로 나타냄으로써 이루어진다.

뉴스그룹 데이터의 분류. 붉은 선이 데이터를 4개의 클래스로 분류한다.

Classifying flowers

꽃을 분류하는 것은 이미지 자체를 분류하기 전에 특성 추출을 먼저 한 뒤 이에 대한 산포도를 그림으로써 이루어진다. 기계 학습 이전에 이러한 예비 데이터 분석을 수행하는 것은 좋은 생각이다.

붓꽃 데이터의 쌍별 산포도. 부채붓꽃/베르시콜라/질경이의 꽃받침 길이/두께, 꽃잎 길이/ 두께별 분류. 대각선의 플롯은 4개 특성의 주변 히스토그램이다.

Image classification and handwriting recognition

이미지의 내용을 분류하는 것을 이미지 분류라고 한다. 유명한 사례 중에서는 필기 인식이 있으며 표준 데이터 셋은 MNIST이다.

MINST 그레이스케일 이미지. 아래의 9개는 특성을 무작위로 순열화한 것이다.

Face detection and recognition

더 어려운 문제로 이미지 내 오브젝트를 찾는 것이 있다. 이를 오브젝트 감지 또는 오브젝트 위치 측정이라 한다. 중요한 특수 케이스로 얼굴 감지가 있으며 슬라이딩 윈도우 인식기를 통해 이루어진다. 얼굴을 찾아낸 뒤에는 그 사람의 신원을 찾아내는 얼굴 인식 작업을 한다. 얼굴 인식 작업에는 개개인의 얼굴이나 헤어스타일 차이 등이 중요하지만 얼굴 감지 작업에서는 이러한 특성들이 불변인으로 고정된다.

1.2.2. Regression

회귀 문제는 반응 변수가 연속적인 분류 문제이다.

동일 데이터의 1D/2D 선형 회귀.

1.3. Unsupervised learning

비지도 학습에는 출력 데이터만 있고 입력 데이터는 없으며, 여기서 데이터 내 흥미로운 구조를 알아내는 것이어서 이를 지식 발견이라 부르기도 한다. 지도 학습과 다르게 입력에 대한 출력의 확률을 알아낼 수 없으므로 이는 p(\mathbf{x}_{i} | \mathbf{\theta})를 근사하는 확률밀도 근사 문제가 된다.

1.3.1. Discovering clusters

비지도 학습의 자연스러운 예로는 데이터를 클러스터링하는 것이 있다. 첫째로는 클러스터 개수 K에 대한 분포 p(K|\mathcal{D})를 구해 적절한 클러스터 개수를 알아내어야 하며 둘째로는 각각의 샘플이 어떤 클러스터에 속하는지를 근사해야 한다. 이 때 샘플 각각에 대한 클러스터는 학습 데이터로부터 관측되지 않으므로 숨겨진 변수 또는 잠재 변수라고 한다. 이 책에서는 확률적 모델 기반으로 클러스터링을 하는 모델 기반 클러스터링을 다룬다. 천문학에서 자동 분류 등의 예가 있다.

사람의 키/몸무게 데이터, 및 K = 2로 클러스터링한 결과

1.3.2. Discovering latent factors

고차원의 데이터를 다룰 때는 데이터를 낮은 차원에 사영해 핵심만 남김으로써 차원을 줄이는 것이 좋을 때가 있다. 이를 차원 축소라고 한다. 이는 데이터가 고차원이어도 그것의 잠재 요인은 적은 경우가 대부분이라는 모티브에서 근거한다. 이 방식은 고차원의 데이터를 시각화할 때도 유용하다. 가장 많이 쓰이는 방법은 주 성분 분석(PCA)가 있다.

3D 공간에서 2D 선형 부분공간으로의 데이터의 사영. 붉은 선은 첫 번째 주 성분 방향이다.
올리베티 얼굴 데이터베이스와, 평균 및 첫 3개의 주성분 벡터.

1.3.3. Discovering graph structure

상호 연관된 변수 사이에서는 그 연관 관계를 나타내는 그래프 구조를 찾는 것이 도움이 될 수 있다.

1.3.4. Matrix completion

가끔은 데이터 일부가 빠져 있을 수도 있는데 이를 보정하기도 한다. 이는 행렬 완성이라 불리기도 한다.

1.3.4.1. Image impainting

데이터 보정의 중요 사례에는 이미지 복원이 있다. 빠진 픽셀의 데이터를 주위 픽셀로부터 복원하는 것이다.

1.3.4.2. Collaborative filtering

데이터 보정의 또 다른 사례로는 협업 필터링이 있다. 흔한 예는 사람들이 본 영화들과 그에 남긴 평점으로부터 무슨 영화를 좋아할지를 추천하는 것이다. 이 때에는 행렬이 희소 행렬이기 때문에 이와 관련된 계산 트릭을 아는 것이 중요하다.

1.3.4.3. Market basket analysis

비슷한 용례로 관련 시장 분석이 있다. 이는 소비자가 그 동안 산 물품으로부터 미래에 살 만한 물건을 예측해 준다. 빈발 항목 마이닝 기법이 많이 쓰인다.

1.4. Some basic concepts in machine learning

1.4.1. Parametric vs non-parametric models

매개변수의 수가 고정된 경우를 모수 모델, 매개변수의 수가 학습 데이터의 양에 따라 증가하는 경우를 비모수 모델이라 한다.

1.4.2. Simple non-parametric classifier: K-nearest neighbors

비모수 모델의 예로 K-근접 이웃 분류기가 있다. 이는 학습 데이터에서 입력 \mathbf{x} 근처의 K개의 점을 관찰해 각각의 클래스에 대해 근방의 점이 몇 개나 속했는지를 계산한 뒤 적절한 클래스를 찾아준다. 조금 더 형식적으로는 p(y = c | \mathbf{x}, \mathcal{D}, K) = \frac{1}{K} \sum_{i \in N_{K}(\mathbf{x}, \mathcal{D})} \mathbf{1}_{y_{i} = c} 를 구하는 것이다. 여기서 \mathbf{1}_{S}지표 함수로서 S에서 1, 그 외에서 0이 되는 함수이다. 이는 기억 기반 학습 또는 인스턴스 기반 학습의 예이다. K = 1을 택하면 샘플 점에 대한 보로노이 테셀레이션이 관측된다.

보로노이 테셀레이션의 예.

1.4.3. The curse of dimensionality

차원의 저주로 인해 KNN 분류기는 고차원 데이터에 대해서는 잘 작동하지 못한다. 이는 데이터 차원의 수가 커질수록 지표 함수의 유효 범위가 작아지기 때문이다.

차원의 저주.

1.4.4. Parametric models for classification and regression

차원의 저주에 대한 주된 대응책은 데이터 분포에 대한 가정을 하는 것이다. 이는 귀납적 편향으로서 모수 모델에 나타나기도 한다.

1.4.5. Linear regression

회귀 모델 중에서 가장 많이 쓰이는 것은 선형 회귀이다. 이는 출력이 입력에 대해 선형이라는 것을 가정한다. 이는 y(\mathbf{x}) = \mathbf{w}^{T}\mathbf{x} + \epsilon으로 나타낼 수 있다. 이 때 \mathbf{w}^{T}\mathbf{x}은 입력 벡터와 모델의 가중치 벡터스칼라곱이다. \epsilon은 선형 예측값과 참값 사이의 잔여 오차이며 종종 가우시안 분포(정규 분포)를 따른다고 가정된다. 정규분포는 벨 커브를 그린다. 1차원일 때 이는 \mu(\mathbf{x}) = w_0 + w_1 x가 되며 이 때 w_0편향이라 불린다.

가우시안 확률밀도함수의 그래프와 선형 회귀 분포의 그래프.

선형 회귀는 비선형 관계를 나타낼 때도 쓸 수 있는데, \mathbf{x}를 입력에 대한 비선형 함수 \mathbf{\phi}(\mathbf{x})로 치환함으로써 가능하다. 이를 기저 함수 확장이라 한다. 기저 함수가 다항식으로 확장될 때에는 다항식 회귀가 된다.

21개 데이터에 대한 14차/20차 다항 회귀.

1.4.6. Logistic regression

선형 회귀를 이진 분류로도 확장할 수 있는데, 첫째로는 y에 대한 가우시안 분포를 베르누이 분포로 바꿔야 하고, 입력의 선형 결합에 시그모이드 함수 (로지스틱이나 로짓 함수, 스쿼싱 함수라고도 불린다)를 적용시키는 것이다. 이를 로지스틱 회귀라 하며 p(y | \mathbf{x}, \mathbf{w}) = \mathrm{Ber}(y | \mathrm{sigm}(\mathbf{w}^{T}\mathbf{x}))로 나타낸다. 아웃풋 확률에 대한 기준에 따른 결정 규칙을 도입할 수 있다. 학습 데이터가 선형 분리 가능하지 않을 때에는 학습 데이터에서도 0이 아닌 오차율이 생긴다.

시그모이드 함수의 플롯, SAT 성적의 로지스틱 회귀.

1.4.7. Overfitting

자유도가 높은 모델에서는 데이터에 대한 과적합을 조심해야 한다.

1.4.8. Model selection

여러 모델 중 적합한 것을 선택하는 방법에는 여러 가지가 있으나 가장 쉬운 방법은 학습 데이터의 각각 모델에 대한 오분류율 \frac{1}{N} \sum_{i=1}^{N} \mathbf{1}_{f(\mathbf{x})_{i} \neq y_{i}}을 계산하는 것이다. 이 때 학습 데이터 뿐만 아니라 미래 데이터에 대한 일반화 오차를 고려하는 것이 좋다. 이 때는 모델 복잡도와 오차율에 대해 U자 곡선을 얻게 되는데 복잡한 모델에 대해서는 방법이 과적합할 수 있고 반대의 경우에는 과소적합할 수 있다.

K-근접 이웃 분류기에서 K값 vs 미감지율.

학습 중에는 테스트 셋에 대해 접근할 수 없기 때문에 학습 데이터를 분할해 일부는 모델 학습에 쓰고 일부는 검증 데이터로 사용한다. 데이터가 부족할 때는 학습 데이터를 분할교차검증을 한다. 분할 수가 학습 데이터의 수와 같다면 (즉 샘플 데이터 각각에 대해 그를 뺀 데이터를 활용해 교차검증을 하면) 이를 단일 제거 교차 검증(LOOCV)라고 한다. 이는 모델 선택의 특수한 경우이다.

1.4.9. No free lunch theorem

모든 상황에 대해 잘 들어맞는 모델은 없다. 공짜 점심은 없다.

요점 정리

  • 머신 러닝이란?
  • 지도 학습이란?
  • 비지도 학습이란?
  • 머신 러닝의 기본적 개념들