8. 보상 설계 — 에이전트는 준 대로 한다
강화학습 프로젝트가 실패하는 자리는 대부분 알고리즘이 아니라 여기다
이 장에서 처음 나오는 말6개
리워드 해킹Reward Hacking · Specification Gaming- 보상은 최대로 받으면서 우리가 원한 일은 안 하는 해법을 찾아내는 것. 버그가 아니라 최적화의 정상 작동이다.
희소 보상Sparse Reward- 성공했을 때만 점수를 주는 방식. 정직하지만 학습이 거의 안 된다.
보상 셰이핑Reward Shaping- 중간 과정에도 점수를 줘서 학습을 돕는 것. 잘못하면 중간 점수만 챙기는 정책이 나온다.
잠재 기반 셰이핑Potential-Based ShapingF = γ·Φ(s') − Φ(s)형태로만 보조 보상을 주는 기법. 최적 정책이 안 바뀐다는 것이 증명돼 있다.커리큘럼Curriculum Learning- 쉬운 과제부터 시작해 점점 어렵게 만드는 것. 희소 보상을 뚫는 실무적 처방.
제약 강화학습Constrained RL · Safe RL- "보상을 키우되 이 선은 넘지 마라"를 벌점이 아니라 제약으로 다루는 틀.
문제 — 최적화는 정확히 시킨 것을 한다
섹션 제목: “문제 — 최적화는 정확히 시킨 것을 한다”보상 함수는 “무엇을 원하는가”를 적는 자리다. 그런데 우리가 적는 것은 대개 원하는 것의 대리 지표이고, 에이전트는 그 대리 지표를 공략한다.
| 준 보상 | 나온 행동 |
|---|---|
| 앞으로 간 거리 | 넘어져서 앞으로 구른다 |
| 목표까지의 거리 감소 | 목표 근처를 왔다 갔다 하며 감소분을 반복 수확 |
| 점수 획득 (보트 경주 게임) | 경주를 포기하고 점수 아이템만 뱅뱅 돌며 먹는다 |
| 컵을 든 높이 | 컵을 엎어서 바닥에 놓고 그 위에 올라선다 |
| 일간 수익률 | 레버리지를 최대로 당긴다. 몇 달은 잘 되다가 한 번에 파산 |
| 체결 건수 | 잘게 쪼개 수수료를 늘리며 건수만 채운다 |
희소 보상과 셰이핑의 저울
섹션 제목: “희소 보상과 셰이핑의 저울”가장 정직한 보상은 성공하면 +1, 아니면 0이다. 리워드 해킹의 여지가 적다. 문제는 학습이 안 된다는 것이다 — 우연히 성공할 확률이 0에 가까우면 에이전트는 평생 0만 받고 아무것도 못 배운다.
로봇 팔이 물건을 집어 상자에 넣으면 +1, 아니면 0장점 — 원하는 것을 정확히 적었다. 해킹할 구석이 없다.
단점 — 무작위 행동으로 이걸 성공할 확률이 사실상 0이다. 학습 신호가 영영 안 온다. 탐색만으로는 못 뚫는다.
+ 손끝과 물건 사이 거리가 줄면 점수+ 물건을 잡으면 점수+ 물건이 상자에 가까워지면 점수+ 넣으면 큰 점수장점 — 학습이 실제로 된다.
단점 — 각 항의 가중치가 곧 새로운 하이퍼파라미터이고, 중간 점수만 수확하는 정책(물건 근처에서 손을 떨며 거리 점수를 반복 획득)이 나온다.
F(s, s') = γ · Φ(s') − Φ(s) Φ 는 "여기까지 왔다"를 재는 함수원래 보상에 보조 항을 이 형태(잠재 기반)로 더하면, 정리의 조건 아래 최적 정책이 보존된다. 할인된 항들이 망원경처럼 상쇄되기 때문이다. 에피소드 과제에서는 종료 상태의 잠재값을 일관되게 두고, 외부 시간 제한을 진짜 종료처럼 처리하지 않아야 한다.
γ=1이면 단순 거리 감소분도 Φ(s)=-distance(s)인 잠재 기반 형태가 될 수 있다.
γ<1에서는 반드시 γ·Φ(s')−Φ(s)를 그대로 적용하는 습관을 들인다.
다목적 보상 — 가중치가 곧 설계
섹션 제목: “다목적 보상 — 가중치가 곧 설계”현실의 보상은 항이 여럿이다. 로봇 보행이 대표적이다.
r = w₁·(명령 속도 추종) 목표 − w₂·(에너지 · 토크) 효율 − w₃·(관절 한계 근접) 안전 − w₄·(자세 흔들림) 안정 − w₅·(직전 행동과의 차이) 부드러움 ← sim-to-real 에 결정적 + w₆·(발이 땅에 닿은 시간) 보행 형태| 가중치를 잘못 주면 | 나오는 정책 |
|---|---|
| 에너지 벌점이 너무 크다 | 가만히 서 있는다 (움직이면 손해다) |
| 속도 보상만 크다 | 진동하며 관절을 학대한다. 실물에서 즉시 고장 |
| 부드러움 항이 없다 | 시뮬에서는 되는데 실물에서 고주파 진동으로 망가진다 |
| 생존 보너스가 크다 | 아무것도 안 하고 서서 시간만 채운다 |
벌점 대신 제약으로
섹션 제목: “벌점 대신 제약으로”“안전 한도”는 벌점보다 제약으로 다루는 편이 낫다. 벌점은 “충분히 큰 이득이 있으면 위반해도 된다”는 뜻이 되기 때문이다.
| 방식 | 성격 | 언제 |
|---|---|---|
| 큰 음수 벌점 | 간단하지만 가중치 조율이 지옥이고 위반이 가능하다 | 초기 프로토타입 |
| 제약 최적화 (라그랑주 승수) | “위반율 ≤ 1%“처럼 목표를 직접 건다. 승수를 학습으로 조절 | 안전이 중요한 실물·운용 |
| 하드 마스킹 | 위반 행동을 아예 선택 불가로 만든다 | 규칙이 명확할 때 (주문 한도, 관절 한계) |
하드 마스킹이 가장 확실하다. 트레이딩에서 “포지션 한도를 넘는 주문”이나 로봇에서 “관절 한계를 넘는 목표”는 학습에 맡기지 말고 환경 쪽에서 잘라 내는 편이 낫다.
종료 조건도 보상이다
섹션 제목: “종료 조건도 보상이다”2장에서 짚었듯 종료는 조용한 보상 설계다. 실무에서 자주 쓰는 조합이다.
| 종료 | 효과 | 주의 |
|---|---|---|
넘어지면 즉시 terminated | 강력한 “넘어지지 마라” 신호 | 초반에 에피소드가 너무 짧아 학습이 안 될 수 있다 |
| 생존 보너스 (+매 스텝 소량) | 오래 버티게 만든다 | 너무 크면 아무것도 안 하고 서 있는다 |
| 손실 한도 초과 시 종료 | 위험 관리를 학습에 반영 | 에이전트가 그 근처를 회피하는 법을 배운다 |
외부 실행 한도 truncated | 과제 밖에서 에피소드 길이 통제 | 관측 가능한 고정 horizon 종료와 구분 (2장) |
희소 보상을 뚫는 법
섹션 제목: “희소 보상을 뚫는 법”셰이핑 말고도 처방이 있다. 리워드 해킹을 덜 유발한다는 점에서 오히려 낫다.
| 방법 | 아이디어 | 어디서 쓰나 |
|---|---|---|
| 커리큘럼 | 쉬운 버전부터 → 점점 어렵게 | 로봇 지형 학습(평지 → 계단), 목표 거리 |
| 시연으로 시작 | 사람 시연을 버퍼에 미리 넣거나 BC로 초기화 | 로봇 조작 (16장) |
| 목표 재라벨링 (HER) | 실패한 궤적을 “저기로 가려 했던 것” 으로 바꿔 학습 | 목표 조건부 과제 |
| 탐색 보너스 | 새로운 상태를 방문하면 보너스 | 탐험이 필요한 과제. 잡음에 취약 |
| 자동 커리큘럼 | 성공률을 보고 난이도를 자동 조절 | 대규모 병렬 시뮬 (15장) |
두 응용의 보상 설계
섹션 제목: “두 응용의 보상 설계”| 로봇 | 트레이딩 | |
|---|---|---|
| 자연스러운 보상 | 명령 추종 − 에너지 − 흔들림 | 손익 |
| 흔한 함정 | 부드러움 항 누락 → 실물 파손 | 수익률만 주면 → 레버리지 폭주 |
| 실무 처방 | 항별 로깅, 잠재 기반 셰이핑, 커리큘럼 | 위험 조정 지표(수익 − λ·변동성) + 거래비용 반영 |
| 제약 | 관절 한계 하드 마스킹 | 포지션·손실 한도 하드 마스킹 |
트레이딩 쪽 보상 설계는 항이 미묘해서 12장에서 따로 다룬다. 핵심만 미리 말하면 — 거래 비용과 슬리피지를 보상에 안 넣으면 에이전트는 초단타 매매로 수수료를 태우며 “수익”을 낸다.
보상 설계 점검표
섹션 제목: “보상 설계 점검표”새 환경을 만들었을 때 학습을 돌리기 전에 훑는 목록이다.
| 확인 | 왜 |
|---|---|
| 보상 함수를 한국어 문장으로 읽어 봤는가 | 그 문장대로 행동한다 |
| 각 항의 스케일이 비슷한가 | 큰 항이 다 먹는다 |
| 항별 기여도를 따로 로깅하는가 | 나중에 원인을 못 찾는다 |
| 임의 보조 항이 원래 목표를 덮지 않는가 | 누적 이득 때문에 성공을 회피할 수 있다 |
| 아무것도 안 하는 정책의 리턴은 얼마인가 | 그게 높으면 그렇게 배운다 |
| 극단 행동(최대 레버리지, 최대 토크)의 리턴은 얼마인가 | 그게 최적이면 그렇게 배운다 |
| 제약을 벌점이 아니라 마스킹으로 할 수 있는가 | 더 확실하다 |
terminated와 truncated를 나눴는가 | 시간 제한을 실패로 배운다 |
참고 자료
섹션 제목: “참고 자료”- Policy Invariance Under Reward Transformations — 잠재 기반 보상 셰이핑의 정책 불변성 정리
- Specification gaming: the flip side of AI ingenuity — 리워드 해킹 사례 모음
- Gymnasium: Handling Time Limits — 종료와 시간 제한의 가치 부트스트래핑 차이
8장 요약
섹션 제목: “8장 요약”- 리워드 해킹은 버그가 아니라 최적화의 정상 작동이다. 우리가 적은 식을 정확히 최대화한 결과다
- 에이전트가 이상하면 보상 함수를 소리 내어 읽는다 — 대개 그 문장 그대로 하고 있다
- 희소 보상은 정직하지만 학습이 안 되고, 셰이핑은 학습이 되지만 해킹의 문을 연다
- 보조 보상은 정리의 조건을 지킨 잠재 기반 형태로 주면 최적 정책을 보존한다
- 잠재 기반이 아닌 보조 항은 원래 목표를 덮지 않는지 누적값을 점검한다
- 다목적 보상은 스케일을 먼저 맞추고 가중치를 조정하고, 항별로 로깅한다
- 안전 한도는 벌점보다 제약이나 하드 마스킹이 확실하다
- 종료 조건도 보상 설계다. 생존 보너스가 크면 아무것도 안 하고 서 있는다
- 희소 보상은 커리큘럼 · 시연 · 목표 재라벨링으로 뚫는다. 커리큘럼이 셰이핑보다 안전하다