8 min read

Bayesian Optimization으로 해결해보는 평일 직장인의 점심 메뉴 고민

Bayesian Optimization으로 해결해보는 평일 직장인의 점심 메뉴 고민

베이즈 최적화(Bayesian Optimization)로 해결해보는 평일 직장인의 점심 메뉴 고민?

  1. 매일 오전 11시 30분, 어김없이 찾아오는 질문이 있음.

  2. "오늘 뭐 먹지?"

  3. 이 질문은 단순해 보이지만, 실제로는 꽤 복잡한 의사결정 문제임.

  4. 주 5일, 연간 약 260회 반복되는 이 결정은, 일생 직장생활 30년으로 환산하면 7,500번의 점심 메뉴 선택 문제임.

  5. 문제는 매번 선택이 완벽하지 않다는 것임.

  6. 어제 먹은 김치찌개는 괜찮았는데, 오늘도 또 먹으면 질릴 것 같음. 새로운 집을 시도하자니 맛없으면 점심 한 끼를 날리는 것 같은 찝찝함이 남음.

  7. 이 갈등에는 이름이 있음. 탐색-활용 딜레마(Exploration-Exploitation Dilemma)임.

  8. 탐색(Exploration)은 아직 가보지 않은 가게, 먹어보지 않은 메뉴를 시도하는 행동임.

  9. 활용(Exploitation)은 이미 맛있다고 알고 있는 단골집을 다시 찾는 행동임.

  10. 탐색만 하면? 매일 새로운 집을 가다가 맛없는 곳에서 점심을 망칠 확률이 높아짐.

  11. 활용만 하면? 단골 순대국밥집만 30년을 다니다 끝나는 삶임.

  12. 둘 사이 어딘가에 최적의 비율이 있는데, 그 비율을 손으로 계산하기가 어려움.

  13. 이 문제를 수학적으로 푸는 방법론이 베이즈 최적화(Bayesian Optimization, 이하 BO)임.

  14. BO는 "평가하는 데 비용이 많이 드는 함수"의 최댓값을 효율적으로 찾는 방법임.

  15. 점심 메뉴로 치면, "이 가게를 먹어봤을 때 얼마나 만족할까?"를 평가하는 데 드는 비용이 바로 점심 한 끼임.

  16. 점심을 먹어봐야만 만족도를 알 수 있고, 먹는 데는 돈과 시간이 들고, 하루에 한 번밖에 평가할 수 없음. 즉 평가가 매우 비쌈.

  17. BO는 이런 상황에서 "지금까지 먹어본 기록"을 바탕으로 "다음에는 어디를 시도하면 가장 좋은 정보를 얻을 수 있을까"를 계산해서 최소한의 시도로 최적 메뉴를 찾는 전략임.

  18. BO의 작동 구조는 크게 세 부분으로 나뉨. 대리 모델(Surrogate Model), 획득 함수(Acquisition Function), 순차적 의사결정(Sequential Decision Making)임.

  19. 대리 모델(Surrogate Model)은 실제 함수(점심 만족도) 대신 사용하는 근사 모델임.

  20. 가장 많이 쓰이는 대리 모델이 가우시안 프로세스(Gaussian Process, 이하 GP)임.

  21. GP는 "내가 아직 가보지 않은 가게의 만족도를 추정할 때, 추정값과 함께 그 불확실성도 같이 계산해주는" 모델임.

  22. 요리로 비유하자면, 음식의 맛을 단순히 "이 집은 7점"이라고 말하는 게 아니라, "이 집은 7점인데, 그 추정 범위가 ±0.5야"라고 말하는 것과 같음.

  23. 단골 김치찌개집은 30번 먹어봤으니 불확실성이 낮음. 처음 보는 쌀국수 가게는 단 한 번도 가보지 않았으니 불확실성이 높음.

  24. GP는 이 불확실성을 수치로 다룰 수 있기 때문에 BO에서 핵심 도구로 쓰임.

  25. 지금까지 먹어본 가게와 그 만족도 점수가 GP의 학습 데이터임. 이 데이터가 쌓일수록 취향 모델이 정교해짐.

  26. 대리 모델이 "각 가게의 예상 만족도와 불확실성"을 계산해준다면, 획득 함수(Acquisition Function)는 그 정보를 바탕으로 "오늘 실제로 어디를 가야 하는가"를 결정하는 함수임.

  27. 대표적인 두 가지 획득 함수가 기대 향상도(Expected Improvement, EI)와 신뢰 상한(Upper Confidence Bound, UCB)임.

  28. EI(기대 향상도)는 "지금까지 경험한 최고 만족도를 넘어설 것으로 기대되는 정도"를 수치화한 것임.

  29. 수식으로는 다음과 같이 표현됨. 여기서 $f(x^*)$는 지금까지 경험한 최고 만족도, $f(x)$는 새 가게 x의 추정 만족도임.

$$EI(x) = \mathbb{E}[\max(f(x) - f(x^*),\ 0)]$$

  1. EI가 높은 가게는 두 가지 유형임. 아직 가보지 않아 불확실성이 높지만 평균 추정 만족도도 괜찮은 가게. 그리고 일관되게 높은 만족도가 나오는 가게임.

  2. 게임으로 비유하자면, EI는 "이 아이템을 파밍했을 때 내 최고 스펙을 넘길 것으로 기대되는 기대값"을 계산해서 파밍 우선순위를 정하는 것과 같음.

  3. UCB(신뢰 상한)는 "추정 평균 만족도 + 불확실성의 일정 배수"를 점수로 사용하는 방식임.

  4. 수식으로는 다음과 같음. 여기서 $\mu(x)$는 추정 평균 만족도, $\sigma(x)$는 불확실성, $\kappa$(카파)는 탐색-활용 균형을 조절하는 파라미터임.

$$UCB(x) = \mu(x) + \kappa \cdot \sigma(x)$$

  1. κ를 크게 잡으면 불확실한 가게를 더 많이 탐색하고, κ를 작게 잡으면 이미 검증된 가게를 더 자주 찾아가게 됨.

  2. 직장인 입장에서 κ가 높은 상황은 "오늘 기분이 모험적인 날", κ가 낮은 상황은 "오늘 실패하면 안 되는 중요한 점심 약속이 있는 날"에 해당함.

  3. BO의 핵심 강점은 순차적으로 작동한다는 것임.

  4. 한 번 점심을 먹고 나서 그 만족도 점수를 기록하면, 다음 날 GP가 업데이트되고, 획득 함수가 재계산되고, 내일 선택이 바뀜.

  5. 이 반복 루프를 순차적 의사결정(Sequential Decision Making)이라고 부름. [관찰 → GP 업데이트 → 획득 함수 계산 → 최적 후보 선택 → 실제 점심 → 관찰]

  6. 첫 주에는 데이터가 적어 불확실성이 높고 탐색이 많이 일어남. 3개월 후에는 충분한 데이터로 취향 패턴이 확립되고 좋은 가게를 더 자주 가게 됨.

  7. 이 구조는 신약 개발 임상시험에서도 동일하게 쓰임. 어떤 용량이 최적인지 사람에게 직접 투여해봐야만 알 수 있는 상황에서, 최소한의 시도로 최적 용량을 찾는 알고리즘으로 BO가 채택됨.

  8. κ가 지나치게 낮으면 단골 순대국밥집만 계속 추천하다가 다른 맛있는 가게를 영원히 발견하지 못하는 상태에 빠짐.

  9. 이것을 국소 최적화 함정(Local Optimum Trap)이라고 함. 전체 메뉴 공간에서 최선이 아닌데, 지금까지 탐색한 범위 내에서 가장 좋은 곳에 고착되는 현상임.

  10. 인테리어 비유로 설명하자면, 집 전체를 리모델링할 여력이 있는데 거실 소파 배치만 계속 바꾸고 있는 상태임.

  11. 이를 방지하기 위해 실제 BO에서는 주기적으로 강제 탐색을 섞어 넣음. 직장인 언어로 번역하면 "한 달에 한 번은 완전히 새로운 골목을 가본다"는 규칙을 의식적으로 넣는 것임.

  12. BO를 평가하는 지표 중 하나가 후회량(Regret)임.

  13. 후회량(Regret)은 "매번 완벽한 최적 선택을 했을 때의 누적 만족도"와 "실제 선택들의 누적 만족도" 사이의 차이임.

  14. 수식으로는 다음과 같음. 여기서 $T$는 총 시도 횟수, $x^*$는 이론적 최적 메뉴, $x_t$는 $t$번째 날의 실제 선택임.

$$R(T) = \sum_{t=1}^{T}\left[f(x^*) - f(x_t)\right]$$

  1. 좋은 BO 알고리즘은 시간이 지날수록 일 평균 후회량이 0에 가까워짐. 점심으로 치면, 1년을 반복하면 더 이상 크게 실망하는 점심이 없어지는 상태임.

  2. BO는 최적 메뉴를 찾기 위해 설계된 알고리즘임. 그런데 실제로 모든 메뉴를 탐색했을 때 "진짜 최고"가 하나로 수렴하지 않는 경우가 많음.

  3. 취향 자체가 시간과 맥락에 따라 변하기 때문임. 여름에 최고였던 냉면이 겨울에는 최고가 아님.

  4. 즉 목적 함수(Objective Function) 자체가 정적이지 않고 비정상적(Non-stationary)임.

  5. 이 경우 BO는 "최적점에 수렴"하는 것이 아니라 "변하는 최적점을 지속적으로 추적"하는 방향으로 운용됨.

  6. 결국 점심 최적화의 진짜 목적은 완벽한 메뉴 하나를 찾는 것이 아님.

  7. 매일 조금씩 더 나은 선택을 하고, 탐색을 통해 새로운 취향을 발견하고, 그 과정에서 후회를 최소화하는 것임.

  8. 이것이 BO가 보내는 메시지임. 최적화는 결과가 아니라 과정임.