Julie의 Tech 블로그

강화학습(RL, Reinforcement Learning)이란 본문

Tech/ML, DL

강화학습(RL, Reinforcement Learning)이란

Julie's tech 2021. 7. 4. 19:59
728x90

본 글은 강화학습의 기본적인 개념에 대해 살펴보고, 현재 트렌드를 간단히 다뤄볼 것이다.

Reinforcement Learning is a discrete time stochastic control process,

where an agent interacts with its environment/state

강화학습은 AI Agent가 특정 state/situation 내에 최대의 보상 Q를 가져다주는 action을 학습하는 과정이다.

이 의미를 이해하려면 강화학습에서 주로 사용되는 용어를 이해해야한다.

- State : 특정 환경 내 상태를 의미한다.

- Agent : 모델 혹은 AI가 된다.

- Reward : 보상을 의미한다.

- Action : Agent가 취할 행동을 의미한다.

- Policy : 특정 state에서의 최대 보상을 제공하는 action을 정하는 알고리즘이다.

일반적인 강화 학습의 단계는 아래와 같다.

1. 환경에 따라 state가 주어진다.

2. Agent는 state를 통해 이제껏 관찰해온 정보를 바탕으로 최대의 보상을 줄 action을 policy에 따라 선택한다.

3. 2에 따른 보상을 받는다.

4. Agent는 보상을 바탕으로 policy를 업데이트하고, state는 바뀐다.

5. 1-4 반복

이를 좀 더 수학적으로 풀면 아래와 같다.

* Agent는 현재 state s에 있다. action a를 취하면 보상 r을 받고, state는 s'로 이동한다.

* Agent는 아래 문제를 풀어야한다.

보상 Q의 함수는 state와 action에 따라 움직이기에 s, a의 함수이고,

state s에서의 action a의 보상은 아래와 같이 일종의 점화식으로 정의할 수 있다.

특정 state에서 실제 보상을 최대로 가져다 주는 정답 action (즉, Optimal Policy 𝚷 )와 Agent가 선택한 policy에 따른 max Q는 아래와 같다.

 

이 두 값 간의 차이를 줄여나가는 것이 최종 목표이다. 즉, 선택한 action에 따른 보상 Q값이 실제 최대 보상과 가까워져야한다.

여러 상황에서 강화학습을 각 정의에 따라 살펴볼 수 있다.

예를 들어 스타크래프트의 경우 state로는 미니맵과 스크린/화면이 될 수 있다. action으로는 드래그나 클릭이 된다.

학습 데이터는 프로게이머가 특정 state에 따른 action을 취한 로그가 될 것이고, 목표는 policy에 따른 action a가 실제 최대 보상을 가져다줄 action과 동일하고자하는 것이다.

마찬가지로 자율주행 역시 state는 센서, action은 핸들 방향 조정과 브레이크가 해당된다.

학습 데이터는 운전자의 state에 따른 action 셋일 것이고, 마찬가지로 운전자가 실제 취할 행동과 유사한 action을 선택하도록 policy를 배운다.


Inverse Reinfocement Learning, IVR

현실세계 문제를 강화학습으로 풀고자 할 경우, 가장 중요한 것은 Reward shaping이다.

보상을 어떻게 정의할 것인가에 대한 문제인데, 보상을 어떻게 정의하느냐에 따라 action이나 policy모두 달라지기 때문이다.

하지만 현실에서 보상을 수치로 환산하는 것이 매우 어렵다.

예를 들어 금전적인 보상을 받는 것이 아닌, 유저의 최대 만족감을 보장하는 최적의 선택을 학습하고 싶을 경우가 그렇다.

이럴 땐 비물질적인 가치를 수치로 어떻게 환산하느냐가 문제가 된다.

이에 따라 보상을 역으로 모든 상황을 관찰(observation)한 후, 역으로 수치화하는 강화학습 방법이 떠오르고 있다.

IRL(Inverse Reinforcemen Learning)이라고 부른다.

일반적인 강화 학습은 모델에 보상을 설계하여 input한 뒤 최적의 policy 𝚷를 배워나가지만,

IVR은 반대로 Optimal policy 𝚷를 바탕으로 보상을 재설계하는 방식이다.


Imitation Learning

다른 강화학습 트렌드는 모방학습인데, imitation learning이라 불린다.

Imitation learning이 가장 활발하게 사용되는 것은 자율주행이라고 한다.

그 이유는 action이 핸들을 조정하고, 브레이크 밟는다 정도로 두 개 밖에 되지 않기 때문이다.

가장 단순한 형태로 action을 표현할 수 있어서 활발히 연구되고 있다.


Multi-agent learning

앞서 살펴본 강화학습에 대한 예시는 모두 single agent를 가정하고 있다.

Agent가 여러 명일 때에도 강화학습을 적용할 수 있다.

예를 들어 게임에서 여러 명의 플레이어가 공동의 목표를 달성하기 위해 전략을 각기 수행해야한다고 생각해보자.

이 때 앞서 살펴본 single agent 방식을 적용하게 되면 모든 agent가 자신의 보상을 최대화하기 위해 이기적으로 행동할 것이고, 결국 엉망된다.

공동의 보상을 달성하기 위해서는 Agent는 상황에 따라 양보도 해야하고, 협력도 해야한다.

Multi-agent learning은 네트워크/통신에 가장 많이 활용되는 강화학습이다.

트래픽이 한 곳으로 집중될 때, 안정적인 네트워크 망 환경을 유지하기 위해 어느 쪽으로 트래픽이 나뉘어야하는지 등을 풀 때 사용된다.

이럴 때 모델을 설계 시에 Neural Network를 사용하는 것이 일반적이다.

아래 그림과 같이 간단하게 모델을 구상해본다면,

위와 같이 Input으로 두 Agent의 State 를 독립 변수로 넣고,

Output역시 마찬가지로 각 Agent에 따른 Action 1, 2를 독립변수로 내뱉게끔 중간에 NN으로 학습하게 된다.

구체적으로 어떻게 학습된다고 말할 수 없지만, NN을 통해서 두 Agent의 coordination정보가 반영되어 Output으로 뱉게된다.

이처럼 State와 Action만으로 학습하게끔 설계하는 것이 또 하나의 트렌드라고 하는데, 그 이유는 바로 강화학습의 한계점 때문이다.

규모가 큰 state일 때는 강화학습의 연산량이 대폭 증가되기 때문이다.

본래는 앞서 정의한 것과 같이 보상함수를 설계하고, 그 보상함수를 점점 실제 최대 보상과 가깝게 맞추어가는 학습을 한다.

이 과정에서 action, reward, policy가 각 state마다 업데이트가 이루어져야하기 때문에,

이를 state와 action만 NN에게 제공하고, 최적의 action을 선택할 수 있게끔 학습하도록 설계하게 된 것이다.

이와 같은 배경으로 많은 강화학습은 딥러닝 형태로 구현된다.

반응형