서문

집필 원칙

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

한 절에 한 개념

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

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

왜?로 시작한다

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

“볼록함수란…” 이 아니라 "왜 구슬은 그릇 바닥을 찾는데 안장 위에선 못 찾는가?"가 먼저다. “르장드르 변환의 정의는…” 이 아니라 "같은 볼록함수를 완전히 다른 언어로 다시 쓸 수 있다면?"이 먼저다. 학생이 답을 원하는 상태에 도달한 후에야 답을 준다.

삼단 진행: 비유 → 인터랙티브 → 코드

각 장은 세 단계를 거친다.

비유가 먼저 온다. 거실에서, 일상의 언어로 이해하는 단계다. “무빙워크가 있는 공항 복도를 상상해보자. 순방향은 3분, 역방향은 11분. 같은 두 지점인데 방향에 따라 거리가 다르다.” 이것으로 비대칭 거리의 감각을 심는다.

JSX 인터랙티브가 그 다음이다. 슬라이더를 움직이고, 점을 드래그하고, 그래프가 실시간으로 바뀌는 것을 보면서 손으로 만져보는 단계다. 비유가 심은 감각을 시각적으로 확인하고 확장한다. “아, 정말 이쪽에서 저쪽은 가까운데 반대는 멀구나.”

파이썬 코드가 마지막이다. 수식 대신 코드가 진실을 말한다. kl = np.sum(p * np.log(p / q))는 정의 그 자체이면서 동시에 실행 가능한 문장이다. 학생은 코드를 돌려보면서 "p와 q를 바꾸면 값이 달라진다"를 직접 확인한다. 그리고 그제야 수식이 필요해진다 — 이 코드를 한 줄로 쓰면 어떻게 되는가? 그것이 수식이다.

나선형 반복

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

한 번에 이해되지 않아도 된다. 다음 만남에서 더 깊이 보게 된다. 수학은 한 번에 관통하는 것이 아니라 여러 번 스쳐 지나가면서 점점 선명해지는 것이다.