RLKorea의 프로젝트인 피지여행에서 진행한 내용을 정리한 것입니다. 피지여행은 DeepRL에서 중요한 Policy Gradient를 쭉 정리해보는 프로젝트입니다. PG의 처음 시작인 REINFORCE 부터 현재 새로운 baseline이 된 PPO까지 이론과 코드를 함께 살펴봅니다.
발표자: 곽동현(서울대 박사과정, 현 NAVER Clova)
강화학습(Reinforcement learning)의 개요 및 최근 Deep learning 기반의 RL 트렌드를 소개합니다.
발표영상:
http://tv.naver.com/v/2024376
https://youtu.be/dw0sHzE1oAc
RLKorea의 프로젝트인 피지여행에서 진행한 내용을 정리한 것입니다. 피지여행은 DeepRL에서 중요한 Policy Gradient를 쭉 정리해보는 프로젝트입니다. PG의 처음 시작인 REINFORCE 부터 현재 새로운 baseline이 된 PPO까지 이론과 코드를 함께 살펴봅니다.
발표자: 곽동현(서울대 박사과정, 현 NAVER Clova)
강화학습(Reinforcement learning)의 개요 및 최근 Deep learning 기반의 RL 트렌드를 소개합니다.
발표영상:
http://tv.naver.com/v/2024376
https://youtu.be/dw0sHzE1oAc
Maximum Entropy Reinforcement Learning (Stochastic Control)Dongmin Lee
I reviewed the following papers.
- T. Haarnoja, et al., “Reinforcement Learning with Deep Energy-Based Policies", ICML 2017
- T. Haarnoja, et al., “Soft Actor-Critic: Off-Policy Maximum Entropy Deep Reinforcement Learning with a Stochastic Actor", ICML 2018
- T. Haarnoja, et al., “Soft Actor-Critic Algorithms and Applications", arXiv preprint 2018
Thank you.
안녕하세요.
강화학습을 공부하면서 처음 접하시는 분들을 위해 ppt로 '강화학습의 개요'에 대해서 정리했습니다.
동물이 학습하는 것과 똑같이 시행착오를 겪으면서 학습하는 강화학습은 기계학습 분야에서 상당히 매력적이라고 생각합니다.
https://www.youtube.com/watch?v=PQtDTdDr8vs&feature=youtu.be
위의 링크는 스키너의 쥐 실험 영상입니다.
감사합니다.
발표자: 최윤제(고려대 석사과정)
최윤제 (Yunjey Choi)는 고려대학교에서 컴퓨터공학을 전공하였으며, 현재는 석사과정으로 Machine Learning을 공부하고 있는 학생이다. 코딩을 좋아하며 이해한 것을 다른 사람들에게 공유하는 것을 좋아한다. 1년 간 TensorFlow를 사용하여 Deep Learning을 공부하였고 현재는 PyTorch를 사용하여 Generative Adversarial Network를 공부하고 있다. TensorFlow로 여러 논문들을 구현, PyTorch Tutorial을 만들어 Github에 공개한 이력을 갖고 있다.
개요:
Generative Adversarial Network(GAN)은 2014년 Ian Goodfellow에 의해 처음으로 제안되었으며, 적대적 학습을 통해 실제 데이터의 분포를 추정하는 생성 모델입니다. 최근 들어 GAN은 가장 인기있는 연구 분야로 떠오르고 있고 하루에도 수 많은 관련 논문들이 쏟아져 나오고 있습니다.
수 없이 쏟아져 나오고 있는 GAN 논문들을 다 읽기가 힘드신가요? 괜찮습니다. 기본적인 GAN만 완벽하게 이해한다면 새로 나오는 논문들도 쉽게 이해할 수 있습니다.
이번 발표를 통해 제가 GAN에 대해 알고 있는 모든 것들을 전달해드리고자 합니다. GAN을 아예 모르시는 분들, GAN에 대한 이론적인 내용이 궁금하셨던 분들, GAN을 어떻게 활용할 수 있을지 궁금하셨던 분들이 발표를 들으면 좋을 것 같습니다.
발표영상: https://youtu.be/odpjk7_tGY0
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016Taehoon Kim
발표 영상 : https://goo.gl/jrKrvf
데모 영상 : https://youtu.be/exXD6wJLJ6s
Deep Q-Network, Double Q-learning, Dueling Network 등의 기술을 소개하며, hyperparameter, debugging, ensemble 등의 엔지니어링으로 성능을 끌어 올린 과정을 공유합니다.
Vector Optimization (by Jinhwan Seok. M.S student at KAIST)
The concept of vector optimization and its applications
-Regularized least squares
-Smoothing approximation
-Reconstruction
Reference)
convex optimization, Boyd (2004)
Maximum Entropy Reinforcement Learning (Stochastic Control)Dongmin Lee
I reviewed the following papers.
- T. Haarnoja, et al., “Reinforcement Learning with Deep Energy-Based Policies", ICML 2017
- T. Haarnoja, et al., “Soft Actor-Critic: Off-Policy Maximum Entropy Deep Reinforcement Learning with a Stochastic Actor", ICML 2018
- T. Haarnoja, et al., “Soft Actor-Critic Algorithms and Applications", arXiv preprint 2018
Thank you.
안녕하세요.
강화학습을 공부하면서 처음 접하시는 분들을 위해 ppt로 '강화학습의 개요'에 대해서 정리했습니다.
동물이 학습하는 것과 똑같이 시행착오를 겪으면서 학습하는 강화학습은 기계학습 분야에서 상당히 매력적이라고 생각합니다.
https://www.youtube.com/watch?v=PQtDTdDr8vs&feature=youtu.be
위의 링크는 스키너의 쥐 실험 영상입니다.
감사합니다.
발표자: 최윤제(고려대 석사과정)
최윤제 (Yunjey Choi)는 고려대학교에서 컴퓨터공학을 전공하였으며, 현재는 석사과정으로 Machine Learning을 공부하고 있는 학생이다. 코딩을 좋아하며 이해한 것을 다른 사람들에게 공유하는 것을 좋아한다. 1년 간 TensorFlow를 사용하여 Deep Learning을 공부하였고 현재는 PyTorch를 사용하여 Generative Adversarial Network를 공부하고 있다. TensorFlow로 여러 논문들을 구현, PyTorch Tutorial을 만들어 Github에 공개한 이력을 갖고 있다.
개요:
Generative Adversarial Network(GAN)은 2014년 Ian Goodfellow에 의해 처음으로 제안되었으며, 적대적 학습을 통해 실제 데이터의 분포를 추정하는 생성 모델입니다. 최근 들어 GAN은 가장 인기있는 연구 분야로 떠오르고 있고 하루에도 수 많은 관련 논문들이 쏟아져 나오고 있습니다.
수 없이 쏟아져 나오고 있는 GAN 논문들을 다 읽기가 힘드신가요? 괜찮습니다. 기본적인 GAN만 완벽하게 이해한다면 새로 나오는 논문들도 쉽게 이해할 수 있습니다.
이번 발표를 통해 제가 GAN에 대해 알고 있는 모든 것들을 전달해드리고자 합니다. GAN을 아예 모르시는 분들, GAN에 대한 이론적인 내용이 궁금하셨던 분들, GAN을 어떻게 활용할 수 있을지 궁금하셨던 분들이 발표를 들으면 좋을 것 같습니다.
발표영상: https://youtu.be/odpjk7_tGY0
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016Taehoon Kim
발표 영상 : https://goo.gl/jrKrvf
데모 영상 : https://youtu.be/exXD6wJLJ6s
Deep Q-Network, Double Q-learning, Dueling Network 등의 기술을 소개하며, hyperparameter, debugging, ensemble 등의 엔지니어링으로 성능을 끌어 올린 과정을 공유합니다.
Vector Optimization (by Jinhwan Seok. M.S student at KAIST)
The concept of vector optimization and its applications
-Regularized least squares
-Smoothing approximation
-Reconstruction
Reference)
convex optimization, Boyd (2004)
The guided policy search(GPS) is the branch of reinforcement learning developed for real-world robotics, and its utility is substantiated along many research. This slide show contains the comprehensive concept of GPS, and the detail way to implement, so it would be helpful for anyone who want to study this field.
논문은 환경과 상호작용을 통해 데이터를 샘플링하고 확률적 경사 상승법을 사용하여 "대리" 목표 함수를 최적화하는 강화 학습을 위한 새로운 정책 경사 방법들을 제안합니다. 표준 정책 경사 방법은 데이터 샘플마다 한 번의 경사 업데이트를 수행하지만, 미니배치 업데이트를 여러 에폭 수행할 수 있는 독창적인 목표 함수를 제안합니다. 이 새로운 방법을 근접 정책 최적화(Proximal Policy Optimization, PPO)라고 부르며, 신뢰 영역 정책 최적화(Trust Region Policy Optimization, TRPO)의 일부 이점이 있지만, 구현이 훨씬 간단하고 일반적이며 샘플 복잡성 면에서도 뛰어납니다(실제로). 실험에서는 PPO를 로봇 보행 시뮬레이션과 아타리 게임 등의 벤치마크 작업에 적용하였으며, 이를 통해 PPO가 다른 온라인 정책 경사 방법보다 우수하며, 전반적으로 샘플 복잡성, 단순성, 실제 소요 시간 면에서 유리한 균형을 이루고 있다는 것을 보여줍니다.
Coursera Machine Learning by Andrew NG 강의를 들으면서, 궁금했던 내용을 중심으로 정리.
내가 궁금했던건, 데이터를 분류하는 Decision boundary를 만들때...
- 왜 가중치(W)와 decision boundary가 직교해야 하는지?
- margin은 어떻게 계산하는지?
- margin은 어떻게 최대화 할 수 있는지?
- 실제로 margin을 최대화 하는 과정의 수식은 어떤지?
- 비선형 decision boundary를 찾기 위해서 어떻게 kernel을 이용하는지?...
http://blog.naver.com/freepsw/221032379891
Coursera Machine Learning (by Andrew Ng)_강의정리SANG WON PARK
단순히 공식으로 설명하지 않고, 실제 코드 및 샘플데이터를 이용하여 수식의 결과가 어떻게 적용되는지 자세하게 설명하고 있다.
처음 week1 ~ week4 까지는 김성훈 교수님의 "모두를 위한 딥러닝"에서 한번 이해했던 내용이라 좀 쉽게 진행했고, 나머지는 기초가 부족한 상황이라 다른 자료를 꽤 많이 참고하면서 학습해야 했다.
여러 도서나 강의를 이용하여 머신러닝을 학습하려고 했었는데, 이 강의만큼 나에게 맞는것은 없었던거 같다. 특히 Octave code를 이용한 실습자료는 나중에도 언제든 활용가능할 것 같다.
Week1
Linear Regression with One Variable
Linear Algebra - review
Week2
Linear Regression with Multiple Variables
Octave[incomplete]
Week3
Logistic Regression
Regularization
Week4
Neural Networks - Representation
Week5
Neural Networks - Learning
Week6
Advice for applying machine learning techniques
Machine Learning System Design
Week7
Support Vector Machines
Week8
Unsupervised Learning(Clustering)
Dimensionality Reduction
Week9
Anomaly Detection
Recommender Systems
Week10
Large Scale Machine Learning
Week11
Application Example - Photo OCR
Dsh data sensitive hashing for high dimensional k-nn searchWooSung Choi
Gao, Jinyang, et al. "Dsh: data sensitive hashing for high-dimensional k-nnsearch." Proceedings of the 2014 ACM SIGMOD international conference on Management of data. ACM, 2014.
Gradient descent부터 AMSGrad까지 최적화 알고리즘에 대해 소개하는 자료입니다. 추가로 Hessian free 알고리즘인 SR1, DFP, BFGS에 대해서도 간략히 소개하고, 알고리즘을 시각화하여 비교한 자료입니다. This slide introduces the optimization algorithms from first-order(gradient descent) to second-order(hessian free). It deals with all the algorithms in the Keras optimizer. It was made by Taewon Heo.
2. 흐름보기
Part 2 Lower bound of performance
Part 3 Trust Region Policy Optimization
Part 4 Code review of TRPO
Part 1 Problem of stochastic policy gradient
3. 간단정리
1. Stochastic policy gradient는 parameter space에서의 update
• 실제 policy는 급변 가능 collapse of performance
2. 따라서 Performance의 improvement를 보장하면서 학습하고 싶다
• Policy space에서 조금씩 움직이겠다
3. Policy가 변할 때 performance의 차이를 정의 : lower bound
• 이제부터는 lower bound를 optimize
4. Penalty 문제를 constraint 문제로 바꿈 Trust Region method
• KL-divergence constraint
5. 강화학습 문제의 정의
• MDP : Tuple (𝑆, 𝐴, 𝑃, 𝑟, 𝜌0, 𝛾)
• 𝑃 : state transition probability
• 𝜌0: distribution of initial state 𝑠0
• 𝑟 : reward function
• 𝛾 : discount factor
• 𝜋 ∶ 𝑆 × 𝐴 → 0, 1 : stochastic policy
• 강화학습은 에이전트가 받을 보상을 최대화하는 policy를 구하는 문제
• 환경과의 상호작용을 통해 학습
• 환경의 모델과 보상을 미리 알지 못하는 상태에서 학습
6. 강화학습의 분류
1. Value-based RL
• Q-function을 통해 action을 선택(ex. 𝜀 − 𝑔𝑟𝑒𝑒𝑑𝑦)
• SARSA, Q-Learning, DQN, Dueling Network, PER, etc..
2. Policy-based RL
• Explicit한 policy를 가지며 대부분 policy는 parameterized
• REINFORCE, Actor-Critic, A3C, TRPO, PPO, etc..
7. Policy Gradient
• Optimize할 목표를 정의 : objective function
• Objective function : 𝐽(𝜋 𝜃) policy parameter 𝜃의 함수
• Optimization problem : max
𝜃
𝐽(𝜋 𝜃) 를 구하자
• Policy gradient : iteration마다 objective function의 gradient를 따라 parameter update
𝜃′ = 𝜃 + 𝛼𝛻𝜃 𝐽(𝜃)
https://www.linkedin.com/pulse/logistic-regression-gradient-descent-hands-on-marinho-de-oliveira
8. Policy Gradient
• Objective function 보통 첫 상태의 value function
• Objective function은 policy의 함수여야 함
• PG의 목표는 objective function을 최대화하는 policy를 구하기
• 𝜏 = 𝑠0, 𝑎0, 𝑟1, 𝑠1, 𝑎1, 𝑟2, ⋯
𝐽 𝜋 = 𝐸𝜏~𝜋
𝑡=0
∞
𝛾 𝑡 𝑟(𝑠𝑡)
= 𝐸𝑠0~𝜌0
𝑣 𝜋 𝑠0
11. Stochastic Policy Gradient
• Stochastic PG : Expectation을 계산하지 않고 sampling으로 대체
• 매 episode 혹은 timestep 마다 policy gradient를 estimate
1. Policy gradient of REINFORCE
𝛻𝜃 𝐽 𝜃 ≅
1
𝑇
𝑡=0
𝑇
𝐺𝑡 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡
2. Policy gradient of Actor-Critic
𝛻𝜃 𝐽 𝜃 ≅ መ𝐴(𝑠𝑡, 𝑎 𝑡)𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡
12. Policy Gradient의 문제
1. Sample efficiency is poor
• Policy gradient가 현재 policy에 대한 estimate
• Estimate한 policy gradient로 한 번만 update
• 이전 policy로 얻은 data를 사용하기 어려움
2. Distance in parameter space ≠ distance in policy space
• Policy gradient는 parameter에서 step
• 따라서 parameter에서의 small step이 policy를 크게 변화시킬 수 있음
• Policy가 조금씩 변하게 하는 parameter space에서의 step size를 찾자!
13. PG with Importance sampling
1. PG에서 이전 policy의 sample을 사용하기 위해 importance sampling 사용할 수 있음
𝛻𝜃 𝐽 𝜃 = 𝐸𝑠 𝑡~𝜌 𝜃, 𝑎 𝑡~𝜋 𝜃
𝐴 𝜋 𝜃
(𝑠𝑡, 𝑎 𝑡)𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡
= 𝐸𝑠 𝑡~𝜌 𝜃 𝑜𝑙𝑑
, 𝑎 𝑡~𝜋 𝜃 𝑜𝑙𝑑
𝜋 𝜃(𝑎 𝑡|𝑠𝑡)
𝜋 𝜃 𝑜𝑙𝑑
(𝑎 𝑡|𝑠𝑡)
𝐴 𝜋 𝜃
(𝑠𝑡, 𝑎 𝑡)𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡
2. Importance weight는 unbound 학습에 잘 안되게 함
• 관련 논문 ACER(Sample Efficient Actor-Critic with Experience Replay)
14. Step in policy space
• Parameter space가 아닌 policy space에서 조금씩 update 할 수 있나?
• KL-divergence of two policy (old policy & new policy)를 constraint로 (trust region!)
• Update 할 때 monotonic improvement를 보장할 수 있나?
• Performance의 lower bound를 정의하고 lower bound를 최적화
TRPO (Trust Region Policy Optimization)
36. Truncated Natural Policy Gradient
• NPG에서 Neural Network와 같이 parameter가 많은 경우 𝐻−1
𝑔 계산이 어려움
• Parameter 개수가 𝑁개이면 𝐻의 크기는 𝑁2
, 𝐻−1
계산은 𝑂(𝑁3
)
Conjugate gradient method를 통해서 𝐻−1을 계산하지 않고 𝐻−1 𝑔 구하기
Truncated Natural Policy Gradient
• CG(conjugate gradient method)는 𝐴𝑥 = 𝑏의 선형시스템 문제를 푸는 방법
• Analytic하게 구하지 않고 iterative하게 𝑥를 구해내는 방법
• 임의의 벡터 𝑣에 대해 hessian-vector product 𝐻𝑣로 시작해서 𝐻𝑣 = 𝑔가 되도록 𝑣를 조정
37. Truncated Natural Policy Gradient
• Truncated Natural Policy Gradient의 문제
1. Might not be robust to trust region size ; at some iterations may be too large and
performance can degrade
2. Because of quadratic approximation, KL-divergence constraint may be violated
41. Trust Region Policy Optimization
• 전체 문제를 sub-problem으로 나누고 각 sub-problem을 두 step으로 품
1. Finding search direction
2. Do line search on that direction inside trust region
• Trust Region Policy Optimization
1. Search direction ∆=
2𝛿
𝑔 𝑇 𝐻−1 𝑔
𝐻−1 𝑔
2. Backtracking line search 𝜃 𝑛𝑒𝑤 = 𝜃 𝑜𝑙𝑑 + 𝛼 𝑗∆ (𝐿 𝜃 𝑜𝑙𝑑
𝜃 > 0 𝑎𝑛𝑑 𝐷 𝐾𝐿
𝜌 𝑜𝑙𝑑
𝜃 𝑜𝑙𝑑, 𝜃 ≤ 𝛿일 때, stop)
44. TRPO 코드 개요
1. 현재 policy로 sample 모으기
2. 모은 sample로 GAE 계산하기
3. Surrogate advantage function 계산하기
4. Surrogate의 gradient와 KL-divergence의 hessian을 구하기
5. g와 H를 통해 (CG) search direction 계산
6. Search direction에 대해 backtracking line search
45. TRPO baseline 코드 구조
1. run_atari.py : atari 환경에서 학습하는 main loop
2. nosharing_cnn_policy.py : actor-critic network (actor와 critic은 네트워크 공유 X)
3. trpo_mpi.py : cnn_policy를 통해 실제로 학습을 하는 코드
run_atari.py
noshaing_cnn_policy.py trpo_mpi.py
46. 현재 policy로 sample 모으기
def traj_segment_generator(pi, env, horizon, stochastic)