비지도 학습 치트시트
Kwang Hyeok Ahn 에 의해 번역됨
비지도 학습 소개
동기부여 비지도학습의 목표는 $\{x^{(1)},...,x^{(m)}\}$와 같이 라벨링이 되어있지 않은 데이터 내의 숨겨진 패턴을 찾는것이다.
옌센 부등식 $f$를 볼록함수로 하며 $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)})$를 평가한다. 아래의 식 참조:
![Illustration](teaching/cs-229/illustrations/expectation-maximization-en.png?ed72a10f73a6d201e2ad20e04d145e82)
$k$-평균 군집화
$c^{(i)}$는 데이터 포인트 $i$ 와 $j$군집의 중앙인 $\mu_j$ 들의 군집이다.
알고리즘 군집 중앙에 $\mu_1,\mu_2,...,\mu_k\in\mathbb{R}^n$ 와 같이 무작위로 초기값을 잡은 후, $k$-평균 알고리즘이 수렴될때 까지 아래와 같은 단계를 반복한다:
![Illustration](teaching/cs-229/illustrations/k-means-en.png?9925605d814ddadebcae2ae4754ab0a4)
왜곡 함수 알고리즘이 수렴하는지를 확인하기 위해서는 아래와 같은 왜곡함수를 정의해야 한다:
계층적 군집분석
알고리즘 연속적 방식으로 중첩된 클러스트를 구축하는 결합형 계층적 접근방식을 사용하는 군집 알고리즘이다.
종류 다양한 목적함수의 최적화를 목표로하는 다양한 종류의 계층적 군집분석 알고리즘들이 있으며, 아래 표와 같이 요약되어있다:
Ward 연결법 | 평균 연결법 | 완전 연결법 |
군집 거리 내에서의 최소화 | 한쌍의 군집간 평균거리의 최소화 | 한쌍의 군집간 최대거리의 최소화 |
군집화 평가
비지도학습 환경에서는, 지도학습 환경과는 다르게 실측자료에 라벨링이 없기 때문에 종종 모델에 대한 성능평가가 어렵다.
실루엣 계수 $a$와 $b$를 같은 클래스의 다른 모든점과 샘플 사이의 평균거리와 다음 가장 가까운 군집의 다른 모든 점과 샘플사이의 평균거리로 표기하면 단일 샘플에 대한 실루엣 계수 $s$는 다음과 같이 정의할 수 있다.
Calinski-Harabaz 색인 $k$개 군집에 $B_k$와$W_k$를 표기하면, 다음과 같이 각각 정의 된 군집간 분산행렬이다
차원 축소
주성분 분석
차원축소 기술은 데이터를 반영하는 최대 분산방향을 찾는 기술이다.
고유값, 고유벡터 $A\in\mathbb{R}^{n\times n}$ 행렬이 주어질때, $\lambda$는 $A$의 고유값이 되며, 만약 $z\in\mathbb{R}^n\backslash\{0\}$ 벡터가 있다면 고유함수이다.
스펙트럼 정리 $A\in\mathbb{R}^{n\times n}$ 이라고 하자 만약 $A$가 대칭이라면, $A$는 실수 직교 행렬 $U\in\mathbb{R}^{n\times n}$에 의해 대각행렬로 만들 수 있다.
참조: 가장 큰 고유값과 연관된 고유 벡터를 행렬 $A$의 주요 고유벡터라고 부른다.
알고리즘 주성분 분석(PCA) 절차는 데이터 분산을 최대화하여 $k$ 차원의 데이터를 투영하는 차원 축소 기술로 다음과 같이 따른다:
- 1단계: 평균을 0으로 표준편차가 1이되도록 데이터를 표준화한다.
- 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](teaching/cs-229/illustrations/pca-en.png?4be4617788fd40f4e998b530b75f4149)
독립성분분석
근원적인 생성원을 찾기위한 기술을 의미한다.
가정 다음과 같이 우리는 데이터 $x$가 $n$차원의 소스벡터 $s=(s_1,...,s_n)$에서부터 생성되었음을 가정한다. 이때 $s_i$는 독립적인 확률변수에서 나왔으며, 혼합 및 비특이 행렬 $A$를 통해 생성된다고 가정한다:
비혼합 행렬 $W=A^{-1}$를 찾는 것을 목표로 한다.
Bell과 Sejnowski 독립성분분석(ICA) 알고리즘 다음의 단계들을 따르는 비혼합 행렬 $W$를 찾는 알고리즘이다:
-$x=As=W^{-1}s$의 확률을 다음과 같이 기술한다:
- 주어진 학습데이터 $\{x^{(i)}, i\in[\![1,m]\!]\}$에 로그우도를 기술하고 시그모이드 함수 $g$를 다음과 같이 표기한다: