본문 바로가기
컴퓨터 과학/인공지능

머신러닝 Murphy 1장

by pagehit 2021. 7. 22.
반응형

1.3 Unsupervised learning

unsupervised learning에 대해 알아본다. 비지도 학습은 출력 데이터만 주어지며, 입력은 주어지지 않는다. 목표는 데이터에서 흥미로운 구조를 발견하는 것. 즉, knowledge discovery.

지도 학습은 각각의 입력에 대해 출력이 주어지지만, 비지도 학습은 그렇지 않음. 대신, density estimation의 일종으로 볼 수 있다. 즉, $p(\bold{x}_{i} | \bold{ \theta } )$ 꼴의 모델을 만드는 것이 목표이다.

지도 학습과는 두 가지 차이점이 존재한다. 첫째, 지도학습은 $p(y_{i} | \bold{x}_{i}, \bold{ \theta } )$과 같은 형태를 썻다. 즉, 지도학습은 조건부 밀도 추정(conditional density estimation)인 셈이다. 반면 비지도 학습은 밀도 추정(unconditional density estimation)이다. 둘째, $\bold{x_{i}}$은 feature의 벡터이다. 그래서 다변수 확률 모델(multivariate probability model)을 만들 필요가 있다. 반면 지도학습에서 $y_i$는 단일 변수이므로 대부분의 지도학습 문제는 univariate probability model을 사용해서 문제를 나타낸다.

지도학습과는 달리 데이터를 레이블링할 필요가 없으므로 활용도가 높은 편이다.

비지도 학습의 대표적인 예시들을 살펴보자.

1. discovering cluster

데이터들을 그룹짓는 문제가 대표적인 예이다. $K$를 cluster의 수라고 하면, 목표는 클러스터의 수에 대한 분포 $p(K|D)$를 추정하는 것이다. 단순하게 나타내서 분포 $p(K|D)$를 $K^{*} = argmax_{K} p(K|D)$로 나타낸다.

두 번째 목표는 각 점이 어느 클러스터에 속할지 추정하는 것이다. $z_i \in \{1,...,K\}$는 데이터 $i$가 어느 클러스터에 할당되는 지를 나타낸다. $z_i$는 훈련 데이터넷에서 관찰되지 않으므로 hidden variable 또는 latent variable이라 한다. $z^{*}_{i} = argmax_{k} p(z_{i} = k | \bold{x_{i}}, D)$를 계산해서 각 데이터가 어느 클러스터에 속하는지 추정할 수 있다.

2. discovering latent factor

고차원 데이터를 다룰 때, 데이터를 저차원 부분공간으로 프로젝션시켜 차원을 낮춰서 데이터의 본질을 알아내는 것은 유용한 방법이다. 이를 차원 축소(dimensionality reduction)라 한다.

이렇게 하는 이유는 데이터가 고차원이더라도 적은 수의 차원만이 latent factor에 관련되기 때문이다. 예를 들자면, 얼굴 이미지를 모델링할 때, 몇몇 latent factor가 빛, 포즈, 등을 묘사한다.

차원 축소의 대표적인 예는 PCA(principal component analysis)이다. 이는 linear regression의 unsupervised version으로 볼 수 있다. linear regression에서는 저차원 cause $\bold{z}$에서 고차원 response $\bold{y}$를 관찰했으며 $\bold{z} \to \bold{y}$형태의 모델이다. 여기서 화살표를 반대로해서 고차원 $y$에서 latent low-dimensional $\bold{z}$를 추정하는 것으로 볼 수 있다.

PCA를 사용하는 예는 다음과 같다: 자연어 처리에서 document retrieval, 컴퓨터 그래픽에서 모션 캡쳐 데이터를 저차원 공간으로 프로젝션하고, 이를 이용해 애니메이션을 만들 때

3. discovering graph structure

대로는 상관된 변수 집합을 측정할 필요가 있다. 이를 그래프 G로 표현하며 각 노드는 변수를 나타낸다. 간선(edge)은 각 변수 사이의 의존성을 나타낸다. 즉, $\hat{G} = argmax p(G|D)$를 계산한다. 

일반적으로 비지도 학습에서 sparse graph를 학습하는 것에 두 가지 응용이 있다. 새로운 knowledge를 발견하거나 더 나은 joint probability density estimator를 찾는 것.

구체적인 예: 서로 다른 주식간의 공분산 측정, 도로 교통량 예측

4. matrix completion

몇몇 데이터가 없는 경우, 즉 변수의 값이 알려지지 않은 경우. 예를 들어, 어떤 조사를 했는데 몇몇 사람이 어떤 질문에는 대답을 안한 경우. 또는 다양한 센서 중에서 몇 개가 제대로 동작하지 않은 경우. 이러한 경우 행렬은 몇몇 원소를 가지지 못한다. 이러한 원소에 대해 값을 추정하는 것이 목표이다. 이를 matrix completion이라 부른다. image inpainting과 collaborative filtering이 있다.

image inpainting: 깨끗한 이미지가 주어졌을 때, 픽셀간의 joint probability model을 구축하고, 알려지지 않은 픽셀(변수)을 추론한다. 

collaborative filtering: 대표적인 예는 영화 추천. 주요 아이디어는 영화나 사용자의 특징에 그건한 예측이 아닌 rating matrix를 이용한 예측이다. 행렬 $\bold{X}$를 정의하고 $X(m, u)$는 영화 $m$에 대한 사용자 $u$의 점수(rating)이다. 사용자가 모든 영화에 대해 평점을 매길 수 없기 때문에 행렬의 대부분의 원소는 알려져 있지 않다. 따라서 행렬의 일부 집합을 관측해 다른 집합을 예측해야한다. 특히 특정 사용자가 자신이 평가하지 않은 영화 중 무엇을 보고 싶어하는지 예측해야 하는 것이 목적이다. 

market basket analysis: 상업 데이터 마이닝에 market basket analysis라는 것이 있다. 이 데이터는 매우 크고 sparse 하며 binary matrix이며, 각 열은 아이템이나 상품을 나타내고, 각 행은 구매내역을 나타낸다.아이템 $j$가 $i$번째 구매내역에 나타나면 $x_{ij} = 1$로 설정한다. 예를 들면 빵과 버터는 함께 구매한 것으로 나타나며, 각 비트사이에 상관관계가 있다고 본다. 구매자가 구매한 아이템을 나타내는 bit vector가 주어졌을 때, 어떤 아이템을 살 것인지 예측하는 것이 목표이다. collaborative filtering과 다른 점은 각 구매자가 어떤 기록을 가지고 있는지 알기 때문에 훈련 데이터에 missing data가 없다고 가정한다. 

 

1.4 머신 러닝 기본 개념

1. parametric vs non-parametric model

이 책에서는 확률적 모델 $p(y|\bold{x})$이나 $p(\bold{x})$을 중점적으로 다룬다. 모델을 정의할 때 모델이 고정된 수의 모수를 가지느냐 훈련 데이터가 늘어날수록 모수의 개수가 늘어나는지 결정하는 것이 중요하다. 고정된 수의 모수를 가지면 모수적 모델, 모수의 수가 변하면 비모수적 모델이라 한다.

모수적 모델: 빠르게 사용할 수 있지만, 데이터 분포에 대한 강한 가정을 해야한다는 단점이 있다.

비모수적 모델: 유연한 모델이지만, 데이터 세트가 커지면 해야하는 계산이 많아진다.

2. 비모수적 분류기: K-nearest neighbors

비모수적 분류기의 간단한 예는 KNN 분류기이다. 입력 $\bold{x}$에 가장 가까운 훈련 데이터에서 $K$개의 점을 살펴보고, 각 클래스의 개수를 세어 분수를 반환하 추정한다.

$$p(y=c | \bold{x}, D, K) = \frac{1}{K}\displaystyle\sum_{i \in N_k(\bold{x}, D)} I(y_i = c)$$

$N_k(\bold{x}, D)$은 데이터 $D$에서 입력 $\bold{x}$에 대해 가까운 $K$개의 점의 인덱스, $I(e)$는 $e$가 참이면 1을, 거짓이면 0을 반환하는 함수. 이러한 방법을 memory-based learning or instance-based learning이라 한다.

3. 차원의 저주(the curse of dimensionality)

아무튼 뭐 KNN은 고차원 데이터 입력에 대해 잘 동작하지 않는다. 고차원 데이터일 경우, K값이 작더라도 nearest neighbor가 전체 데이터의 50%를 봐야하는 경우가 생긴다. 차원의 저주가 생긴다.

4. parametric model for classification and regression

차원의 저주를 줄이는 방법은 지도학습 문제에 대한 $p(y|\bold{x})$이든 비지도학습에 대한 문제 $p(\bold{x})$이든 데이터 분포에 대한 몇 가지 가정을 하는 것이다. 이 가정을 inductive bias라고 부르며 모수적 모델, 즉 고정된 수의 모수를 가지는 통계적 모델에 포함되어 있다.

5. linear regression

regression에서 가장 많이 쓰이는 것이 linear regression이다. 

$$y(\bold{x}) = \bold{w}^{T}\bold{x} + \epsilon = \displaystyle\sum_{j=1}^{D}w_{j}x_{j}+\epsilon$$

$\bold{w}^{T}\bold{x}$는 입력 벡터 $\bold{x}$와 모델의 가중치 벡터 $\bold{w}$의 내적이고, $\epsilon$은 선형 예측과 실제 값 사이의 residual error이다. $\epsilon$은 Gaussian distribution으로 가정하며 $\epsilon \sim N(\mu, \sigma^{2})$으로 표기하며 $\mu$는 평균, $\sigma^{2}$는 분산이며, 분포를 그래프로 나타내면 종모양처럼 보인다.

선형 회귀와 가우스 분포를 더 명확하게 연결지으면 다음과 같이 쓸 수 있다.

$$p(y|\bold{x}, \bold{\theta}) = N(y|\mu(\bold{x}), \sigma^{2}(\bold{x}))$$

이는 모델이 조건부 확률 밀도임을 명확히 하며, 간단히 나타내서 $\mu$는 $\bold{x}$에 대한 선형 함수, 즉 $\mu = \bold{W}^{T}\bold{x}$이고, noise는 고정된 값 $\sigma^{2}(x) = \sigma^{2}$이다. 이 경우 $\bold{\theta} = (\bold{W}, \sigma^{2})$가 모델의 모수이다. 

아래처럼 바꿔 쓰면, 선형 회귀를 non-linear function $\bold{\phi}(\bold{x})$으로 비선형 관계를 모델링 할 수 있다.

$$p(y|\bold{x}, \bold{\theta}) = N(y|\bold{W}^{T}\bold{\phi}(\bold{x}), \sigma^{2}(\bold{x}))$$

위를 basis function expansion이라 부르며, polynomial regression으로 알려져 있다. support vector machine, neural network, classification, regression tree 등은 단지 각기 다른 방법으로 basis function을 추정하는 것으로 볼 수 있다.

6. logistic regression

선형회귀에서 두 가지를 바꿔 이진 분류로 일반화 할 수 있다. 첫째, $y$에 대한 가우시안 분포를 베르누이 분포로 바꾼다.

$$p(y|\bold{x}, \bold{W}) = Ber(y|\mu(\bold{x}))$$

여기서 $\mu(\bold{x}) = E[y|\bold{x}] = p(y=1|\bold{x})$

두 번째, 이전과 같이 입력에 대한 선형 조합을 계산하지만 계산 결과가 0과 1사이가 되도록 함수를 통과시킨다. 즉 아래와 같이 정의한다.

$$\mu(\bold{x}) = sigmoid(\bold{w}^{T}\bold{x})$$

여기서 $sigmoid(\eta) = \frac{1}{1+exp(-\eta)}$는 sigmoid function, logistic or logit function을 나타낸다. 이 함수는 출력을 확률로 해석할 때 사용한다. 결국 식을 다시 쓰면

$$p(y|\bold{x}, \bold{W}) = Ber(y|sigm(\bold{w}^{T}\bold{x}))$$

이는 regression이 아니라 classification이지만, 식이 선형회귀에 비슷해서 logistic regression이라 부른다.

7. overfitting

 

반응형

댓글