Ohse AI LabOHSE AI LAB
KellyBoost 켈리 기준 포트폴리오 최적화
🤖 AI 연구

KellyBoost: 머신러닝으로 최적 포트폴리오를 직접 만드는 새로운 방법

오세에이아이연구소··25분 읽기

KellyBoost: 머신러닝으로 최적 포트폴리오를 직접 만드는 새로운 방법

들어가며: 도박사의 딜레마에서 투자자의 고민까지

여러분이 동전 던지기 게임을 한다고 상상해 보세요. 앞면이 나오면 2배, 뒷면이 나오면 잃는 게임입니다. 이길 확률이 60%라면, 여러분은 가진 돈의 몇 퍼센트를 걸겠어요?

전부 다 거는 사람도 있을 거예요. 하지만 전부 걸었다가 뒷면이 나오면? 끝입니다. 반대로 너무 적게 걸면, 이겨도 별로 벌지 못하죠. 이 딜레마의 해답을 1956년에 수학자 존 켈리가 찾았습니다. 바로 켈리 기준입니다. 로그 함수를 최대화하는 비율, 즉 기하학적 성장률을 극대화하는 베팅 비율이 가장 현명하다는 거예요.

그런데 현실의 주식 투자는 동전 던지기보다 훨씬 복잡합니다. 수십 개의 자산이 있고, 시장 상황이 매일 바뀌고, 어떤 날은 채권이 좋고 어떤 날은 금이 좋습니다. 이 복잡한 세상에서 켈리 기준을 적용하려면 어떻게 해야 할까요?

오늘 소개할 논문 KellyBoost는 이 질문에 대한 새로운 답을 제시합니다. 바로 그래디언트 부스팅 트리라는 머신러닝 기법으로 켈리 기준에 맞는 포트폴리오를 직접 학습하는 방법이에요.


문제: 예측과 최적화, 두 마리 토끼를 동시에 잡을 수 있을까?

기존의 포트폴리오 구성 방식은 보통 이렇게 생겼습니다:

  1. 1단계: "다음 달에 주식이 3% 오를 것 같고, 채권이 1% 오를 것 같아" 하고 수익률을 예측합니다.
  2. 2단계: 그 예측을 바탕으로 "주식 70%, 채권 30% 이렇게 배분하자" 하고 최적화합니다.

이걸 예측-then-최적화 파이프라인이라고 부릅니다. 직관적이고 이해하기 쉽죠. 하지만 여기에 큰 문제가 있습니다.

문제 1: 목표 불일치. 1단계에서 수익률 예측 모델을 학습할 때 쓰는 손실 함수(예: 평균 제곱 오차)와 2단계에서 포트폴리오를 최적화할 때 쓰는 목표(로그 성장률 극대화)가 다릅니다. 예측이 조금 틀려도 포트폴리오에 미치는 영향이 클 수 있어요.

문제 2: 오차 증폭. 예측 오차가 최적화 과정에서 증폭될 수 있습니다. 예측이 "주식이 아주 조금 더 좋을 것 같아"라고 말하면, 최적화기가 "그럼 주식에 전부 투자하세요"라고 할 수 있어요. 예측의 불확실성이 무시되는 거죠.

그러면 이렇게 생각할 수 있습니다. "예측과 최적화를 분리하지 말고, 아예 포트폴리오 비중을 직접 출력하는 모델을 만들면 안 될까?"이것이 바로 엔드투엔드 학습의 아이디어입니다.


핵심 아이디어: 포트폴리오 자체를 모델의 출력으로

KellyBoost의 핵심 아이디어는 놀랍도록 간단합니다.

하나의 XGBoost 모델이 포트폴리오 비중을 직접 출력한다.

어떻게? 모델의 마지막 출력에 소프트맥스 함수를 적용합니다. 소프트맥스는 여러 숫자를 받아서 합이 1이 되도록 변환하는 함수예요. 예를 들어 모델이 [2.0, 1.0, 0.5]를 출력하면, 소프트맥스는 이를 [0.59, 0.24, 0.17]로 변환합니다. 이 숫자들이 바로 각 자산에 투자하는 비율이 됩니다.

그런데 이 모델을 어떻게 학습시킬까요? 여기서 켈리 기준이 등장합니다.

학습 손실 함수는 다음과 같습니다:

t=log(1+wtyt)\ell_t = -\log(1 + w_t^\top y_t)

여기서 wtw_t는 포트폴리오 비중, yty_t는 각 자산의 수익률입니다. 이 함수를 최소화하는 것은 기하학적 성장률을 극대화하는 것과 같습니다. 즉, 켈리 기준을 정확하게 구현한 거예요.

비유로 이해하기

이걸 일상적인 비유로 설명해 볼게요.

여러분이 매일 점심을 먹을 식당을 고른다고 생각해 보세요. 기존 방식은:

  1. "오늘은 비가 오니까 김치찌개집이 맛있을 것 같아" (예측)
  2. "비 오는 날에는 김치찌개집이 최고야" (최적화)

KellyBoost 방식은:

  1. "오늘 날씨, 요일, 최근 식사 패턴 등을 보고 바로 '김치찌개 60%, 된장찌개 30%, 라면 10%'라고 말한다" (직접 출력)

예측과 최적화를 하나로 합친 거예요.


기술적 세부사항: 어떻게 실제로 구현했을까?

1. 그래디언트와 헤시안의 유도

XGBoost는 2차 도함수(헤시안)를 사용하는 부스팅 알고리즘입니다. KellyBoost의 저자들은 켈리 기준 손실 함수에 대한 정확한 그래디언트와 헤시안을 해석적으로 유도했습니다.

그래디언트: gk=σk(Syk)1+Sg_k = \frac{\sigma_k (S - y_k)}{1 + S}

여기서 σk\sigma_k는 자산 kk의 소프트맥스 가중치, S=wyS = w^\top y는 현재 포트폴리오의 수익률입니다.

대각 헤시안: hk=gk(12σk)+gk2h_k = g_k(1 - 2\sigma_k) + g_k^2

이 도함수들은 유한 차분법으로 검증되었습니다. 즉, 수학적으로 정확하다는 것을 확인한 거예요.

2. 벡터 잎값을 가진 트리

일반적인 XGBoost는 각 트리의 잎(leaf)에 스칼라 값을 가집니다. 하지만 KellyBoost는 벡터 잎값을 사용합니다. 각 자산마다 하나의 로짓 값을 가지니까, 8개 자산을 다루면 잎 하나에 8개의 숫자가 있는 거예요.

나무를 자를 때도 모든 자산을 동시에 고려합니다. 분할 이득(gain)을 계산할 때 모든 자산의 그래디언트와 헤시안을 합산해서 최적의 분할점을 찾습니다.

3. 불안정성 문제와 떼어놓기 앙상블

여기서 재미있는 문제가 나옵니다. 부스팅 트리는 학습 데이터에 매우 민감합니다. 데이터에서 단 하나의 행을 빼도 포트폴리오 비중이 몇 퍼센트 포인트나 바뀔 수 있어요. 이건 투자에서 치명적입니다.

해결책은 떼어놓기 앙상블입니다:

  • Kens=4K_{\text{ens}} = 4개의 모델을 학습시킵니다.
  • 각 모델은 전체 데이터에서 하나의 행을 뺀 데이터로 학습합니다.
  • 네 모델의 포트폴리오 비중을 평균냅니다.

이렇게 하면 단일 모델의 불안정성이 줄어들고, 하이퍼파라미터는 그대로 유지됩니다.

4. 피처 선택

후보 피처가 7,871개입니다. 수익률, 변동성, 이동평균, z-점수, 허스트 지수, 윈도우 분위수 피처 등 다양한 기술적 지표를 포함합니다. 모두 공개된 야후 파이낸스 데이터에서 만들 수 있어요.

피처 선택 자체를 하이퍼파라미터로 취급합니다. 확률적 지역 탐색으로 최적의 피처 목록과 하이퍼파라미터를 동시에 찾습니다.


실험 설계: 어떻게 비교했을까?

데이터

  • 자산 8개: VIGRX(대형 성장주), VIVAX(대형 가치주), VUSTX(장기 국채), VGTSX(해외 주식), VGENX(에너지), GC=F(금), SI=F(은), 현금(13주 국채)
  • 기간: 2003년 2월 ~ 2026년 7월
  • 보유 기간: 20일

비교 대상

저자들은 2x2 설계를 사용합니다:

그래디언트 부스팅MLP (신경망)
성장 목표 (켈리)KellyBoostMLP + 성장 손실
분류 대리 손실멀티클래스 대리MLP + 교차 엔트로피

여기에 두 가지 기준선을 추가합니다:

  • 2단계 예측-then-최적화: LightGBM으로 예측 + 평균-분산 최적화기
  • 무조건적 켈리: 학습 구간에서 최적인 고정 포트폴리오

평가 프로토콜

이 논문의 가장 큰 장점 중 하나는 엄격한 평가 프로토콜입니다.

  • 선택 구간 (2003-2012): 하이퍼파라미터와 피처를 이 구간에서만 선택합니다. 퍼지드 워크포워드를 사용하고, 이 점수는 순위 매기기 용도로만 사용합니다.
  • 평가 구간 (2013-2026): 성능을 한 번만 측정합니다. 고정된 파라미터, 확장 윈도우 재학습, 앵커링된 결정 격자를 사용합니다.

이 구간은 개발 과정에서 전혀 사용되지 않았습니다. 즉, 미래 정보 유출이 없다는 뜻이에요.


결과: 무엇을 발견했을까?

주요 결과 (평가 구간: 2013-2026)

방법로그 성장률 (x100, 20일)연환산 수익률연환산 변동성샤프 비율최대 낙폭
KellyBoost (제안)0.476.2%23.9%0.30-46.2%
MLP + 성장 손실0.567.1%20.5%0.35-55.5%
2단계 LGBM + 최적화기0.828.2%20.9%0.40-40.4%
멀티클래스 대리0.354.0%19.2%0.21-42.7%
MLP + 대리 손실0.202.0%21.8%0.12-47.4%
무조건적 켈리0.424.1%19.3%0.22-50.9%

손실 함수 효과 (핵심 발견)

가장 중요한 발견은 손실 함수의 효과입니다. 2x2 설계에서:

  • 성장 목표(켈리)가 분류 대리 손실보다 네 개 셀 모두에서 더 좋은 성과를 보입니다.
  • 풀링된 효과: 20일 결정당 +0.18 (로그 성장률, x100)
  • 거래 비용 적용 시: 20bps에서 +0.25로 이점이 더 커집니다.

이건 무슨 뜻이냐면, 무엇을 최적화하는지가 어떻게 최적화하는지보다 더 중요하다는 거예요. 켈리 기준을 직접 최적화하는 것이 분류 대리 손실을 쓰는 것보다 낫다는 뜻입니다.

예상치 못한 발견: 2단계 방법이 더 낫다

솔직히 말하면, 이 결과는 조금 의외입니다. 2단계 예측-then-최적화 파이프라인이 모든 엔드투엔드 방법보다 더 좋은 성과를 냅니다.

왜 그럴까요? 저자들은 이렇게 설명합니다:

  1. 2단계 파이프라인의 제곱 오차 예측은 0으로 수축하는 경향이 있습니다. 그래서 온건하고 분산된 포트폴리오를 만듭니다.
  2. 엔드투엔드 방법은 추정된 조건부 풀 켈리 배분을 충실하게 최적화합니다. 이게 집중적이고, 추정 오차에 취약합니다.

즉, 켈리 기준이 "이 자산에 전부 투자해!"라고 말하면, 엔드투엔드 모델은 그 말을 따릅니다. 하지만 2단계 방법은 예측이 불확실하니까 적당히 분산합니다. 현실에서는 후자가 더 안전한 거예요.

거래 비용 민감성

방법회전율0bps 수익률/샤프20bps 수익률/샤프
KellyBoost7.9배6.2% / 0.30-
2단계 LGBM낮음8.2% / 0.40-

KellyBoost의 회전율은 7.9배입니다. 거래 비용이 붙으면 성과가 더 떨어질 수 있어요.


그림으로 보기

그림 1: 평가 구간의 자본 곡선

평가 구간 모든 방법의 자본 곡선 (로그 스케일). 모든 학습 방법은 동일하게 배치됩니다: 고정된 개발 튜닝 파라미터, 21 거래일마다 확장 윈도우 재학습, K_ens=4 떼어놓기 앙상블.

그림 1을 보면, 2단계 LGBM + 최적화기(보라색)가 가장 높은 자본 곡선을 보입니다. KellyBoost(빨간색)는 멀티클래스 대리(주황색)보다는 좋지만, 2단계 방법보다는 낮습니다.

그림 2: KellyBoost의 학습된 자산 배분

KellyBoost의 배치된 자산 배분 (위원회 평균). 모델에게 자산 클래스가 무엇인지 전혀 알려주지 않았습니다 — 회전 구조가 피처만으로 학습되었습니다.

그림 2는 KellyBoost가 시간에 따라 어떻게 자산 배분을 변화시켰는지 보여줍니다. 흥미로운 점은, 모델에게 "주식", "채권", "금" 같은 자산 클래스 정보를 전혀 주지 않았는데도, 시장 상황에 따라 자동으로 회전한다는 것입니다. 피처만으로 이런 패턴을 학습한 거예요.


한계와 주의사항

이 논문의 결과를 해석할 때 주의해야 할 점들이 있습니다.

1. 엔드투엔드가 항상 더 좋은 것은 아니다

가장 중요한 발견은 역설적입니다. 켈리 기준을 직접 최적화하는 것이 분류 대리 손실보다 낫지만, 2단계 예측-then-최적화 파이프라인이 모든 엔드투엔드 방법을 이깁니다. 목표 함수가 정확하다고 해서 항상 좋은 결과를 보장하지는 않습니다.

2. 풀 켈리의 위험성

켈리 기준은 기하학적 성장률을 극대화하지만, 변동성이 매우 크습니다. KellyBoost의 최대 낙폭이 -46.2%입니다. 대부분의 투자자에게 이건 받아들이기 어려운 수준이에요. 현실에서는 켈리 비율의 절반만 투자하는 "하프 켈리"가 더 일반적입니다.

3. 단일 테스트베드

이 논문은 하나의 테스트베드(8개 자산, 2003-2026)에서만 실험했습니다. 다른 시장, 다른 자산, 다른 기간에서도 같은 결과가 나올지는 알 수 없습니다.

4. 피처 선택의 복잡성

7,871개 후보 피처에서 최적의 피처를 선택하는 과정이 복잡합니다. 이 과정 자체가 미래 정보 유출이 될 수 있는 위험이 있지만, 저자들은 이를 엄격하게 관리했습니다.

5. 거래 비용

회전율이 7.9배로 높습니다. 현실의 거래 비용(슬리피지, 시장 충격 등)을 고려하면 성과가 더 떨어질 수 있어요.


실전 투자에이것이 의미하는 바는?

이 논문이 실전 투자자에게 주는 시사점을 정리해 보겠습니다.

1. 목표 함수의 중요성

가장 큰 교훈은 무엇을 최적화하는지가 중요하다는 것입니다. 분류 대리 손실(어느 자산이 가장 좋을지 맞추기)보다 켈리 기준(성장률 극대화)을 직접 최적화하는 것이 더 낫습니다. 투자 전략을 설계할 때 목표 함수를 신중하게 선택해야 해요.

2. 엔드투엔드의 한계

켈리 기준을 직접 최적화하는 것이 분류보다 낫지만, 2단계 방법보다는 못합니다. 이건 추정 오차의 문제입니다. 현실에서는 불확실성을 적절히 반영하는 것이 정확한 최적화보다 중요할 수 있어요.

3. 머신러닝과 금융의 결합

KellyBoost는 머신러닝과 금융 이론을 결합한 좋은 예시입니다. 켈리 기준이라는 70년 된 이론을 현대적인 부스팅 기법으로 구현한 거예요. 이런 접근법은 앞으로 더 발전할 가능성이 있습니다.

4. 재현성

이 논문은 모든 코드, 데이터, 스크립트를 공개했습니다. 야후 파이낸스에서 무료로 받을 수 있는 데이터만 사용했어요. 이건 학술 연구에서 매우 바람직한 태도입니다.


마무리: 성장의 딜레마

켈리 기준은 아름다운 수학적 결과입니다. 장기적으로 가장 빠르게 성장하는 전략을 제공하죠. 하지만 현실에서는 변동성이 너무 크고, 추정 오차에 취약합니다.

KellyBoost는 이 문제에 대한 새로운 접근법을 제시합니다. 그래디언트 부스팅으로 켈리 기준을 직접 최적화하는 거예요. 결과는 분류 대리 손실보다 낫지만, 2단계 방법보다는 못합니다.

이 논문의 가장 큰 가치는 무엇을 최적화하는지가 어떻게 최적화하는지보다 중요하다는 것을 보여준 점입니다. 그리고 엔드투엔드 학습이 만능이 아니라는 것을 솔직하게 인정한 점이에요.

투자에서 가장 중요한 것은 정확한 예측이 아니라, 불확실성을 적절히 관리하는 것일 수 있습니다. KellyBoost는 그 사이의 균형을 찾는 한 걸음이에요.


더 알아보기

  • 원본 논문: arXiv:2608.23393
  • 저자: Jiayu Li
  • 분야: 포트폴리오 관리 (q-fin.PM), 머신러닝 (cs.LG)
  • 제출일: 2026년 8월 24일

5차원 평가 점수

이 논문은 우리의 5차원 평가에서 A 등급을 받았습니다 (종합 점수: 71.4). 포트폴리오 최적화(A4) 분야에서 켈리 기준과 머신러닝을 결합한 새로운 접근법으로 높은 평가를 받았어요.


참고: 켈리 기준이란?

켈리 기준은 1956년 존 켈리가 벨 연구소에서 처음 제안한 베팅 전략입니다. 원래는 정보 이론에서 파생되었지만, 투자 분야에서 널리 사용됩니다.

핵심 아이디어는 간단합니다: 로그 함수를 최대화하는 비율로 베팅하라. 이건 기하학적 성장률을 극대화하는 것과 같습니다.

예를 들어, 이길 확률이 60%이고 2배를 받는 게임에서:

  • 켈리 비율 = (0.6 × 2 - 0.4) / 2 = 0.4 = 40%

즉, 가진 돈의 40%를 걸라는 뜻입니다. 이 비율은 장기적으로 가장 빠르게 성장하지만, 단기적으로는 변동성이 매우 커요.


참고: 그래디언트 부스팅이란?

그래디언트 부스팅은 여러 개의 약한 학습기(보통 결정 트리)를 순차적으로 학습시켜 강한 학습기를 만드는 방법입니다.

비유로 설명하면:

  • 학생이 시험을 봤는데 70점을 맞았어요.
  • 선생님이 "이 문제를 틀렸네"라고 알려줍니다. (잔차 계산)
  • 학생은 틀린 문제만 공부합니다. (새로운 트리 학습)
  • 다시 시험을 보면 85점이에요.
  • 또 틀린 문제를 공부합니다.
  • 이걸 반복하면 점수가 계속 올라갑니다.

XGBoost는 이 아이디어를 효율적으로 구현한 라이브러리입니다. 켈리 기준 손실 함수에 대한 그래디언트와 헤시안을 정확하게 계산해서 더 빠르고 정확하게 학습할 수 있어요.


AI 기술이 궁금하신가요?

오세에이아이연구소의 AI 연구와 제품에 대해 문의해주세요.

문의하기

관련 글