본문 바로가기

데이터 다루기/머신러닝 이론

(43)
[머신러닝] Gaussian Process Regression 1. Prior Knowledge 안녕하세요. 이번포스팅부터 Gaussian Process Regression (가우시안 프로세스 회귀)에 대해서 배워보도록 하겠습니다. GPR은 시계열 데이터에서 찍히는 랜덤프로세스상에서 예측을 하는 것입니다. ​ GPR을 알기위해서는 두 가지 사전지식이 필요하기 때문에, 오늘은 이에 대해서 배워보려고 합니다. 첫 번째는 바로, Multivariate Gaussian Distribution입니다. 한글로 다변량 정규분포 혹은 다변량 가우시안분포로 불립니다. 다음으로, 정규 분포에서의 사전확률분포입니다. 다변량 정규분포에서 일부분이 주어졌을 때 나머지 부분에 대한 분포를 나타냅니다. ​
[머신러닝] Radial Basis Function Network 안녕하세요. 이번 포스팅에서는 Radial Basis Function (RBF) Network에 대해서 배워보도록 하겠습니다. ​ Radial Basis Function (RBF) Network는 신경망 형태를 가지고 있고, distance-weighted regression으로 볼 수 있습니다. Radial Basis Function을 위와 같이 정의합니다. 이를 해석해보면, 새로운 x가 들어왔을 때, 정해져 있는 x와의 거리를 계산합니다. 거리가 가까울 수록 높은 값을 반환하고, 거리가 멀수록 0과 가까운 값을 반환합니다. 즉, 거리가 멀면 적게 반영하고 멀면 가깝게 반영하는 것이지요. ​ Regression은 다음과 같이 진행됩니다. 데이터에 대한 학습을 통해 기준이 되는 데이터의 개수를 정해주기만..
[머신러닝] Kernel Trick for Linear Regression 안녕하세요. 이번 포스팅부터는 당분간 Kernel Trick에 대해서 배워볼려고 합니다. ​ Kernel Trick은 머신러닝을 공부할 때, 굉장히 유용하게 사용됩니다. 따라서, 이 부분을 완벽하게 해 놓으면 실력있는 데이터 사이언티스트가 될 수 있을거에요. ​ Kernel Trick이 활용 되는 예를 보여드리겠습니다. 아래와 같은 데이터를 빨간색과 파란색을 서로 분류하려고 합니다. 선형으로 이를 분류할 수 있을까요? 절대로 하나의 직선으로는 이를 분류할 수 없습니다. (2개가 필요하겠네요 이 경우는) 하지만 Kernel Trick을 사용해서 이 데이터를 2차원으로 바꿀 수 있습니다. 이 처럼 2차곡선으로 바꿔주면, 직선 한 개에 의해서 완벽하게 분류가 됩니다. 생각해보면 정말 단순한 방법일 수 있습니다..
[머신러닝] Bayesian Network 안녕하세요. 이번 포스팅에서는 Bayesian Network (베이지안 네트워크)에 대해서 배워보도록 하겠습니다. Bayesian Network는 Naive Bayes Classifier의 업그레이드 버전입니다. Naive Bayes Classifier는 모든 입력 변수 X에 대해, X가 관찰 될 때, 종속 변수 Y가 나올 확률을 전부 곱하였습니다. ​ 하지만, 현실 문제에서는 모든 X가 Y에 직접적인 영향을 주지 않습니다. 바로, 인과 관계가 존재하지요. 예를 들어보겠습니다. ​ 이러한 네트워크가 있다고 합시다. C 사건은 A와 B에 영향을 받고 D와 E 사건은 모두 C에 영향을 받습니다. 이 때 P(A,B,C,D,E)=P(A)P(B)P(C | A,B)P(D | C)P(E | C)가 만족합니다. 이러한..
[머신러닝] Naive Bayes Classifier 안녕하세요, 이번 포스팅에서는 Naive Bayes Classifier 에 대해서 배워보도록 하겠습니다. Naive Bayes Classifier는 분류문제에서 좋은 성능을 보이는 머신러닝 기법입니다. 그렇기 때문에, Text mining에서 자주 사용됩니다. ​ Naive Bayes Classifier의 Naive는 순진한, 멍청한이라는 의미를 가지는데요. 왜 이런 단어가 앞에 붙었을까요?? ​ 그 이유는 바로 Naive Bayes Classifier의 학습 방법에 있습니다. Naive Bayes Classifier은 전제 조건을 하나 가지고 있습니다. 그것은 바로, 입력변수의 모든 x들이 조건부 독립이라는 것입니다. 현실세계에서 이러한 가정을 말이 안되는 것입니다. 그렇기 때문에, Naive라는 단어..
[머신러닝] Optimal Bayes Classifier 안녕하세요. 이번 포스팅에서는 Optimal Bayes Classifier에 대해서 알아보겠습니다. 한글로 해석하면 최적의 베이즈 분류라는 내용입니다. ​ 가설 공간 H에서 데이터 D가 주어졌을 때, 새로운 관측값 x의 class를 정해야 하는 분류문제가 있다고 생각해봅시다. 과연 어떠한 class를 주는 것이 옳을까요?? ​ 예를 들어보겠습니다. 가설공간 H={h1, h2, h3}가 존재한다고 합시다. 우선 가설공간에 대한 데이터의 사후확률이 다음과 같이 주어졌습니다. P(h1|D)=0.4, P(h2|D)=P(h3|D)=0.3 각 가설의 x에 대한 class 예측은 다음과 같습니다. h1(x) = +, h2(x) = -, h3(x)=- 이 때, x에 대한 class 예측은 무엇이 최적일까요?? ​ 그냥..
[머신러닝] 신경망에서의 Maximum Likelihood 안녕하세요. 이번 포스팅에서는 이전 포스팅에서 배운 Maximum Likelihood가 신경망에서 사용되는 것을 보이도록 하겠습니다. 우선, 신경망에 대해 복습을 위한 기존 포스팅의 링크를 달도록 하겠습니다. 2019/06/01 - [데이터 다루기/신경망] - [신경망] 5. 역전파 알고리즘 (Backpropogation) 신경망에서 역전파 알고리즘에 의해 MSE를 최소로 하는 방향으로 학습이 진행됩니다. 이 때, 가중치 W가 가설 h가 됩니다. MSE를 최소로 하는 방법도 좋지만, MSE에는 단점이 하나 있었습니다. 바로 Gradient Vanishing 문제가 발생한다는 것이지요. 하지만 ML 방법을 사용한 가설 W를 정하는 방법은 이러한 문제를 해결할 수 있습니다. 지금부터 한 번 신경망의 W를 M..
[머신러닝] MAP (Maximum a Posterior) 안녕하세요. 이번에는 MAP에 대해서 배워보도록 하겠습니다. ​ 우선 머신러닝에서 MAP의 의미에 대해서 알아보죠. 예를 들어서, 우리는 어떤 데이터 셋 D를 가지고 있습니다. 우리는 D를 가지고 분류문제를 수행하는 의사결정나무 알고리즘을 만들어야 합니다. D를 분류할 수 있는 의사결정나무는 무수하게 많이 있을것입니다. 이 때, 의사결정나무 하나하나는 가설 h로 정의됩니다. 그렇다면 최적의 의사결정나무는 무엇일까요?? 그것을 바로 데이터 D가 주어졌을 때, 가설이 맞을 확률 (사후 확률)을 최대화 하는 것입니다. 이 때, 사후확률을 최대로 하는 가설을 MAP라고 정의합니다. ​ 수학적으로 정의해보록 하겠습니다. 식을 해석해보면, MAP는 사후확률 P(h|D)를 최대로 하는 가설 h를 찾는 것입니다. P(..