CS 229 - 기계 학습

비지도 학습 치트시트
Star

아프신 아미디셰르빈 아미디


Kwang Hyeok Ahn 에 의해 번역됨

비지도 학습 소개

동기부여 비지도학습의 목표는 $\{x^{(1)},...,x^{(m)}\}$와 같이 라벨링이 되어있지 않은 데이터 내의 숨겨진 패턴을 찾는것이다.


옌센 부등식 $f$를 볼록함수로 하며 $X$는 확률변수로 두고 아래와 같은 부등식을 따르도록 하자:

\[\boxed{E[f(X)]\geqslant f(E[X])}\]

군집화

기댓값 최대화

잠재변수 잠재변수들은 숨겨져있거나 관측되지 않는 변수들을 말하며, 이러한 변수들은 추정문제의 어려움을 가져온다. 그리고 잠재변수는 종종 $z$로 표기되어진다. 일반적인 잠재변수로 구성되어져있는 형태들을 살펴보자:

표기형태 잠재변수 $z$ $x|z$ 주석
가우시안 혼합모델 $\textrm{Multinomial}(\phi)$ $\mathcal{N}(\mu_j,\Sigma_j)$ $\mu_j\in\mathbb{R}^n, \phi\in\mathbb{R}^k$
요인분석 $\mathcal{N}(0,I)$ $\mathcal{N}(\mu+\Lambda z,\psi)$ $\mu_j\in\mathbb{R}^n$

알고리즘 기댓값 최대화 (EM) 알고리즘은 모수 θ를 추정하는 효율적인 방법을 제공해준다. 모수 θ의 추정은 아래와 같이 우도의 아래 경계지점을 구성하는(E-step)과 그 우도의 아래 경계지점을 최적화하는(M-step)들의 반복적인 최대우도측정을 통해 추정된다:
- E-step: 각각의 데이터 포인트 $x^{(i)}$은 특정 클러스터 $z^{(i)}$로 부터 발생한 후 사후확률$Q_{i}(z^{(i)})$를 평가한다. 아래의 식 참조:

\[\boxed{Q_i(z^{(i)})=P(z^{(i)}|x^{(i)};\theta)}\]
- M-step: 데이터 포인트 $x^{(i)}$에 대한 클러스트의 특정 가중치로 사후확률 $Q_i(z^{(i)})$을 사용, 각 클러스트 모델을 개별적으로 재평가한다. 아래의 식 참조:
\[\boxed{\theta_i=\underset{\theta}{\textrm{argmax }}\sum_i\int_{z^{(i)}}Q_i(z^{(i)})\log\left(\frac{P(x^{(i)},z^{(i)};\theta)}{Q_i(z^{(i)})}\right)dz^{(i)}}\]

Illustration

$k$-평균 군집화

$c^{(i)}$는 데이터 포인트 $i$ 와 $j$군집의 중앙인 $\mu_j$ 들의 군집이다.


알고리즘 군집 중앙에 $\mu_1,\mu_2,...,\mu_k\in\mathbb{R}^n$ 와 같이 무작위로 초기값을 잡은 후, $k$-평균 알고리즘이 수렴될때 까지 아래와 같은 단계를 반복한다:

\[\boxed{c^{(i)}=\underset{j}{\textrm{arg min}}||x^{(i)}-\mu_j||^2}\quad\textrm{and}\quad\boxed{\mu_j=\frac{\displaystyle\sum_{i=1}^m1_{\{c^{(i)}=j\}}x^{(i)}}{\displaystyle\sum_{i=1}^m1_{\{c^{(i)}=j\}}}}\]
Illustration

왜곡 함수 알고리즘이 수렴하는지를 확인하기 위해서는 아래와 같은 왜곡함수를 정의해야 한다:

\[\boxed{J(c,\mu)=\sum_{i=1}^m||x^{(i)}-\mu_{c^{(i)}}||^2}\]

계층적 군집분석

알고리즘 연속적 방식으로 중첩된 클러스트를 구축하는 결합형 계층적 접근방식을 사용하는 군집 알고리즘이다.


종류 다양한 목적함수의 최적화를 목표로하는 다양한 종류의 계층적 군집분석 알고리즘들이 있으며, 아래 표와 같이 요약되어있다:

Ward 연결법 평균 연결법 완전 연결법
군집 거리 내에서의 최소화 한쌍의 군집간 평균거리의 최소화 한쌍의 군집간 최대거리의 최소화

군집화 평가

비지도학습 환경에서는, 지도학습 환경과는 다르게 실측자료에 라벨링이 없기 때문에 종종 모델에 대한 성능평가가 어렵다.

실루엣 계수 $a$와 $b$를 같은 클래스의 다른 모든점과 샘플 사이의 평균거리와 다음 가장 가까운 군집의 다른 모든 점과 샘플사이의 평균거리로 표기하면 단일 샘플에 대한 실루엣 계수 $s$는 다음과 같이 정의할 수 있다.

\[\boxed{s=\frac{b-a}{\max(a,b)}}\]

Calinski-Harabaz 색인 $k$개 군집에 $B_k$와$W_k$를 표기하면, 다음과 같이 각각 정의 된 군집간 분산행렬이다

\[B_k=\sum_{j=1}^kn_{c^{(i)}}(\mu_{c^{(i)}}-\mu)(\mu_{c^{(i)}}-\mu)^T,\quad\quad W_k=\sum_{i=1}^m(x^{(i)}-\mu_{c^{(i)}})(x^{(i)}-\mu_{c^{(i)}})^T\]
Calinski-Harabaz 색인 $s(k)$는 군집모델이 군집화를 얼마나 잘 정의하는지를 나타낸다. 가령 높은 점수일수록 군집이 더욱 밀도있으며 잘 분리되는 형태이다. 아래와 같은 정의를 따른다:

\[\boxed{s(k)=\frac{\textrm{Tr}(B_k)}{\textrm{Tr}(W_k)}\times\frac{N-k}{k-1}}\]

차원 축소

주성분 분석

차원축소 기술은 데이터를 반영하는 최대 분산방향을 찾는 기술이다.

고유값, 고유벡터 $A\in\mathbb{R}^{n\times n}$ 행렬이 주어질때, $\lambda$는 $A$의 고유값이 되며, 만약 $z\in\mathbb{R}^n\backslash\{0\}$ 벡터가 있다면 고유함수이다.

\[\boxed{Az=\lambda z}\]

스펙트럼 정리 $A\in\mathbb{R}^{n\times n}$ 이라고 하자 만약 $A$가 대칭이라면, $A$는 실수 직교 행렬 $U\in\mathbb{R}^{n\times n}$에 의해 대각행렬로 만들 수 있다.

\[\boxed{\exists\Lambda\textrm{ 대각선},\quad A=U\Lambda U^T}\]

참조: 가장 큰 고유값과 연관된 고유 벡터를 행렬 $A$의 주요 고유벡터라고 부른다.


알고리즘 주성분 분석(PCA) 절차는 데이터 분산을 최대화하여 $k$ 차원의 데이터를 투영하는 차원 축소 기술로 다음과 같이 따른다:
- 1단계: 평균을 0으로 표준편차가 1이되도록 데이터를 표준화한다.

\[\boxed{x_j^{(i)}\leftarrow\frac{x_j^{(i)}-\mu_j}{\sigma_j}}\quad\textrm{where}\quad\boxed{\mu_j = \frac{1}{m}\sum_{i=1}^mx_j^{(i)}}\quad\textrm{and}\quad\boxed{\sigma_j^2=\frac{1}{m}\sum_{i=1}^m(x_j^{(i)}-\mu_j)^2}\]

- 2단계: 실제 고유값과 대칭인 $\displaystyle\Sigma=\frac{1}{m}\sum_{i=1}^mx^{(i)}{x^{(i)}}^T\in\mathbb{R}^{n\times n}$를 계산합니다.
- 3단계: $k$ 직교 고유벡터의 합을 $u_1, ..., u_k\in\mathbb{R}^n$와 같이 계산한다. 다시말하면, 가장 큰 고유값 $k$의 직교 고유벡터이다.
- 4단계: $\textrm{span}_\mathbb{R}(u_1,...,u_k)$ 범위에 데이터를 투영하자.

해당 절차는 모든 $k$-차원의 공간들 사이에 분산을 최대화 하는것이다.

Illustration

독립성분분석

근원적인 생성원을 찾기위한 기술을 의미한다.

가정 다음과 같이 우리는 데이터 $x$가 $n$차원의 소스벡터 $s=(s_1,...,s_n)$에서부터 생성되었음을 가정한다. 이때 $s_i$는 독립적인 확률변수에서 나왔으며, 혼합 및 비특이 행렬 $A$를 통해 생성된다고 가정한다:

\[\boxed{x=As}\]

비혼합 행렬 $W=A^{-1}$를 찾는 것을 목표로 한다.


Bell과 Sejnowski 독립성분분석(ICA) 알고리즘 다음의 단계들을 따르는 비혼합 행렬 $W$를 찾는 알고리즘이다:
-$x=As=W^{-1}s$의 확률을 다음과 같이 기술한다:

\[p(x)=\prod_{i=1}^np_s(w_i^Tx)\cdot|W|\]

- 주어진 학습데이터 $\{x^{(i)}, i\in[\![1,m]\!]\}$에 로그우도를 기술하고 시그모이드 함수 $g$를 다음과 같이 표기한다:
\[l(W)=\sum_{i=1}^m\left(\sum_{j=1}^n\log\Big(g'(w_j^Tx^{(i)})\Big)+\log|W|\right)\]
그러므로, 확률적 경사상승 학습 규칙은 각 학습예제 $x^{(i)}$에 대해서 다음과 같이 $W$를 업데이트하는 것과 같다:
\[\boxed{W\longleftarrow W+\alpha\left(\begin{pmatrix}1-2g(w_1^Tx^{(i)})\\1-2g(w_2^Tx^{(i)})\\\vdots\\1-2g(w_n^Tx^{(i)})\end{pmatrix}{x^{(i)}}^T+(W^T)^{-1}\right)}\]