본문 바로가기

강화학습/기초

강화학습 기초

강화학습(Reinforcement Learning)?

 

Reinforcement Learning(RL) is an area of machine learning concerned with how software agents ought to take actions in an environment so as to maximize some notion of cumulative reward

 

즉, 'Agent가 해당 environment에서 어떠한 action을 취해야 reward의 총량이 최대가 될 것인가?'

여기에 관심을 같는 것이 강화학습이라고 할 수 있다.

 


Reinforcement Learning vs Machine Learning

 

RL, 즉 강화학습은 몇가지 Machine learning과는 다른 특징을 같는다.

 

1. No answer is given, the agent get just rewards ; no supervisor, only a reinforcement signal

- machine learning에서 label이 주어지는 supervised learning과는 다르게 label이 없다!

- 그럼 unsupervised learning과 같냐? Nope!

- 강화학습에서 data는 주어지지 않는다. 단지, agent가 시행착오를 겪으면서 training data를 스스로 모은다.

 

2. Data have a correlation.

- supervised learning과 unsupervised learning에서 training data는 i.i.d(independent and identically distributed)를 가정한다.

- 하지만...강화학습의 데이터는 time series data여서 correlation을 가지고 있다.

 

3.  Delayed feedback(reward)

- 당장 reward가 발생하지 않을 수도 있다. 

- 시간이 흘러 여러행동을 조합해서 reward를 산출하는 경우도 있을 수 있다.

 

4. Uncertainty in RL system

- E라는 environment에서 A라는 action을 했을 때, 항상 S라는 state일 가능성은 거의 없다.

- 예를 들면, 프리킥을 찰 때, 동일한 힘으로 동일한 킥을 했다고 해도, 골이 될 수도 있고, 바람이 많이 불어 골대를 넘어갈 수도 있다

 

5. Current decision affects the subsequent data

- 말 그대로 현재의 결정/action이 이후에 올 data에 영향을 미친다.

 

 

마치, 사람이 '앉아'라고 했을 때(environment), 강아지(agent)가 앉으면(action) 

머리를 쓰다듬거나/육포를 주거나 하는 등의 reward를 줘서 강아지를 학습시키는 거라고 보면 될 것 같다. 

 


강화학습 핵심 용어(8가지)

 

강화학습 동작구조

 

Rewards

- Scalar feedback signal(하나의 숫자)

- agent의 임무는 cumulative reward를 최대화하는 것.

- 해결하고자 하는 문제의 reward hypothesis를 잘 설정해야 함.

- 예를 들어, 자율주행에서 어쩔 수 없이 중앙선을 넘지 말라는 rule을 깨야하는 딜레마같은 상황에 대한

(-)reward 설정이 중요할 수 있다.

 

Agent

- 행동하는 주체 ex) 바둑을 두는 알파고 알고리즘, 스타크래프트 유저

- 어떤 observation(state)와 reward를 받으면 action을 취함.

 

Environments

- 문제를 둘러싸고 있는 환경 ex) 스타크래프트 맵, atari 게임화면

- agent로 부터 action을 받아, 그 action에 따른 다음 state(observation)와 reward를 내보냄.

 

History

- agent와 environment의 상호작용으로 나온 observation(state), reward, action의 전체 집합

 

State

- Environment state : 다음 state와 reward를 뽑기위해 사용하는 데이터 ex) 스타 맵의 시야

- Agent state : 다음 action을 하기위해 사용하는/고려하는 정보 ex) 스타크래프트 유저의 시야

- Information state

: 지금 state의 정보만으로 다음 state의 분포를 알 수 있는 상태, Markov state라고도 함.

- Fully Observable State

: environment state = agent state = information state

: ex) 치트키를 쳐서 어두운 맵을 켠 경우, 맵자체 정보와 유저가 보는 시야와 같음.

 

Policy (=Controller)

- agent behavior function

- state가 들어오면 action을 골라줌. 즉, 어떻게 움직일지 결정하는 역할.

- action이 고정되어있다면, deterministic policy. → ex) 길이 앞으로 가는 것 밖에 없는 경우

- 특정 state에서 여러 action을 취할 수 있다면, stochastic policy → ex) 여러 갈래의 길이 나온 경우

 

Value Function

- 해당 state가 미래에 좋을지 평가

- 해당 state로부터 policy를 따라갔을때, 게임이 끝난 후 얻을 reward의 총액의 기댓값

- optimal policy는 value function을 최대로 만듬.

- 다시말해, 굉장히 policy dependent함.

 

Model

- P predict는 다음 state 예측함

: ex) 로봇이 앞으로 간다(a) → 문고리를 잡는다(predict)

 

- P predict를 transition model이라 함.

- R predict는 다음의 reward를 예측한다.

- 보통 R predict function은 모른다고 가정

시행착오를 통해 P, R predict function을 모델링함.

 

 

***

가끔 reward function/ value function 등 function이 붙은 용어들이 나온다.

이는 다름이 아니라 다양한 값을 가질수 있는 확률변수를 하나의 값으로 나타낸다는 의미다,

여기서 하나의 값은 보통 기댓값으로 표현


Categorize the RL agents : agent가 뭘 가지고 문제를 푸느냐?

- Value Based : no policy, just value function

- Policy Based : just policy, no value function

- Actor Critic : both policy(만들고) and value function(평가하고)

- Model Free : policy and/or value function, no model

- Model Based : policy and/or value function, and  model(environment예측)

 

Learning and Planning

- Learning(RL)은 기본적으로 environment를 모름

- agent와 environment의 상호작용으로 policy를 학습시킴

- 반면, Planning은 environment를 알고 있기 때문에, 시뮬레이션을 다 해보고 난 후 결과를 실제에 적용함.

 

Exploration and Exploitation

- Exploration : 새로운 정보를 얻기위해, 가보지 않은 곳으로 가서 정보를 얻는 것을 의미.

- Exploitation : 가지고 있는 정보내에서 최선의 선택을 하는 것을 의미.

 


참고

<Deepmind Reinforcement Learning Course by David Silver>

https://www.youtube.com/watch?v=2pWv7GOvuf0&list=PL7-jPKtc4r78-wCZcQn5IqyuWhBZ8fOxT&index=1

 

 

'강화학습 > 기초' 카테고리의 다른 글

Dynamic Programming : Policy Iteration & Value Iteration  (0) 2018.11.09
Markov Decision Processes (MDP)  (0) 2018.11.08