티스토리 뷰
📘 2.8 Gradient Bandit Algorithms ― 가치 추정이 아니라, 선택 확률 그 자체를 학습한다
✅ 출발점: 기존 가치 기반 방식은 왜 탐험에 실패하는가?
강화학습에서 행동을 선택하는 전통적인 방식은, 모든 행동의 평균 보상(기대값)을 추정한 후 그중 가장 좋은 행동을 선택하는 것이었다.
예를 들어, 어떤 슬롯머신이 평균적으로 보상 5.0을 주고, 다른 슬롯은 3.0을 준다고 하자. 가장 좋은 슬롯을 반복해서 고르면 되는 것처럼 보인다.
그래서 등장한 대표적인 가치 기반 알고리즘들에는 Q-learning, ε-greedy, UCB 등이 있다. 이들은 각 행동에 대해 평균 보상 \( q(a) \)를 추정하고, 가장 높은 값을 가진 행동을 선택한다.
✅ 하지만 이 방식은 ‘처음에 잘못 판단하면 끝’이다
문제는 보상이 확률적이라는 데 있다. 즉, 아무리 기대 보상이 높은 행동도, 초기에 운이 나쁘면 낮은 보상을 줄 수 있다.
예를 들어 보상이 다음과 같다고 해보자:
- \( a_1 \): 기대 보상 5.0
- \( a_2 \): 기대 보상 3.0
하지만 첫 시도에서 \( a_1 \)은 0점을 주고, \( a_2 \)는 3점을 준다면?
가치 기반 알고리즘은 \( a_2 \)를 더 좋은 행동으로 오판할 수 있다. 그리고 한 번 그렇게 판단하면, 그 다음부터는 계속 \( a_2 \)만 선택하게 된다.
결과적으로, 운이 나쁜 초기 샘플 몇 개에 의해 좋은 행동이 영원히 배제되는 일이 일어난다.
✅ ε-greedy는 탐험을 "억지로 삽입"한 방식이다
이 문제를 해결하려고 등장한 방식이 ε-greedy이다. 이는 다음과 같은 아이디어에 기반한다:
“가장 좋은 행동을 90% 확률로 고르되, 나머지 10%는 무작위로 선택하자.”
즉, 알고리즘이 너무 한쪽에만 집착하지 않게 일정 확률로 랜덤한 탐험을 강제로 넣는 것이다.
하지만 이 방식은 구조적으로 다음과 같은 한계를 갖는다:
- ε 값이 고정되어 있음 → 학습과 함께 정책이 발전하지 않음
- ε가 작으면 거의 탐험이 일어나지 않고, ε가 크면 좋은 행동도 자주 무시된다
- 탐험은 학습이 아닌 설계자의 외부 개입으로 들어간다
결국 ε-greedy는 학습된 결과가 아니라, “탐험이라는 기능”을 땜빵처럼 붙인 방식이다.
✅ 결정론적 정책의 구조적 한계
Q-learning이나 ε-greedy 등 기존 방식들은 행동 선택 정책이 결정론적(deterministic)이다. 즉, 가장 점수가 높은 행동만 선택하거나, 그 외는 무작위로 고른다.
이걸 수학적으로 표현하면 다음과 같다:
\[ \pi(a) = \begin{cases} 1 & \text{if } a = \arg\max_b q(b) \\ 0 & \text{otherwise} \end{cases} \]
즉, 선택 확률이 0 아니면 1이다. 이건 확률이라기보다는 명령에 가깝다. → 정책은 “정답을 고르는 함수”이지, “선택 경향을 표현하는 함수”가 아니다.
✅ Gradient Bandit의 발상 전환
이제 여기서 근본적인 철학적 전환이 등장한다. Gradient Bandit 알고리즘은 이렇게 말한다:
“정답을 맞추려고 하지 마라. 평균보다 보상이 더 좋았던 행동은, 다음에 조금 더 자주 선택되도록 만들어라.”
즉, 이 알고리즘은 점수를 추정하지 않는다. “이 행동을 얼마나 좋아해야 하는가”를 학습한다.
✅ 핵심 개념: ‘선호도(h)’ 기반 학습
Gradient Bandit은 각 행동 \( a \)에 대해 하나의 선호도 \( H_t(a) \in \mathbb{R} \)를 유지한다. 이 선호도는 수치화된 "호감도" 같은 것이며, 이 값을 바탕으로 행동을 선택하는 확률이 결정된다.
중요한 점은, 우리는 \( H_t(a) \)의 절대값이 아니라, 행동들 사이의 상대적 크기를 이용한다.
즉, \( H_t(a) \) 값이 크면 클수록 → 해당 행동의 선택 확률이 커지고, 그 값이 작아지면 선택 확률이 작아진다.
✅ 행동 선택은 softmax 함수로 이루어진다
Gradient Bandit에서 행동 선택은 다음과 같은 softmax 함수로 정의된다:
\[ \pi_t(a) = \frac{e^{H_t(a)}}{\sum_b e^{H_t(b)}} \]
이 수식의 의미를 직관적으로 설명하면 다음과 같다:
- \( H_t(a) \): 행동에 대한 선호도
- \( e^{H_t(a)} \): 선호도를 지수적으로 강조한 값
- 분모: 모든 행동의 지수화된 선호도를 더한 값 → 정규화
→ 선호도가 조금만 커져도, 확률은 기하급수적으로 증가한다 → 하지만 어떤 \( H(a) \)라도, 선택 확률은 0이 되지 않는다 → 탐험이 구조적으로 내재되어 있다
✅ 왜 softmax인가? 단순한 선택이 아님
softmax는 단순히 “확률을 만들어주는 함수”가 아니다.
Gradient Bandit에서 softmax는 다음과 같은 이유로 선택되었다:
- 모든 확률이 0~1 사이에 있고 총합이 1 → 올바른 확률 분포
- 미분 가능 → gradient ascent 사용 가능
- \( H \) 값이 조금만 차이나도 확률이 명확히 차이남 → 민감한 조정 가능
- 어떤 행동도 확률이 0이 아님 → 탐험이 사라지지 않음
만약 argmax를 썼다면? → 미분 불가능
만약 선형 스케일을 썼다면? → 음수, 0, 불안정
sigmoid를 썼다면? → 전체 확률 분포가 안 만들어짐
즉, softmax는 탐험 + 미분 가능 + 안정성을 모두 충족하는 사실상 유일한 선택이다.
✅ 확률은 어떻게 학습되는가?
Gradient Bandit은 확률 \( \pi_t(a) \) 자체를 직접 바꾸지 않는다. 대신, 그 확률을 만들어내는 선호도 \( H_t(a) \)를 조정함으로써 간접적으로 확률 분포를 학습한다.
이 학습은 받은 보상 \( R_t \)이 기준선보다 높았는지 낮았는지를 이용해서, 다음과 같은 방식으로 이루어진다.
✅ Gradient Bandit의 공식 update rule (책 원문 기준)
\[ H_{t+1}(A_t) = H_t(A_t) + \alpha (R_t - \bar{R}_t)(1 - \pi_t(A_t)) \]
\[ H_{t+1}(a) = H_t(a) - \alpha (R_t - \bar{R}_t)\pi_t(a), \quad \text{for all } a \ne A_t \]
기호 | 의미 |
---|---|
\( \alpha \) | 학습률 |
\( R_t \) | 이번에 받은 보상 |
\( \bar{R}_t \) | 평균 보상 (baseline) |
\( \pi_t(a) \) | 행동 \( a \)의 선택 확률 (softmax로 계산됨) |
📘 2.8 Gradient Bandit Algorithms ― 가치 추정이 아니라, 선택 확률 그 자체를 학습한다
✅ 공식 update 수식 다시 보기
앞서 소개한 Gradient Bandit의 핵심 업데이트 규칙은 다음과 같다:
\[ H_{t+1}(A_t) = H_t(A_t) + \alpha (R_t - \bar{R}_t)(1 - \pi_t(A_t)) \]
\[ H_{t+1}(a) = H_t(a) - \alpha (R_t - \bar{R}_t)\pi_t(a), \quad \text{for all } a \ne A_t \]
이 수식을 한 항씩 분해해서 설명하면 다음과 같다.
✅ 수식 항목별 완전 해설
항목 | 의미 |
---|---|
\( \alpha \) | 학습률. 조정 강도를 결정한다. |
\( R_t \) | 현재 시간 \( t \)에서 받은 실제 보상 |
\( \bar{R}_t \) | 기준선 (baseline). 평균 보상으로 쓰이며 분산을 줄인다. |
\( R_t - \bar{R}_t \) | 이번 보상이 기준선보다 얼마나 더 좋은가? |
\( \pi_t(a) \) | 현재 softmax로 계산된 행동 \( a \)의 선택 확률 |
\( 1 - \pi_t(A_t) \) | 선택된 행동의 조정량을 조절 (확률이 낮을수록 변화폭 큼) |
✅ 수치 기반 예시 ― 손으로 계산하며 따라가기
행동: \( a_1, a_2, a_3 \)
초기 선호도: \( H = [0, 0, 0] \)
⇒ softmax 확률: 모두 동일 → \( \pi(a_i) = \frac{1}{3} \)
Step 1: 행동 선택 및 보상 받기
선택된 행동: \( A_t = a_1 \)
보상: \( R_t = 3.0 \)
기준선: \( \bar{R}_t = 2.0 \)
학습률: \( \alpha = 0.1 \)
Step 2: update 계산
\[ H_{t+1}(a_1) = 0 + 0.1 \cdot (1.0) \cdot (1 - \frac{1}{3}) = 0.0667 \]
\[ H_{t+1}(a_2) = H_{t+1}(a_3) = 0 - 0.1 \cdot 1.0 \cdot \frac{1}{3} = -0.0333 \]
Step 3: softmax 재계산
\[ \pi(a_1) \approx \frac{e^{0.0667}}{e^{0.0667} + e^{-0.0333} + e^{-0.0333}} \approx 0.357 \]
→ \( a_1 \)의 선택 확률이 35.7%로 증가
→ 다른 행동은 약 32.1%로 감소
✅ 일상적 비유 ①: 음식점 선택
처음에는 음식점 3곳이 모두 똑같아 보인다.
한 곳에서 좋은 경험을 하면,
그 집을 조금 더 자주 가게 된다.
하지만 나머지 두 집도 완전히 배제하지 않고
여전히 간간이 시도해본다.
→ Gradient Bandit은 바로 이런 확률 조정을 학습하는 구조다.
✅ 일상적 비유 ②: 유튜브 알고리즘
어떤 사용자가 액션 영화를 보고 좋아요를 누르면,
알고리즘은 액션 장르에 대한 선호도를 높인다.
이 선호도는 softmax로 변환되어
다음 추천 콘텐츠의 출현 확률로 이어진다.
→ 하지만 다른 장르도 일정 확률로 계속 등장한다.
→ 탐험이 구조에 내재된 추천 방식
✅ 이 방식도 결국 보상을 최대화하려 한다. 그런데 왜 ‘가치 추정’이 아닌가?
Gradient Bandit도 기대 보상 \( \mathbb{E}[R_t] \)을 최대화한다.
하지만 Q-learning처럼 기대값을 예측해서 고르지 않는다.
대신 이렇게 작동한다:
- 보상이 기준선보다 높았던 행동의 확률을 올리고,
- 기준선보다 낮았던 행동의 확률은 줄인다.
즉, '예측'이 아니라 '반응'을 통해 확률을 조정한다.
→ 이 구조는 정답을 맞추는 것이 아니라,
경향성을 조정함으로써 기대 보상을 끌어올리는 방식이다.
✅ 결정론적 정책과의 철학적 차이
항목 | Q-learning (결정론적) | Gradient Bandit (확률론적) |
---|---|---|
선택 방식 | 가장 높은 가치 행동 1개 선택 | softmax 확률에 따라 선택 |
표현 | 값 → 행동 | 값 → 확률 분포 |
학습 대상 | \( q(a) \): 보상 추정 | \( \pi(a) \): 선택 확률 |
탐험 | 외부 삽입 필요 (ε) | softmax 구조 내재 |
기울기 사용 | 불가 (argmax는 미분 불가능) | 가능 (softmax는 미분 가능) |
✅ policy gradient로의 확장 가능성
Gradient Bandit은 단일 상태에서 확률 분포를 학습하지만,
이 구조는 곧바로 정책 경사(policy gradient)로 확장될 수 있다.
- 상태 \( s \)가 있으면 → 선호도는 \( H(s, a) \)
- 선호도를 파라미터 \( \theta \)로 표현
- softmax를 통해 \( \pi_\theta(a \mid s) \) 정의
- 목표: \( \nabla_\theta \mathbb{E}_{\pi_\theta}[R] \) 최대화
→ Gradient Bandit은 결국 actor-critic, REINFORCE 등의 기반이 된다.
✅ 이 알고리즘이 특별한 이유
- 보상 예측이 아닌 확률 분포 자체를 학습한다
- 탐험과 활용이 구조 안에 내재되어 있다
- softmax로 인해 확률 표현이 가능하고, 미분도 가능하다
- 정책 경사 강화학습으로 자연스럽게 연결된다
Q-learning은 정답을 맞추는 방식
Gradient Bandit은 확률을 조정하는 방식
그 차이는 탐험, 수렴, 표현력, 확장성 모든 면에서 구조적·철학적으로 본질적이다.
'머신러닝 > 강화학습' 카테고리의 다른 글
3.1 유한 마르코프 결정 과정과 에이전트–환경 구조 (1) | 2025.04.18 |
---|---|
2.9 Contextual Bandits ― 상황에 따라 다른 행동을 선택해야 한다는 말의 의미 (0) | 2025.04.18 |
상한 신뢰구간 기반 행동 선택 (Upper Confidence Bound Action Selection) (0) | 2025.04.17 |
2.6 초기에 높은 Q값은 왜 학습을 빨리 시키는가? (0) | 2025.04.17 |
2.5 강화학습 행동가치, 점진적구현, 비정상성 (0) | 2025.04.16 |
- Total
- Today
- Yesterday
- 티스토리챌린지
- 일문따
- Python
- C/C++
- K-MOOC
- 데이터분석
- 윤성우
- 인지부조화
- 뇌와행동의기초
- 사회심리학
- stl
- 파이썬
- 오블완
- 정보처리기사
- 회계
- C
- 보세사
- 백준
- 통계학
- 강화학습
- 인프런
- 류근관
- 통계
- c++
- 코딩테스트
- 심리학
- 여인권
- 일본어
- 일본어문법무작정따라하기
- 열혈프로그래밍
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |