8_크로스엔트로피 와 야코비안 행렬

2019-09-23 이민예

Information Theory

Cross Entropy

머신러닝에서 오차함수로 MSE 혹은 Cross Entropy 를 사용한다. Cross Entropy란 무엇인가? Entropy 란 무엇인가?

정보의 양 (Self Information = surpisal, 놀람의 정도)

  • 고비사막에 눈이 왔다.

  • 대관령에 눈이 왔다.

위의 두 문장중 어떤 것이 더 많은 정보를 포함하고 있을까? 정보 이론에서는 "고비사막에 눈이 왔다" 는 문장이 이례적이기 때문에 더 많은 정보를 담고 있다고 말한다. 즉 정보의 량 h(𝑒𝑖)ℎ(𝑒_𝑖 )은 사건이 일어날 확률이 적을 수록 정보의 량은 증가하며, 다음과 같이 정의한다. 정보의 량을 수치화하여 측정할 수 있는 것이다.

h(𝑒𝑖)=log2𝑃(𝑒𝑖)ℎ(𝑒_𝑖 )=−log_2⁡𝑃(𝑒_𝑖 )

𝑒𝑖⁡𝑒_𝑖 는 이례적인 사건을 의미하며, 이례적인 사건의 확률 𝑃(𝑒𝑖)𝑃(𝑒_𝑖 ) 의 값은 이례적이므로 작다. 이 확률값에 로그를 취하고, 마이너스해주면, 0~1사이 확률 값이 작아질 수록 정보의 양인 yy 가 확 증가함을 볼 수 있다.

Entrophy

𝐻(𝑥)=i𝑘𝑃(𝑒𝑖)log2𝑃(𝑒𝑖)𝐻(𝑥)=−∑_i^𝑘〖𝑃(𝑒_𝑖 ) log_2⁡𝑃(𝑒_𝑖 ) 〗

엔트로피의 식을 보면, 앞서 말한 정보의 양의 기댓값이다. 열역학 제 2법칙(엔트로피 증가 법칙)과 관련이 있다. 엔트로피의 공식을 윷놀이의 적용할 결과, 도, 개, 걸, 윷, 모가 다 확률이 같을 때 엔트로피가 높음을 알 수 있다.

Cross Entropy 란 무엇인가?

H(P,Q)=P(x)log(Q(x))H(P,Q) = -∑ P(x) * log(Q(x))

엔트로피와 KL-Divergence의 합이다. KL Divergence란 두 확률분포의 거리를 평균한 값이다. 크로스 엔트로피를 오차함수로 사용하는 이유는 KL에서 두 확률 분포가 거리가 멀수록, 무한대로 가고, 같을 수록 0으로 간다.

H(P,Q)H(P,Q) 는 정보가 QQ 라는 확률을 따르는 이벤트로 가정하였을 때, 공식유도정리

SPC (Statiscal Process Control) 에서 KL-Information이 있다. 로그가 1을 기준으로 1보다 크면 양수값이 되고, 1보다 작으면 음수값이 된다.

  • P(x)>Q(x):P(x) > Q(x) : 두 확률분포의 거리가 양수

  • P(x)=Q(x):P(x) = Q(x) : 두 확률분포의 거리가 0

  • P(x)<Q(x):P(x) < Q(x) : 두 확률분포의 거리가 음수

P(x)/Q(x)P(x)/Q(x) 는 두 확률분포의 거리의 비율을 말하며, 앞에 log는 스케일을 한 것이다. 이것이 KL이며 KL의 평균을 KL-Divergence라고 한다.

즉, 크로스 앤트로피란 P에 대한 엔트로피와 두 확률분포의 거리에 대한 평균의 합으로 표현된다. 따라서 이는 딥러닝에서 오차함수로 쓰이는데 어떤 의미일까?

Information Criteria for Model Selection

아래 두 가지로 평가함

  • 모델의 불확실성

    • 내가 추정한 값과 실제값의 차이

  • 추정해야하는 파라미터의 갯수에 대한 패널티 텀

  • SSR : Sum of Squared Residuals

  • SSE : Sum of Squared Estimate of Errors

  • SST : Total Sum of Squares

https://taeoh-kim.github.io/blog/bayes-theorem%EA%B3%BC-sigmoid%EC%99%80-softmax%EC%82%AC%EC%9D%B4%EC%9D%98-%EA%B4%80%EA%B3%84/

최적화 문제

수학에서 순수 최적화란 함수를 의미한다. 하지만 딥러닝에서는 함수가 아니라 Training Data고 Error Backpropation(SGD)을 가지고 최소점을 찾는 것이다. 머신러닝에서 적합한 모델을 고를때, 확률을 알면 나이브 베이즈를 쓰면 된다. 하지만 모를때는 SVD, Random Forest, 등 분류를 위한 우리가 아는 다양한 모델들을 사용하면서 parameter space를 탐색한다. 보통 parameter space는 feature space보다 크다.

  • Exhaustive Search Algorithm

    • 2차원의 바둑판을 만든다. 그 만든 칸을 각각 목적함수 (object function)에 대입한다. 하지만 이 방법은 시간소모적이다.

  • Random Search Algorithm

    • 바둑판 중에서 랜덤하게 선택하여 목적함수에 대입한다. 계산량이 적지만 Exhaustive Search Algorithm 과 Random Search Algorithm 모두 비효율적이다.

  • Gradient Decent Algorithm

    • 특정점을 찍고, gradient를 계산한다.

은닉층이 2개가 있다. 위에는 선갯수만큼 편미분이 일어나고 총 24번의 편미분이 일어난다. 하지만 만약에 은닉층의 노드가 100개가 되면? 일일이 하기 어렵다. 따라서, Backpropagation을 해주고, 이는 역전파를 따른다.

야코비안 행렬이란 무엇인가?

f:Rd>Rnf:R^d -> R^n 임의의 변수 x,yx,y 에 대해 (x,y)(x, y) 직교 좌표계에서 (r,θ)(r, θ) 극좌표계로 변환하고자 한다. 머신러닝에서는 공간변환을 통해서 분류문제를 수행하는데 어떻게 공간을 변환할 것인가는 항상 이슈가 된다. 같은 데이터의 영역을 다른 좌표계로 표현한 결과, 넓이가 변하였다.

즉, 야코비언이란, 데이터의 한 점에 관점에서 공간 변환 후에 얼만큼 변하는 지를 보는 것이다.

야코비안 예제

열이 x, 행이 함수!

Hessian Matrix

각 함수에 대해 편미분을 한번 더 해준다. 편미분이 0이고, 더이상 증가하는 방향이 없으면 중지한다. 이곳이 지역극점이다. 하지만 이는 변곡점일 수 있다. 1차 gradient가 0이더라고 saddle point일 수 있다. 따라서 2차 편미분한 Hessian Matrix를 보고 조그만 이동하면 minima solution을 찾을 수 있다.

Batch

10번의 미니 배치를 평균한 것이다.

Last updated