자리마다 따로 만든 도구들을 한 상자에 담으면, 정말로 서로 맞물릴까? 장마다 등식을 하나씩 따로 증명했으니, 한 등식에서 쓴 F와 다른 등식에서 쓴 F가 같은 것인지는 아직 아무도 한 번에 확인하지 않았다. 지금까지의 도구가 정말 지수족 하나를 다루는 한 벌의 연장이라면, 한곳에 모아도 어긋나지 않아야 한다. 코드로 확인하는 것이 가장 정직하다. 한 클래스 안에 F, η, 피셔, F*, 브레그만, KL을 넣고, 장마다 따로 증명했던 등식들이 한 번에 성립하는지 본다.
파이썬
결과가 셋인 분포를 지수족으로 쓴다. 결과가 둘이면 파라미터가 하나라 피셔 정보가 숫자 하나로 나오고, 결과가 셋이면 파라미터가 둘이라 피셔가 2 × 2 행렬로 나오니, 결과가 셋인 분포는 행렬로서의 피셔를 볼 수 있는 가장 작은 경우다. t(x)는 앞의 두 결과를 가리키는 원-핫이고, 셋째 결과가 기준이다.
KL = 브레그만(순서를 뒤집어서), 르장드르 쌍대, 음의 엔트로피, 피셔 = Cov[t], KL의 2차 근사 ½dθᵀI dθ가 한 객체 안에서 동시에 맞는다. 클래스에 새 t(x)와 k(x)만 넣으면 같은 연장이 다른 지수족에서도 그대로 돈다.
이 절의 결론
“θ 좌표의 브레그만은 인자 순서를 뒤집은 KL이고, η 좌표의 브레그만은 인자 순서를 그대로 둔 KL이며, F*는 음의 엔트로피, 피셔는 F의 두 번 미분이자 t의 공분산이다. 장마다 따로 증명한 등식들이 F 하나에서 함께 나오고, 한 클래스 안에서 함께 맞는다.”
지도가 완성되어, 키 분포를 점 하나로 놓았을 때 시작된 여행이 여기서 하나의 그림이 된다. 그 그림을 한 문단으로 줄이면 이렇다. 두 분포를 잇는 곧은 길에는 확률을 더해서 섞는 m-측지선(m은 mixture)과, 확률을 곱해서(로그 확률을 더해서) 섞는 e-측지선(e는 exponential)이 있다. e-측지선으로 이어 붙인 모델 면(e-평탄한 모델 면. 지수족이 그렇다) 위로 현실 p를 KL이 가장 작은 점 q까지 내리면, 모델 면 안의 어떤 r을 골라도 KL(p‖r) = KL(p‖q) + KL(q*‖r)이 선다. p에서 q*로 내려오는 m-측지선과 모델 면이 직각으로 만나서 KL이 피타고라스 정리처럼 나뉘는 것이다. EM 같은 교대 최소화가 한 번에 줄인 KL을 정확히 잴 수 있는 것도 KL의 피타고라스 등식 덕분이다. 확률을 섞는 m-측지선은 분포를 넓게 펴는 방향이고, 확률을 곱하는 e-측지선은 봉우리를 뾰족하게 세우는 방향이다. 그리고 두 측지선 사이를 번역한 것이 log였다.
마지막으로, 이 지도 위의 자가 좌표를 바꿔도 같은 자인지 확인해 보자. 먼저 손에 익은 종이 지도부터.
문제 12. 가로 세로 축척이 다른 지도
어느 지도는 가로 1 cm가 실제 1 km, 세로 1 cm가 실제 2 km다. (가) 지도 위에서 오른쪽으로 3 cm, 위로 2 cm 떨어진 두 곳의 실제 거리는? (나) 같은 두 곳을 가로 1 cm = 0.5 km, 세로 1 cm = 1 km인 다른 지도에 옮겨 그리면, 지도 위에서 가로·세로로 몇 cm 떨어지고 실제 거리는 얼마인가? (다) 두 지도에서 「지도 위 가로·세로 칸 수로 실제 거리를 구하는 규칙」을 적어 비교하라.
왼쪽은 가로 1 cm = 1 km, 세로 1 cm = 2 km 인 지도 위에서 오른쪽으로 3 cm, 위로 2 cm 떨어진 갑과 을. 오른쪽은 가로 1 cm = 0.5 km, 세로 1 cm = 1 km 인 빈 지도
함께 풀기
김민준
지도 위 거리가 √(3² + 2²) = 3.61 cm고, 축척이 1 km와 2 km 사이니까 평균 1.5를 곱해서 5.41 km요.
선생님
위로 2 cm 간 부분만 따로 보면 실제로 몇 km예요?
김민준
4 km요. 오른쪽 3 cm는 3 km고요. 그럼 실제로는 3과 4가 직각으로 만나니까 5 km네요. 지도 위 거리를 먼저 재고 축척을 곱하면 안 되고, 방향마다 축척을 따로 곱한 뒤에 재야 했어요.
이서연
(나)는 지도 위로 가로 6 cm, 세로 4 cm라서 지도 위 거리는 7.21 cm인데, 실제 거리는 √(0.5² × 6² + 1² × 4²) = √(9 + 16) = 5 km. 지도 위 숫자는 다른데 실제 거리는 같아.
η 좌표의 피셔는 θ 좌표 피셔의 역행렬이니까, 둘을 곱하면 단위행렬이에요. 틀린 계산이 쌍대성을 보여 준 거예요.
선생님
두 사람이 이 장의 두 결론을 다시 확인했어요. 민준 학생은 KL의 2차 근사가 맞는 범위가 얼마나 좁은지를 숫자로 찾았고, 서연 학생은 계량이 좌표가 아니라 기하의 것이라는 걸 확인했어요. 성분은 좌표마다 다르고, 계량은 하나예요.
김민준
좌표마다 계량 성분이 다른 건 단위가 다른 거네요. 과제에서 cm와 m를 섞으면 숫자가 달라 보여도 같은 길이인 거랑 같네요. 넓이를 바꿀 때는 단위 변환을 두 번 곱해야 하는 것까지요.
이서연
선형대수에서 이차형식은 PᵀAP로 바뀐다고 외웠는데, 그게 왜 양쪽인지 이제 몸으로 알겠어요.
문제 14. 확률로 배우느냐 로짓으로 배우느냐
성공 확률 q 하나로 된 베르누이 모델을 데이터의 성공 비율 0.8에 맞춘다. 손실은 크로스 엔트로피 −[0.8 log q + 0.2 log(1 − q)], 지금 q = 0.5, 학습률은 0.1이다. (가) q를 그대로 파라미터로 삼아 경사하강을 한 스텝, 로짓 θ = log(q/(1 − q))를 파라미터로 삼아 한 스텝 업데이트한 뒤의 q를 각각 구하라. (나) 각 좌표의 피셔 정보(q 좌표에서는 1/(q(1 − q)), θ 좌표에서는 q(1 − q))로 그래디언트를 나눈 스텝으로 다시 하라. (다) 학습률을 0.01로 줄이면 (나)의 두 결과는 어떻게 되는가?
같은 크로스 엔트로피 −[0.8 log q + 0.2 log(1 − q)]를 왼쪽은 q 의 함수로, 오른쪽은 로짓 θ 의 함수로 그리고 지금 자리 q = 0.5(θ = 0)를 찍은 그림