최대우도법(Maximum Likelihood)

머신러닝 2019. 3. 6. 14:56

정의

어떤 확률변수에서 표집한 값들을 토대로 그 확률변수의 모수를 구하는 방법.

즉, 어떤 모수가 주어졌을 때, 원하는 값들이 나올 가능도를 최대로 만드는 모수를 선택하는 방법.

방법

어떤 모수  θ 로 결정되는 확률변수들의 모임  Dθ=(X1,X2,,Xn) 이 있고,  Dθ 의 확률밀도함수나 확률질량함수가  f 이고, 그 확률변수들에서 각각 값  x1,x2,,xn 을 얻었을 경우의 가능도  L(θ) 는 다음과 같다.

L(θ)=fθ(x1,x2,,xn)

여기서 가능도를 최대로 만드는  θ 는 다음과 같다.

θ^=argmaxθL(θ)

이 때  X1,X2,,Xn 이 모두 독립적이고 같은 확률분포를 가지고 있다면  L 은 다음과 같이 표현이 가능하다.

L(θ)=i=1nfθ(xi)

또한, 로그함수는 단조 증가하므로,  L 에 로그를 씌운 값의 최대값은 원래 값  θ^ 와 같고, 이 경우 계산이 비교적 간단해진다.

L(θ) =log(L(θ)) = i=1nlogfθ(xi)

L(θ)=i=1nfθ(xi)

=fθ(x1)fθ(x2)fθ(x3)

log(L(θ)) =log(i=1nfθ(xi))

=logfθ(x1)+logfθ(x2)+logfθ(x3)+

예시 (모비율 추정)

대한민국의 모든 인구 중 한명을 표본으로 추출하는데 추출된 사람이 남자인지 여자인지를 알려고 한다고 하면, 이 때 표본 랜덤변수가 갖는 확률분포는 베르누이 분포를 따를 것이다. 베르누이 분포는 다음과 같다.

1회 시행 시 두 가지 결과에 의해 그 값이 각각 0 또는 1로 결정되는 확률변수 X 에 대해서

f(x)=px(1p)(1x)

그러면 총  n 명에 대해 추출했을 때의 우도(likelihood)는 다음과 같이 정해진다.

L(X1=x1, X2=x2, , Xn=xn | p)=i=1npxi(1p)1xi (a)

즉, 위 식은 다음과 같이 설명할 수 있다. 가령 10명의 사람을 추출했는데 1번부터 10번 사람까지의 성별이 각각 {남, 여, 남, 남, 여, 여, 남, 남, 여, 남} 이라고 해보자.

남자라면  Xi=0 이라고 하고 여자라면 Xi=1 이라고 결정한다고 했을 때, 현 상태에서  xi(i=1,2,,10) 은

{0, 1, 0, 0, 1, 1, 0, 0, 1, 0} 이라고 할 수 있다. 그러면 식 (a) 는 다음과 같을 것이다.

L(X1=0, X2=1, , X10=0 | p)=i=110pxi(1p)1xi

하지만 여전히  p (표본이 여성일 확률)를 알 수 없기 때문에 확률  f 를 최대화 할 수 있는 모수  p 를 찾도록 최대우도법을 시행한다.

식  (a) 에서 함수  f 를  p 에 대해 편미분 하려면 쉽지 않다. 여기서 로그 함수의 단조증가 성질을 활용하여  L=log(L) 라는 보조 방정식을 도입하도록 한다. 그러면  L 은 다음과 같다.


L=log(L) = i=1nlog(pxi(1p)(1xi))=i=1n{xilog(p)+(1xi)log(1p)}


L 의  p 에 대한 편미분이 0이 되는  p 를 찾으면 최대우도를 만족하는 모수  p 를 추정할 수 있다.

L=i=1nxipi=1n(1xi)1p

=nX¯pn(1X¯)p=0

=nX¯p=n(1X¯)p

=(1p)X¯=(1X¯)p

=X¯pX¯=pX¯p

=p=X¯

따라서,  p=X¯ 로 모수  p 를 추정하는 것이 적절하다는 것을 알 수 있다.

생각해보면 자연스러운 것이 모비율 추정 시 현재 모여있는 사람의 성비를 가지고 모비율을 추정할 수 밖에 없고, 아마 그런 모비율이 있었기 때문에 현재 상태가 만들어 진 것은 아닐까? 라고 추정하는 것은 자연스럽다.

'머신러닝' 카테고리의 다른 글

부스팅 기법의 이해  (0) 2019.03.06
회귀분석 강의노트  (0) 2019.03.06
로지스틱 회귀모델의 모수 추정  (0) 2019.03.06
로지스틱 함수  (0) 2019.03.06
주요 개념 및 관련 문서  (0) 2019.01.29
:

로지스틱 회귀모델의 모수 추정

머신러닝 2019. 3. 6. 14:56

Sigmoid 함수 (logistic function)

sigmoid(x)=11+ex


Sigmoid 함수 미분

ddxsigmoid(x)=ddx(1+ex)1

=(1)1(1+ex)2ddx(1+ex)

=(1)1(1+ex)2(0+ex)ddx(x)

=(1)1(1+ex)2ex(1)

=(1)1(1+ex)2ex(1)

=(1)1(1+ex)2ex(1)

=(1+ex)(1+ex)21(1+ex)2

=11+ex1(1+ex)2

=11+ex(111+ex)

=sigmoid(x)(1sigmoid(x))

=σ(x)=σ(x)(1σ(x))


Cost 함수

Cost(hθ(x),y)=ylog(hθ(x))(1y)log(1hθ(x))


전체 Cost 함수

j(θ)=1mi=1m[y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))]


Cost 함수 미분

θjj(θ)=θj1mi=1m[y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))]

=1mi=1m[y(i)θjlog(hθ(x(i)))+(1y(i))θjlog(1hθ(x(i)))]

=1mi=1m[y(i)θjhθ(x(i))hθ(x(i))+(1y(i))θj(1hθ(x(i)))1hθ(x(i))]

=1mi=1m[y(i)θjσ(θTx(i))hθ(x(i))+(1y(i))θj(1σ(θTx(i)))1hθ(x(i))]

=1mi=1m[y(i)σ(θTx(i))(1σ(θTx(i)))θjθTx(i)hθ(x(i))+(1y(i))σ(θTx(i))(1σ(θTx(i)))θjθTx(i)1hθ(x(i))]

=1mi=1m[y(i)hθ(x(i))(1hθ(x(i)))θjθTx(i)hθ(x(i))+(1y(i))hθ(x(i))(1hθ(x(i)))θjθTx(i)1hθ(x(i))]

=1mi=1m[y(i)hθ(x(i))(1hθ(x(i)))xj(i)+(1y(i))hθ(x(i))xj(i)]

=1mi=1m[y(i)hθ(x(i))(1hθ(x(i)))+(1y(i))hθ(x(i))]xj(i)

=1mi=1m[y(i)y(i)hθ(x(i))hθ(x(i))+y(i)hθ(x(i))]xj(i)

=1mi=1m[y(i)hθ(x(i))]xj(i)

=1mi=1m[hθ(x(i))y(i)]xj(i)



Gradient Desent

Repeat{θj :=θjαθjJ(θ)}

'머신러닝' 카테고리의 다른 글

부스팅 기법의 이해  (0) 2019.03.06
회귀분석 강의노트  (0) 2019.03.06
최대우도법(Maximum Likelihood)  (0) 2019.03.06
로지스틱 함수  (0) 2019.03.06
주요 개념 및 관련 문서  (0) 2019.01.29
:

로지스틱 함수

머신러닝 2019. 3. 6. 14:55

로지스틱 함수

y=11+ez


선형 회귀 분석의 경우 모델을 위해 만들어 지는 함수는 아래와 같다.

y=Wx+b

y=W1x1+W2x2+...+Wixi+b

y=WX

이 1차 함수는 독립변수  x 가 변화할때 종속변수  y 의 변화를 관찰하는 것이 목적인 함수라고 할때 독립변수  x 와 종속변수  y 는 모두 음의 무한대  에서 양의 무한대  의 범위를 갖는다.

혈압과 나이에 대한 상관 관계를 확인/예측하기 위해 선형 회귀 분석을 사용 할 수 있고 이때 나이와 혈압은 연속형 변수로 1차 함수 그래프로 표현하기에 문제가 없다.

그러나 암의 경우와 같이 발병 여부가 데이터로 주어졌을 경우 종속변수  y 는 발병=1, 정상=0 과 같은 범주형 변수의 범위를 갖게 된다.

발병여부를 선형식으로 표현하기 위해 하루에 담배를 5개피 피는 사람을 기준으로 1의 값을 얻기 위해 기울기  W 를 편의상 1로 놓고  b 는 -4로 초기 설정했을 경우  y=154=1 의 결과를 얻을 수 있다.

하지만 담배의 갯수가 10개비로 늘어날 경우  y=1104=6 으로 발병=1, 정상=0 의 범위를 넘어가게 된다.

즉, 독립변수 x 는   에서   의 범위를 갖는데 반해 종속변수  y 는 1과 0 의 범주를 가지고 있어 기존 선형식으로는 표현이 불가능하다.


종속변수 범위의 확장

종속변수  y 의 범위를    에서   로 확장하기 위해 odds 비  odd ratio=p1p 와 로지트 함수(Logit function) z=logit(odds ratio)=log(p1p) 을 이용한다.

odds ratio

실패 확률에 대한 성공 확률의 비율이다. 성공 확률을  p 라고 한다면 실패 확률은  1p 가 된다.

이렇게 보았을때 odds 비는  p1p 와 같이 표현할 수 있다.

p 는 0에서 1사이의 값을 가지므로 위 식을 계산해 보면  p 가 가장 작은 0일 경우  010=0 값을 갖게 되고  p 가 가장 큰 1이 되는 경우  111=10= 값을 갖게 된다.

다시 말하면 승산(Odds)이란 사건 A가 발행하지 않을 확률 대비 일어날 확률의 비율을 뜻하며  odds = P(A)P(Ac)=P(A)1P(A) 와 같이 쓸 수 있다.

승산(Odds)이 커질수록 사건  A 가 발행할 활률이 커진다고 볼 수 있다.

이렇게 odds 비를 적용해  p 에 대해 0부터   의 범위를 갖는 새로운 함수를 만들 수 있다.

logit function

odds 비를 통해 0부터   로 확장 시킨 범위를   에서   로 확장하기 위해 odds에 자연로그를 취한다.

logit(odds ratio)=ln(p1p)

로지스틱 회귀 모델식 유도

  1. 종속 변수  Y 를 1이 될 확률로 두고 식을 세운다.
    P(Y=1|X=x)=β0+β1x1+β2x2++βnxn=βTx
  2. 좌변을 승산(odds)로 설정 한다.
    P(Y=1 | X=x)1P(Y=1| X=x)=βTx
  3. 좌변(승산)에 자연로그를 취한다.
    ln(P(Y=1 | X=x)1P(Y=1| X=x))=βTx
  4. x 가 주어졌을 경우 범우 1일 확률을  p(x) , 위 식의 우변을  a 로 치환해 확률  p 에 대한 식을 도출한다.
    p(x)1p(x)=ea 
    p(x) = ea{1p(x)} = eaeap(x) 
    p(x)(1 +ea) = ea 
    p(x) = ea1+ea=ea1+ea1ea1ea=11ea+1=11+ea 
    P(Y=1 | X=x) = 11+e(βTx)

이항 로지스틱 회귀의 결정 경계

이항로지스틱 모델에 범주 정보를 모르는 입력벡터  x 를 넣으면 범주 1에 속할 확률을 반환해 준다.

범주 1로 분류할 수 있는 확률값은 다음과 같이 표현 할 수 있다.

P(Y=1 | X=x) >P(Y=0 | X=x)

범주가 두개이므로 위 식의 좌변을  p(x) 로 치환하면 다음과 같이 식을 정리 할 수 있다.

p(x) > 1p(x)

p(x)1p(x)>1

βTx>0


마찬가지로  βTx<0  이면 해당 데이터의 범주를 0 으로 분류할 수 있다. 따라서 로지스틱 모델의 결정경계 (decision boundry) 는  βTx=0  인 하이퍼플레인 (hyperplane) 이다.

입력벡터가 2차원인 경우 다음과 같이 시각화 할 수 있다.


'머신러닝' 카테고리의 다른 글

부스팅 기법의 이해  (0) 2019.03.06
회귀분석 강의노트  (0) 2019.03.06
최대우도법(Maximum Likelihood)  (0) 2019.03.06
로지스틱 회귀모델의 모수 추정  (0) 2019.03.06
주요 개념 및 관련 문서  (0) 2019.01.29
: