12.1 강화 학습이란
강화 학습(reinforcement learning)은 머신 러닝/딥러닝의 한 종류로, 어떤 환경에서 어떤 행동을 했을 때 그것이 잘된 행동인지 잘못된 행동인지를 판단하고 보상(또는 벌칙)을 주는 과정을 반복해서 스스로 학습하게 하는 분야입니다.
이때 어떤 환경에서 어떤 행동을 하는지 알기 위해 ‘환경(environment)’과 ‘에이전트(agent)’라는 구성 요소를 사용합니다. 환경이란 에이전트가 다양한 행동을 해 보고, 그에 따른 결과를 관측할 수 있는 시뮬레이터를 가리킵니다. 에이전트는 환경에서 행동하는 주체가 됩니다. 예를 들어 게임에서는 게임기가 환경이 되고 게임을 하는 사람이 에이전트가 됩니다.
강화 학습의 목표는 환경과 상호 작용하는 에이전트를 학습시키는 것입니다. 에이전트는 상태(state)라고 하는 다양한 상황 안에서 행동(action)을 취하며, 조금씩 학습해 나갑니다. 에이전트가 취한 행동은 그에 대한 응답으로 양(+)이나 음(-) 또는 0의 보상(reward)을 돌려받습니다.
▲ 그림 12-1 강화 학습
그림을 이해하기 위한 용어를 정리해 보겠습니다.
상태는 에이전트가 관찰 가능한 상태의 집합으로, ‘자신의 상황에 대한 관찰’입니다. 에이전트의 상태는 시간에 따라 달라집니다. 에이전트가 가질 수 있는 모든 상태의 집합을 S라고 할 때, 시간 t에서 에이전트의 상태 s는 다음과 같이 나타냅니다.
St = s {s ∈ S}
행동이란 에이전트가 상태 St에서 가능한 행동입니다. 전체 행동의 집합을 A라고 할 때, 에이전트가 시간 t에서 특정 행동 a를 하는 것을 다음과 같이 나타냅니다.
At = a {a ∈ A}