GMM과 EM 알고리즘

Prerequisites 이 포스트를 더 잘 이해하기 위해선 아래의 내용에 대해 알고 오시는 것을 추천드립니다. k-means 알고리즘 최대우도법(Maximum Likelihood Estimation) 아래의 EM 알고리즘까지 충분히 더 이해하시려면 이 내용도 알고오시는 것이 좋습니다. 베이즈 정리의 의미 나이브 베이즈 분류기 여기서 나이브 베이즈 분류기에 대해서는 Prior의 의미에 대해 집중적으로 이해하는 것을 추천합니다. GMM (Gaussiam Mixture Model) [복습] 최대우도법을 이용한 정규분포 fitting 이전 최대우도법 시간에서는 어떤 데이터를 관찰하고 ...

더보기

k-means 알고리즘

클러스터링 문제 머신러닝은 크게 지도학습 문제와 비지도학습 문제로 나눌 수 있다. 비지도학습에서 가장 자주 등장하는 응용 중 하나는 클러스터링이다. 클러스터링은 주어진 학습 데이터 $\lbrace x^{(1)},\cdots,x^{(m)}\rbrace$에 대하여 위치가 가까운 데이터들을 각자의 그룹으로 라벨을 지어주는 과정을 의미한다. 만약 아래의 그림 1과 같이 데이터들이 주어져있다고 해보자. 이 때, 각 데이터들은 라벨이 주어져 있지는 않은 상태라고 생각해보자. 그림 1. 라벨이 주어져 있지 않은 데이터셋. 이 데이터셋을 두 개의 클러스터로 나누면 어떻게 그룹핑 하는 것이 좋을까? ...

더보기

1종 오류와 2종 오류

통계학을 공부하면서 많은 새로운 용어들과 만나게 된다. 그 중 1종 오류와 2종 오류가 대표적인 새로운 용어라고 할 수 있다. 특별히 숫자로부터 얻는 의미는 없지만 이름을 구별하기 위해 1종(type I), 2종(type II)라고 붙여놓은 것으로 보인다. 1종 오류는 귀무가설이 참인데 잘못 기각할 때 발생하는 오류를 말한다. 2종 오류는 귀무가설이 거짓인데 기각하지 않았을 때 발생하는 오류를 말한다. 이러한 정의를 생각해본다면, 우리는 ‘귀무가설’이라는게 무엇인지부터 정확히 짚고 넘어가는 것이 좋을 것 같아 보인다. 또, ‘잘못 기각’이라는 말과 ‘잘못 채택’이라는 말을 어떻게 이해하면 좋을지에 대해서도...

더보기

신뢰 구간의 의미

일상 생활에서도 종종 사용되는 신뢰 구간의 예시 신뢰 구간은 처음 보기에 복잡해 보이는 개념이지만, 일상에서도 많이 쓰고 있는 것이기도 하다. 가령, 버스를 타고 집에가는 길에 “언제쯤 도착이야?”라는 카톡에 대한 답변으로 “10-15분 정도 걸릴 것 같아”라고 답변했다면, 우리는 10에서 15사이라는 신뢰구간을 사용하고 있는 것이다. 10에서 15사이라는 값은 지금까지 내가 여러번 이 버스를 타봤을 때 걸리는 시간의 평균값으로부터 얻어졌을 것이다. 그럼 왜 12.5분이라는 정확한 값을 말하지 않고 “10-15분 정도 걸린다”라고 말할까? 그것은 불확실성이 내포되어 있기 때문일 것이다. 따라서, 내가 그...

더보기

기저의 변환

Prerequisites 해당 post를 잘 이해하기 위해서는 다음의 내용에 대해 알고 오시는 것을 추천드립니다. 벡터의 기본 연산 행렬 곱에 대한 또 다른 시각 벡터의 불변성과 가변성 벡터의 기본 연산에서는 벡터가 무엇인가에 대해 다룰 때 벡터란 “화살표 같은 것”이면서 동시에 “숫자를 순서대로 나열한 것”이라는 두 가지의 특징에 대해 설명한 바 있다. 아래의 그림은 이러한 벡터의 불변성과 가변성을 한번에 설명해주고 있는 그림으로, 좌표계가 변하더라도 빨간색으로 표시한 화살표는 요지부동(불변성)이다. 하지만, 동시에 다른 좌표계를 통해 본 벡터의 좌표는 (3, 4)에서 (3.6, 3.4)로 바...

더보기

순환행렬의 고유벡터, 그리고 푸리에 행렬

Prerequisites 본 포스트를 잘 이해하기 위해서는 다음의 내용에 대해 알고 오시는 것이 좋습니다. 벡터의 기본 연산 고윳값과 고유벡터 선형대수와 푸리에 변환 고윳값 분해(EVD) 순환행렬과 컨볼루션 치환행렬의 고윳값, 고유벡터 순환행렬의 고윳값, 고유벡터는 치환행렬의 고윳값, 고유벡터와 밀접한 관련이 있다. 따라서, 우리는 치환행렬의 고윳값, 고유벡터를 먼저 계산해보도록 하자. 우리가 사용하는 치환행렬은 치환행렬은 순환행렬과 컨볼루션 편에서 보았던 것과 마찬가지로 아래와 같이 cyclic permutation을 수행해주는 행렬이다. \[P = \begin{bmatrix} ...

더보기

순환행렬과 컨볼루션

Prerequisites 본 포스트를 더 잘 이해하기 위해선 아래의 내용에 대해 알고 오시는 것을 추천드립니다. 이산 시간 컨볼루션 cyclic permutation matrix 소개 치환행렬은 행의 순서를 바꿔주는 행렬이다. 다만, 우리가 이번 post에서 이용할 치환행렬은 cyclic permutation을 수행해주는 행렬이다. 다시 말해, 어떤 벡터 $x$에 대해서, \[\vec{x} = \begin{bmatrix}x_0\\x_1\\ \vdots \\ x_{n-1}\end{bmatrix}\] cyclic permutation을 수행해준다는 것은 다음과 같은 연산이 수행된다는 것을 말한다....

더보기

QR 분해

※ 시각화와 이해의 편의를 도모하기 위해 벡터와 행렬이 정의되는 체(field)는 실수(real number)로 한정함. Prerequisites 본 post를 잘 이해하기 위해서는 아래의 내용에 대해 알고 오시는 것을 추천드립니다. 벡터의 정사영 배경 지식 벡터의 정사영 우리는 중고등학교 수학에서 벡터의 정사영에 대해 배운 적이 있다. 정사영의 개념이 성립하기 위해선 두 개의 벡터가 필요하다. 아래의 그림에서는 벡터 $a$와 벡터 $b$ 사이의 관계에 대해 표현하고 있다. 그림 1. 두 벡터 중 하나의 벡터에 대해, 또 다른 벡터로 향하는 방향으로의 컴포넌트는 코사인 값을 ...

더보기