강화학습 17

Reinforcement Learning 책 읽고 공부하기(4)

sutton 교수의 Reinforcement Learning An Introduction을 읽고 공부하기 Dynamic Programming Dynamic programming(DP)는 MDP로 환경의 완벽한 모델이 주어졌을 때 optimal policy를 계산하기 위한 알고리즘들의 collection이다. 전통적인 DP 알고리즘들은 완벽한 모델의 대한 가정과 엄청난 계산량 때문에 강화학습에서의 활용성은 제한되었다. 하지만 이론적으로는 여전히 중요하다. DP는 이 책에 나머지 부분에 설명되는 방법들을 이해하기 위한 필수적인 기초를 제공해준다. 사실 이러한 모든 방법들은 계산을 덜하고 환경에 대한 완벽한 정보없이, DP와 동일한 효과를 달성하기 위한 시도들이라고 볼 수도 있다. 우리는 보통 환경을 fini..

유한 state의 Markov Decision Process(Chapter 3)

sutton 교수의 Reinforcement Learning An Introduction을 읽고 공부하기 chapter 3 요약하기 이번 챕터에서는 finite Markov Decision Process의 문제를 소개한다. MDP는 연속적인 decision making을 공식화한 것으로 연속적인 decision making이란 에이전트가 지금 선택한 action이 즉각적인 reward뿐만 아니라 그 후의 상황, state, 미래의 reward에까지 영향을 미치는 것을 의미한다. MDP는 강화학습문제에서 수학적으로 이상적인 형태로 핵심적인 요소들로는 return, value function, Bellman equation같은 것들이 있다. 우리는 finite MDP로 공식화할 수 있는 예제들을 볼 것이다...

Multi-armed Bandit(Chapter 2)

sutton 교수의 Reinforcement Learning An Introduction을 읽고 공부하기 chapter 2 살펴보기 강화학습 내용 잠깐 강화학습이 기존의 학습방식들과 다른점은 올바른 action을 학습하는 것이 아니라 에이전트가 선택한 action이 얼마나 좋은 action인지 평가한 것을 학습에 사용하는 것이다. 지도학습처럼 어떤 action이 가장 좋은 action인지 알고 시작하는 것이 아니기 때문에 좋은 action을 찾기 위해서는 적극적인 exploration이 필요하다. 여기서 에이전트가 선택한 action에 대해서 피드백을 해주는 두가지 방식이 존재한다. Evaluative feedback Evaluative feedback에서는 에이전트가 선택한 action들에 의존적인 피..

강화학습이란 무엇인가(Chapter 1)

sutton 교수의 Reinforcement Learning An Introduction을 읽고 공부하기 Chapter 1 요약(?) 강화학습이란? 강화학습은 에이전트가 받는 보상을 최대화하면서 학습하는 방법으로 에이전트는 어떤 action을 해야하는지가 아니라 어떤 action을 해야 가장 많은 보상을 받을 수 있는지를 학습한다. 그리고 에이전트가 선택하는 action은 바로 눈앞의 reward뿐만 아니라 한참 나중에 받을 reward에도 영향을 미친다. 이런 두가지 특성 trial and error search(보상을 많이 주는 action 탐색)와 delayed reward(즉각적인 보상뿐만 아니라 나중에 받을 보상)는 강화학습의 중요한 특징이다. 강화학습은 지도학습, 비지도학습과는 다른 머신러닝의..

Reinforcement Learning 책 읽고 공부하기(3, Exercise2)

sutton 교수의 Reinforcement Learning An Introduction을 읽고 공부하기 Exercise 3.11 현재 state가 \( {S}_{t} \), action이 확률적 policy \( \pi \)에 의해 선택될 때 4개의 아규먼트를 가지는 함수 p(3.2)와 \( \pi \)를 사용해 \( {R}_{t+1} \)의 기대값을 표현해라. p(3.2)를 다시 가져와보기 여기서 \( \pi \)를 사용해 다시 나타내보기 $$ {R}_{t+1} = p \left( s^{'}, r | {s}_{t}, {a}_{t} \right) \times \pi \left( {a}_{t} | {s}_{t} \right) $$ 다음과 같이 않을까 라고 예상함 Exercise 3.12 \( {q}_{\..

Reinforcement Learning 책 읽고 공부하기(3-3)

sutton 교수의 Reinforcement Learning An Introduction을 읽고 공부하기 3.5 Policies and Value Functions 거의 모든 강화학습 알고리즘들은 에이전트가 해당 state에 있는게 얼마나 좋은지 계산하는 value function(state의 function 또는 state-action쌍)을 포함한다.(또는 주어진 state에서 주어진 action을 하는게 얼마나 좋은지). "얼마나 좋은지"는 미래 reward의 기대값, 즉 expected return으로 정의한다. 당연하게도 미래에 받을 것이라 기대하는 reward는 에이전트가 어떤 action을 할지에 달려있다. 따라서 value function은 어떻게 policy라 부르는 어떻게 acting해야..

Reinforcement Learning 책 읽고 공부하기(3-2)

sutton 교수의 Reinforcement Learning An Introduction을 읽고 공부하기 3.2 Goals and Rewards 강화학습에서 에이전트의 목적(목표)는 reward라는 환경을 거쳐 에이전트에게 가는 특별한 신호로 공식화한다. 각 타임스텝에서 reward는 실수범위 내의 간단한 숫자이다. 비공식적으로 에이전트의 목표는 이 reward들의 총합을 최대화하는 것이다. 즉각적인 reward가 아닌 긴 시간에 걸쳐 쌓인 reward를 최대화하겠다는 의미다. 이 아이디어를 reward hypothesis라 한다: 목표와 목적에 의해 reward라 불리는 스칼라 신호의 누적 합의 기대값(expected value)의 최대화 목표의 아이디어를 공식화하기 위해 reward signal의 사..

Reinforcement Learning 책 읽고 공부하기(3, Exercise)

sutton 교수의 Reinforcement Learning An Introduction을 읽고 공부하기 Exercise 3.1 MDP 프레임워크에 맞는 자신만의 세가지 예제를 생각해보자. states, actions, rewards들을 확인하자. 가능한 각각 다른 예제로 세개 만들어보자. MDP 프레임워크는 추상적이고 유연하며 다양한 방법으로 적용할 수 있다. 첫번째로 자전거 문제를 생각해 볼 수 있을듯. action = 핸들을 꺾는 각도, 좌/우. state = 자전거의 속력, 좌/우로 기울어진 각도. reward = 속력이 증가하면 +1, 속력이 0이되면 negative reward 두번째: 온도 자동 조절 에어컨. action = 온도를 올리거나 내리거나. state = 현재 온도, 습도, 밖의 ..

OpenAI gym을 이용해 ValueIteration 구현하기

이번에는 OpenAI의 FrozenLake-v0를 이용해서 valueIteration을 구현해보자 import gym import numpy as np GAMMA=0.9 INIT_POLICY=[0.25,0.25,0.25,0.25] THRESHOLD = 1e-20 선언부는 별 차이가 없음 env = gym.make('FrozenLake-v0') FrozenLake 환경을 만들어주고 def value_iteration(env, policy): value_func = np.zeros(env.observation_space.n) after_value_func = np.copy(value_func) for t in range(1000): for state in range(env.observation_space.n..

OpenAI gym을 이용해 PolicyIteration 구현하기

OpenAI gym의 FrozenLake-v0를 이용해 PolicyIteration을 구현해보자 import gym import numpy as np GAMMA=0.9 THRESHOLD = 1e-10 INIT_POLICY=[0.25,0.25,0.25,0.25] EPSIODE = 100 일단 다음과 같이 선언함 감가율인 감마는 0.9로 업데이트하기 전의 가치함수와 업데이트 후의 가치함수를 비교해 임계값보다 같거나 낮으면 반복 중단 각 상태의 초기 정책은 모두 동일하게 설정 env = gym.make('FrozenLake-v0') 다음으로 환경을 만들자 # 현재 정책에 대한 참 가치함수를 리턴 def policy_evaluation(env, value_func, policy): after_value_func..