Ep.7 케이크 한 조각이 남긴 단서

레시피 역설계로 배우는 베이지안 추론

by 배지안

[♪ 밝은 음악]


이지은: 안녕하세요, '안개 속을 걷다'의 이지은입니다! 오늘도 불확실성과 친해지는 시간, 함께해요!


어제 친구가 직접 만든 케이크를 가져왔어요. 한 입 먹자마자 "이거 그 유명한 카페 케이크 맛이랑 똑같아!"라고 외쳤더니, 친구가 씩 웃으면서 "맞아, 레시피 역설계해 봤어."라고 하는 거예요.


[웃음] 레시피 역설계라니, 처음 들어본 말이었어요. 친구 설명을 들어보니 정말 재미있더라고요. 케이크를 맛보면서 "이 정도 촉촉함이라면 버터가 많이 들어갔을 거야", "이 정도 단맛이면 설탕이 한... 100g?" 이렇게 하나씩 추리해 가는 거예요.


[띠링!]


그때 깨달았어요. 오늘 방송 준비하면서 정리한 베이지안 추론이 바로 이거구나! 맛있는 케이크라는 결과를 보고 그 원인인 레시피를 역으로 추측하는 거잖아요. 이 과정에서 우리는 레시피라는 생각의 '틀'로 케이크를 이해하려고 한 것이죠.


오늘은 이런 생각의 틀, '모델'이라는 개념을 케이크 이야기로 풀어볼게요. 어려워 보여도, 사실 우리는 매일 주변을 관찰하고 해석할 때 이런 모델을 쓰고 있어요. 자, 그럼 베이지안 추론의 핵심 개념 중 하나인 모델을 맛보러 가볼까요?




입에서 사르르 녹는 케이크를 한 입 베어 물었습니다. 집에서도 만들어보고 싶지만, 레시피는 비밀입니다. 우리는 자연스럽게 추리를 시작합니다. 촉촉한 질감에서 버터의 양을, 적당한 단맛에서 설탕의 비율을, 폭신한 식감에서 베이킹파우더의 존재를 짐작합니다. 베이지안 추론(Bayesian inference)이 바로 이런 것입니다 [1]. 결과에서 출발해 원인으로 거슬러 올라가는 사고의 여정입니다.


친구의 역설계 과정을 자세히 들어보니 이런 단계를 거치더군요. 먼저 큰 틀을 정합니다: '이건 버터케이크 방식이야.' '버터케이크'라는 틀을 정하는 순간, 케이크 재료가 결정됩니다. 이제 재료별 분량을 추측합니다: '버터는 50g에서 250g 사이일 텐데, 경험상 100-150g일 가능성이 가장 높아.' 마지막으로 감각과 추론을 결합합니다: '이 정도 촉촉함이라면 150g을 썼겠네.' 이 추리 과정의 최종 결과물은 재료 및 재료별 분량이 결정된 구체적인 레시피입니다.


우리는 늘 이런 역설계를 하고 있습니다. 아이가 시험에서 95점을 받아오면 실력 향상을 떠올립니다. 팀원이 훌륭한 보고서를 제출하면 그의 노력을 짐작합니다. 머리가 아프면 스트레스를 의심합니다. 매번 결과에서 원인을 역추적하죠.


이 추측 과정의 핵심에는 '모델'이 있습니다. 모델(model)은 세상을 이해하는 틀, 현상을 설명하는 렌즈입니다. 같은 케이크도 어떤 렌즈로 보느냐에 따라 전혀 다르게 해석됩니다.


제빵을 전공한 친구는 이렇게 말합니다. "버터와 설탕을 크림화한 특유의 질감이야. 비율은 아마 1:0.7 정도일 거야." 화학을 전공한 친구는 다른 걸 봅니다. "이 갈색은 마이야르 반응의 결과야. 표면 온도가 180도쯤 됐겠네. 수분 함량은 25% 정도?" 영양학을 공부한 친구는 또 다르게 접근합니다. "한 조각에 300칼로리, 지방 15g 정도 들어있을 거야." 전문성과 관심사에 따라 각자 전혀 다른 틀로 케이크를 설명하는 겁니다. 모델의 힘이 여기에 있습니다. 각자의 방식으로 세상을 이해하고 설명할 수 있게 해 주죠.


베이지안 추론에서 모델은 두 가지 핵심 요소로 구성됩니다. 하나는 각 가설에 대해 (데이터를 관찰하기 전) 우리가 얼마나 믿고 있는지를 표현한 사전 확률 분포(prior probability distribution)입니다. 다른 하나는 각 가설이 참일 때 관찰될 수 있는 데이터들의 확률을 나타내는 데이터 모델입니다. 앞으로 혼동을 피하기 위해 전체 모델을 지칭할 때는 베이지안 모델이라는 용어를 사용하겠습니다. 즉, 베이지안 모델 = 사전 확률 분포 + 데이터 모델.


사전 확률 분포: 가설과 초기 믿음. 케이크 사례로 돌아가 봅시다. '버터케이크' 모델을 선택하는 순간, 어떤 재료를 고려할지가 정해집니다. 버터, 설탕, 베이킹파우더는 당연히 들어가지만 사과는 빠지겠죠. 하지만 모델이 곧 레시피는 아닙니다. 각 재료를 얼마나 넣을지는 여전히 미지수니까요. 완전한 레시피는 재료와 함께 정확한 분량을 명시합니다. 버터 150g, 백설탕 100g, 계란 2개, 박력분 120g, 베이킹파우더 1 티스푼. 이런 구체적인 레시피 하나하나를 우리는 가설(hypothesis)이라고 부릅니다. 그리고 가능한 모든 레시피의 집합, 즉 가설의 집합을 가설 공간(hypothesis space)이라고 하죠.


재료별 분량은 우리가 모르는 값이니 무작위 변수(random variable)로 볼 수 있습니다. 통계학에서는 확률 변수라고도 하는데, 어떤 값이 나올지 확률적으로 기술하는 변수입니다.


버터의 양은 하나의 무작위 변수, 설탕의 양은 또 다른 무작위 변수. 이런 변수에는 두 종류가 있습니다. 감미료 종류처럼 몇 가지 선택지 중 하나를 고르는 이산 변수(discrete variable)와, 버터의 양처럼 연속적인 값을 가지는 연속 변수(continuous variable). 가설은 이 모든 변수에 구체적인 값을 할당한 것입니다. "버터 150g, 설탕 100g"이 하나의 가설이 되는 거죠.


연속 변수를 엄밀하게 다루려면 미적분이 필요합니다. 다행히 실생활에서는 연속적인 값도 구간으로 나누거나(예를 들어, 버터 100g 미만, 100g 이상 200g 미만, 200g 이상) 대푯값만 고려해서(예를 들어, 버터 50g, 150g, 250g) 이산적으로 다룰 수 있습니다. 이 책에서는 편의를 위해 이산적 가설 공간만 다루겠습니다.


이해를 돕기 위해 상황을 더 단순화해 보겠습니다. 케이크 맛을 결정하는 요인은 많지만, 버터의 양 하나만 고려하겠습니다. 버터의 양으로 고려할 분량도 50g, 150g, 250g 세 가지로 한정합니다. 즉, 지금부터 '버터케이크' 모델의 가설 공간은 세 가지 가설로 구성됩니다. 현실을 지나치게 단순화했지만, 베이지안 추론의 핵심을 이해하기에는 충분합니다. 나중에 더 복잡한 상황으로 확장하는 것은 어렵지 않으니까요.


이제 케이크를 맛보기 전 어떤 가설이 가장 그럴듯한 지 생각해 보죠. 경험상 버터케이크는 버터를 100-150g 정도 씁니다. 50g은 너무 적어 퍽퍽하고, 250g은 너무 많아 느끼합니다. 그래서 150g에 가장 높은 확률을, 50g과 250g에는 낮은 확률을 부여합니다. 각 가설에 부여하는 이런 초기 믿음을 사전 확률(prior probability)이라고 하고, 가설 공간 전체에 걸친 확률의 분포를 사전 확률 분포라고 합니다. 여기에서 '사전'(prior)이란, 데이터를 살펴보기 '전'에 우리가 갖고 있는 믿음을 표현했다는 의미예요.


그렇다면 가설 공간에 확률 분포를 부여하는 이유는 무엇일까요? 정확한 레시피를 모르기 때문입니다. 지식이 불완전해서 생기는 이런 불확실성을 인식론적 불확실성이라고 한다고 했죠? (기억이 안나는 분은 Ep.1을 다시 살펴보세요.) 레시피를 알고 있다면 '버터 150g'이라고 확신하겠지만, 모르는 상태에서는 '150g일 확률 70%, 50g일 확률 20%, 250g일 확률 10%'처럼 불확실성을 인정하는 것이 정직한 태도입니다. 즉, 가설 공간에 할당된 확률 분포는 인식론적 불확실성을 반영합니다.


데이터 모델: 가설에서 데이터로. 같은 레시피로 만들어도 케이크는 매번 조금씩 다릅니다. 버터를 정확히 150g 넣어도 어떤 날은 더 촉촉하고, 어떤 날은 덜 촉촉합니다. 왜일까요? 오븐 온도의 미세한 차이, 재료의 신선도, 그날의 습도, 반죽 시간의 차이. 통제할 수 없는 요인이 너무 많습니다.


예를 들어 버터 150g을 넣고 버터케이크를 열 번 만들어봤다고 가정해 보세요. 열 번 중 여섯 번은 촉촉한 케이크가 나왔습니다. 두 번은 더 촉촉한 케이크가 나왔고, 나머지 두 번은 덜 촉촉한 케이크가 나왔습니다. 같은 레시피를 따라도 이처럼 결과가 달라질 수 있습니다.


이런 변동성을 우연적 불확실성이라고 합니다. 인식론적 불확실성이 '우리가 모르기 때문'에 생기는 것이라면, 우연적 불확실성은 '세상이 원래 그렇기 때문에' 혹은 '우리가 모든 변수를 완벽히 통제할 수 없기 때문에' 생기는 것입니다.


데이터 모델은 이처럼 가설을 데이터와 확률적으로 연결함으로써 우연적 불확실성을 포착합니다. 우리 사례에서는 세 가지 가설(버터 50g, 150g, 250g)과 세 가지 데이터(덜 촉촉, 촉촉, 더 촉촉)를 고려하고 있습니다. 데이터 모델은 가설-데이터 조합 각각에 대한 P(데이터|가설)을 담고 있습니다. (이 표기법을 기억하지 못하는 분은 Ep.5를 다시 살펴보세요.) 즉, 세 가지 가설 각각에 대해 조건부 확률 세 가지를 명시합니다 (예: 버터 50g 가설에 대해 P(덜 촉촉|버터 50g), P(촉촉|버터 50g), P(더 촉촉|버터 50g)를 규정).


정리하면 이렇습니다. 베이지안 모델은 두 부분으로 구성됩니다. 사전 확률 분포는 각 가설에 대한 초기 믿음을, 데이터 모델은 각 가설이 참일 때 데이터가 발생할 확률을 담습니다. 가설이 이 둘을 연결하는 중심축입니다. 가설은 우리 믿음의 대상이자 데이터 생성의 원인이니까요.


모델의 수학적 본질. Ep.5에서 다룬 소개팅 앱 사례를 기억하시나요? 프로필에 '독서'라고 쓴 사람이 실제로 책을 좋아할 확률을 계산했었죠. 그때는 단순히 분할표로 조건부 확률을 구했지만, 사실 그 안에는 이미 베이지안 모델이 숨어있었습니다.


'책을 좋아함/좋아하지 않음'이 가설, '프로필에 독서 표기 여부'가 관찰 데이터입니다. 이 둘의 결합 확률을 베이지안 모델은 특별한 방식으로 분해합니다. 예를 들어, P(책을 좋아함, 프로필에 '독서') = P(책을 좋아함) × P(프로필에 '독서'|책을 좋아함). 우변 첫 번째 항은 사전 확률입니다. 아무 정보 없이 만난 사람이 책을 좋아할 확률로, Ep.5에서는 50%였습니다. 우변 두 번째 항은 데이터 모델의 일부입니다. 책을 좋아하는 사람이 프로필에 그렇게 쓸 확률로, 80%였죠.


주목할 점은 이런 인수분해가 단순한 수학적 조작이 아니라는 겁니다. 이는 우리가 세상을 바라보는 방식, 즉 모델을 드러냅니다. 사람들은 먼저 책을 좋아하거나 싫어하고, 그 선호에 따라 프로필을 작성한다는 인과 구조를 담고 있습니다.


수학적으로는 반대 방향 분해도 가능합니다: P(책을 좋아함, 프로필에 '독서') = P(프로필에 '독서') × P(책을 좋아함|프로필에 '독서'). 계산 결과는 전과 같습니다. 하지만 이런 분해를 데이터 생성 모델로 채택한다면, 그것은 '프로필을 먼저 쓰고 그에 맞춰 책을 좋아하게 된다'는 이상한 인과 구조를 전제하는 셈입니다. 수학적으로 틀리지 않지만, 모델링의 관점에서는 말이 안 되죠.


모델링의 핵심이 여기에 있습니다. 단순한 확률 계산이 아니라 데이터 생성 메커니즘을 포착하는 것입니다. 케이크 사례에서도 레시피가 맛을 결정한다고 믿기에 P(맛|레시피) 방향으로 모델을 구성한 것입니다.


이제 일상의 다양한 상황에서 베이지안 모델을 만들어봅시다. 사전 확률 분포와 데이터 모델이 어떻게 작동하는지 직접 체험해 보면, 추상적인 개념이 구체적으로 와닿을 겁니다.


수학 실력 평가: 아이가 수학 시험에서 85점(데이터)을 받아왔습니다. 실제 실력(가설)은 얼마나 될까요?


먼저 가설 공간을 설정해 봅시다. 실제 실력은 0점에서 100점 사이 어딘가에 있을 겁니다. 사전 확률은 어떨까요? 평소 성적이 75-85점이었다면, 실력도 80점 근처일 가능성이 높습니다. 70점 이하나 90점 이상은 가능성이 낮겠죠.


데이터 모델은 어떨까요? 실력이 80점인 학생이 85점을 받을 확률은 꽤 높습니다. 컨디션, 문제 난이도, 운에 따라 점수는 오르내릴 수 있으니까요. 실력이 70점인 학생이 85점을 받기는 어렵지만 불가능하지는 않습니다. 합리적인 데이터 모델이라면 P(시험 점수 85점|실제 실력은 80점) > P(시험 점수 85점|실제 실력은 70점) 관계를 포착해야겠죠.


직원 평가 모델: 팀원이 평소보다 훨씬 뛰어난 보고서(데이터)를 제출했습니다. 원인(가설)은 무엇일까요?


가능한 원인들을 생각해 봅시다. 능력이 향상되었거나, 특별히 노력했거나, 이 주제에 원래 전문성이 있었을 수 있습니다. 사전 확률은 평소 이 팀원을 어떻게 봐왔는지에 달려 있습니다. 평소 성실했다면 '특별히 노력함'에, 꾸준히 성장해 왔다면 '능력이 향상됨'에 높은 확률을 부여하겠죠.


데이터 모델은 각 가설이 사실일 때 뛰어난 보고서가 나올 확률을 담습니다. '특별히 노력함'이나 '원래 전문성이 있었음'이 원인이라면 뛰어난 보고서가 나올 확률이 높습니다. '능력이 향상됨'은 중간 정도겠죠. 합리적인 데이터 모델이라면 P(뛰어난 보고서|특별히 노력함) ≈ P(뛰어난 보고서|원래 전문성 있음) > P(뛰어난 보고서|능력 향상) 같은 관계를 반영해야 합니다.


두통의 원인 진단: 아침에 일어났더니 머리가 아픕니다(데이터). 원인(가설)은 무엇일까요?


가능한 원인은 많습니다. 스트레스, 수면 부족, 탈수, 카페인 금단, 감기 등이죠. 사전 확률은 최근 생활 패턴을 반영합니다. 야근이 많았다면 '스트레스'와 '수면 부족'에, 커피를 갑자기 끊었다면 '카페인 금단'에 높은 확률을 부여할 겁니다.


데이터 모델은 각 원인이 특정 유형의 두통으로 이어질 확률을 담습니다. 단순히 '두통이 있다'가 아니라 두통의 양상까지 고려할 수 있죠. 스트레스라면 뒷머리 긴장성 두통이, 탈수라면 전체적인 둔한 통증이, 카페인 금단이라면 욱신거리는 두통이 나타날 가능성이 높습니다. 각 원인은 특징적인 두통 패턴과 연결되어 있습니다.


우리는 매 순간 이런 베이지안 모델을 만들고 사용합니다. 중요한 건 우리가 항상 어떤 틀 안에서 세상을 해석한다는 사실입니다. 같은 현상도 모델에 따라 전혀 다른 의미를 갖습니다. 시험 점수 85점도 실력을 측정하는 모델로 볼 수도 있고, 학습 동기를 진단하는 모델로 볼 수도 있으며, 시험 난이도를 평가하는 모델로 볼 수도 있습니다.


모델은 완벽한 진실이 아닙니다. 현실을 이해하기 위한 단순화된 도구일 뿐이죠. 하지만 바로 그 단순화가 모델의 힘입니다. 복잡한 세상을 이해하고, 예측하고, 소통할 수 있게 해 주니까요. 좋은 모델은 현상의 핵심을 포착하면서도 불필요한 복잡성은 걷어냅니다. 지도가 모든 돌멩이와 풀잎을 그리지 않아도 길을 찾는 데 충분한 것처럼.




[♪ 차분한 음악]


이지은: 케이크 레시피 역설계부터 시작해서 일상 속 다양한 추론까지 살펴봤는데, 어떠셨나요?


오늘의 핵심을 정리해 보죠. 베이지안 모델은 두 부분으로 이루어져 있어요. 사전 확률 분포는 데이터를 보기 전 각 가설에 대한 우리의 믿음을 담고 있고, 데이터 모델은 각 가설이 참일 때 특정 데이터가 나올 확률을 담고 있습니다. 이 둘이 '가설'을 중심으로 만나 우리의 추론을 가능하게 합니다.


[띠링!]


오늘의 미션은 일상에서 베이지안 모델을 만들어보는 거예요! 예를 들어, 친구가 약속에 늦었다면, 가능한 이유들(가설 공간)과 각각의 가능성(사전 확률)을 생각해 보세요. 그리고 각 이유가 맞다면 얼마나 늦을지(데이터 모델)도 추측해 보고요. 이렇게 사전 확률과 데이터 모델을 구분해서 생각하다 보면, 여러분도 더 체계적으로 추론할 수 있을 거예요!


다음 시간에는 사전 확률의 비밀을 파헤쳐볼게요. 왜 우리는 어떤 가설을 처음부터 더 그럴듯하다고 느끼는 걸까요? 그 답을 함께 찾아보아요.


케이크 한 조각에서 레시피를 추론하듯, 여러분도 이미 매일 베이지안 추론을 하고 있었어요. 이제부터는 조금 더 의식적으로 해보세요. 저는 이지은이었습니다.


[♪ 밝은 음악]




[1] '베이지안'이라는 이름은 18세기 영국의 장로교 목사이자 아마추어 수학자였던 토머스 베이즈(Thomas Bayes, 1702–1761)에서 유래합니다. 결과를 보고 원인의 확률을 거슬러 추론하는 방법에 대한 그의 아이디어는 사후에 출판되었고, 프랑스의 수학자 라플라스(Pierre-Simon Laplace)가 독립적으로 같은 원리를 발견하여 수학적으로 완성했습니다.

월, 수, 금 연재
이전 06화Ep.6 내 느낌은 몇 도?