1950~1960년대, 리처드 벨만(Richard Bellman)은 '최적 제어(optimal control)'와 '동적 프로그래밍(dynamic programming)'이라는 개념을 연구했습니다. 그는 순차적으로 결정을 내려야 하는 문제, 즉 "지금 무엇을 해야 가장 좋은 결과를 얻을 수 있을까?"를 수학적으로 풀어내기 위해 벨만 방정식(Bellman Equation) 을 만들었습니다.
1. 벨만 방정식이 필요한 이유
어떤 문제는 한번에 한 번씩 결정을 내려야 하고, 그 결과가 다음 상황에 영향을 줍니다. 예를 들어,
- 로봇이 미로를 탈출하려 할 때 어디로 이동할지
- 게임에서 어떤 행동을 할지
- 투자에서 매달 얼마를 저축할지
이런 문제들은 한 번의 결정이 끝이 아니라, 계속 이어지는 연속적인 결정을 필요로 합니다.
문제는 "지금 최선의 선택이, 앞으로의 최선 결과를 보장할까?" 하는 점입니다. 벨만은 이 문제를 풀기 위해 '미래를 모두 계산하는 대신, 현재와 미래를 연결하는 간단한 규칙'을 만들었습니다.
그게 바로 벨만 방정식입니다.
2. 벨만 방정식이란?
간단히 말하면, "현재의 가치 = 지금 얻는 보상 + 앞으로 최선을 다했을 때 얻을 수 있는 기대 가치"를 의미합니다.
수식으로는 이렇게 표현됩니다:
이걸 쉽게 풀어보면:
- V(s) : 현재 상태 s에서 얻을 수 있는 최대 기대 가치
- a : 가능한 행동(action)
- R(s,a) : 현재 상태 s에서 행동 a를 했을 때 즉시 얻는 보상(reward)
- P(s'|s,a) : 행동 a를 했을 때 다음 상태 s'로 갈 확률
- V(s') : 다음 상태 s'에서 얻을 수 있는 최대 기대 가치
- γ\gamma(감가율, discount factor): 미래 보상의 현재 가치. 0~1 사이 값입니다.
즉, 현재 가치는:
"지금 행동으로 얻는 보상"과 "앞으로 최선을 다했을 때 얻을 미래 보상 (약간 할인해서 계산)"을 더한 것입니다.
3. 왜 이게 중요한가?
벨만 방정식은 다음을 가능하게 합니다.
- 복잡한 긴 문제를 '현재'와 '미래'로 나눠서 계산할 수 있게 합니다.
- 작은 조각 문제들을 풀어 전체 문제를 해결할 수 있게 합니다 ("작은 문제를 풀면 큰 문제를 푼다"는 동적 프로그래밍 아이디어).
- 강화학습(RL)처럼, 스스로 시행착오를 통해 '좋은 행동 방법(정책)'을 배우게 합니다.
4. 아주 쉬운 예시
- 지금 1,000원을 가지고 있다.
- 저축하면 매달 이자로 10%를 준다.
- 언제까지 저축할지는 자유다.
이때, 오늘 저축하는 가치는:
- 즉시 얻는 보상(없음) + (미래에 얻을 이자 10%와 원금 가치)
입니다.
매달 결정해야 합니다. "지금 돈을 쓸까, 더 기다릴까?" 매 순간 이걸 계산해야 하죠.
이럴 때 벨만 방정식을 이용하면, 어떤 시점에서 어떤 행동(저축 vs 인출)을 해야 총 이익이 최대가 될지 알 수 있습니다.
5. 강화학습에서 벨만 방정식의 역할
강화학습은 에이전트(Agent)가 환경(Environment)과 상호작용하면서 최적의 행동(Policy)을 학습하는 방법입니다. 목표는 장기적으로 얻을 수 있는 보상(Reward)을 최대화하는 것입니다.
여기서 벨만 방정식은 "좋은 상태"란 무엇인지 정의하는 데 중요한 역할을 합니다. 벨만 방정식은 다음과 같은 아이디어를 바탕으로 합니다.
지금의 가치 = 현재 얻은 보상 + 미래 가치
즉, 어떤 상태(state)에서 행동을 했을 때 얻는 총 보상은,
- 지금 즉시 받는 보상과
- 그 다음 상태에서 앞으로 받을 보상의 합 입니다.
이 간단한 원리가 강화학습 전체를 지탱하는 핵심입니다.
6. Q-러닝과 벨만 방정식
**Q-러닝(Q-Learning)**은 벨만 방정식을 활용하는 대표적인 강화학습 알고리즘입니다.
Q-러닝에서는 "Q값"이라는 것을 학습합니다. Q(s,a)Q(s, a)는 "상태 ss에서 행동 aa를 했을 때 기대할 수 있는 총 보상"을 의미합니다.
Q-러닝은 벨만 방정식을 다음처럼 변형하여 사용합니다.
쉽게 설명하면 다음과 같은 과정입니다:
- 현재 상태 ss에서 행동 aa를 선택하고,
- 보상 rr을 받고, 다음 상태 s′s'로 이동합니다.
- 그 다음 상태 s′s'에서 가능한 행동들 중 가장 큰 Q값(maxQ(s′,a′)\max Q(s', a'))을 확인합니다.
- 이 정보를 사용해서 현재 Q(s,a)Q(s, a)를 업데이트합니다.
이 과정을 반복하면서 Q값이 점점 실제 최적 보상에 가까워지게 됩니다.
'인공지능의 발전 > 머신러닝의 부상' 카테고리의 다른 글
Q-러닝(Q-Learning) (0) | 2025.04.29 |
---|---|
시간차 학습(TD Learning) (0) | 2025.04.28 |
2.3-b 강화학습의 발전 (2) | 2025.04.28 |
2012년–2020년 딥러닝 적용 분야의 확장 (1) | 2025.04.20 |
AlexNet의 이미지넷 대회 우승 (3) | 2025.04.20 |