강화학습과 딥러닝의 결합
- 표 기반(tabular) 강화학습: 상태 또는 상태-행동마다 가치를 표의 한 칸에 저장
- 바둑, 비디오 게임, 로봇처럼 상태가 거대하거나 연속적이면 표를 만들 수 없음
- 처음 보는 상태에 대해서는 아무것도 알 수 없음
- 함수 근사(function approximation): 표 대신 함수로 가치나 정책을 표현
- 비슷한 상태는 비슷한 값을 갖도록 일반화
- 일부 상태의 경험만으로 처음 보는 상태에도 대응 가능
- 심층 강화학습(deep reinforcement learning): 함수 근사에 딥러닝(심층 신경망)을 사용하는 강화학습
- 화면 픽셀, 센서 값 같은 원시 입력에서 직접 특징을 추출
- 사람이 상태의 특징을 따로 설계할 필요가 줄어듦
신경망이 맡는 역할
- 강화학습의 구성 요소 중 하나 이상을 신경망으로 표현
| 가치 함수 |
상태 |
각 행동의 가치 |
DQN |
| 정책 |
상태 |
각 행동을 고를 확률 |
REINFORCE |
| 정책과 가치 함수 모두 |
상태 |
행동 확률과 상태의 가치 |
Actor-Critic, PPO |
지도학습과 다른 어려움
- 정답 레이블이 없음: 보상이라는 약한 신호만 주어짐
- 어떤 행동이 좋았는지는 한참 뒤에야 드러나는 경우가 많음
- 데이터가 서로 독립적이지 않음: 연속된 시점의 경험은 서로 비슷함
- 데이터가 정책에 따라 바뀜: 정책이 바뀌면 행위자가 겪는 상황도 바뀜
- 학습 대상이 계속 움직이므로 학습이 불안정해지기 쉬움
- 아래 알고리즘들은 이 어려움을 각자의 방식으로 완화
DQN: 가치를 신경망으로 배우기
- DQN(Deep Q-Network): Q 학습의 행동 가치 표를 신경망으로 바꾼 방법
- 2015년 아타리(Atari) 게임 화면만 보고 여러 게임에서 사람 수준의 점수를 냄
- 심층 강화학습이 주목받는 계기
- 기본 아이디어
- 신경망에 상태를 넣으면 행동마다 "앞으로 받을 보상의 합"을 예측
- 예측값이 가장 큰 행동을 선택
- 실제로 받은 보상과 다음 상태의 예측값으로 현재 예측을 조금씩 고침
- 학습을 안정시키는 두 가지 장치
- 경험 리플레이(experience replay): 경험을 저장해 두었다가 무작위로 꺼내 학습
- 연속된 경험 사이의 상관을 끊고, 같은 경험을 여러 번 재사용
- 목표 신경망(target network): 학습 목표를 계산하는 신경망을 따로 두고 가끔만 갱신
- 한계
- 행동 수만큼 출력을 만들어야 하므로 행동이 이산적일 때 적합
- 로봇 팔의 관절 각도처럼 연속적인 행동에는 그대로 적용하기 어려움
REINFORCE: 정책을 직접 배우기
- 정책 경사(policy gradient): 가치를 거치지 않고 정책 자체를 신경망으로 학습
- 신경망이 상태를 받아 각 행동의 확률을 출력
- REINFORCE는 가장 기본적인 정책 경사 알고리즘
- 기본 아이디어: "결과가 좋았던 행동은 더 자주, 나빴던 행동은 덜 자주"
- 현재 정책으로 에피소드를 끝까지 진행
- 에피소드에서 얻은 수익(보상의 합)이 크면 그 과정의 행동 확률을 높임
- 수익이 작으면 그 행동 확률을 낮춤
- 장점
- 확률을 출력하므로 탐색이 자연스럽게 이뤄짐
- 연속적인 행동도 확률 분포(예: 정규분포의 평균과 표준편차)로 표현 가능
- 한계
- 에피소드가 끝나야 학습 가능
- 운이 좋아 높은 수익을 얻은 경우에도 모든 행동이 좋았다고 평가
- 결과의 변동(분산)이 커서 학습이 느리고 불안정
Actor-Critic: 행동하는 신경망과 평가하는 신경망
- Actor-Critic: 정책과 가치 함수를 함께 학습하는 방법
- 행위자(actor): 상태를 보고 행동을 고르는 정책
- 비평가(critic): 상태가 얼마나 좋은지 예측하는 가치 함수
- 기본 아이디어: 비평가가 기준선을 제공
- 비평가는 "이 상태라면 보통 이 정도 보상을 받는다"는 기대치를 예측
- 실제 결과가 기대보다 좋으면 그 행동 확률을 높이고, 나쁘면 낮춤
- 기대 대비 얼마나 좋았는지를 이점(advantage)이라고 함
- REINFORCE와 비교
- 절대적인 수익 대신 기대 대비 차이로 평가하므로 분산이 줄어듦
- 에피소드가 끝나기 전에도 비평가의 예측을 이용해 학습 가능
- 비유
- 행위자: 경기를 뛰는 선수
- 비평가: 매 장면마다 "평소보다 잘했다/못했다"를 알려 주는 코치
PPO: 조금씩, 안정적으로
- PPO(Proximal Policy Optimization): Actor-Critic 구조에서 정책을 안정적으로 개선하는 알고리즘
- 2017년 OpenAI가 발표
- 현재 가장 널리 쓰이는 기본 선택지 중 하나
- 해결하려는 문제: 정책을 한 번에 크게 바꾸면 성능이 무너질 수 있음
- 정책이 나빠지면 나쁜 데이터를 모으고, 다시 더 나빠지는 악순환
- 기본 아이디어: 새 정책이 이전 정책에서 너무 멀어지지 않도록 제한
- 행동 확률의 변화가 일정 범위(예: ±20%)를 넘으면 더 이상 그 방향으로 밀지 않음(clip)
- 한 번 모은 데이터로 여러 번 안전하게 학습할 수 있어 데이터 효율이 좋아짐
- 장점
- 구현이 비교적 단순하고 하이퍼파라미터에 덜 민감
- 이산 행동과 연속 행동 모두에 적용 가능
- 게임, 로봇 제어, 대형 언어 모형의 인간 피드백 강화학습(RLHF) 등에 폭넓게 사용
정리
| DQN |
행동 가치 |
경험 리플레이와 목표 신경망으로 안정화 |
이산 행동에 적합 |
| REINFORCE |
정책 |
결과가 좋았던 행동의 확률을 높임 |
분산이 크고 느림 |
| Actor-Critic |
정책 + 가치 |
비평가의 기대치와 비교해 평가 |
두 신경망을 함께 맞춰야 함 |
| PPO |
정책 + 가치 |
정책 변화 폭을 제한해 안정적으로 개선 |
데이터를 계속 새로 모아야 함 |
- 발전 흐름
- 가치 기반(DQN)과 정책 기반(REINFORCE)이 각각 발전
- 두 방식을 결합한 Actor-Critic 등장
- 안정성을 높인 PPO가 실무의 기본 선택지로 자리 잡음