본문 바로가기

ML&DL/Machine Learning

(11)
HMM(Hidden Markov Model, 은닉마르코프모델) 원리 저번학기에 머신러닝과딥러닝수업을 들으면서 배웠던 내용을 정리하면서 하나씩 포스팅을 한게 꽤 많이 쌓였다. HMM같은 경우에는 따로 수업에서 다루지는 않았지만, sequential한 데이터의 classifiation에서 많이 쓰이던 모델이여서 한번 정리해보려고 한다. 이곳과 이곳을 참고해 정리한 내용이다. 음성 = sequential data이므로 HMM을 모델로 쓴 예전논문이 많은 것 같다. 하지만 한번도 처음부터 끝까지 공부해본적은 없다...하하하 사실 처음보면 한눈에 어려워서 포기하고싶은 HMM..... 그래도 차근차근 정리해보겠다!! 마르코프모델이 무엇인지에서 출발해서 HMM으로 어떤문제를 풀 수 있는지까지 다뤄보자. MM(Morkov Model)이란? Markov model의 핵심은 현재의 obs..
GMM(Gaussian Mixture Model,가우시안 혼합모델) 원리 개인공부용 블로그로 이곳의 내용에 개인적으로 추가정리하였다. 가우시안 분포는 데이터를 분석하는 데 있어서 중요한 여러 성질을 가지고 있지만, 실제 데이터셋을 모델링 하는데에는 한계가 있다.(어떻게 모든 데이터가 종모양분포를 띄겠나...) 그래서 나오게 된 것이 Gaussian Mixture Model(GMM)인데, 여기서 mixture model이라는 것의 뜻은 기본분포를 선형결합해서 만든 분포라는 뜻이다. 그러므로 GMM은 가우시안분포를 선형결합하여 만들어진 분포를 뜻한다. (이런식으로 모델을 딱 가정해버리면 모델에 들어가는 파라미터를 찾는 식으로 밀도를 추정하게 된다. 만약 모델을 가정하지 않는다면, non-parametric하게 밀도를 추정하게 된다. ex.커널밀도추정) 예를들어 위의 오른쪽 그림과..
K-means clustering(K-평균 군집화) 원리 Unsupervise learning, 그니까 label이 없는 data set을 학습시키는 방법중에 clustering(군집화)이라는 기법이 있다. K개의 clustering point(cluster center)를 잡고 데이터 집합에서 가장 가까운(거리개념) 애들끼리 같은 class를 주는 방식이다. 그리 어렵지 않은 알고리즘이지만 성능이 좋은 편이다. 이 알고리즘도 일종의 EM알고리즘이 되는데 이에 대해서는 추후에 살펴보도록 하고, 이번 포스팅에서는 간단히 K-means clustering알고리즘을 알아보도록 하자. K-means가 무엇인가? 일단 기본적으로 몇개의 cluster로 묶을 지, 원하는 cluster의 개수를 K로 설정해준다. 그리고 갯수 K개에 대하여 거리가 가까운 놈들끼리 묶어주기만..
Kernel/Kernel trick(커널과 커널트릭) Input의 선형조합(어떤 weight와의 곱을 다 더함)으로 output을 결정하는 많은 모델들을 살펴봤다. linear regression, logistic regression, SVM, perceptron... 더 나아가 NN에서도 weighted sum을 활용한다. SVM같이, 선형모델을 분류모델로 가정했을 때, 선형으로 완전히 분류할 수 없는 데이터분포를 만나게 될지도 모른다. 그때, soft margin SVM같은 경우는 soft margin을 두어, 즉 어느정도의 오류는 허용하는 형태로 분류를 했다. 그걸로는 좀 모자르다고 생각할 수 있다. 그럼 어떻게 더 잘 분류할 수 있을지 고민해보게 된다. ​ linear하게 separable하지 않은 애들을 좀 구불구불한 decision boundar..
Regularization(정규화): Ridge regression/LASSO 이 강의를 보고 정리한 내용이고 자료도 강의에서 가져온 자료임을 밝히고 시작한다. 이전 포스팅에서 살펴본 linear regression 모델을 다시 살펴보자. 이렇게 least square solution을 구하면 너무 모델이 복잡해진다는 특징이 있다. (weight가 너무 커져서 모델이 너무 요동치게 된다...) ​ 사실 데이터의 갯수가 많아지면 overfitting의 문제가 해결되는데 도움이 된다. 하지만 우리가 가지는 데이터의 수는 한정되어있을 가능성이 높다. 비교적 복잡하고 유연한 모델을 제한적인 숫자의 데이터 집합을 활용하여 fitting하려면 어떻게 해야할까? 과적합문제를 해결하기 위해 자주 사용되는 기법 중 하나는 바로 regularization(정규화)이다.(이를 penalization이..
Linear regression/Logistic regression 원리 이 블로그는 단순히 내가 공부하는 내용을 정리하고자 글을 올리는 공간이다. regression을 이해하는데 참고한 사이트들을 통해 내가 이해한 방식대로 써내려갔다. 이곳 과 이곳 그리고 이곳을 이용해 포스팅을 했다는 것을 말하고 시작하겠다. 머신러닝을 한번이라도 공부해본 사람이라면 regression(회귀)에 대해 들어봤을 것이다. linear regression과 logistic regression 두가지 방법이 있는데, 둘의 차이를 간단히 정리해보면, linear regression은 target값으로 실수값을 예측할 때 사용하는 방법이고 logistic regression은 classification을 할 수 있는 regression으로 정수값을 예측할 때 사용하는 방법이다. binary class..
Naive bayes classifier(나이브 베이즈 분류기) 원리 앞선 포스팅에서 살펴본 실질적인 bayesian learning method중 하나가 naive bayes learner이다. 이를 niave bayes classifier라고 부르기도 한다. 이 방법은 몇몇 domain(예를들면, NLP)에서 neural net이나 decision tree와 비등한 성능을 냈다. 새로운 instance를 분류하는 bayesian approach는 instance를 표현하는 특징벡터가 주어졌을때, 가장 probable한 target(class)를 찾는 것이다. Bayes theorem 다시 앞선 포스팅에서 봤던 베이즈정리를 정의해보자. 우리가 하려는 분류문제에 맞게 변수를 정의해보자면, y는 분류하고자 하는 class가 된다. X는 input의 특징벡터가 된다. X를 각..
Bayes theorem(베이즈정리)와 MLE/MAP 이제부터 두 개의 포스팅을 통해 Bayesian learning에 대해서 살펴보도록 할 것이다. 기본적으로 Bayesian learning은 추론에서 확률적인 접근을 제공한다. 우리가 관심을 갖는 값(모델,클래스)이 확률분포에 의해 좌우된다는 생각에서 시작한다. 그리고 관측된 데이터와 함께 확률을 추론함으로써, 관심을 갖는 값에 대한 optimal한 decision을 내릴 수 있다는 것을 기초로 하는 learning이다. 기본적으로 확률시간에 많이 배웠던 베이즈정리를 한번 쉬운말로 정리해보고 class의 분류(classification)에 쓰일 수 있는 MLE와 MAP에 대해 직관적으로 설명해보도록 하겠다. 또한 데이터 모델링에 사용되는 파라미터(weight같은)를 예측하는데 쓰일 때 least squa..