강화학습에서는 보상과 벌칙이란 상태값이 주어져 있습니다. 직접적으로 정답을 처음에 주는 것이 아니라, 어떤 상태에서 취한 행동이 잘된 행동이면 보상을 주고, 잘못된 행동이라면 벌칙을 부여합니다.

 

학습 대상은 시행착오를 통해 스스로 벌칙을 최소화하고 보상을 최대화하도록 행동을 학습하게 됩니다. 학습대상이 이용할 수 있는 정보는 보상 뿐이기 때문에, 학습목적에 알맞는 보상을 설정하는 것이 제일 중요한 task가 되겠습니다.

 

 

비디오 게임을 예로 들었을때, 강화학습에서는 학습하는 객체를 에이전트(Agent)라고 부릅니다.  위 그림의 마리오를 보면 에이전트(사람)는 동전을 넣고 레버를 조작하면서 마리오를 움직여서 버섯 몬스터를 없애서 게임이 끝났을 때 최종 점수를 받게됩니다. 처음에는 게임에 익숙하지 않은 에이전트가 버섯과 부딪혀서 죽거나, 뛰어가다 점프를 안하고 구덩이에 빠져서 죽는경우가 있습니다. 계속해서 투입되는 동전을 보면서 부딪혀서 죽거나, 장애물을 피해야 안 죽는 것을 인식하게 됩니다. 따라서 먼저 계속 투입되는 동전을 아까워하며 점점 조작에 익숙해집니다. 조작이 익숙해지면 최대한 죽지않고 빠르게 스테이지를 클리어 하는 법을 터득하게 됩니다. 에이전트는 동전(벌칙)의 투입을 최소화하면서, 점수(보상)을 최대화하도록 레버 조작이라는 행동을 학습하게 되는 것입니다. 

 

이처럼 강화학습은 직접적으로 정답을 주지는 않지만 주어진 보상을 최대화할 수 있도록 시행착오를 통해 행동을 최적화할 수 있습니다.

+ Recent posts