강화 학습(Reinforcement learning)은 기계 학습의 한 영역이다. 행동심리학에서 영감을 받았으며, 어떤 환경 안에서 정의된 에이전트가 현재의 상태를 인식하여, 선택 가능한 행동들 중 보상을 최대화하는 행동 혹은 행동 순서를 선택하는 방법이다. - 위키피디아
정의는 이렇게 나와있는데 뭔가 정의내리기 참 힘든 것 같다. 나중에 내가 안 헷갈리게 좀 더 자주나오는 용어나 개념들을 정리를 해보자.
위 그림은 강화학습의 가장 기본인 에이전트와 환경간의 상호작용을 표현하였다.
**Environment(환경)**은 에이전트에게 **State(상태)**와 Reward(보상) 정보를 준다. 에이전트는 그것들을 관찰하고 가지고 있는 **Policy(정책)**에 따라서 **Action(행동)**을 내린다.
이게 대략적인 그림이고 이제 좀 더 들어가서 살펴보자.
강화학습에서 의사결정을 하는 역할. 여럿이 있으면 multi-agent 이다.
에이전트의 의사 결정을 반영하고 에이전트에게 정보를 주는 시스템. 게임 그 자체
State s 는 환경에서의 상태를 표현한 것을 말한다. 반면 Observation o 는 State 를 부분적으로 표현한 것으로 일부 정보가 누락 되어 있을 수 있다. Agent 가 환경의 모든 state 를 관찰할 수 있으면 해당 환경을 fully observed 라고 하고 일부분만 볼 수 있으면 partially observed 라고 한다.
시간 t 를 붙여서 St Ot 로 표기한다.
Agent 가 의사 결정을 통해 취할 수 있는 행동이다. 이 때 모든 가능한 action 의 집합을 Action space 라고 한다. Action 이 이산적이면(discrete) Action space 도 discrete action space 일거고 Action 이 연속적이면(continuous) continuous action space 일 것이다.
시간 t 를 붙여서 At 로 표기한다.
Step : Agent가 한번 행동을 취하는 것