강화학습은 어떤 행동을 취했을 때 돌아오는 피드백을 통해 학습하는 방법을 말한다. 지도학습과 달리 labeled data 가 필요하지 않지만, 피드백이 돌아오고 이를 통해 학습해야 하기 때문에 속도가 느리다는 단점이 있다.
강화학습에서는 다음의 다섯가지 요소를 정의하는 것이 중요하다.
Environment
모든 것이 일어나는 배경이다. Agent 의 행동을 통해 상태가 바뀌고, 이에 대한 피드백을 제공한다.
State ($S_t$)
특정 시점에서 Environment 의 상태를 나타낸다.
Agent
행동의 주체가 되는 존재다. Agent 는 State 를 관찰하고 다음으로 취할 Action 을 정의한다.
Action ($A_t$)
Agent 가 State 를 기반으로 특정 시점에 취하는 행동이다. Action 은 Environment 에 영향을 미쳐 State 가 바뀌도록 만든다 (State Transfer).
한 가지 주의할 점은, Agent 는 항상 Action 이 지정하는 대로 행동하지 않을 수도 있다는 것이다. 로봇을 앞으로 이동시켰는데, 80% 확률로 앞으로 가고 20% 확률로 뒤로 가는 상황을 예시로 들 수 있다. 이런 상태를 Stochastic (확률적인) 하다고 하고, 반대로 예정대로 Agent 가 행동하고 결과가 예측 가능한 상태를 Deterministic 하다고 한다.
Stochastic 한 환경은 real world 를 더 잘 대변한다.
Reward ($R_t)$
Environment 가 Agent 에게 주는 피드백이다. Agent 가 취한 Action 의 효율성을 평가한다.
강화학습의 최종 목적은 Reward 가 극대화되도록 가장 효율적인 Action 들을 찾는 것이다.