Entropy, Cross-Entropy, KL Divergence

Entropy는 Cross Entropy Loss라는 이름으로 Deep Learning에서 분류 모델을 하는 이에게는 꽤나 익숙한 함수이다. 식으로는 다음과 같이 쓴다.

$$-{1 \over n}\sum\limits^n_{i=1}\sum\limits^c_{c=1}L_{ic}log(P_{ic})$$

  • $n$ = 데이터 갯수
  • $C$ = 범주 갯수
  • $L$ = 실제 값 (주로 0 또는 1)
  • $P$ = 실제 값에 대한 확률 값 (0~1)

Entropy는 불확실성을 계산하기 위한 Metric이다. 어떤 바구니가 있다고 하고 안에 붉은 공만 있다고 하자. 이러면 공을 꺼내면 항상 붉은 색만 나올테니, 이럴 때는 불확실성이 존재하지 않는다. 이 때 Entropy는 0이다.

일상 문제로 가져와서 생각해보면 이런 경우는 존재하지 않을 때가 더 많다. 앞서 언급한 분류문제를 기반으로 생각해본다면 분류를 하는 것자체가 데이터가 섞여있는 것을 의미하기 때문에 더더욱 그렇다. 엔트로피의 식은 다음과 같다. $$H(q) = -\sum_{c=1}^{C} q(y_c)log(q(y_c))$$ 이 식을 활용해서 분포간의 차이를 보는 것이 Cross Entropy이다. 실제 분포가 $q$가 있고, 우리가 모델로서 만드는 분포 $p$의  있을 때 특정 실제 값 $(y_c)$와 입력한 값 $p(y_c)$간  차이를 보는 것이다.
$$H_p(q) = -\sum_{c=1}^{C} q(y_c)log(p(y_c))$$ Python으로 구현하면 이렇게 쓸 수 있겠다.

import numpy as np
def CrossEntropy(Q, P):
Q = np.float_(Q)
P = np.float_(P)
return -np.sum(Y*np.log(P) + (1-Q)*np.log(1-P))

여기서 확장해서 "차이"들을 모두 Sum해서 이 두 분포간의 전체적인 차이를 보는 것이 바로 Kullback-Leibler Divergence이다. 식은 다음과 같고 이산형 분포를 감안하여 식을 썼지만 $\int$를 쓰면 연속 분포에서도 가능할 것이다.

$$D_{KL}(q||p) = -\sum_{c=1}^{C} q(y_c) [log(p(y_c)) - log(q(y_c))] = H_p(q) - H(q)$$ Entropy부터 Kullback-Leibler Divergence까지 연관성에 대해서 대략 정리해보았다.

Read more

OLS 기반 인과추론 시 오차항 관련 체크 필요 가정

OLS 기반 인과추론 시 오차항 관련 체크 필요 가정

배경 * 아래 글을 DANBI에서 보다가 더 알아보게 되었습니다. OLS를 떠받치는 몇 개의 기둥이 있는데 그중 실용적으로 가장 중요한 것이 일치성(consistency)다. 쉽게 말해서 OLS를 통해 도출된 추정량이 있을 때 샘플사이즈가 커지면서 이 값이 참 값으로 접근한다는 것이다. 일치성이 충족되면 우리는 적당하게 큰 표본에 대해서 추정치가 좋은 속성을 지니고 있다고

인공지능이 문제가 아니라 결국 사람이 문제가 될 것입니다.

인공지능이 문제가 아니라 결국 사람이 문제가 될 것입니다.

사람들이 AI가 필요하다고 생각하는 시점 저 판사를 얼른 AI로 교체해야 한다. 유튜브에서 뉴스를 보다 보면 정말 많이 보이는 덧글입니다. 이러한 내용의 덧글이 달릴 때마다, 정말 많은 사람들이 공감을 표하곤 합니다. 왜 이렇게 사람들은 이러한 주장에 공감을 표하는 것일까? AI는 시킨대로 하기 때문에 공정하다는 인식 여러 이유가 있겠지만, 사람들은 아마 AI가

BG/NBD 모델은 고객 생애가치를 추정하는데 사용되는 확률 모델입니다.

BG/NBD 모델은 고객 생애가치를 추정하는데 사용되는 확률 모델입니다.

1. BG/NBD 모델이란? * BG/NBD(Beta-Geometric/Negative Binomial Distribution) 모델은 **고객의 생애 가치(Customer Lifetime Value, CLV)**를 추정하는 데 사용되는 확률적 모델입니다. * 특히 고객이 반복 구매를 할지, 아니면 더 이상 활동하지 않을지를 추정하는 데 유용합니다. 이 모델은 고객의 구매 행태를 두 가지 중요한 개념으로 나눕니다: * 고객은 활성(active)

다중공선성은 잘못된 인과추론 결과를 만들어낼 수 있습니다.

다중공선성은 잘못된 인과추론 결과를 만들어낼 수 있습니다.

다중공선성(Multi Collinearity) * **Multi-Collinearity(다중공선성)**는 독립 변수들 간의 강한 상관관계가 존재할 때 발생합니다. 즉, 한 독립 변수가 다른 독립 변수에 의해 설명될 수 있을 정도로 상관관계가 높은 상황을 의미합니다. * 이 문제는 주로 회귀 분석에서 나타나며, 변수들 간의 관계를 해석하는 데 있어 큰 장애물이 될 수 있습니다. * 일반적인 회귀식을 $Y=