강화학습 공부를 해보려 합니다. 궁금하고 흥미롭긴 했는데 고등학생 때 유니티로 처음 접해서 잠깐 때려치고 있다가 파이썬이라도 해보자 하고 다시 공부하려합니다. 이미 알고 있는 내용이라도 기록을 남기는 것이니 처음부터 차근차근 해보겠습니다. 원래 방학 목표였지만 이것저것 일이 많았던 관계로 학기중에 2주일에 한번이라도 글을 써보겠습니다.
1. 강화학습(Reinforcement learning)
"지도학습", "비지도학습", "강화학습"으로 나뉘는 머신러닝에서 강화학습을 공부해봅시다.
강화학습은 어떤 환경 안에서 정의된 에이전트(Agent)가 현재의 상태(State)를 인식하여, 선택 가능한 행동들(정책, Policy) 중 보상(Reward)을 최대화하는 행동 혹은 행동 순서를 선택하는 방법으로 학습하는 방법입니다. 여기서 중요한 키워드는 에이전트, 상태, 정책, 보상입니다.
에이전트는 스스로 학습하는 개체를 말합니다. 아무것도 주어지지 않은 상태에서 행동을 하다가 보상을 얻게 되는데 이 보상에 따라 어떤 행동이 높은 보상을 얻는지 학습하여 좋은 행동을 학습할 수 있습니다. 이렇게 점차 보상을 얻으며 가장 높은 보상을 얻을 수 있도록 하는 것이 강화학습입니다.
상태는 말그대로 환경 안에서 에이전트가 어떠한 상태인지를 말합니다.
정책은 에이전트가 현재 상태에서 할 행동을 말합니다. 에이전트는 수많은 정책들 중 높은 보상을 주는 정책을 선택하게 될 것입니다.
보상은 에이전트의 정책에 대한 점수입니다. 좋은 행동을 할수록 높은 보상을 주고 나쁜 행동을 할수록 낮은 보상을 주면 에이전트가 어떤 행동을 해야하는지 학습할 수 있습니다. 보상은 양수, 음수 모두 가능하고 정책에 대한 보상을 잘 조절하여 상과 벌을 주는 것이 중요합니다.
강아지를 훈련시키는 것을 예를 들 수 있습니다. 우리는 강아지를 훈련할 때, 원하는 행동을 명령하고 강아지가 그 행동을 하면 간식을 주면서 가르칩니다. 이처럼 에이전트는 정책을 고르고 보상을 받으며 학습합니다.
2. 순차적 행동 결정 문제
강화학습은 순차적으로 해결해야 하는 문제에 활용됩니다. 무언가를 분류하거나 라벨링하는 것이 아닌 어떠한 행동을 계속해서 하는 것에 적용됩니다. 순차적 행동 결정 문제를 정의할 때는 MDP(Markov Decision Process)를 사용하는데, 이는 문제를 수학적으로 정의해서 에이전트가 해결할 수 있도록 합니다.
3. 강화학습 장단점
지도학습, 비지도학습과 달리 강화학습은 무한히 학습할 수 있습니다. 또한 데이터를 스스로 모아 사용하기 때문에 데이터를 수집하고 가공할 필요가 없습니다. 하지만 학습이 오래걸린다는 단점이 있습니다. 그래도 저는 초기 데이터가 필요없다는 것이 가장 유용하다고 생각합니다.
간단히 강화학습 개념을 알아보았습니다. 다음 글에서는 MDP를 공부해보도록 하겠습니다.