ai theory
강화학습 기초 (4) - 지금 이 상태는 얼마나 좋은가?
Junyoung Park · 2024-04-05 · 7 min
들어가며...
세 번째 글에서 MDP를 강화학습의 문제지라고 불렀다. State, Action, Transition probability, Reward, Discount factor를 적으면 Agent가 어떤 세계에서 어떤 선택을 해야 하는지 표현할 수 있었다.
그런데 문제지를 적었다고 답이 바로 나오지는 않는다. DESK, CAFE, HOME 중 어디가 좋은 State인지, DESK에서 STUDY와 LEAVE 중 어떤 Action이 나은지 판단할 숫자가 필요하다.
당장의 Reward만 보면 간단해 보인다. Reward가 가장 큰 State나 Action을 고르면 될 것 같다. 하지만 첫 글에서 살펴봤듯이 강화학습의 목표는 한 번의 Reward가 아니라 미래 Reward를 합한 Return을 크게 만드는 것이다.
예를 들어 지금 한 칸 움직일 때 을 받더라도 그 길 끝에 인 출구가 있을 수 있다. 반대로 지금 을 받는 길이 몇 Step 뒤의 으로 이어질 수도 있다. 현재의 좋고 나쁨은 바로 다음 Reward만으로 결정되지 않는다.
그래서 강화학습은 Value function을 사용한다. 이번 글에서는 Value를 계산하기 전에 다음 세 단어부터 정확히 분리해보려고 한다.
- Reward: 방금 받은 한 번의 숫자
- Return: 한 경로에서 실제로 쌓인 미래 Reward의 합
- Value: 같은 상황을 여러 번 겪었을 때 기대하는 Return의 평균
Reward, Return, Value를 영수증으로 구분하기
Reward 은 시간 에 Action을 한 뒤 Environment가 돌려준 한 Step의 숫자다.
Return 는 시간 부터 실제로 받은 Reward를 Discount해서 모두 더한 값이다.
앞으로 받은 Reward가 , , 이고 라면,
여기까지는 한 번 실제로 지나간 경로의 결과다. 그런데 같은 State에서 시작해도 Policy가 다른 Action을 고르거나 Environment가 다른 Next State를 만들 수 있다. 어떤 Episode에서는 Return이 , 다른 Episode에서는 , 또 다른 Episode에서는 일 수 있다.
Value는 이 여러 가능한 Return을 평균적으로 얼마나 기대하는지 나타낸다.
한 번의 영수증이 유난히 비쌌다고 그 가게의 평균 가격이 항상 비싼 것은 아니다. Value도 마찬가지다. 한 Episode에서 높은 Return을 얻었다고 그 State의 Value를 바로 높은 숫자로 확정할 수 없다. 여러 경로가 얼마나 자주 나타나는지까지 함께 고려해야 한다.
Expectation은 아직 보지 못한 미래의 평균이다
State value function은 다음과 같이 정의한다.
기호를 한 번에 읽으려고 하면 막막해지므로 안쪽부터 살펴보자.
- : 지금 State가 라는 조건
- : 지금부터 쌓일 Discounted return
- : Policy 를 따랐을 때 가능한 결과의 평균
- : 그 평균을 State 에 붙인 값
문장으로 바꾸면 다음과 같다.
State 에서 시작해 Policy 를 계속 따를 때, 앞으로 받을 Return의 기대값.
Expectation은 단순히 Reward 숫자를 더한 뒤 Episode 개수로 나누는 계산만을 뜻하지 않는다. Policy가 어떤 Action을 고를지에 대한 불확실성과 Environment가 어떤 Next State를 만들지에 대한 불확실성을 모두 평균낸다.
예를 들어 State 에서 다음 두 경로만 가능하다고 하자.
- 확률 로 Return
- 확률 으로 Return
그러면 Value는 다음과 같다.
Value가 라고 해서 실제 Episode에서 라는 Return을 반드시 받는 것은 아니다. 실제 결과는 또는 이다. 는 같은 상황을 여러 번 반복했을 때 평균적으로 기대하는 값이다.
아래첨자 π는 장식이 아니다
에서 를 빼고 라고 적는 경우도 많다. 문맥에서 Policy가 이미 정해져 있으면 간단히 생략하는 것이다. 하지만 Value가 Policy에 따라 달라진다는 사실은 잊으면 안 된다.
DESK State에서 다음 두 Action이 있다고 하자.
- STUDY: 장기적으로 기대하는 Return이
- LEAVE: 장기적으로 기대하는 Return이
항상 STUDY를 고르는 Policy 아래에서는 DESK의 Value가 에 가깝다. 두 Action을 절반씩 고르는 Policy라면 Value는 대략 가 된다.
State가 그대로여도 Policy가 바뀌면 미래에 지나갈 경로가 달라지고, 따라서 Value도 바뀐다.
State value는 State 혼자의 점수가 아니라, 그 State에서 앞으로 어떤 Policy를 따를지까지 포함한 점수다.
이 때문에 Policy를 비교할 때 Value function이 유용하다. 같은 MDP에서 Policy A의 와 Policy B의 를 비교하면 어느 Policy가 그 State 이후의 미래를 더 잘 만드는지 판단할 수 있다.
Action value: 이 행동부터 시작하면 얼마나 좋을까?
State value가 “이 State에 있는 것이 얼마나 좋은가?”에 답한다면, Action value는 질문을 한 단계 더 구체적으로 만든다.
문장으로 읽으면 다음과 같다.
State 에서 Action 를 먼저 한 뒤, 그다음부터 Policy 를 따를 때 기대하는 Return.
는 현재 State에서 Policy가 고를 여러 Action까지 평균낸 값이다. 반면 는 첫 Action을 로 고정하고 그 이후의 미래를 평균낸다.
예를 들어 DESK에서 Policy가 STUDY를 , LEAVE를 의 확률로 고르고,
라면 State value는 Action value를 Policy의 확률로 평균낸 값이다.
일반적으로는 다음과 같이 쓴다.
수식의 오른쪽은 각 Action의 에 Policy가 그 Action을 선택할 확률을 곱해 모두 더한 것이다.
Gridworld에서 Value를 읽는 방법
Gridworld의 각 칸을 State라고 하자. 오른쪽 위의 출구는 , 오른쪽 아래의 구덩이는 이고 Agent는 상하좌우로 움직인다.
출구 바로 옆 State는 당장 Reward가 이어도 높은 Value를 가질 수 있다. 다음 Action으로 출구에 도착할 가능성이 크기 때문이다. 구덩이 가까이에 있는 State는 현재 아무 벌점이 없어도 Value가 낮을 수 있다.
그림 오른쪽처럼 한 State에서 방향별 Action value가 다음과 같다고 하자.
- 위쪽:
- 오른쪽:
- 왼쪽:
- 아래쪽:
Value만 보면 현재 칸이 평균적으로 얼마나 좋은지 알 수 있다. Q값까지 보면 어느 방향이 그 좋은 미래로 이어지는지 알 수 있다.
Environment model을 알고 있다면 와 Transition probability를 이용해 각 Action을 한 Step 미리 계산할 수 있다. 하지만 Model을 모르는 상황에서는 어떤 Action을 했는지 함께 기록한 를 경험으로 직접 학습하는 편이 훨씬 편하다. 뒤에서 SARSA와 Q-Learning이 State value가 아니라 Action value를 업데이트하는 이유다.
Optimal value는 가능한 Policy 중 가장 좋은 미래다
지금까지의 Value에는 특정 Policy 가 붙어 있었다. 가능한 모든 Policy 중 가장 높은 Value를 만드는 경우를 Optimal value라고 한다.
를 정확히 알고 있다면 State 에서 가장 큰 Q값을 가진 Action을 고르면 된다.
는 가장 큰 값 자체를 가져오고, 는 그 가장 큰 값을 만든 Action을 가져온다.
예를 들어 Q값이 STUDY , LEAVE , WORK OUT 라면,
이고,
다. 값과 행동을 구분하기 위한 작은 표기 차이지만 뒤에서 계속 등장한다.
Value는 Reward가 아니다
처음에는 Reward와 Value가 모두 State 옆에 적힌 숫자라서 자주 섞인다. 다음 세 가지를 다시 확인해두면 좋다.
Reward가 높아도 Value는 낮을 수 있다
지금 를 받지만 이후 매 Step 으로 이어지는 State라면 장기 Value는 낮다.
현재 Reward가 없어도 Value는 높을 수 있다
출구 한 칸 전 State는 지금 Reward가 이어도 곧 을 받을 가능성이 높다.
Value는 관측된 한 번의 결과가 아니다
Return은 한 Episode에서 실제로 얻은 결과고, Value는 가능한 여러 Return의 기대값이다.
결국 Reward는 Environment가 돌려준 Data고, Value는 Agent가 미래를 판단하기 위해 알고 싶거나 추정해야 하는 값이다.
이번 글에서 기억할 것
이번 글의 내용을 한 문장으로 줄이면 다음과 같다.
Value는 특정 State 또는 State-Action에서 시작해 Policy를 따랐을 때 받을 Return의 기대값이다.
조금 더 나누면 다음과 같다.
- Reward는 한 Step의 숫자다.
- Return은 한 경로에서 실제로 쌓인 Discounted reward의 합이다.
- 는 State 에서 Policy 를 따를 때 기대하는 Return이다.
- 는 State 에서 Action 를 먼저 한 뒤 기대하는 Return이다.
- 같은 State도 Policy가 달라지면 Value가 달라진다.
- 는 가장 큰 값, 는 그 값을 만드는 Action을 뜻한다.
Value의 정의는 알게 됐지만 아직 계산이 남았다. 미래가 열 Step, 백 Step 이어진다면 가능한 모든 Return을 매번 끝까지 펼쳐야 할까?
다음 글에서는 긴 미래를 “바로 다음 Reward와 Next State 이후의 Value”로 접는 Bellman Equation을 살펴본다. 이 한 줄이 Policy Evaluation, Policy Iteration, Value Iteration으로 어떻게 이어지는지도 함께 정리할 예정이다.