Loading [MathJax]/jax/output/CommonHTML/jax.js
본문 바로가기

강화학습

(6)
Determinitic Deep PG(DDPG) 공부하기 저번에는 A2C에 대해 공부했으니 이를 이용해서 나온 알고리즘인 DDPG를 공부한다. DDPG는 이름에서 알 수 있게 policy를 determinitic 하게 고르는 방식의 알고리즘이다. 논문을 처음 봤을 때는 많은 수식 때문에 이해하기 어려웠는데 수업시간에서 배운 내용으로 정리해보려고 한다. 내 생각에는 DDPG 알고리즘 자체는 PPO나 SAC 알고리즘에 밀려서 SOTA 알고리즘은 아니지만 잠깐 Pick-and-Place 작업을 공부했을 때 Reinforcement Learning for Pick and Place Operations in Robotics: A Survey이라는 논문을 읽었는데 많은 사람들이 다른 알고리즘보다 DDPG 알고리즘을 더 많이 사용하고 있다는 것을 알았다. 아직 직접 사용해..
Advantage Actor Critic (A2C) 정리 off-policy의 대표인 DQN을 저번에 다뤘으니 이번엔 on-policy의 시작인 A2C를 공부한다. 내가 공부한 알고리즘들은 대부분 A2C처럼 actor와 critic으로 나눠서 학습시키는 것이 대부분이었다. 그만큼 이 논문이 강화 학습에 큰 영향을 끼쳤다고 생각한다. 먼저 objective 함수를 바꿔본다. 궤적을 0:t와 t+1:T 까지로 나눠서 식을 새로 만든다. 이렇게 보면 t+1:T까지에 대한 식은 Q 함수의 정의와 같아진다. Q 함수를 사용하여 목적 함수를 다시 정의하면 위 사진과 같다. 처음봤을 때는 식이 굉장히 어려워 보였는데 이제는 기댓값의 정의와 Q함수의 정의만 이용해서 식을 전개했다는 것을 이해할 수 있다. 위 식의 장점은 더이상 에피소드가 끝날 때까지 기다리지 않아도 된다는 ..
Deep Q-Network(DQN) 공부하기 이번에는 강화학습의 시작을 알리는 DQN을 공부해보자. 처음 DQN은 알파고에 사용한 알고리즘으로 알파고가 엄청나게 유명해지면서 사용된 기술이 무엇인지 알아보고자 하는 사람들이 많아진 것이 강화학습에 사람들이 관심을 가지기 시작한게 아닌가 추측해본다. DQN부터는 V 함수와 Q 함수를 대부분 딥러닝 방법을 사용하여 estimate 하는 방향으로 강화학습이 연구된다. 심층 강화학습의 시작을 알리는 알고리즘인 만큼 강화학습 공부를 시작한다 하면 모든 책이나 강의들은 기본적인 이론을 다루고나서 DQN으로 본격적인 강화학습에대해서 시작한다. 앞에서 배웠던 Q 함수를 이제는 뉴럴 네트워크를 사용하여 표현한다. 앞으로 네트워크를 통해 estimate한 Q함수에는 θ가 붙게된다. 뉴럴 네트워크를 사용한다..
Q-learning 저번의 SARSA에 이어서 Q-learning을 알아보자. SARSA 마지막에 SARSA의 단점을 설명했었다. 환경에 따라 갇혀버리는 현상이 나타나는데 이는 Actiont+1때문에 발생하는 현상이라고 설명했다. 이러한 단점을 극복한 방법 중 한 개인 Q-learning을 설명한다. 강화 학습은 어떠한 정책을 따라서 행동을 계속하게 되면 에피소드가 끝날 때 얻는 보상이 최대화되도록 하는 정책을 찾는 과정이다. 그래서 상태 s 에서 V 함수의 의미는 상태가 s일 때 에피소드가 끝날 때까지 받는 보상의 기댓값을 의미한다. 따라서 시작 상태 sinit이 최대가 되는 정책 π를 찾게 되면 그것이 최적 정책이 된다. V 함수와 굉장히 비슷한 의미를 가진 Q 함수를 정의한다. ..
SARSA 강화 학습의 시작의 기초 알고리즘은 SARSA를 공부한다. SARSA의 이름은 Statet,Actiont,Rewardt+1,Statet+1,Actiont+1에서 따왔다. 한번 학습할 때 하나의 세트로 위에 것들을 사용하기 때문에 이렇게 만들었다고 생각한다. SARSA를 시작하기전에 간단하게 Temporal Difference (TD)를 알아야 한다. K번째의 평균을 구하려면 위와 같은 식을 이용해서 구하는데 이는 K-1번째 평균 값에 마지막에 나온 식을 이용해서 구할 수 있다. 그리고 K번째에 나온 x값을 이용해 estimate와 관련된 식으로 바꿀 수 있다. Monte-Carlo(MC) 방법에서의 V값..
Policy iteration and Value iteration 강화 학습의 두 종류 iteration을 공부해본다. Policy iteration은 Evaluation과 Improvement 두 단계가 있다. evaluation은 각 step의 모든 state의 V function table을 업데이트해주는 과정이다. 이때 policy를 사용하여 업데이트를 한다. 업데이트에 사용하는 식은 벨만 기대 방정식을 사용해서 업데이트 해준다. evaluation을 해주고 나서 업데이트된 V function table을 가지고 improvement를 진행한다. improvement는 policy가 보통 V 값이 가장 큰 action을 가지게 만들어 준다. 현재 state에서 V값이 가장 큰 action을 정한다는 것은 Q 값이 가장 큰 것을 선택한다는 말이 된다. 따라서 아래..