서문

집필 원칙

이 교재는 네 가지 원칙 위에 서 있다.

한 절에 한 개념

교재를 쓰는 사람이 빠지기 가장 쉬운 함정은, 두 개념의 연결이 보이면 한 절에 욱여넣고 싶어지는 것이다. “KL 발산은 비대칭인데 이건 엔트로피와 이런 관계가 있고…” 저자에게는 하나의 문장이지만, 학생에게는 처음 보는 개념 두 개가 동시에 쏟아지는 것이다.

이 교재에서 각 절은 하나의 개념만 심으므로, "확률분포가 점이다"와 "그 점들의 공간이 삼각형이다"는 별도의 절이고 "거리가 비대칭일 수 있다"와 "KL 발산이 그런 비대칭 거리다"도 별도의 절이다. 연결은 학생이 스스로 발견한다. "아, 이것과 저것이 같은 거였구나!"라는 순간은 학생이 스스로 맞아야 하고, 저자가 미리 보여 주면 그 순간이 사라진다.

왜?로 시작한다

매 장은 정의보다 먼저 "왜?"라는 질문으로 시작한다.

볼록함수의 정의보다 "왜 구슬은 오목하게 파인 면에서는 가장 낮은 점을 찾아가는데 말안장 위에선 못 찾는가?"라는 물음이 먼저다. 르장드르 변환의 정의보다 "같은 볼록함수를 완전히 다른 언어로 다시 쓸 수 있다면?"이 먼저다. 학생이 답을 원하는 상태에 도달한 후에야 답을 준다.

절 안의 순서: 사례 → 위젯 → 파이썬 → 결론 → 문제

절마다 같은 순서로 걷는다. 「왜?」라는 물음 다음에 사례가 오고, 위젯과 파이썬 코드를 거쳐 「이 절의 결론」과 연습문제로 끝난다.

사례와 장난감 예제가 먼저 오는데, 일상의 언어로, 숫자가 붙은 작은 예로 이해하는 단계다. “무빙워크가 있는 공항 복도를 상상해보자. 순방향은 3분, 역방향은 11분이니, 같은 두 지점인데 방향에 따라 거리가 다르다.” 이 무빙워크 예로 비대칭 거리의 감각을 심는다.

그림과 위젯이 그 다음으로, 슬라이더를 움직이고, 점을 드래그하고, 그래프가 실시간으로 바뀌는 것을 보면서 손으로 만져보는 단계다. 사례가 심은 감각을 눈으로 확인하고 넓힌다. “아, 정말 A에서 B로 잰 거리와 B에서 A로 잰 거리가 다르구나.”

파이썬 코드가 그 뒤에 온다. kl = np.sum(p * np.log(p / q))는 KL 발산의 정의 그 자체이면서 동시에 실행 가능한 문장이어서, 학생은 코드를 돌려보면서 "p와 q를 바꾸면 값이 달라진다"를 직접 확인한다. 수식은 이 단계들 사이, 필요해지는 자리에서 기호 표와 함께 나오는데, 이 코드 한 줄을 수학 기호로 옮겨 적은 것이 KL 발산의 수식이다.

이 절의 결론과 연습문제가 마지막이다. 결론 상자는 그 절에서 얻은 것을 식과 정식 이름이 든 문장으로 적고, 연습문제는 같은 개념을 다른 쪽에서 다시 만나게 한다.

나선형 반복

같은 개념이 다른 깊이에서 다시 나타난다. 4장(길)의 "e-길: 곱셈으로 걷기"에서 직관으로 만진 학생은, 7장(지수족)의 "지수족: 네 성분 θ, t, F, k 로 짜인 분포의 가족"에서 지수족(log p = θ·t(x) − F(θ) 꼴로 쓰이는 분포 모임)을 배울 때 "아, 그때 그 길!"을 재발견한다. 6장(볼록함수의 쌍대)의 "르장드르 변환: 높이 대신 접선으로 적은 함수"에서 처음 본 르장드르 변환은 7장의 "쌍대 퍼텐셜 F*: θ와 η를 잇는 르장드르 짝"에서 θ↔η 좌표 변환으로 다시 나타나며, "아, 여기서 쓰이는 거였구나!"가 된다.

한 번에 이해되지 않아도 된다. 다음 만남에서 더 깊이 보게 되고, 수학은 그렇게 여러 번 스쳐 지나가면서 점점 선명해진다.