Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

강화학습 해부학 교실: Rainbow 이론부터 구현까지 (2nd dlcat in Daejeon)

2,007 views

Published on

2nd 함께하는 딥러닝 컨퍼런스(2nd DLCAT)에서 발표한 "강화학습 해부학 교실: Rainbow 이론부터 구현까지" 발표자료

Published in: Technology
  • Login to see the comments

강화학습 해부학 교실: Rainbow 이론부터 구현까지 (2nd dlcat in Daejeon)

  1. 1. 강화학습 해부학 교실 : Rainbow 이론부터 구현까지
  2. 2. 박진우 Curt Park curt.park@medipixel.io AI Research / Developer in Medipixel 연사 소개 김경환 Kyunghwan Kim kh.kim@medipixel.io AI Research / Developer in Medipixel
  3. 3. Guidewire control by RL https://youtu.be/uAZtUNwA4i0
  4. 4. 목차 1. 강화학습 ? 2. 강화학습 그리고 Deep 강화학습 - Q-Learning - Function approximation - DQN - Rainbow DQN
  5. 5. 강화학습 ?
  6. 6. 강화학습? DeepMind AlphaGo
  7. 7. https://www.youtube.com/watch?v=TmPfTpjtdgg 강화학습? DeepMind DQN with Atari game
  8. 8. https://youtu.be/UZHTNBMAfAA 강화학습? OpenAI Dota2
  9. 9. https://www.youtube.com/watch?v=cUTMhmVh1qs 강화학습? Deepmind AlphaStar
  10. 10. 강화학습? https://youtu.be/Dr0RvX1F-YQ “Sim-to-Real Reinforcement Learning for Deformable Object Manipulation” J. Matas, S. James and A. J Davison CoRL, 2018
  11. 11. 강화학습? https://www.youtube.com/watch?v=FmMPHL3TcrE “Learning to Walk via Deep Reinforcement Learning” T. Haarnoja et al. arXiv:1812.11103v1
  12. 12. 강화학습 ? ● 상호작용을 통한 학습 + 10 - 100
  13. 13. 강화학습 ? ref : Reinforcement Learning: An Introduction, 2nd ed (Sutton and Barto) Reinforcement learning is what to do - how to map situations to actions - so as to maximize a numerical reward signal
  14. 14. 강화학습 ? ● 강화학습 (Reinforcement Learning) - 보상(Reward)를 통해 학습. - 보상은 현재 상태(State)에서 컴퓨터(Agent)가 선택한 행동 (Action)을 선택했을 때 환경(Environment)의 반응 - 보상을 최대화하는 행동을 하도록 학습. ref : Reinforcement Learning: An Introduction, 2nd ed (Sutton and Barto)
  15. 15. Markov Decision Process Agent Environment State, Reward Action < MDP framework >
  16. 16. 강화학습의 특성 ➢ Trial-and-error search ○ 학습의 주체(Agent)가 상황에 가장 적합한 행동을 찾기까지 수많은 시행 착오가 필요. ➢ Delayed reward ○ 복잡한 상황에서는 현재 선택한 행동이 현재의 보상뿐 아니라 미래의 보상에도 영향을 줌. ● 강화학습의 특성
  17. 17. 강화학습의 특성 ● Trial-and-error search ➢ Exploitation (이용) ➢ Exploration (탐험) - 학습된 policy를 이용해 action을 선택 - 탐험을 위해 무작위로 action 선택
  18. 18. 탐험과 이용 < 맛집 > < 새로운 음식점 > Exploitation Exploration < Exploitation & Exploration >
  19. 19. 강화학습의 특성 ● Delayed reward - 현재의 행동이 미래의 보상에 영향을 주기 때문에 단기적인 보상(reward) 으로는 현재 행동의 가치를 알기 어렵다. - 행동에 대한 장기적인 보상을 고려해보자 ! Return !
  20. 20. Return S0 S1 S2 S3 S4 ST R1 < 단기적인 보상 >
  21. 21. Return S0 S1 S2 S3 S4 ST R1 R2 R3 R4 R5 < 장기적인 보상 >
  22. 22. Return ● Return ➢ 상태 t의 state 기준으로 마지막 time step T 시점 까지의 발생된 보상의 총합
  23. 23. Return ● Discounted Return ➢ 감가율이 적용된 보상의 총합
  24. 24. Policy MDP 모델에서 우리가 구해야 할 답?
  25. 25. Policy ● Policy (정책) ➢ 어떤 State에서 어떤 Action을 취할 확률. ○ π(a∣s) 로 표현. ○ 강화학습을 이용해 얻고자 하는 답. ○ MDP 문제를 풀었다 ! → 최적의 정책을 찾았다 !
  26. 26. 최적 정책 찾기 - 정책 π 를 평가할 수 있는 함수 : - 최적의 정책
  27. 27. 최적 정책 찾기 어떤 함수가 goodness 함수가 될 수 있을까?
  28. 28. 최적 정책 찾기 어떤 함수가 goodness 함수가 될 수 있을까? → Value function !
  29. 29. Value function ● Value function ➢ Policy π 를 따를 때의 상태와 행동에 대한 미래 가치 - 특정 정책(Policy)에서 모든 상태(행동)의 좋은 정도를 평가. - 좋은 정도의 기준 : 상태 s에서의 Return의 기대값. - 가치함수를 이용해 정책을 평가 할 수 있다 !
  30. 30. Value function ● State value function ➢ 정책 π 를 따를 때 어떤 state에 대한 가치를 표현 ○ 가치 : 보상의 총 합에 대한 기댓값
  31. 31. Value function ● State-action value function (Q 함수) ➢ 정책 π 를 따를 때 어떤 state와 action에 대한 가치를 표현
  32. 32. 강화학습과 Value Function 보상(Reward)을 최대로 하는 행동을 고르자 미래의 보상을 포함한 보상(Return)을 최대로 하는 행동을 고르자 기대보상을 최대로 하는 정책을 고르자 Expected Return =Value Function
  33. 33. Q Learning
  34. 34. Value-based RL 현재 State에서 할 수 있는 Action의 점수를 매겨서 가장 점수가 높은 Action을 고르자 !
  35. 35. Value-based RL 현재 State에서 할 수 있는 Action의 점수를 매겨서 가장 점수가 높은 Action을 고르자 ! Value function Greedy policy
  36. 36. Value-based RL - 점수 : Q - value action 1 Q : 10 action 2 Q : -5
  37. 37. Q Learning - Q learning ● Value function 업데이트
  38. 38. FrozenLake-v0 [State] S : starting point, safe F : frozen surface, safe H : hole, fall to your doom G : goal [Action] LEFT = 0 DOWN = 1 RIGHT = 2 UP = 3 S F F F F H F H F F F H H F F G
  39. 39. Q-Learning S F F F F H F H F F F H H F F G 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Reward : 1 ( 𝛾가 1이라 가정 )
  40. 40. Q-Learning S F F F F H F H F F F H H F F G 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 Reward : 1 ( 𝛾가 1이라 가정 )
  41. 41. Q-Learning S F F F F H F H F F F H H F F G 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 Reward : 1 ( 𝛾가 1이라 가정 )
  42. 42. Q-Learning S F F F F H F H F F F H H F F G 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 Reward : 1 ( 𝛾가 1이라 가정 )
  43. 43. Greedy policy의 문제 - 탐험을 하지 않아 near optimal policy로 학습되는 경우 더이상 발전하지 않음. S F F F F F F H F F F H H F F G
  44. 44. ϵ - greedy Policy - ϵ 값에 따라 exploration 과 exploitation 을 적절히 선택 < 맛집 > < 새로운 음식점 > Exploitation Exploration 60 % 40 %
  45. 45. ϵ - greedy Policy S F F F F F F H F F F H H F F G
  46. 46. What we have learned? ref : 가깝고도 먼 DeepRL(이웅원) https://tykimos.github.io/warehouse/2018-2-7-ISS_Near_and_Far_DeepRL_4.pdf - 각 state, action에 해당하는 Q 값을 전부 저장 후 업데이트 ● Tabular method
  47. 47. Tabular method 의 한계
  48. 48. Tabular method의 한계 바둑 : 개 이미지 : 84 x 84 x 3 로봇 : Continuous State space가 크다면 ?
  49. 49. Tabular method의 한계 - 실제 문제의 환경 → Large state space - 비슷한 state는 비슷한 output을 내는 함수 만들면? (Generalization !) - parameter를 이용해 함수를 추정해보자. → Function Approximation - How? Neural Net + Deep Learning !!
  50. 50. Function Approximation Q Learning
  51. 51. Tabular vs Function Approximation - 모든 state, action에 대한 Q 값을 table에 저장하고 업데이트. - state, action의 범위가 커질수록 space complexity 문제로 적용이 어려움 - parameter를 이용해 Q 값을 추정. - 최근엔 주로 인공신경망을 이용. ● Tabular method ● Function Approximation method
  52. 52. Function Approximation - parameter : w ref : David Silver http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching_files/FA.pdf
  53. 53. Function Approximation - parameter : w ref : David Silver http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching_files/FA.pdf
  54. 54. Function Approximation - Function Approximation example S F F F F H F H F F F H H F F G Function Approximator (w) Q(s, Left) Q(s, Right) Q(s, Up) Q(s, Down) < Current State s >
  55. 55. Tabular vs Function Approximation - Tabular : state, action에 대한 Q 값을 업데이트한다. ● ' 학습한다. ' 의 의미 - F.A. : parameter를 gradient descent로 업데이트한다.
  56. 56. Deep Q Network
  57. 57. DQN https://www.youtube.com/watch?v=TmPfTpjtdgg ● DQN 논문 데모 영상
  58. 58. DQN https://www.nature.com/articles/nature14236 ● 논문에서 DQN Agent가 Human-level을 뛰어넘는 모습을 보여줌
  59. 59. DQN - Convolution Neural Network - Experience Replay - Fixed Target Network ● Deep Q Network (2015)
  60. 60. DQN - CNN - 이미지(pixel) 데이터를 입력 데이터로 사용. - 환경에 따라 state의 도메인을 크게 바꾸지 않고 적용 가능하게 해줌. - ex. 자동차 게임 : 현재 속력, 가속도, … → 자동차 게임 이미지 인형뽑기 게임 : 집게 위치, 집게 속도, … → 인형뽑기 게임 이미지 ● Convolution Neural Network
  61. 61. DQN - CNN https://www.nature.com/articles/nature14236 Output 각 action에 대한 Q value Input 게임 화면 pixel 값
  62. 62. DQN - Experience Replay ref: 강화학습기초부터DQN까지 (박진우) https://www.slideshare.net/CurtPark1/dqn-reinforcement-learning-from-basics-to-dqn ● Challenge 1 - Correlation between samples - 강화학습에서의 sample은 시간에 따라 순차적으로 수집되기 때문에 correlation이 높다 - Sample간의 correlation이 높으면 학습이 불안정해진다.
  63. 63. DQN - Experience Replay - transition(S, A, R, S’)을 memory(buffer)에 저장하고 batch 단위로 학습하자. - data(transition)간의 correlation을 없앰. - batch 단위로 학습 가능. ● Experience replay
  64. 64. DQN - Experience Replay DQN Agent Environment State, Reward Action Replay Buffer [S, A, R, S’] [S, A, R, S’] batch만큼 sampling N개의 Transition 저장
  65. 65. DQN - Target Network ● Challenge 2 - Non-stationary targets - Loss function에서 target 과 current value 가 모두 파라미터 w를 통해 계산됨. - w가 업데이트 되면 target도 바뀌어 버림. target =
  66. 66. DQN - Target Network - 일정 step마다 업데이트 되는 network를 추가하여 update시의 target으로 사용 k step 마다 copy Main Network Target Network ● Target network
  67. 67. DQN - 추가 변화 ● Gradient Clipping - Loss function의 기울기의 절대값이 1 이상인 경우 1이 되도록 Clipping ref: wiki https://en.wikipedia.org/wiki/Huber_loss
  68. 68. Advanced DQN
  69. 69. Rainbow DQN?
  70. 70. Rainbow DQN? 1. Deep Q Network 2. Double Q-learning 3. Prioritized Replay 4. Dueling Networks 5. Multi-step Learning 6. Distributional RL 7. Noisy Network
  71. 71. Rainbow DQN ● Rainbow가 다른 알고리즘들의 성능을 뛰어넘는 모습을 보여줌
  72. 72. Double Q-Learning
  73. 73. Q-learning의 문제점 - Q-learning은 maximization 방법으로 Q를 업데이트. - maximization 때문에 overestimation 문제가 발생. (과대평가) - 즉, Q-value가 낙관적인 예측을 하게됨.
  74. 74. Double Q-learning -0.1 ref : Reinforcement Learning: An Introduction, 2nd ed (Sutton and Barto)
  75. 75. Double Q-learning Left 평균 reward : -0.1 Right reward : 0 < ref : Reinforcement Learning: An Introduction, 2nd ed (Sutton and Barto)
  76. 76. Double Q-learning A Right 0 Left 0 B action1 0 < Q-table > ref : Reinforcement Learning: An Introduction, 2nd ed (Sutton and Barto)
  77. 77. Double Q-learning A Right 0 Left 0 B action1 0 < Q-table > ref : Reinforcement Learning: An Introduction, 2nd ed (Sutton and Barto)
  78. 78. Double Q-learning A Right 0 Left 0 B action1 +0.2 < Q-table > -0.1 0.2 ref : Reinforcement Learning: An Introduction, 2nd ed (Sutton and Barto)
  79. 79. Double Q-learning A Right 0 Left +0.2 B action1 +0.2 < Q-table > ref : Reinforcement Learning: An Introduction, 2nd ed (Sutton and Barto)
  80. 80. Double Q-learning Q-learning Q-learning (변형) Double Q-learning or Q → Q1, Q2 ref : Reinforcement Learning: An Introduction, 2nd ed (Sutton and Barto)
  81. 81. Double Q-learning 10000번 테스트 후 평균 그래프 ref : Reinforcement Learning: An Introduction, 2nd ed (Sutton and Barto)
  82. 82. Double DQN - 두 개의 Q estimator Q1, Q2 → DQN의 main Q, target Q - main Q : Q 값이 max가 되는 action을 고른다. - target Q : 보상을 추정하고 업데이트 한다.
  83. 83. Prioritized Replay
  84. 84. Prioritized Replay " Replay Buffer의 성능을 올리자 ! "
  85. 85. Prioritized Replay - 어떤 경험을 저장할 것인가? - 저장된 경험 중 어떤 경험을 꺼내서 학습시킬까?
  86. 86. Prioritized Replay - 어떤 경험을 저장할 것인가? - 저장된 경험 중 어떤 경험을 꺼내서 학습시킬까?
  87. 87. Prioritized Replay 어떤 경험에 우선순위를 높게 둘까?
  88. 88. Prioritized Replay 어떤 경험에 우선순위를 높게 둘까? → TD - Error !
  89. 89. Prioritized Replay - TD error : - " TD error가 클수록 우선순위를 높이자 ! " alpha = [0, 1] alpha 0이면 Uniform sample
  90. 90. Prioritized Replay - 우선순위를 임의로 지정해서 sampling 했기 때문에 - 실제 환경에서의 transition의 분포와 sampling 된 transition의 분포 사이에 차이가 발생. → 학습시 bias가 발생 - 신경망 update 시 Importance-sampling weight로 보정 ! 논문에서 제시하는 PER 적용시 문제점
  91. 91. Prioritized Replay beta = [0, 1] beta 0이면 weight 적용 x
  92. 92. Dueling Networks
  93. 93. Dueling Networks 어떤 State에서 어떤 Action을 했을 때의 가치
  94. 94. Dueling Networks 정확한 값보다 차이를 배우는 것이 더 쉽다 ! 10? 20? -10? -20? 기준 : 0 +5? 3? -2? -3?
  95. 95. Dueling Networks
  96. 96. Dueling Networks 기준점 (state value) Value Advantage Q값과 상대적인 차이
  97. 97. Dueling Networks Q(s, a1) Q(s, a2) Q(s, a3) S
  98. 98. Dueling Networks A(s, a1) A(s, a2) A(s, a3) S V(s) Q
  99. 99. Dueling Networks Sum : - But, 단순 sum 식으로는 Q에 대한 V와 A 값이 unique 하지 않음 - ex. Q = 4라면 V + A가 (1, 3), (2, 2), (3, 1) 과 같은 경우의 수가 존재 ● Dueling Network에서의 Q 표현 방법
  100. 100. Dueling Networks Max : Average : ● Dueling Network에서의 Q 표현 방법
  101. 101. Dueling Networks Max : Average : ● Dueling Network에서의 Q 표현 방법 max와 달리 유일한 V와 A를 보장해주지는 않지만 max와 유사한 성능을 보이며 최적화의 안정성이 증가됨 유일한 V와 A를 보장함
  102. 102. Multi-Step Learning
  103. 103. Multi-Step Learning S0 S1 S2 S3 S4 ST R1 1 step : S0 S1 S2 S3 S4 ST R1 R2 R3 3 step :
  104. 104. Distributional RL ref : RLKorea 민규식, A Distributional Perspective on Reinforcement Learning https://reinforcement-learning-kr.github.io/2018/10/02/C51/
  105. 105. network Distributional RL S Q S Q network " Return을 분포로 표현하자. "
  106. 106. Distributional RL Distributional : General :
  107. 107. Distributional RL N : Value distribution - x축 : atom (or support) - y축 : 각 atom의 값을 받을 확률 ● Value distribution
  108. 108. Distributional RL - Value distribution의 기댓값을 사용 ● Q-value
  109. 109. Distributional RL - Target value distribution과 현재 value distribution간의 차이를 줄이는 방향으로 학습 - KL-Divergence ● Loss function : Target value distribution
  110. 110. Distributional RL 1. 다음 state에 대한 value 분포를 구함 : 2. Target atom을 구함 ● Target value distribution
  111. 111. Distributional RL ● Target value distribution - x축 : atom (or support) - y축 : 각 atom의 값을 받을 확률 하지만 ...
  112. 112. Distributional RL ● Target value distribution - Projection - Target value distribution과 value distribution의 atom이 불일치 - Target atom이 reward와 ⲅ와의 연산 때문에 변경됨 - Projection을 통해 일치 시킴. 1 2 3 4 5 6 7 1 2.3 3.2 4.1 5 5.9 6.8 R = 0.5, ⲅ = 0.9
  113. 113. Distributional RL ● Target value distribution - Projection 1 2.3 3.2 4.1 5 5.9 6.8 3 3.2 4 0.50.5 * (4 - 3.2) = 0.4 0.5 * (3.2 - 3) = 0.1 ref : RLKorea 민규식, A Distributional Perspective on Reinforcement Learning https://reinforcement-learning-kr.github.io/2018/10/02/C51/
  114. 114. Distributional RL ● Target value distribution - Projection 1 2.3 3.2 4.1 5 5.9 6.8 1 2 3 4 5 6 7
  115. 115. network Distributional RL S Q(s, a1) Q(s, a2) Q(s, a3) Q(s, a4) action size ● General
  116. 116. network Distributional RL S action size x atom size Expectation Q(s, a1) Q(s, a2) Q(s, a3) Q(s, a4) action size ● Distributional
  117. 117. Noisy Network
  118. 118. Noisy Network < 맛집 > < 새로운 음식점 > Exploitation Exploration < Exploitation & Exploration > ● Exploitation과 Exploration
  119. 119. Noisy Network ϵ - greedy 보다 효율적인 exploration 방법이 없을까 ?
  120. 120. Noisy Network ϵ - greedy Policy Random perturbations of the policy 교란, 동요 Large-scale behavioral pattern에서는 비효율적
  121. 121. Noisy Network " Network에 noise를 추가하여 exploration을 하자. " perturbations
  122. 122. Noisy Network " Network에 noise를 추가하여 exploration을 하자. " perturbations State-dependent 한 exploration을 할 수 있다.
  123. 123. Noisy Network Q(s, a1) Q(s, a2) Q(s, a3) S element-wise multiplication :
  124. 124. Noisy Network 1. Independent Gaussian noise - noise를 weight, bias size 만큼 만든 후 weight에 연산 - noise를 만들기 위한 연산: (p x q) + q ● Gaussian noise를 만드는 방법 p x q q
  125. 125. Noisy Network 2. Factorised Gaussian noise - input size(p)의 noise와 output size(q)의 noise를 만듦 - 두 noise를 이용해 (p x q) size의 noise를 만듦 - noise를 만들기 위한 연산: p + q p q
  126. 126. 감사합니다.
  127. 127. Reference ● Sutton, R. and Barto, A., Reinforcement Learning: An Introduction, 2nd ed., MIT Press, 2018. ● V. Mnih et al., "Human-level control through deep reinforcement learning." Nature, 518 (7540):529–533, 2015. ● van Hasselt et al., "Deep Reinforcement Learning with Double Q-learning." arXiv preprint arXiv:1509.06461, 2015. ● T. Schaul et al., "Prioritized Experience Replay." arXiv preprint arXiv:1511.05952, 2015. ● Z. Wang et al., "Dueling Network Architectures for Deep Reinforcement Learning." arXiv preprint arXiv:1511.06581, 2015. ● M. Fortunato et al., "Noisy Networks for Exploration." arXiv preprint arXiv:1706.10295, 2017. ● M. G. Bellemare et al., "A Distributional Perspective on Reinforcement Learning." arXiv preprint arXiv:1707.06887, 2017. ● M. Hessel et al., "Rainbow: Combining Improvements in Deep Reinforcement Learning." arXiv preprint arXiv:1710.02298, 2017. ● 이웅원, “가깝고도 먼 DeepRL”, https://tykimos.github.io/warehouse/2018-2-7-ISS_Near_and_Far_DeepRL_4.pdf ● David Silver, “Lecture 6 in UCL Course on RL” , http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching_files/FA.pdf ● RLKorea 민규식, “A Distributional Perspective on Reinforcement Learning”, https://reinforcement-learning-kr.github.io/2018/10/02/C51/

×