어떻게 하면 최소의 바이트를 사용하면서 정보를 전달할수 있을까?의 연구에서 출발했다.( 정보가 높다 = 불확실성이 높다.) P(X)라는 확률분포에 –log를 붙여주면 X라는 변수에 대한 정보라고 표현 할수 있다.
확률이 1에 가깝게 올라 갈수록 값이 내려가고, 확률이 0에 가까울수록 값이 무한대로 커진다. 그래서 “영희는 내일 밥을 먹을 확률이 높다”라고 할 때, 당연히 밥을 먹으므로 밥 먹을 확률은 거의 99% 일 것이다. 이때 우리가 얻을 수 있는 값은 0에 가깝다는 것이다. 이해하기 편하게 의역을 하자면 영양가 있는 정보가 아니다. 영양가가 0이다 라는 뜻이고. 그 반대로 불확실할수록 새롭게 알게된 정보일 것이므로 영양가가 높을것이다. 그래서 값(영양가)이 커진다.
P라는 분포의 entropy = P(x)분포에서 샘플링한 x의 값에 –log 붙인 후 평균 낸 것이다.
먼저 오른쪽 분포에서 샘플링을 한다면, 가운데 값이 압도적으로 많이 뽑힐 것이다. 확률값이 모두 높은 값들이 많이 뽑힐 텐데 이 값들을 평균내면 정보량은 작아질 것이다. 아까 위에서 설명한 것처럼 확률이 올라 갈수록 영양가가 없는 정보임을 나타낸다고 하였다. 반대로 왼쪽 분포를 보면 분산이 크기 때문에 확률값이 대체로 낮게 분포되어 있다. 이를 샘플링하여 평균내면 정보량값은 커지기 때문에 H(p1)>>>>H(P3) 가 된다. 정리하면 정보량이 높은 것은 대체로 분포가 넓고, 반대로 정보량이 적은 분포는 오른쪽과 같은 분포임을 알수 있다. Entropy값을 통해 분포가 어떤 모양일지 상대적으로 예상이 가능해진다.
P(x)에서 샘플링한 x들을 q(x)에 넣어서 확률을 평균 낸 값으로써, Q의 정보량의 평균을 나타낸다.
위 세개의 분포가 있다고 했을 때 x라는 샘플링을 하였다. 오른쪽 수식처럼 처음에는 Q1(x) >Q2(x) 일것이다. 하지만 –log를 취하면 부호가 반대가 되어서 Q2(x)의 값이 더 커지게 된다. 즉 –logQx(x) 평균값이 커질수록 Q2처럼 P(x)와는 다른 분포라는 것을 알수있다. 반대로 두 분포가 비슷할수록 값은 더더욱 작아진다. 이를 이용하여 딥러닝 Optimizer로 CE를 이용하여 Ground Truth의 분포와 파라미터들의 확률분포를 비슷하게 만들 수 있었던 것이다. (두 분포간의 오차를 줄이는 방향으로 GD를 적용)
위 그림에서, yt * logy^을 likelihood라고 부른다. 이 값은 위 그림의 두개 직사각형으로 설명할수 있다. Yt는 실제 실제 원핫벡터이다. 이 값 안에는 클래스에 해당하는 자리 이외값은 0으로 채워져 있다. Y^은 딥러닝이 예측한 각 클래스의 정답이 될 확률 값인데, 이 값에 log를 취한다. 이때 헷갈리지 말아야 하는 점이 있다. 구하고자하는 것은 max값을 갖는 인덱스의 확률이 아니다. 정답인 인덱스의 확률값이 얼마냐 라는 것이 최대 궁금사항이다. 이 공식이 공교롭게도? 신기하게도? 왼쪽의 CE공식과 같다. CE에서 배웠던 내용 중에 확률값이 내려갈수록 무한대 방향으로 값이 커진다고 배웠다. 즉, class라고 예측한 값이 작을수록 Loss값은 커지게 되는 것이다.
KL을 미분한 것은 CE를 미분한 것과 같다. H(p,ptheta) : CE, H(P): Entropy 이다. KL를 theta로 미분하게 되면 CE와 Entropy에도 각각 적용이 되는데, entropy는 theta가 없으므로 날라가게 된다. 따라서 딥러닝에서 GD를 위하여 theta로 미분하는 과정은 CE를 미분한 것과 같다.
'NLP > 패캠_자연어 입문' 카테고리의 다른 글
10. 차원축소 (0) | 2021.12.09 |
---|---|
9.Mse Loss (0) | 2021.12.09 |
7.Kullback (0) | 2021.12.07 |
6. MAP(Maximum A Posterior) (0) | 2021.12.01 |
5. MLE 수식 (0) | 2021.11.29 |