-
머신러닝 수업 4주차 - Bayesian Decision Theory & Parametric MethodsSW개발/머신러닝 2018. 10. 5. 14:55
2018.10.05
Bayesian Decision Theory
오늘은 bayseian decision theory를 나갈 것인데, 베이지안 룰이나 theory에 대해서는 익숙할 것이다. 나중에는 parameter method 챕터를 나갈 것인데, 그 챕터에서는 먼저 익숙한 모델을 정의한다. 그리고 그 파라미터들을 알면 모델은 fully specified된다. 그 다음 챕터는 non-parametric method를 나갈 것인데 이 챕터에서는 distribution이 어떻게 생겼는지를 가정하지 않는다. 베이지안 framework은 심플하지만 general해서 잘 이해해야 한다.
probability theory를 framework로 볼 것인데 appendix를 읽을 것을 추천한다. uncertainty 를 고려할 것이다. (i do consider uncertainty) Bayesian decision theory라고 부르는 이유는 두번째 점에 있다. Bayes' rule이 사용되기 때문이다. 이 챕터에서는 concept of risk도 소개할 것이다. 이 점들이 이 챕터에서 설명할 것들이다.
예를 들어 single coin을 가지고 있다. probability 수업은 다들 이렇게 코인 토싱 얘기를 한다 이게 제일 심플리스트 하니까 그렇다. 가능한 결과로 head or tail을 가지고 있다. 한 번 코인 토싱 액션을 하면 z들 (initial position, force, direction....) 들이 영향을 미친다. 그런데 outcome이 head인지 tail인지 알기 위해서 이 모든 detailed information을 알 수 없다. 그래서 probability와 randomness를 고려해야 한다. 이 모든 z를 알면 모든 가능한 정보 related to coin tossing을 알면 exact value x가 head or tail 중 뭐인지를 얻게 될 것인데, 우리는 z를 알 수 없으니 위에 있는 (1) 처럼 model을 할 수 없다. 우리의 연구에서도 비슷한 과정을 거치게 될 것이다. 모든 정보를 알면 exact output value를 얻게 될 것이지만, 그렇지 않기 때문에 probability approach를 하는 것이다.
random process는 experiment를 randomness를 가지고 반복 repeat하는 것을 말한다. due to lack of knowledge 때문이다. value를 0 또는 1로 둔다. random variable을 위해서 probability density function이 필요하다. 지금 예시에서는 베르누이 분포를 고려하는게 합리적일 것이다. X=1 즉 head의 probability는 p0 (피오 혹은 피지로) 이다. X=0의 확률은 1에서 빼면 된다. 이건 확률이기 때문에 합이 1이 되어야 한다. 그러면 결과적으로 p0만이 우리가 모르는 unknown variable이다. p0를 알게 되면 베르누이 분포는 fully specify된다.
우리는 p0가 뭔지는 모르는 상태이지만 sample을 가지고 있다. 위의 슬라이드에서 capital X는 set of sample 혹은 set of data이다. n이 varies from 1 to capital N까지 변한다. 이 데이터로부터 p0를 estimate해야 한다. 그런데 optimal value of p0는 바로 sample mean일 것이다. 이것을 p0 햇이라고 denote 할 것인데, 이걸 넣어주면 이제 distribution을 알게 된다. (p0^ = 2/3)
이 간단한 컨셉을 생각하면서 다른 문제로 넘어간다. 이전에 언급했던 문제다. credit scoring problem은 kind of learning problem이다. 나는 banker이고, customer가 하이리스크인지 로우리스크인지 예측해야 한다. income과 saving이라는 2 observation이 있다. 이것들은 random variable이다. 이 value로부터 이제 credibility of customer에 관한 decision을 하고 싶다. output value C는 either 1 or 0이다.
다시 베르누이 분포를 고려할 것인데, given x일 때 C=1인게 (P(C=1|x)) 더 확률이 크면 class를 1이라고 하는게 더 합리적이다. 즉, high risk확률이 높으면 돈을 안 빌려주는게 합리적이다. 이렇게 observation을 기반으로 customer가 하이리스크인지 로우리스크인지 판단을 하는데, probability 하나가 다른 거보다 더 크면 그 value로 decision하는게 맞다.
위에서 decision rule을 봤고 이제 error를 생각해볼 것이다. error는 1-probability일 것이다. 이게 probability error이다. 1-maximum[P(C=1|x),P(C=0|x)]
내 decision이 (4) 번식에서 이렇게 결정되기 때문에 (5)번 식에 max를 넣은 것이다. 그렇다면 이 |x 부분에 해당하는, conditional probability, posterior probability는 어떻게 계산할 것인가?
Bayes' rue로부터 이 condition of proiblaibily가 얻어진다. (6)의 구하는 식을 보면 분자에 joint probability를 분모의 marginal probability로 나눠서 구한다. P(both x and C)를 우리가 이미 가지고 있을 때 normalized by the probability of x를 해주는 것이다. (normalize는 value가 0과 1 사이가 되도록 해주는 것이다.)
우리의 관심(interest)는 probability given x (x가 주어졌을 때의 확률)이다. x는 observation인데 그게 지금 condition이다. 이 condition이 주어졌을 때의 C를 알고 싶은 것이다. p(C)는 prior probability이다. probability of observation C with no any information이기 때문에 prior probability라고 부른다. (x에 대해서는 고려하지 않는 것이다.) 그다음 p(x|C)는 likelihood이다. 우리가 알고자 하는 것과 순서가 바뀌어 있다. condition C가 어떤 value를 가지고 있을 때, 예를 들어 C=1일 때, x를 얻을 확률은? (how likely to observe x?) 값이 된다. C=1이면 high risk customer일 때, condition x를 얻을 확률이다. 그래서 class likelihood라고도 부른다. 그리고 아까 분모에 들어갔던 normalizing factor는 evidence라고 불린다. marginal probability인데, caring much about C는 하지 않고, observing x itself에 대해 더 관심이 있다. 이것들을 알면 쉽게 posterior probability를 구할 수 있다.
posterior probability를 구했으면 decision rule을 define할 수 있다. 이렇게 decision rule을 만드는 방법이 있고, 다른 방법이 있는데, 다른 방법은 나중에 소개할 것이다. (sub-function to get probability)
방금 본 decision rule의 예시는 binary라서 target class가 0 또는 1이었는데, multi-class라면? 위와 같다. 먼저 P(Ck)는 positive 혹은 non-negative smaller than 1이고 다 합하면 1이 된다. 여전히 나머지는 Bayes' rule이고 denominating factor (분모) 말고는 달라진 것이 없다. 아까 0 and 1 대신에 0 to k-1까지 들어간다. (13) 식에 있는 것은 Bayes' classifier이다. (글쓴이 - decision rule을 일반화해서 classifier를 만들어낸 것) posterior C값이 제일 큰 애를 선택하는 건 매우 intuitive한 way이다.
posterior을 구하기 위해 bayes' rule을 쓰면 likelihood, evidence 등등이 필요한데, how can i get this value? how can i define likelihood? 이게 다음에 나올 내용들이다.
<evidence>
- Class C의 target value는 discrete value였다. 그런데 continuous라면? 공식에서 summation 부분이 integral로 변하게 된다. 그러면 evidence term을 구하기 어려워져서 posterior probability를 구하는데 문제가 생긴다.
이걸 식으로 적어보면 다음과 같다.
p(/x) = ∑ p(/x|C)P(C) 이때 C가 "discrete" value이다.
그런데 "continuous"면
p(/x) = ∫ p(/x|c)p(c)dc 인 것이다.
-small p는 probability density with respect to "continuous" value이다.
capital P는 probability over "discrete" variable 이다. consistency를 위해 이런 notation을 계속 사용할 것이다.
* minimum error는 아까 (5)번 식에서 1-max()로 구한 것처럼 구하면 되고 error를 최소화 하기 위해서는 이걸 minimize해야 한다.
<likelihood>
- likelihood는 chapter 4 parametric method에서 다룰 것이다.
- p(C|/x) = p(/x|C)P(C) / p(/x)에서 C는 class label을 denote한다. 다른 알고리즘은 다른 term에 관심이 있다. 어떤 건 evidence term을 어떻게 구하고, 어떤 건 likelihood term을 어떻게 구하고가 다르다. lots of way to define likelihood function p(/x|C)이 있다. 그 방법들은 parametric과 non-parametric으로 분류해볼 수 있다.
p(/x|C)
1) parametric: 가장 흔하게 쓰이는 model이 "exponential family"이다. distribution이 exponential function인 것을 말한다. Gaussian이 한 예시이다.
2) non-parametric: fixed form이 없고, solely learned from data한다.
=> 알고리즘마다 parameter을 어떻게 효율적으로 구하고, function을 어떻게 효율적으로 디자인하고가 다 다르다. (다른 모델들의 combination으로 앙상블 모델을 만든다든지 할 수 있다)
* posterior을 얻으려면 normalizing factor인 p(x)를 얻어야 하는데 대부분 쉽지 않다. 거의 continuous value인데 integral을 계산할 때 컴퓨터로 하기에는 어렵다. how to efficiently estimate or compute the posterior value? 하는 질문을 하게 되는데, 이건 approximation method와 관련이 있다. 때때로 posterior probability가 might not be straight forward하다. 그런데 classification의 경우에는 straight forward하다. 그냥 simply calculate the number of sample in your data or the ratio of the sample을 계산하면 된다.
notation을 지금 set of C로 되어있는 것을 theta로 denote할 것이다. 그러면 parameter가 그냥 다른 random variable이 되는 것이다. 이 필드에 여전히 존재하고 (= 공식은 동일하고) C가 theta로 바뀌는 것 말고는 변하는 것이 없다. 그러면 likelihood part에서 이런 approach가 가능하다. parameter를 theta라는 another random variable로 넣어주고 그것에 대한 distribution을 put on it해준다. 이렇게 theta에 대한 another distribution이나 another prior를 만들어주면 파라미터가 hierarchical하게 만들어진다. another parameter에 대해 parametric method를 적용해주면 이런 방법을 Hierarchical Bayesian Method라고 부른다.
지금 이 설명은 kind of big picture이다. 강조하고 싶은 것은 이 equation이 지금은 간단하더라도 매우 general한 framework이라는 것이다. 앞으로 모델을 배울 때마다 내가 지금 어느 파트에 있는지를 알아야 한다. 지금 공식에서 x가 brain image가 될 수도 있고 computer vision의 image feature일 수도 있고, finance라면 finance에서 오는 아무 value든 될 수 있을 것이다. 모델과 여러분의 research와의 connection을 생각해봐야 한다. 이 수업의 처음에 말한 것처럼 머신러닝은 한 필드에 국한된 게 아니라 매우 general하고 mechanics, brain imaging, computer vision, natural language 등 여러 곳에 응용될 수 있다.
그 framework를 머리에 넣고 loss and risk로 넘어가겠다.
어떤 경우 decision은 not equally good or costly하다. 때때로 error를 만들고 wrong decision을 하는 건 문제가 되지 않는다. 그런데 small mistake가 아니라 big deal 이 되는 경우가 있다. loss for a high risk applicant vs potential gain from loss risk는 다르다. (글쓴이 - high risk한테 돈 빌려주면 엄청 많이 잃는데, low-risk한테 돈 빌려줘서 이자 붙여 받는다고 얼마 못 벌음) medical diagnosis는 어떨까? patient인데, disease를 가지고 있는데 그렇지 없다고 하는 경우와 disease가 없는데 가지고 있다고 하는 것의 importance나 risk는 다르다. 또 지진이 있다는 걸 mistake해버리면 죽을 것이다!!!
먼저 loss function이라고 불리는 것을 define 해야 한다. 이것은 그냥 value for different action for different cases를 define하는 것에 불과하다. loss인 λ람다ik는 두개의 subscript (첨자) i와 k를 가지고 있다. i는 is about action이다. 그래서 나는 taking action alpha αi를 하는 것이다. When the real class is k일 때의 이야기이다. 그래서 i랑 k가 다르면 risk를 얻게 될 것이고, i랑 k가 equal이라면 take risk를 하지 않을 것이다. 이 definition을 가지고 risk는 (14)와 같은 방식으로 define해볼 수 있다. 이 Expected risk를 구하기 위해서는 expectation을 이용할 것이다. How to define expectation? 아까 람다는 function이라고 말했다.
* input value가 x일 때 function f의 expectation인 E[f]는 integration over x만 하면 된다.
E[f(/x)] = ∫ f(/x) · p(/x) d/x
=> 이게 expectation의 definition이다.
그러면 위를 이용해서 expected risk는 (14)와 같이 define할 수 있는 것이다. λik가 function이니까 f(x) 자리에 람다를 넣어주기만 하면 된다. Given observation x, taking the action αi를 할 때의 risk는 all possible cases of real classes를 다 고려해야한다. 그래서 summation을 하는 것이다. 그리고 function과 probability는 곱해주면 된다. 여기서 우측에 probability는 condition이나 posterior probability이다. x가 내 condition이기 때문이다.
optimal decision을 위해서는 expected risk인 (14)를 minimize하는 게 당연할 것이다. 그래서 (15)에서 argmin이 나온 것이다.
λ (람다) 는 risk of loss function인데 (16)과 같이 정의한다. i=k일 때, you don't have any loss이다. 그러면 expected risk는 given x일 때의 R(αi|x) = (17) 식을 보면 이런 form으로 만들어진다. 그래서 가장 오른쪽에 있는 simple representation을 얻게 된다. 앞알파 아이는 이렇ㄴ 이런 폼으로 끝난다. 1-P(Ci|x)는 P of Ck given x이다. risk를 고려했을 때의 decision rule은 이것을 기반으로 한다.
Simple Quiz
expected risk를 계산하고, optimal decision rule을 찾는 문제이다.
해설은 다음과 같다.
R(α1 | /x) = λ11 P(C1 | /x) + λ12 P(C2 | /x)
R(α2 | /x) = λ21 P(C1 | /x) + λ22 P(C2 | /x)
이 두 식을 쓴 다음, 람다 값을 문제에 주어진 대로 넣으면 다음과 같다.R(α1 | /x) = 10 · P(C2 | /x)
R(α2 | /x) = 1 · P(C2 | /x)
그러면 이들을 합쳐서 이렇게 쓸 수 있다.R(α1 | /x) / R(α2 | /x) = 10 · P(C2 | /x) / P(C1 | /x)
우변에 있는 값이 1보다 크거나 같다면 분자가 분모보다 크다는 뜻이므로 α2 행동을 선택하거나 class 2를 선택하는 것이 맞을 것이다.
반대로 1보다 작은 경우 α1을 선택해야 한다.
consider action alpha k+1을 할 것이다. reject라고 부르는 것을 추가하였다. 그때 이게 나의 loss function이 된다. (18)을 보면 i=k일 때 no loss이다. i=k+1이면 reject option으로 take reject를 한다. 그러면 function은 이런 식으로 define이 될 것이다. 0과 1사이의 람다값을 같게 되고, wrong decision이면 1을 갖게 된다. 이걸 어떻게 정의한 것인지는 너무 걱정할 필요 없다! (Don't worry about how i define this. just from text book) 그냥 교과서에서 가져온 것뿐이고 다른 경우에는 다르게 define된다. 예를 들어, medical case의 경우 가능한 결과가 death라면 그때의 loss는 infinite인데, 그러면 컴퓨터가 계산을 못하니까 그냥 엄청 큰 high value를 넣을 것이다. 그러니까 이 loss function이 어떻게 정의되는지에 대해 너무 걱정할 필요는 없다.
(19)에서 보면 이 경우가 주어졌을 때, what's the risk of taking rejection?은 무엇일까? 답은 람다이다. (20번 답은 λ)
그리고 expected risk는 1-P(Ci | x) 이다. (21번 답)
그러면 Optimal decision rule을 이렇게 써볼 수 있다. 아까 배운 내용에서는 posterior probability만 고려했는데, 이제 rejection option이 생기면, (26)에서 파란 글씨 부분을 고려해야한다. 이 probability가 1-람다보다 커야한다는 threshold 기준을 추가하는 것이다. 이것보다 크지 않으면 decision to any class를 하지 않는 것이다.
binary class의 경우 P(C1|/x) = 0.6으로 하고 P(C2|/x) = 0.4일 때, 여기에 reject option을 추가해본다. 0은 expected risk를 고려하지 않는 것이고, reject option은 0과 1의 중간이 될 것이다. 그냥 0과 1로만 람다가 이루어져있다면 아까 본 bayes classifier와 동일해진다. 그런데 이제 여기에 reject option (loss define between 0 and 1) 을 add한다. λ = 0.3이라고 해본다. 그러면 1-λ가 0.7이므로 (26)식의 파란글씨인 P(Ck|x)는 0.7보다 커야한다는 것이다. P(C1|/x)는 0.6밖에 안되므로 threshold보다 낮다. 그러면 any decision을 다 reject해버릴 것이다. reject하는 경우의 loss function이 작기 때문이다.
- λ가 0이라면? 답은 "always reject".
(26)식에서 1 - 0은 1이 된다. 그러면 1보다 큰 확률은 있을 수가 없으므로 decision이 never gonna happen한다. 아무것도 못하고 언제나 reject만 하게 된다.
- λ가 1보다 크면? 답은 "never reject"
1보다 작아지면 always true가 된다. 그래서 이건 threshold를 고려하지 않는 거랑 똑같다! (글쓴이 - 첨에 배운 간단한 bayes classifier가 되어버린 것!)
그러면 여기까지 본 것이 Basic classifier이다. optimal bayesian decision theory라고 부르는 책들도 있다.
이제 discriminant function파트로 넘어갈 것이다. 여전히 related to classification하다. classification 일때, value를 maximum으로 만드는 class k를 찾는다. gk(x)는 (30)을 보면 probability나 minor expected risk 등을 define한다. Risk는 우리가 minimize해야하는 것이니까 (29)식에서 maximize하는 걸로 쓰려면 -를 붙이는게 당연할 것이다.
첫번째에 있는 게 what we just discuss했던 것이다. Risk가 이런 식으로 - 붙여서 define이 된다. (basically bayesian classifier) 두번째를 보면, 0과 1 사이에 reject option이 없다면 단순히 posterior probability가 된다. 그리고 모든 class가 posterior probability를 구할 때 evidence part를 다 똑같이 공유하기 때문에 이걸 무시할 수 있다. 우리가 궁금한 것은 gk(x)를 maximize하는 argument k 뿐이다. 그래서 evidence 부분은 무시하면 likelihood와 prior의 곱만 남게 된다. prior를 무시한다면 이 값은 완전히 likelihood에 의해 결정된다. 그게 바로 discriminant function의 simplest form이다. 많은 교과서들은 P(x|Cx)에서부터 시작하고 여기에 gradually add term하면서 보여준다. prior을 추가해서 posterior 을 만드는 걸 보여주고 그 다음에 function of loss를 소개하고 그 다음 risk 파트로 넘어간다. (글쓴이 - 하지만 선생님은 반대로 점점 큰 개념에서 작은 개념으로 내려오는 것을 설명해주셨다)
이런 boundary를 decision boundary라고 한다. 이런 식으로 discriminant function을 define하면 gk는 1 for each class하다. 각각의 gk가 partitioning feature space or input space를 해준다. 여기 3개 gk에 더해서 reject option을 추가하였다. 이것은 어떤 샘플로도 decision하지 않는 것이다.
for the two class binary class라면 function을 define할 필요없다. 1개면 충분하다. 2개를 쪼개면 하나에 속하지 않으면 다른 하나니까 같은 function으로 구분할 수 있다. (32)식을 보면 output g(x)가 >0 (positive)라면 왼쪽거가 오른쪽거보다 크구나 할 수 있다. 하지만 binary가 아니라 multiple이면 k number of discriminant function을 consider하는 것을 추천한다. 그런데 multiclassifier를 set of binary classifier로 생각할 수 있다. 내가 c1,c2,c3라는 class를 가지고 있다면 binary classifier를 in different ways로 use할 수 있다.
c1 vs All
c2 vs All
c3 vs All
3 classifier을 위와 같이 만들 수 있다. class with output value가 max인 애를 선택한다. 다른 version은 아래와 같다.
c1 vs c2
c1 vs c3
c1 vs c3
against one classifier해서 each class 들이 output value를 compete하고 largest한 것을 choose 한다. 이것 또한 3개의 binary classifier set을 사용하는 방법이다. 그런데 첫 번째 예시의 경우 you cannot make any decision을 하는 경우가 생긴다. 어쨌든 region을 나눌 때 one function gk를 for each class 별로 만들어야 한다.
Quiz
multivariate gaussian distribution일 때, discriminant function을 적을 것이다. equal covariance라서 Σ 는 두 class에 공통적으로 있는 same form이므로 신경쓸 필요 없다. log를 쓰는 이유는 이 식이 exponential function을 가지고 있기 때문이다. exp에 log를 취하면 사라지게 된다. posterior을 고려해야 하는데, 나는 likelihood를 위와 같이 가지고 있다. discriminant function이 어떻게 생겼냐에 따라 두 class는 이 값 (likelihood)가 다르게 나올 것이다. 그래서 2 class를 위해서 공식을 각각 써야한다. 이건 뇌공학과의 graduate문제였는데 10명 중 한 명만이 답을 제대로 썼다.
summary cover는 안 할 것이다. Bayes' classifier를 봤고, special condition without reject option이었고, 그 밑에는 고려를 한다. 이것들이 chapter 3에서 다룬 내용들이다 .
Parametric Methods
probability에는 2 different approach가 있다. 특히 likelihood에 관해서인데 1) parametric과 2) non-parametric이다.
chapter 4 은 parametric을 볼 것이다. predefine some model for the likelihood function이 되어있다. 그리고 how we can estimate probability from given training set 을 보여줄 것이다. (show) classification과 regression에서의 parametric approach도 보여줄 것이다. 마지막으로 bias/variance dilemma를 소개할 것이다. 이것은 kind of trade-off이다. model complexity와 empirical error도 trade-off가 있다.
어떻게 estimate하는가? 에는 2 가지 방법이 있다.
1) parametric에는 sample들이 어떤 distribution을 따른다고 생각한다. 예를 들면 가우시안이 있다. small number of parameter나 small number of unknown variable을 알면 data를 estimate할 수 있다. multivariate case인 가우시안일 때 시그마와 뮤 (뮤는 mean이다)를 알면 input x는 항상 constant로 (number of element dimension space도 안다) 나와있으니까 fully specify in space가 가능하다. 정확히 말하면 이 2개 값만 필요한 건 아니긴 한데 지금은 일단 충분하다고 가정한다. parametric 방식이라면 가우시안에서는 이것들만 필요하다.
2) non-parametric
main challenge는 how to estimate 혹은 how to learn densities로부터 나온다. training sample로부터 distribution을 알아내는 것이다. Bayesian framework로 봤을 때는 (posterior = likelihood x prior / evidence) 나는 여기서 likelihood 부분을 고려하는 것이다. density estimation을 위해서 basically 2 approach가 있다. 1) maximum likelihood approach는 likelihood itself를 maximizing하는 것이다. 2) 다른 방식은 bayesian estimation이다. MLE는 we have some fixed values which is unknown이다. 그러면 우리는 그 value들이 무엇인지 찾아낼 것이다. 반면 Bayesian에서는 이것 또한 random variables이라고 생각하고 estimate하고 싶어한다. MLE라면 p(θ|x)가 있을 때 theta는 mu와 sigma가 될 수 있고 이 두개는 some fixed value이고, 이것들을 찾아내고 싶어하는 것이다. 이것이 차이이며 지금은 MLE를 먼저 볼 것이다.
p(C|x) = l · p / e 에서 posterior을 얻기 위해서는 이 값들이 필요하다. decision을 위해서 discriminant function gk를 define해야 한다. 그런데 지금 discriminant function을 likelihood만 고려해서 define할 것이다. p나 e는 많이 care하지 않을 것이다. output of the likelihood function만 가지고 decision을 할 것이다. (discriminant function g_k (/x)는 likelihood이다)
샘플은 x는 observation feature value이고, y는 class이다. 이 x는 첫 줄에 써있는 것처럼 이 distribution에서 drawn from된 것이다. p(X|θ)를 구하는데, 지금 이 likelihood를 define하지는 않을 것이고, likelihood는 이 데이터셋으로부터 maximize할 것이다. now assume that set of data이 n number of sample 가지고 있다고 가정한다. 각 샘플들은 independent하고 샘플들 간의 relation이 없다는 strong assumption 혹은 intuitive relation을 가지고서 (i.i.d) 내 데이터 셋의 joint likelihood를 define할 수 있다. What's the likelihood p of x given θ? theta는 sufficient statistics to define the likelihood function이다. 이 확률들은 (1)과 같이 product of likelihood로 표현할 수 있다. (내 assumption i.i.d에 따르면 샘플들이 독립적이기 때문에 joint probability가 그냥 곱으로 얻어진다) 내 샘플이 some function으로부터 drawn되는 거라면 나는 value of theta를 define할 수 있다. 이게 maximum likelihood 의 idea이다.
위의 식은 logarithm으로 보는 것이 낫다. product나 exponential이 사라지기 때문에 general하게 되는 (2)번 폼을 사용한다. given sample data set이 있을 때의 theta에 관심이 있다. 이것을 maximize하고 싶은 것이기 때문에 (2)번 맨 앞에 L(θ|x)가 되는 것이다.
MLE - 베르누이
여기 example이 있다. 베르누이를 가지고 define했는데, x는 binary value이다. 코인 토싱 문제처럼 either 1 or 0 이다. 베르누이일 때 the only parameter는 x=1일 때의 1개의 unknown variable이 있다. 이걸 p라고 estimate할 것이다. 여기까지가 Bernoulli distribution의 definition이다.
n number of sample가지고 있고 logarithm 을 적용하면 (5)번 식처럼 이렇게 써진다. xn은 either 1 or 0이다. log ∏ (product)는 summation form으로 바꿀 수 있다. 제곱으로 올라가 있던 xn은 앞으로 나오게 된다. 이 equation이 나의 objective function이다. 나는 value p를 얻고 싶고, x는 training set으로 이전 슬라이드에서 주어졌다. p만 unknown value일 때 what the p value should be를 알고 싶다. 그때 straight forward한 방식은 derivative를 하는 것이다. 로그는 convex function인데 (아래로 내려간 형태의 그래프) 이것이 0이 되는 지점을 구하면 그 지점이 p햇이 된다. 이것은 간단히 바꿔보면 (6)에서 단순히 sample mean이 나온다. 그래서 이전에 본 코인 토싱 case에서 6 out of 9 을 얻었다면 p0는 2/3이었다. 그게 이 equation에서 나온 것이다. 이게 수학적 증명이다.
이건 MLE방식이다. 그런데 xn을 random variable이라고 가정하고, p를 또 다른 random variable이라고 가정하면 자연스럽게 베이지안 approach로 넘어가게 된다.
MLE - multinomial
베르누이 케이스를 binary에서 더 general case로 간다. 여전히 discrete value이지만 multinomial distribution이다. multinomial일 때는 k possible output value를 가지고 있고, k number of parameters를 가지고 있다. (베르누이가 general해진 것이다.) 1 or 0을 indicator vector로 만들 수 있다. 얘를 들어 when /x가 [0,1,2|일 때, 다음과 같이 만들 수 있다.
[ 0 , 1 , 2]
↑ ↑ ↑
x1 x2 x3
x2에 corresponding하다면 [0,1,0]으로 나타낼 수 있는데 그게 2에 대한 indication vector이다. [0,0,1] 이런 식으로 표현한 게 (7)식에 왼쪽에 있는 indicator variables에 들어가는 내용이다. 이게 xk이다.
그리고 베르누이랑은 다르게 constraint를 가지고 있다. probability axiom을 따르기 위해서 pk의 합이 1이 되어야 한다. (7의 괄호를 보면 됨) 이 equation을 가지고 maximum likelihood를 define해주면 (8)과 같이 된다. 로그를 (9)에서 summation으로 만들어주고 taking derivative with constraint를 equal to zero로 해준다. 라그랑지안 multiplier 또는 constraint optimization theory를 적용한다. 이 디테일에 대해서는 걱정할 필요가 없다. 결과적으로 pk햇이라는 solution을 얻는다.
the estimated pk는 sample mean of the values whose label is equal to k가 된다. instead of consider all the value대신 그냥 label equal to k만 고려하는 것이다. (=i do consider the number of samples whose label is equal to k)
pk 또한 random variable로 고려할 수 있다. 한 step 더 나아가서 베이지안으로 간다면 이 p는 p~Beta (distribution) 에 해당하고 Pk ~ Dirichlet (distribution) 에 해당한다고 볼 수 있다. 그러면 Beta (one parameter here) 한 파라미터를 여기 괄호 안에 넣어주면 되고, Dirichlet (k parameter here) k개의 파라미터를 괄호 안에 넣어주면 된다. 이건 parameter of parameter이기 때문에 이 괄호 안에 들어간 것을 hyper parameter라고 부른다.
Beauty of bayesian approach는 small number of sample을 가지고 있어도 잘 작동한다는 것이다. 원래 매우 작은 수의 샘플을 가지고 k라고 레이블 된 애들을 따로 빼서 고려한다면 매우 bias가 될 것이다. 대신 많은 수의 샘플을 가지고 ratio를 계산한다면 make sense할 것이다. 예를 들어, out of 3 you have 1이라면 0.33 이라는 probability가 나올 텐데, 샘플을 더 늘려서 데이터를 얻으면 훨씬 작은 값을 얻을 것이다. MLE는 highly dependent on the number of sample이라서 number of sample에 매우 vulnerable하다. (bias depending on the case) MLE는 베이지안과 달리 bias되지 않으려면 샘플 수를 키워야 한다.
MLE - Univariate Gaussian
마지막으로 볼 것은 univariate Gaussian이다. 이전에 2 cases는 random variable discrete binomial, multinomial이었다. 마지막으로 이건 gaussian with univarate which has single real number 이다. 이때 gaussian distribution은 (10)과 같은 form으로 define된다. parameter는 sigma와 mu이다. 이것들은 sufficient statistics이다. 그리고 이 value들은 learned from the data한다.
그리고 역시 maximum likelihood approach를 apply해본다. log product of the equation with different inputs x를 구한다. (11번 식) 이 식 안에 들어간 것은 parameter랑 constant들이랑 input x가 있다. 이것을 n번 곱해주면 joint likelihood인데, 그래서 그냥 logarithm을 취해준다. 이제 partial derivative를 하는데, mu와 sigma square를 따로 한다. (둘이 independent하게 하진 않는다. (13)번 보면 sigma square에 mu가 영향을 준다.) mu를 먼저 얻고 같은 approach로 sigma square도 구해준다. 중요한 건 in order to get the variance or standard deviation of sigma 를 하려면 you need to get first estimate the mean 해야 한다는 것이다. 그리고 두 value를 random variable로 regard하면 bayesian approach로 자연스럽게 이동하게 된다. 이것이 maximum likelihood의 다이다. 다음주에 variance와 bias 부분을 볼 것이다.
'SW개발 > 머신러닝' 카테고리의 다른 글
머신러닝 수업 6주차 - Multivariate Methods (0) 2018.11.01 머신러닝 수업 5주차 - Parametric Methods (0) 2018.10.12 머신러닝 수업 3주차 - Supervised Learning (0) 2018.09.19 머신러닝 수업 2주차 - Overview & Basic Maths (0) 2018.09.12 머신러닝 수업 1주차 - Introduction (0) 2018.09.12 댓글