이 포스팅은 [강화 학습 1강] 강화 학습 Introduction, 팡요랩 을 바탕으로 작성했습니다.
보상 Rewards
모든 목적은 축적된 보상의 합을 최대화하는 것이다
- Scalar feedback signal: Scalar 값이 주어진다
- 에이전트가 각 t 스텝마다 얼마나 잘하고 있는지 알려주는 것이다
- 에이전트의 일은 누적된 보상을 최대화하는 것이다
Sequential Decision Making
목적: 미래 받을 보상을 최대화하는 액션을 선택하는 것
행동은 장기적인 보상을 발생시킬 수 있다
즉각적인 Reward보다 긴 기간의 Reward가 좋을 경우가 있다. 예시로는 재무투자가 있다.
환경 Environment
History And State
History는 observations, actions, rewards를 순서에 따라 모아둔 것이다.
Agent는 History를 보고 액션을 정한다
Environment는 History를 보고 Observation 과 Reward를 방출한다
State는 다음에 뭘할지 결정하기 위해 쓰이는 정보이다.
Agent는 다음 액션을 뭘 할지 결정하기 위해 '어떤 숫자'를 사용한다.
Environment도 Observation 과 Reward를 제공하기 위해 '어떤 숫자'를 사용한다.
이 숫자를 State라 한다.
다음에 뭘 해야하는데 거기에 쓰이는 정보 모든 것을 말한다. 무엇을 선택하기 위해서는 과거를 보는 것은 상식적이다.
State는 History의 함수다. Hisotry에 있는 정보를 가공해서 State를 만든다.
Environment State
환경의 역할은 Observation과 Reward를 만들어내는 것이다. 이 두 가지를 만들어내는 데 사용되는 모든 정보를 환경의 State 라 한다. 환경의 State는 Agent에게 보통 보이지 않는다.
예를 들면, 벽돌깨기 게임에서의 Agent는 플레이어가 되고, Environment는 벽돌깨기 게임이다. Reward는 Score가 이다. 벽돌깨기 게임(환경)은 플레이어의 액션을 입력받아서, 해당 액션에 대한 점수(Reward)를 게임 알고리즘으로 계산해서 제공한다. 또, 플레이어의 액션이 반영된 다음 게임 화면(Observation)을 만들어낸다. 액션에 대한 점수와 다음 게임 화면을 만드는데 사용되는 모든 정보들이 Environment State에 해당된다. 플레이어는 게임의 내부 알고리즘 및 모든 정보들을 몰라도 게임을 잘하는데 크게 상관이 없다.
Agent State
Agent는 최대의 보상을 위해 Action을 한다. 이 Action을 위해 사용되는 모든 정보들을 Agent State라 한다. history 의 어떤 함수라도 해당된다.
예르 들면, 내가 삼성 주식에 투자를 할 때 어제의 주가 차트만 볼 수 있고, 3년치의 주가 차트를 모두 볼 수 있다. 투자하기 위해 참고하는 주가 차트, 재무제표 등 모든 정보들이 State가 된다.
Information State
Markov State. 미래 상태는 나머지 state는 상관 없이 바로 이전의 State에만 의존한다.
"The future is independent of the past given the present"
예를 들면, 헬리콥터를 조종할 때 사용되는 정보들은 풍향, 풍속, 헬리콥터 속도, 방향, 이전, 현재 위치 등이 있다. 조종할 때 10분 전의 정보들을 알 필요 없이, 현재 상태의 정보들만 참고하면 조종할 수 있다. 이 상태가 Markov라고 할 수 있다.
공식을 설명하면, 미래 상태(t+1) 가능성은 지금 현재 상태(t)를 기반한 것과 과거의 모든 상태들(t1, t2, ..) 기반한 것과 같다. 즉, 과거 상태들을 무시해도 현재 상태(t)만 기반해서 미래 상태(t+1)를 만들 수 있으면 Markov 상태이다.
현재 상태만 알면 history는 무시해도 된다.
현재 상태로만 미래 통계를 만들어내는데에 충분한 상태가 Markov 상태에 해당한다.
반대로 Markov 하지 않는 상태는 현 상태에선 모르고 과거 상태들을 기반으로 계산해서 미래 상태를 만들어내는 것일 경우이다.
그래서 강화학습(RL)은 거의 마르코프 상태에서만 문제를 해결할 수 있다.
Agent 구성요소
- 에이전트의 행동 함수인 Policy
- 각각의 상태 혹은 액션이 얼마나 좋은지 확인하는 Value function
- 에이전트의 환경을 나타내는 Model
Policy
State를 입력하면 Action을 출력한다. 액션 한 개가 결정적으로 나오는 Deterministic Policy와 각 액션 별 확률이 나오는 Stochastic Policy 두 종류가 있다. 예를 들면, 알파고는 Stochastic Policy를 사용한 것이다. 여러 수를 계산해서 확률로 선택하는 것이니.
Value Function
미래의 Reward를 예측한다. 상태들이 좋은지 나쁜지 평가하는데 사용한다. 여러 액션들 사이에서 선택하기 위해 사용한다. 이 함수는 상태가 주어졌을 때 모든 Reward 합산의 기댓값을 계산한다.
Model
다음 Environment 환경이 어떻게 될지 예측한다. 다음 State 상태를 예측하는 것과 바로 다음 Reward를 에측하는 것이 있다. 예측할 때는 입력으로 상태와 액션이 주어진다. 모델 없이도 RL을 할 수도 있다.
Agent 분류 방식
Value Based
- No Policy, Value Function
Policy Based
- Policy
- No Value Function
Actor Critic
- Policy
- Value Function
Model 기준으로 한 분류 방식
Model Free
- Policy And/or Value Function
- No Model
Model Based
- Policy and/or Value Function
- Model
Learning And Planning
강화학습은 2가지를 포함한다. Model을 아냐 모르냐에 따라 2가지가 있다.
sequential decision making 에는 근본적으로 2가지 문제를 가진다.
Reinforcement Learning
환경을 모른채로 던져져서 환경과 상호작용하면서 자신만의 Policy를 계속 개선시켜나간다.
Planning
- 환경 이미 알고 있다. 모든 Reward와 State 변화를 알고 있다는 뜻이다.
- 에이전트는 환경을 미리 다 알고 있기 때문에 상호작용 없이, 모델을 계산해보면서 작동한다.
- 에이전트는 그 자신의 policy를 향상한다
Exploration과 Exploitation
강화 학습은 시행착오를 하면서 학습하는 것이다. 관점이 2가지가 있다. 환경으로부터 정보를 모으는 것이 Exploration, 알아낸 정보들을 통해 Reward를 최대화하는 것이 Exploitation이다. 이 것들이 균형이 이루어져야 함.
예를 들면, 맛있는 중국집을 찾을 때 여러 중국집에 시켜보는 것이 Exploration이고, Exploitation는 전보다 도전적인 행동을 해보면서 더 좋은 Reward를 얻을 것.
Prediction과 Control
Prediction은 각 상태의 모든 Reward의 모든 기댓값을 계산하는 Value function 학습하는 문제. Policy가 주어진다.
Policy에 따라 Action들을 다 해보면서, Reward를 예측하는 Value들을 구한다.
Control은 각 상태에 따른 Action들을 만들어내는 Policy를 학습하는 문제. Value Function이 주어진다.
예측한 값에 따라 어떤 Action들이 나올지 Policy를 구한다.