오늘 끝나면
정책 학습
- ✓정책 학습의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 정책이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
상태를 보고 행동을 고르는 정책을 배우다 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
Physical AI · 14
정책
학습
정책(policy)은 상태를 보고 행동을 고르는 함수다.
신경망으로 표현하고, 정책경사로 보상 큰 행동의 확률을 올린다.
토크 같은 연속 행동도 다룬다. 강화학습의 심장이다.
정책 = 상태에서 행동을 내는 함수
강화학습에서 에이전트가 매 순간 하는 일은 하나다. 지금 상태를 보고 행동을 고른다.
그 고르는 규칙이 정책(policy)이다. 보통 기호로 π라고 쓴다.
상태 s를 넣으면 행동 a가 나온다. 식으로 쓰면 π(s) = a다.
로봇 팔이면 관절 각도라는 상태를 보고, 어느 모터를 얼마나 돌릴지라는 행동을 정한다.
정책에는 두 종류가 있다.
하나는 결정적(deterministic) 정책이다. 상태마다 행동 하나로 딱 정한다.
다른 하나는 확률적(stochastic) 정책이다. 상태마다 행동들의 확률 π(a|s)를 낸다.
가치함수는 이 상태가 얼마나 좋은지를 점수로 매긴다.
정책은 지금 뭘 할지를 직접 내놓는다. 행동을 바로 뽑는 함수다.
같은 상태가 들어오면 같은 행동이 나온다. 정책은 하나의 함수다.
신경망으로 정책을 표현한다
상태가 단순하면 표 한 장에 칸마다 행동을 적어두면 된다. 그런데 현실은 그렇지 않다.
카메라 픽셀, 수십 개의 관절 각도, 속도까지 상태가 크고 연속적이면 표로는 못 적는다.
그래서 정책을 신경망(neural network)으로 표현한다.
입력은 상태 벡터이고, 출력은 행동이나 행동 확률이다.
이산 행동이면 출력에 softmax를 붙여 행동마다 확률을 낸다.
연속 행동이면 평균과 분산을 내고, 거기서 행동을 샘플한다.
신경망의 가중치 θ가 곧 정책이다. 그래서 π_θ라고 쓴다.
학습이란 이 θ를 바꿔서 더 좋은 행동이 나오게 만드는 일이다.
비슷한 상태끼리는 비슷한 행동을 내도록 신경망이 알아서 일반화해 준다. 그래서 안 가본 상태에도 그럴듯한 행동이 나온다.
정책경사로 보상 큰 행동의 확률을 올린다
θ를 어느 방향으로 바꿔야 더 좋아지는지를 알려주는 것이 정책경사(policy gradient)다.
큰 보상으로 이어진 행동은 다음에 더 자주 하게 하고, 나쁜 보상을 부른 행동은 덜 하게 한다.
즉 보상이 큰 행동의 확률 π(a|s)는 올리고, 작은 행동의 확률은 내린다.
수식의 핵심은 ∇log π(a|s) · R이다. 그 행동의 로그확률 경사에 보상을 곱한다.
보상 R이 양수면 그 행동 방향으로 θ를 밀고, 음수면 반대로 당긴다.
이걸 여러 에피소드에 평균 내어 조금씩 갱신하는 것이 REINFORCE다. 가장 기본이 되는 정책경사 알고리즘이다.
실제로는 분산이 커서 학습이 출렁인다. 그래서 기준선(baseline)을 빼거나, 가치함수를 같이 쓰는 방법이 액터-크리틱(actor-critic)이다.
PPO 같은 현대 알고리즘도 뿌리는 다 이 정책경사다.
보상 큰 A는 확률이 오르고 나쁜 B는 확률이 내린다. 이걸 반복하면 좋은 행동만 남는다.
격자 위 정책을 학습으로 정렬해 본다
격자의 각 칸이 상태다. 화살표는 그 상태에서 정책이 고른 행동이다. 처음엔 무작위로 초기화한 정책이라 화살표가 제멋대로다.
한 스텝마다 칸마다 확률대로 행동을 뽑는다. 목표인 우상단에 가까워지면 +보상, 멀어지면 -보상을 준다.
그 보상으로 정책경사를 밀면 좋은 행동의 확률이 오르고 화살표가 진해진다. 반복하면 화살표가 목표 가는 길로 정렬된다.
학습률을 키우면 빨리 정렬되지만 출렁이고, 작게 하면 천천히 안정적으로 수렴한다.
각 칸 = 상태. 화살표 = 그 상태에서 정책이 고른 행동(가장 확률 높은 것). 진할수록 확신이 크다. 파랑이면 목표(우상단)로 가까워지는 방향이다.
학습 중, 보상 큰 행동의 확률이 점점 올라간다.
정책경사 = 보상 큰 행동의 확률을 올리고 작은 행동은 내린다. 스텝을 반복하면 무작위 화살표가 목표 가는 길로 정렬된다.
연속 행동에서는 토크를 직접 뽑는다
상하좌우 같은 이산 행동은 쉽다. 그런데 로봇은 토크나 각속도 같은 연속 값을 내야 한다.
모터에 “위로”가 아니라 “2.7Nm”를 줘야 한다.
정책경사는 여기서 진가를 발휘한다. 정책망이 행동의 평균 μ와 분산 σ를 내고, 그 분포에서 실수 행동을 샘플한다.
보상이 좋으면 그 행동 근처로 μ를 옮기고 σ를 줄여 더 확신하게 만든다.
이것이 정책 기반 방법이 가치 기반인 Q러닝보다 로봇에 잘 맞는 이유다.
Q러닝은 행동마다 값을 비교해야 해서 연속 행동에 약하다.
정책은 연속 행동을 바로 뽑아내니 토크 제어와 보행, 비행 같은 물리 제어에 딱 맞는다.
정책 학습은 상태를 보고 실제 모터 명령을 내는 함수를 보상만으로 빚어낸다. 정책 기반 강화학습이 Physical AI 제어의 핵심인 이유다.
Q. 정책(policy)이란 무엇인가?
정책은 주어진 상태에서 어떤 행동을 할지 정하는 규칙이다.상태 s를 넣으면 행동 a, 또는 행동들의 확률을 내는 함수 π다.
신경망으로 표현하고, 정책경사로 보상 큰 행동의 확률을 올려 학습한다.
토크 같은 연속 행동까지 다룰 수 있어, 강화학습으로 로봇을 제어하는 핵심이다.
정책망이 평균 μ와 분산 σ를 내고 거기서 행동을 뽑는다. 보상이 좋으면 μ를 그쪽으로 옮기고 σ를 줄여 더 확신하게 만든다.