1. Introduction to Reinforcement Learning

목차

  • 강화 학습은 무엇인가?
  • 핵심 생각들
  • Agent의 구성요소
  • 강화 학습에 남은 도전들

동기

  • 1.물리적 반복 작업에 대한 자동화
    • 산업혁명 - 생산라인 등
  • 2.정신적 반복 작업에 대한 자동화
    • 정보화 혁명 - 계산기 등
    • 어떻게 하는지 규칙을 정해서 구현 했음.
  • 3.기계가 문제에 대한 해법을 자신이 찾음
    • AI 혁명
    • 결정을 내리는 방법에 대한 자동 학습이 필요해짐

강화 학습이란 무엇인가?

  • 주어진 상황에서 최선이라 생각되는 행동을 학습하는 것.
  • 상호작용을 통해서 결정을 내리는 법을 학습하는 과학
  • 환경과 상호 작용 하면서 학습함.
  • 지도 학습과 다른점
    • 동적임 (수동적이지 않음)
    • 상호작용이 잇따라 일어남 (다음 행동은 이전의 행동에 의존성이 있을 수 있음)
  • 목표 지향적임
  • 예제 없이 최적 행동 양식을 찾을 수 있음.
    • Learn by try and error.
  • 사고의 틀과 알고리즘 양쪽 다 지칭

상호작용 loop

agent_loop

상호작용을 통해서 결정을 내리는 법을 학습하는 과학

위의 정의를 달성하기 위해 고려해야 하는 것들 - 시간 - 행동에 대한 결과(장단기적) - 경험의 축적 - 미래에 대한 예측 - 불확실 성에 대한 처리

강화 학습의 특징

다른 학습들과 다른 부분 - 지도 학습이 아님, 보상 신호만 있음 - 피드백이 지연 될 수 있음(즉각적이지 않아도 됨) - 시간이 중요함 - 이전 결정이 이후 상호 작용에 영향을 줌

핵심 생각들

  • 환경
  • 보상 신호
  • Agent
    • Agent state
    • Policy
    • Value function
    • Model (Optional)

Agent and Environment

agent_loop

각각의 단계 t 에

  • Agent
    • Observation Ot 을 받음(그리고 보상Rt 을 받음)
    • 액션을 At 행함
  • The environment
    • 액션 At를 받음
    • Observation Ot+1 을 생성(그리고 보상Rt+1 을 생성)
def agent(time, observation, reward):
    // 가장 좋은 action 선택
    return action

def env(time, action):
    // action에 의해 반응한 환경과 보상을 리턴
    return (observation, reward)

t = 0
action, observaion, reward = None, None, None
while True:
    t++
    action = agent(t, observation, reward)
    observation, reward = evn(t, action)

보상

  • 보상 Rt는 scalar 값이다.
  • Agent 가 step t 에 얼마나 잘했는지에 대한 피드백 신호
  • Agent 의 목표는 누적 보상을 최대값으로 만드는 것이다. Gt=Rt+1+Rt+2+Rt+3+...
  • 우리는 위의 누적 보상을 the return 이라고 할 것이다.

보상 가설

어떠한 목표도 누적 보상을 최대화 시키는 방법으로 형식화 할 수 있다.

Values

특정 상황 s 에서 누적 보상의 기대값을 value 라고 하자.

v(s)=E[Gt|St=s]=E[Rt+1+Rt+2+Rt+3+...|St=s]

  • 이제 agent의 목표는 value를 최대화 하는것이라고 재 정의 할 수 있다.
  • Reward 그리고 Value 는 특정 상황에서 특정 action 이 얼마나 적합한지의 정도를 나타낸다(지도 피드백이 필요 없다.)
  • retuns 와 values 는 재귀로 정의 될 수 있다. Gt=Rt+1+Gt+1

순차적 Action들

  • value 값을 최대화 하는 actions 을 고르는걸 목표로 하자.
  • 이제 agent의 목표는 특정 action들을 선택해서 value를 최대화 하는것이라고 재 정의 할 수 있다.
  • actions 는 장기적 결과를 가질 수도 있다.
  • 보상은 지연 될 수 있다.
  • 장기적 보상을 위해 즉각적인 보상을 포기하는게 좋을 수 도 있다.
    • 헬리콥터 연료 충전(몇시간 후 에 추락 할 수 있으니)
    • 주식 투자 (장기적으로 이익이 더 올때)
  • states 로 부터 actions 로의 맵핑을 policy 라고 한다. policy=f:statesaction

Action values

value 의 조건식에 action 을 넣을걸 action value 라고한다.

q(s,a)=E[Gt|St=s,At=a]=E[Rt+1+Rt+2+Rt+3+...|St=s,At=a]

Agent

State

  • Actions는 agent의 state 에 의존성이 있다.
  • 행위자와 환경은 각각 내부 state를 가질 수 있다.
    • 간단한 예제에서는 state 가 한개 일 수 있다.
    • 보통 상태가 엄청 많다. - 가끔씩 무한대의 경우도 있다.
  • 행위자의 상태와 환경의 상태는 일반적으로 다르다.
  • 행위자는 환경의 모든 상태를 모를 수 있다.

Environment state

  • 환경의 내부 상태
  • 일반적으로 행위자가 알 수 없다.
  • 만약 안다고 해도 상관없는 정보를 많이 가지고 있을 수 있다.

Agent state

  • (Observation, action, reward)들의 역사 Ht=O0,A0,R1,O1,...,Ot1,At1,Rt,Ot
  • 위의 역사가 행위자의 상태St를 만드는대 사용된다.
  • 액션은 상태에 의존성이 있다.

Fully Obervable Environments

행위자가 환경의 전체 상태를 관찰 할 수 있다고 가정 하자. - observation = 환경 상태 - 행위자의 상태가 환경 상태와 같을 수 있다. St=Ot=environment state - 행위자가 Markov decision process 에 있다.

Markov decision processes

MDPs 는 특정 수학적 속성을 의미한다.

  • 예를 들어 자연수의 속성은 음의 정수가 아닌 정수 이다.
    • 우리는 음의 정수가 아닌 정수를 자연수의 속성을 만족한다고 하고 자연수라고 칭하기도 한다.

정의

  • 아래의 조건을 충족하는 결정 과정을 Markov 라고 한다.

    • A decision process is Markov if
    • p == probability
    • joint probability of r, s given St,At is same as given Ht,At p(r,s|St,At)=p(r,s|Ht,At)
  • 현재를 주면 미래는 과거로 부터 독립적이다.

    • The future is independent of the past given the present HtStHt+1
  • 해당 속성을 만족하는 state 를 알게 되면 역사를 버려도 된다.
  • 예를 들어
    • stationary 환경 상태는 Markov 이다.
    • 역사 Ht+1는 Markov 이다.

Partially Observable Environments

Agent 가 정보의 일부분만 받는다. - 포커카드 게임 - observation 이 Markov 가 아니다. - patially obsevable Markov decision process (POMDP) - 환경 상태값은 Markov 이지만 행위자가 이걸 알 수 없다.

Agent state

  • angent state 는 역사에 대한 함수이다. agent state=f:HS
  • 행위자의 액션은 상태에 의존한다.

  • State update function == f St+1=f(St,At,Rt+1,Ot+1)

    • 행위자는 t 에 있음
    • St 를 사용해 At 를 결정하고 실행.
    • 환경이 Rt+1,Ot+1을 생성.
    • 행위자는 이제 t+1 에 있음
    • St+1f(St,At,Rt+1,Ot+1) 을 사용해 변경
    • 관습적으로 t 는 행위자가 환경에서 액션을 보내는 시점임
  • 행위자의 상태는 환경의 상태보다 훨씬 작다.

Example

부분 관찰이 가능한 환경에서 행위자의 상태를 만들어보자.

maze

  • 행위자는 2번 처럼 환경의 일부분을 observation 으로 받는다.
  • 만약 St=Ot를 사용했다면 3번 처럼 두개의 다른 observation을 구분 할 방법이 없다.
  • 즉 행위자의 상태가 Markov 가 아닌 상태가 되었다.
  • 어떻게 하면 행위자의 상태를 Markov 하게 할 수 있을까?
    • 행위자가 역사를 사용해 구분 할 수 있는 상태를 만들면 된다.

Partially Observable Enviroments

부분 관찰 환경에서 행위자는 Markov 속성을 같는 상태를 만들어야 한다.

  • 행위자의 상태 예제
    • 마지막 관찰: St=Ot (위의 미로 예제처럼 만족되지 않을수 있음)
    • 모든 역사: St=Ht (양이 너무 많을 수 있음)
    • 순차적으로 변화하는 상태: St=f(St1,Ot)
      • 위의 미로에서는 시작점을 기준으로 하는 평면 좌표계를 추가하면 됨
      • recurrent nerual network 로 구현 될수 있음
      • 가끔 메모리 라고도 불림
  • 행위자의 상태가 Markov 속성을 만족하게 하기가 쉽지 않은 경우가 많음
  • 상태는 좋은 police 와 좋은 value 을 예측하기 위한 충분한 정보를 포함 해야함.

Policy

  • Policy 는 행위자의 행동양식을 정의 한다.
  • 행위자 상태에서 action 으로 연결되는 함수다. f:stateaction
  • 결정론적 정책: A=π(S)
  • 확률적 정책: π(A|S)=p(A|S)

Value function

  • The value function is the expected return condition on state vπ(s)=E[Gt|St=s,π]=E[Rt+1+γRt+2+γ2Rt+3+...|St=s,π]

  • The discount factor. γ[0,1]

    • 즉각적인 보상과 장기 보상에 대한 trade-off 를 주는 용도로 사용
      • trade-off: a balance achieved between two desirable but incompatible features
    • 미로 탈출에서 설정 하면 행위자는 할인 되지 않은최대 보상을 받기 위해 빨리 탈출 할려고 시도.
  • Value 는 정책에 의존한다.
  • 바람직한 다름 상태를 평가하는대 사용 할 수 있다.
  • actions 를 선택하기 위해 사용 할 수 있다.

Bellman equation

  • Return 은 재귀적 형식으로 표현 할 수 있다. Gt=Rt+1+γGt+1
  • 그러므로 다음과 같다.
    • aπ(s) action 이 상태 s 일태 policy 에 의해 결정됨을 의미(π 가 결정론적일 때도 동일)

vπ(St+1)=E[Gt+1St+1=s,π]vπ(s)=E[GtSt=s,Atπ(s)]=E[Rt+1+γGt+1St=s,Atπ(s)]=E[Rt+1+γvπ(St+1)|St=s,Atπ(s)]

  • 위의 함수가 있다면 특정 상황에서의 최적 행동을 아래의 식으로 구 할 수 있다.
    • 아래식은 policy 에 의존성이 없다.
    • 만약 제한 된 상태와 행동이라면 우리는 아래의 방정식을 풀 수 있다. v(s)=argmaxaE[Rt+1+γv(St+1)|St=s,At=a]

Value Function approximations

  • 행위자는 종종 approxmate value 함수를 사용한다.
  • 이런 함수가 있다면 우리는 최적화는 아니지만 잘 동작하는 행위자를 만들 수 있다.

Model(optional)

모델은 환경이 다음에 무엇을 할 것인가를 예측하는대 사용된다.

  • 다음 환경 상태을 예측 한다. P(s,a,s)P(St+1=sSt=s,At=a)

  • 다음 보상을 예측 R(s,a)E[RtSt=s,At=a]

Maze Example

위에서 정의한 개념들을 미로에 적용 시켜보자.

Maze2

  • 그림1. 환경 전체를 보여준다.
    • action: up, down, left, right
    • reward: 한 step 마다 -1
    • state: agent location
  • 그림2. 화살표는 Policy 를 의미한다.
    • policy: 상태가 주어졌을때의 행동양식 f:stateaction
  • 그림3. value 값
    • 숫자는 각 상태의 value 값 vπ(s) 를 의미
  • 그림4. Model
    • 그리드의 격자는 다음 상태로의 부분 전이 모델Pass을 의미
    • 숫자는 각 상태별 즉각 보상 Rass을 의미

Agent 구분

  • Value based
    • No policy(implcit)
    • Value function
  • Policy based
    • Policy
    • Value function
  • Actor Critic
    • Policy == actior
    • Value function == critic

Agent 구분2

  • Model Free
    • Policy and/or Value Fuction
    • No Model
  • Model Based
    • Optionally Policy and/or Value Fuction
    • Model

texonomy

Learing and Planning

강화학습에는 크게 두 종류의 문제가 있음

  • 학습
    • 환경을 모르고 시작
    • 행위자는 환경과 상호 작용 함
  • 계획
    • 행동하지 않고 생각만 하는것.
    • 환경 모델이 주어짐
    • 행위자는 주어진 모델을 가지고 계획을 생성(상호 작용 없이)

Prediction and Control

  • Prediction: Policy 를 주면 미래를 평가함
    • 지도학습을 이곳에 사용 할 수 있음.
  • Control: 미래를 최적화함 (가장 좋은 미래를 찾음)
  • 아래의 식과 연관되어 있음

π(s)=argmaxπvπ(s)

행위자의 구성 요소를 학습 하는 방법

  • 모든 구성요소는 함수임
    • Policy: π:stateaction
    • Value function: v:statevalue
    • Model: Pass:statenext stateRass:statereward
    • Status updates: f:state, observationnew state
  • 위의 함수들을 nn 으로 표현 하고 deep learning 방법을 사용해서 최적화 할 수 있음
  • 우리는 종종 지도학습의 가정인 idd, 와 stationarity 를 무시하는경우가 많기 때문에 주의 해야함.

Atari game 의 가정

  • 게임의 규칙을 알지 못한다고 가정.
  • 게임을 하면서 학습함(상호작용)
  • 조이스틱을 통해 행동을 하고 픽셀과 점수를 받음.
  • 환경 == 아타리 게임
  • 액션 == 조이스틱
  • Observation == 필셀
  • Reward == 점수

Exploration and Exploitation

  • Exploration: 정보를 더 모으는것
  • Exploitation: 알고있는 정보를 활용해 보상을 최대하 하는것.
  • 두개를 잘 조절하는게 중요.

Reference