SlideShare una empresa de Scribd logo
1 de 72
Descargar para leer sin conexión
RLCode와 A3C 쉽고 깊게 이해하기
RLCode 리더 이웅원
파이썬과 케라스로 배우는 강화학습
http://wikibook.co.kr/reinforcement-learning/
인공지능 기반 시계열 데이터 분석
-비음성 소리인식
청각장애인: 아기울음, 경적, 초인종 등
보안/안전: 비명, 충돌음, 폭발음 등
-고장 모니터링
자동차, 산업기계 진동 등
아기울음소리 감지기의 예시
목차
1. New 베이스라인 A3C
2. A3C의 직관적 이해
3. Policy Gradient
4. REINFORCE
5. Actor-Critic
6. A3C
New 베이스라인 A3C
기본적인 강화학습 내용은 안다고 가정
가장 유명한 알고리즘 : DQN
DeepMind  Atari  DQN
게임 화면으로 게임 플레이하는 법을 학습
DQN이 이룬 점과 부족한 점
1. DQN이 이룬 점
1) 게임 화면을 상태 입력으로 받아서 학습(CNN)
2) 사람보다 게임 플레이를 더 잘하는 에이전트
3) 샘플들 사이의 강한 상관관계를 리플레이 메모리로 해결
2. DQN이 부족한 점
1) 많은 메모리의 사용
2) 느린 학습 속도
3) 불안정한 학습 과정
(가치함수에 대한 greedy policy이므로)
A3C = Asynchronous Advantage Actor-Critic
1. 샘플 사이의 상관관계를 비동기 업데이트로 해결
2. 리플레이 메모리를 사용하지 않음
3. policy gradient 알고리즘 사용가능(Actor-Critic)
4. 상대적으로 빠른 학습 속도(여러 에이전트가 환경과 상호작용)
A3C = 비동기 + Actor-Critic
Actor-Critic = REINFORCE + 실시간 학습
REINFORCE = 몬테카를로 Policy gradient
A3C를 파헤치는 과정
1. Policy gradient의 수식 유도 과정에 대한 이해
2. REINFORCE 알고리즘 이해
3. Actor-Critic 알고리즘 이해
4. Actor-Critic 을 비동기식으로 업데이트하는 방법 이해
Policy gradient
REINFORCE
Actor-Critic
A3C
A3C의 직관적 이해
크로스 엔트로피
지도학습의 크로스 엔트로피(Cross entropy)
정답
y
예측
p
Softmax
− σ 𝑦𝑖 𝑙𝑜𝑔𝑝𝑖 : p와 y가 얼마나 다른지
크로스 엔트로피
지도학습의 크로스 엔트로피(Cross entropy)
− σ 𝑦𝑖 𝑙𝑜𝑔𝑝𝑖 계산
Input
data
Label Gradient descent
강화학습
강화학습의 크로스 엔트로피
실제 에이전트가 한 행동
예측 p 정답 y
강화학습
강화학습의 크로스 엔트로피
− σ 𝑦𝑖 𝑙𝑜𝑔𝑝𝑖 계산
상태
𝑠0, 𝑠1, 𝑠2, ⋯
실제 행동
𝑎0, 𝑎1, 𝑎2, ⋯
Gradient descent
나의 예측을 실제 행동에 가깝게 만든다  어떤 의미??
업데이트의 방향성이 필요!
Actor-Critic
정답이 되는 각 행동이 실제로 좋은 지, 좋다면 얼마나 좋은 지를 알 수 있을까?
 큐함수(Q-function) : 𝑄 𝜋 𝑠, 𝑎 = 𝑬 𝜋 𝑅𝑡+1 + 𝛾𝑅𝑡+2 + ⋯ |𝑆𝑡 = 𝑠, 𝐴 𝑡 = 𝑎
𝑄(𝑆𝑡, 𝐴 𝑡) − σ 𝑦𝑖 𝑙𝑜𝑔𝑝𝑖 계산
상태
(𝑆𝑡)
실제 행동
( 𝐴 𝑡)
Gradient descent
업데이트의 방향과 크기
크리틱 : 뉴럴넷
A3C
여러 개의 에이전트를 만들어서 각각 gradient를 계산하면?
𝑄 𝑆𝑡1
, 𝐴 𝑡1
− ෍ 𝑦𝑖 𝑙𝑜𝑔𝑝𝑖
Env1: 상태
(𝑆𝑡1
)
실제 행동
( 𝐴 𝑡1)
Gradient 계산
Env2: 상태
(𝑆𝑡2
)
실제 행동
( 𝐴 𝑡2
)
Env3: 상태
(𝑆𝑡3
)
실제 행동
( 𝐴 𝑡3
)
Env4: 상태
(𝑆𝑡4
)
실제 행동
( 𝐴 𝑡4
)
agent1
agent2
agent3
agent4
𝑄 𝑆𝑡2
, 𝐴 𝑡2
− ෍ 𝑦𝑖 𝑙𝑜𝑔𝑝𝑖 Gradient 계산
𝑄 𝑆𝑡3
, 𝐴 𝑡3
− ෍ 𝑦𝑖 𝑙𝑜𝑔𝑝𝑖 Gradient 계산
𝑄 𝑆𝑡4
, 𝐴 𝑡4
− ෍ 𝑦𝑖 𝑙𝑜𝑔𝑝𝑖 Gradient 계산
A3C
비동기적으로 global network를 업데이트
𝑄 𝑆𝑡1
, 𝐴 𝑡1
− ෍ 𝑦𝑖 𝑙𝑜𝑔𝑝𝑖agent1 Gradient 계산
agent2
agent3
agent4
Env2에서 탐험
Env3에서 탐험
Env4에서 탐험
Global
network
A3C
비동기적으로 global network를 업데이트
𝑄 𝑆𝑡3
, 𝐴 𝑡3
− ෍ 𝑦𝑖 𝑙𝑜𝑔𝑝𝑖
agent1
Gradient 계산
agent2
agent3
agent4
Env2에서 탐험
Env1에서 탐험
Env4에서 탐험
Global
network
A3C
비동기적으로 global network를 업데이트: 에이전트 1이 글로벌 신경망을 업데이트
환경 1
글로벌 신경망
에이전트 1
환경 2
에이전트 2
⋯
환경 n
에이전트 n
gradient
업데이트
환경과 상호작용 중 환경과 상호작용 중
A3C
비동기적으로 global network를 업데이트 : 글로벌 신경망으로 에이전트 1을 업데이트
환경 1
글로벌 신경망
에이전트 1
환경 2
에이전트 2
⋯
환경 n
에이전트 n
글로벌 신경망으로 업데이트 환경과 상호작용 중 환경과 상호작용 중
A3C
비동기적으로 global network를 업데이트 : agent n이 글로벌 신경망을 업데이트
환경 1
글로벌 신경망
에이전트 1
환경 2
에이전트 2
⋯
환경 n
에이전트 n
gradient
업데이트
환경과 상호작용 중 환경과 상호작용 중
이제 수학적으로 접근해봅시다!
Policy Gradient
정책과 강화학습
• 강화학습  보상을 받게 하는 행동의 확률 증가
• 즉, 현재 정책을 환경으로부터 받은 보상을 기준으로 업데이트를 해야 “강화학습”
• 2가지를 알아야 함
1. 정책을 업데이트하는 기준
2. 그 기준에 따라 정책의 업데이트 방법
Policy gradient
1. 정책을 업데이트 하는 기준: 목표함수
2. 목표함수에 따라 정책을 업데이트하는 방법:
Gradient ascent
Policy gradient
1. 정책(Policy)의 근사화
2. 목표함수에 대한 Gradient ascent
정책의 근사화
• Huge + High Dimension 상태 공간  각 상태에 대한 정책을 가지는 것은 힘들다
• 행동 = 𝑓(상태)  𝑓가 정책
상태 정책 행동
입력 출력
정책의 근사화
상태 입력 (x, y) 정책 𝜋 행동 (상, 하, 좌, 우)
• 그리드월드의 경우
• 상태 : (x, y) 좌표
• 행동 : (상, 하, 좌, 우)
정책의 근사화
• 인공신경망으로 정책을 근사  정책 신경망
정책 𝜋 𝜃(𝑎|𝑠) = 𝑷 𝐴 𝑡 = 𝑎|𝑆𝑡 = 𝑠, 𝜃
𝜃
Policy gradient
1. 정책(Policy)의 근사화
2. 목표함수에 대한 Gradient ascent
목표함수
• 가치 기반 강화학습
매 스텝마다 에이전트가 행동을 선택하는 기준  가치함수(Value function)
• 정책 기반 강화학습
정책을 업데이트할 때마다 어떤 방향으로 업데이트할 지에 대한 기준
 목표함수 (Objective function) or 𝐽(𝜃)
목표함수
• 에이전트가 정책 𝜋 𝜃에 따라서 가게 되는 “경로”를 생각해보자!
• 경로(trajectory) = 에이전트와 환경이 상호작용한 흔적
𝜏 = 𝑠0, 𝑎0, 𝑟1, 𝑠1, 𝑎1, 𝑟2, ⋯ , 𝑠 𝑇
• 𝐽(𝜃) = 경로 동안 받을 것이라고 기대하는 보상의 합(경로가 매번 달라지므로)
𝐽 𝜃 = 𝑬 ෍
𝑡=0
𝑇−1
𝑟𝑡+1 | 𝜋 𝜃 = 𝑬 𝑟1 + 𝑟2 + 𝑟3 + ⋯ + 𝑟 𝑇| 𝜋 𝜃
Gradient ascent
• 𝐽(𝜃) 를 기준으로 어떻게 𝜃(정책신경망)을 업데이트할 것인가?
 𝜃에 대한 𝐽(𝜃)의 경사를 따라 올라가다(Gradient ascent)
𝜃′
= 𝜃 + 𝛼𝛻𝜃 𝐽(𝜃)
𝛻𝜃 𝐽 𝜃 = Policy gradient
Policy gradient
𝝅 𝜽
𝑱 𝜽
Trajectory 𝜏
𝒙
𝒚
𝝅 𝜽′
𝑱 𝜽′
𝜽′ = 𝜽 + 𝜶𝜵 𝜽 𝑱(𝜽)
REINFORCE
수식 주의!!
수식이 많이 나옵니다
Policy gradient 수식 유도
• Policy gradient의 정책 업데이트식  핵심은 Policy gradient
𝜃 ← 𝜃 + 𝛼𝛻𝜃 𝐽(𝜃)
• Policy gradient의 기본 알고리즘 REINFORCE 식  이제부터 유도
𝛻𝜃 𝐽 𝜃 ~ ෍
𝑡=0
𝑇−1
𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃(𝑎 𝑡|𝑠𝑡) 𝐺𝑡
Policy gradient 수식 유도
목표함수의 정의
𝐽 𝜃 = 𝑬 σ 𝑡=0
𝑇−1
𝑟𝑡+1 | 𝜋 𝜃
기대값 = (x일 확률 × x일 때의 값)의 x에 대한 합
ex) 주사위 기대값
𝑬 𝑓(𝑥) = ෍
𝑥
𝑝 𝑥 𝑓(𝑥)
Policy gradient 수식 유도
𝜏 = 𝑠0, 𝑎0, 𝑟1, 𝑠1, 𝑎1, 𝑟2, ⋯ , 𝑠 𝑇
목표함수의 정의
𝐽 𝜃 = 𝑬 ෍
𝑡=0
𝑇−1
𝑟𝑡+1 | 𝜋 𝜃 = 𝑬 𝜏 𝑟1| 𝜋 𝜃 + 𝑬 𝝉 𝑟2| 𝜋 𝜃 + 𝑬 𝝉 𝑟3| 𝜋 𝜃 + ⋯
= ෍
𝑡=0
𝑇−1
𝑷 𝑠𝑡, 𝑎 𝑡|𝜏 𝑅(𝑠𝑡, 𝑎 𝑡) = ෍
𝑡=0
𝑇−1
𝑷 𝑠𝑡, 𝑎 𝑡|𝜏 𝑟𝑡+1
(𝑠𝑡, 𝑎 𝑡)일 확률 (𝑠𝑡, 𝑎 𝑡)일 때의 값
Trajectory 𝜏에서
𝑟1에 대한 기대값
Policy gradient 수식 유도
양변에 𝛻𝜃 를 취하기(미분하기)
𝛻𝜃 𝐽 𝜃 = 𝛻𝜃 𝑬 σ 𝑡=0
𝑇−1
𝑟𝑡+1 | 𝜋 𝜃
= 𝛻𝜃 σ 𝑡=0
𝑇−1
𝑷 𝑠𝑡, 𝑎 𝑡|𝜏 𝑟𝑡+1
= σ 𝑡=0
𝑇−1
𝛻𝜃 𝑷 𝑠𝑡, 𝑎 𝑡|𝜏 𝑟𝑡+1
= σ 𝑡=0
𝑇−1
𝑷 𝑠𝑡, 𝑎 𝑡|𝜏 𝛻𝜃 𝑙𝑜𝑔𝑷 𝑠𝑡, 𝑎 𝑡|𝜏 𝑟𝑡+1
?
Policy gradient 수식 유도
𝛻𝜃 𝐽 𝜃 = σ 𝑡=0
𝑇−1
𝛻𝜃 𝑷 𝑠𝑡, 𝑎 𝑡|𝜏 𝑟𝑡+1
= ෍
𝑡=0
𝑇−1
𝑷 𝑠𝑡, 𝑎 𝑡 𝜏
𝛻𝜃 𝑷 𝑠𝑡, 𝑎 𝑡 𝜏
𝑷 𝑠𝑡, 𝑎 𝑡 𝜏
𝑟𝑡+1
= ෍
𝑡=0
𝑇−1
𝑷 𝑠𝑡, 𝑎 𝑡|𝜏 𝛻𝜃 𝑙𝑜𝑔𝑷 𝑠𝑡, 𝑎 𝑡|𝜏 𝑟𝑡+1 𝑑𝑙𝑜𝑔𝑥
𝑑𝑥
=
1
𝑥
𝑑𝑙𝑜𝑔𝑓(𝑥)
𝑑𝑥
=
Τ𝑑𝑓(𝑥) 𝑑𝑥
𝑓(𝑥)
Policy gradient 수식 유도
𝛻𝜃 𝐽 𝜃 = ෍
𝑡=0
𝑇−1
𝑷 𝑠𝑡, 𝑎 𝑡|𝜏 𝛻𝜃 𝑙𝑜𝑔𝑷 𝑠𝑡, 𝑎 𝑡|𝜏 𝑟𝑡+1
= 𝑬 𝝉 σ 𝑡=0
𝑇−1
𝛻𝜃 𝑙𝑜𝑔𝑷 𝑠𝑡, 𝑎 𝑡|𝜏 𝑟𝑡+1
→ ෍
𝑡=0
𝑇−1
𝛻𝜃 𝑙𝑜𝑔𝑷 𝑠𝑡, 𝑎 𝑡 𝜏 𝑟𝑡+1
강화학습에서는 E[]를 계산
하지 않고 Sampling!!
알아야함
Policy gradient 수식 유도
여기서 더 나아가기 위해서는 𝑷 𝑠𝑡, 𝑎 𝑡 𝜏 를 파헤쳐야 한다!
𝑷 𝑠𝑡, 𝑎 𝑡 𝜏 = 𝑷 𝑠0, 𝑎0, 𝑟1, 𝑠1, 𝑎1, 𝑟2, ⋯ , 𝑠𝑡, 𝑎 𝑡 𝜃
에이전트(agent)와 환경(env)의 상호작용 흔적
= 𝑷 𝑠0 𝜋 𝜃(𝑎0|𝑠0)𝑷(𝑠1|𝑠0, 𝑎0)𝜋 𝜃(𝑎1|𝑠1)𝑷(𝑠2|𝑠1, 𝑎1) ⋯
agent agentenv envenv
에이전트가 알 수 없는 정보
Policy gradient 수식 유도
기대하시라 …
𝑙𝑜𝑔𝑷 𝑠𝑡, 𝑎 𝑡 𝜏
= 𝑙𝑜𝑔 𝑷 𝑠0 𝜋 𝜃(𝑎0|𝑠0)𝑷(𝑠1|𝑠0, 𝑎0)𝜋 𝜃(𝑎1|𝑠1) ⋯ 𝑷(𝑠𝑡|𝑠𝑡−1, 𝑎 𝑡−1)𝜋 𝜃(𝑎 𝑡|𝑠𝑡)
= 𝑙𝑜𝑔𝑷 𝑠0 + 𝑙𝑜𝑔𝜋 𝜃 𝑎0 𝑠0 + 𝑙𝑜𝑔𝑷 𝑠1 𝑠0, 𝑎0 + 𝑙𝑜𝑔𝜋 𝜃 𝑎1 𝑠1 ⋯
+ 𝑙𝑜𝑔𝑷 𝑠𝑡 𝑠𝑡−1, 𝑎 𝑡−1 + 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡
𝑙𝑜𝑔𝐴𝐵 = 𝑙𝑜𝑔𝐴 + 𝑙𝑜𝑔𝐵
목표 σ 𝑡=0
𝑇−1
𝑟𝑡+1 𝛻𝜃 𝑙𝑜𝑔𝑷 𝑠𝑡, 𝑎 𝑡 𝜏
Policy gradient 수식 유도
기대하시라 …
𝛻𝜃 𝑙𝑜𝑔𝑷 𝑠𝑡, 𝑎 𝑡 𝜏
= 𝛻𝜃[𝑙𝑜𝑔𝑷 𝑠0 + 𝑙𝑜𝑔𝜋 𝜃 𝑎0 𝑠0 + 𝑙𝑜𝑔𝑷 𝑠1 𝑠0, 𝑎0 + 𝑙𝑜𝑔𝜋 𝜃 𝑎1 𝑠1 ⋯
+ 𝑙𝑜𝑔𝑷 𝑠𝑡 𝑠𝑡−1, 𝑎 𝑡−1 + 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 ]
= 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎0 𝑠0 + 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎1 𝑠1 + ⋯ + 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡
𝛻𝜃 𝑙𝑜𝑔𝑷 𝑠0 , 𝛻𝜃 𝑙𝑜𝑔𝑷 𝑠1 𝑠0, 𝑎0 , ⋯ = 0 몰라도 돼!!
목표 σ 𝑡=0
𝑇−1
𝑟𝑡+1 𝛻𝜃 𝑙𝑜𝑔𝑷 𝑠𝑡, 𝑎 𝑡 𝜏
෍
𝑡=0
𝑇−1
𝑟𝑡+1 𝛻𝜃 𝑙𝑜𝑔𝑷 𝑠𝑡, 𝑎 𝑡 𝜏
= ෍
𝑡=0
𝑇−1
𝑟𝑡+1 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎0 𝑠0 + 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎1 𝑠1 + ⋯ + 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡
= ෍
𝑡=0
𝑇−1
𝑟𝑡+1 ෍
𝑡′=0
𝑡
𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡′ 𝑠𝑡′
= ෍
𝑡=0
𝑇−1
𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 ෍
𝑡′=𝑡+1
𝑇
𝑟𝑡′
Policy gradient 수식 유도 목표 σ 𝑡=0
𝑇−1
𝑟𝑡+1 𝛻𝜃 𝑙𝑜𝑔𝑷 𝑠𝑡, 𝑎 𝑡 𝜏
𝛻𝜃 𝐽 𝜃 = 𝑬 𝝉 ෍
𝑡=0
𝑇−1
𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 ෍
𝑡′=𝑡+1
𝑇
𝑟𝑡′
σ 𝑡′=𝑡
𝑇−1
𝑟𝑡′ 와 같은 단순 보상의 합  3가지 문제
REINFORCE
0.1 + 0.1 + ⋯ = ∞
1 + 1 + ⋯ = ∞
감가율(discount factor) 0 ≤ 𝛾 ≤ 1의 도입
𝛻𝜃 𝐽 𝜃 = 𝑬 𝝉 ෍
𝑡=0
𝑇−1
𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 ෍
𝑡′=𝑡+1
𝑇
𝑟𝑡′
~𝑬 𝝉 ෍
𝑡=0
𝑇−1
𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 ෍
𝑡′=𝑡+1
𝑇
𝛾 𝑡′−𝑡−1
𝑟𝑡′
෍
𝑡′=𝑡+1
𝑇
𝛾 𝑡′−𝑡−1 𝑟𝑡′ = 𝑟𝑡+1 + 𝛾𝑟𝑡+2 + 𝛾2 𝑟𝑡+3 + ⋯ + 𝛾 𝑇−𝑡−1 𝑟𝑇 → 𝐺𝑡
REINFORCE
Discounted future reward = Return G
𝛻𝜃 𝐽 𝜃 = 𝑬 𝝉 ෍
𝑡=0
𝑇−1
𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝐺𝑡
𝛻𝜃 𝐽 𝜃 ~ ෍
𝑡=0
𝑇−1
𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝐺𝑡
𝜃 ← 𝜃 + 𝛼𝛻𝜃 𝐽 𝜃 = 𝜃 + 𝛼 ෍
𝑡=0
𝑇−1
𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝐺𝑡
REINFORCE
Sampling으로 E[]을 대체  강화학습
한 에피소드 : 하나의 샘플
REINFORCE 알고리즘 업데이트 식
1. 한 에피소드를 현재 정책에 따라 실행
2. Trajectory를 기록
3. 에피소드가 끝난 뒤 𝐺𝑡계산
4. Policy gradient를 계산해서 정책 업데이트
5. (1~4) 반복
REINFORCE
Policy gradient = σ 𝑡=0
𝑇−1
𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝐺𝑡
에피소드 마다 업데이트  몬테카를로 Policy gradient = REINFORCE
REINFORCE의 문제
1. Variance가 높다
2. 에피소드마다 업데이트가 가능하다(on-line X)
몬테카를로  TD(Temporal-Difference)
REINFORCE  Actor-Critic
REINFORCE
Actor-Critic
𝛻𝜃 𝐽 𝜃 = 𝑬 𝝉 ෍
𝑡=0
𝑇−1
𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝐺𝑡
෍
𝑡=0
𝑇−1
𝑬 𝒔 𝟎,𝒂 𝟎,⋯,𝒔 𝒕, 𝒂 𝒕
𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑬 𝒓 𝒕+𝟏,𝒔 𝒕+𝟏,⋯,𝒔 𝑻,𝒓 𝑻
[𝐺𝑡]
𝑬 𝒓 𝒕+𝟏,𝒔 𝒕+𝟏,⋯,𝒔 𝑻,𝒓 𝑻
[𝐺𝑡] = 𝑄(𝑠𝑡, 𝑎 𝑡)
Actor-Critic
Expectation을 쪼개보자  (𝑠0~𝑎 𝑡) + (𝑟𝑡+1~𝑟𝑇)
어디선가 봤던 이 수식은 바로 Q-function
𝛻𝜃 𝐽 𝜃 = 𝑬 𝝉 ෍
𝑡=0
𝑇−1
𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑄 𝜋 𝜃(𝑠𝑡, 𝑎 𝑡)
~ ෍
𝑡=0
𝑇−1
𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑄 𝜋 𝜃(𝑠𝑡, 𝑎 𝑡)
만약 𝑄 𝜋 𝜃(𝑠𝑡, 𝑎 𝑡)를 알 수 있다면 매 time-step마다 업데이트하는 것이 가능!!
𝑄 𝜋 𝜃 𝑠𝑡, 𝑎 𝑡 ~𝑄 𝑤 𝑠𝑡, 𝑎 𝑡 Let’s make Critic!!!!
Actor-Critic
𝛻𝜃 𝐽 𝜃 ~𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑄 𝑤(𝑠𝑡, 𝑎 𝑡)
Advantage 함수 = 큐함수 – 베이스라인  Variance를 낮춰준다
큐함수 : 특정 상태, 특정 행동에 따른 값
가치함수 : 특정 상태, 전반적 행동에 따른 값  베이스라인
𝛻𝜃 𝐽 𝜃 ~𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑄 𝑤 𝑠𝑡, 𝑎 𝑡 − 𝑉𝑣(𝑠𝑡)
Actor-Critic
𝛻𝜃 𝐽 𝜃 ~𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑄 𝑤 𝑠𝑡, 𝑎 𝑡 − 𝑉𝑣(𝑠𝑡)
Q와 V를 둘 다 근사하는 건(ex 뉴럴넷) 비효율적
𝑄 𝑠𝑡, 𝑎 𝑡 = 𝑬[𝑟𝑡+1 + 𝛾𝑉 𝑠𝑡+1 |𝑠𝑡, 𝑎 𝑡]을 이용!
𝛻𝜃 𝐽 𝜃 ~𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑟𝑡+1 + 𝛾𝑉𝑣(𝑠𝑡+1) − 𝑉𝑣(𝑠𝑡)
Actor-Critic
큐함수 베이스라인
Actor-Critic
1. Actor
1) 정책을 근사: 𝜃
2) 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑟𝑡+1 + 𝛾𝑉𝑣(𝑠𝑡+1) − 𝑉𝑣(𝑠𝑡) 로 업데이트
2. Critic
1) 가치함수(Value function)을 근사: 𝑣
2) 𝑟𝑡+1 + 𝛾𝑉𝑣 𝑠𝑡+1 − 𝑉𝑣 𝑠𝑡
2
의 오차함수로 업데이트
Actor-Critic
−𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑟𝑡+1 + 𝛾𝑉𝑣(𝑠𝑡+1) − 𝑉𝑣(𝑠𝑡)
𝑟𝑡+1 + 𝛾𝑉𝑣 𝑠𝑡+1 − 𝑉𝑣 𝑠𝑡
2
1. Actor의 loss function
2. Critic의 loss function
크로스 엔트로피 시간차 에러
시간차 에러
Actor-Critic
Actor
𝑠𝑡 𝑠𝑡+1
Env
𝑟𝑡+1𝑎 𝑡
Critic
−𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑟𝑡+1 + 𝛾𝑉𝑣(𝑠𝑡+1) − 𝑉𝑣(𝑠𝑡)
A3C
A3C
Actor-Critic과 다른 점
Actor를 업데이트하는 과정에서
1. Multi-step loss function
2. Entropy loss function
A3C
1. Multi-step loss function
−𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑟𝑡+1 + 𝛾𝑉𝑣(𝑠𝑡+1) − 𝑉𝑣(𝑠𝑡)
↓
−𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑟𝑡+1 + 𝛾𝑟𝑡+2 + 𝛾2
𝑉𝑣(𝑠𝑡+2) − 𝑉𝑣(𝑠𝑡)
↓
−𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑟𝑡+1 + 𝛾𝑟𝑡+2 + ⋯ + 𝛾19
𝑉𝑣(𝑠𝑡+20) − 𝑉𝑣(𝑠𝑡)
20 step을 가본 후에 loss function이 하나 나온다?
1-step
multi-step
A3C
1. Multi-step
l𝑜𝑠𝑠 𝑓𝑢𝑛𝑡𝑖𝑜𝑛 = 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑟𝑡+1 + 𝛾𝑟𝑡+2 + ⋯ + 𝛾19
𝑉𝑣(𝑠𝑡+20) − 𝑉𝑣(𝑠𝑡)
+ 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡+1 𝑠𝑡+1 𝑟𝑡+2 + 𝛾𝑟𝑡+3 + ⋯ + 𝛾18 𝑉𝑣(𝑠𝑡+20) − 𝑉𝑣(𝑠𝑡+1)
+ 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡+2 𝑠𝑡+2 𝑟𝑡+3 + 𝛾𝑟𝑡+4 + ⋯ + 𝛾17
𝑉𝑣(𝑠𝑡+20) − 𝑉𝑣(𝑠𝑡+2)
+ ⋯ +
𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡+19 𝑠𝑡+19 𝑟𝑡+19 + 𝛾𝑉𝑣(𝑠𝑡+20) − 𝑉𝑣(𝑠𝑡+19)
20 step 마다 20개의 loss function을 더한 것으로 업데이트
A3C
2. Entropy loss function
엔트로피의 정의: − σ𝑖 𝑝𝑖 𝑙𝑜𝑔𝑝𝑖
 ”거꾸로” σ𝑖 𝑝𝑖 𝑙𝑜𝑔𝑝𝑖
 gradient descent 하기 위해!
행동이 두 가지 일 때 행동 확률에 따른 엔트로피의 그래프
A3C
2. Entropy loss function
Actor-Critic의 loss function
−𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑟𝑡+1 + 𝛾𝑉𝑣(𝑠𝑡+1) − 𝑉𝑣(𝑠𝑡)
A3C의 loss function
−𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡+19 𝑠𝑡+19 𝑟𝑡+1 + ⋯ + 𝛾19 𝑉𝑣 𝑠𝑡+20 − 𝑉𝑣 𝑠𝑡 ⋯ + σ 𝑡=0
19 σ𝑖 𝑝𝑖 𝑙𝑜𝑔𝑝𝑖
Entropy: exploration20개의 cross entropy: exploitation
A3C
Actor
𝑠𝑡
Env
𝑎 𝑡
Critic
−𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑟𝑡+1 + ⋯ + 𝛾19 𝑉𝑣 𝑠𝑡+20 − 𝑉𝑣 𝑠𝑡 + ⋯ + σ 𝑡=0
19 σ𝑖 𝑝𝑖 𝑙𝑜𝑔𝑝𝑖(탐험)
𝑠𝑡+1 𝑎 𝑡+1𝑟𝑡+1 𝑠𝑡+2 𝑟𝑡+2 ⋯ 𝑠𝑡+20 𝑟𝑡+20
Thread 1  여러 개의 Thread
Global
Actor
Global
Critic
여기까지 A3C를
직관적 + 수식적으로
이해해봤습니다
질문
감사합니다

Más contenido relacionado

La actualidad más candente

[머가]Chap11 강화학습
[머가]Chap11 강화학습[머가]Chap11 강화학습
[머가]Chap11 강화학습종현 최
 
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기NAVER D2
 
안.전.제.일. 강화학습!
안.전.제.일. 강화학습!안.전.제.일. 강화학습!
안.전.제.일. 강화학습!Dongmin Lee
 
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016Taehoon Kim
 
알아두면 쓸데있는 신기한 강화학습 NAVER 2017
알아두면 쓸데있는 신기한 강화학습 NAVER 2017알아두면 쓸데있는 신기한 강화학습 NAVER 2017
알아두면 쓸데있는 신기한 강화학습 NAVER 2017Taehoon Kim
 
분산 강화학습 논문(DeepMind IMPALA) 구현
분산 강화학습 논문(DeepMind IMPALA) 구현분산 강화학습 논문(DeepMind IMPALA) 구현
분산 강화학습 논문(DeepMind IMPALA) 구현정주 김
 
Introduction to SAC(Soft Actor-Critic)
Introduction to SAC(Soft Actor-Critic)Introduction to SAC(Soft Actor-Critic)
Introduction to SAC(Soft Actor-Critic)Suhyun Cho
 
강화학습 기초_2(Deep sarsa, Deep Q-learning, DQN)
강화학습 기초_2(Deep sarsa, Deep Q-learning, DQN)강화학습 기초_2(Deep sarsa, Deep Q-learning, DQN)
강화학습 기초_2(Deep sarsa, Deep Q-learning, DQN)Euijin Jeong
 
Introduction of Deep Reinforcement Learning
Introduction of Deep Reinforcement LearningIntroduction of Deep Reinforcement Learning
Introduction of Deep Reinforcement LearningNAVER Engineering
 
강화학습의 개요
강화학습의 개요강화학습의 개요
강화학습의 개요Dongmin Lee
 
From REINFORCE to PPO
From REINFORCE to PPOFrom REINFORCE to PPO
From REINFORCE to PPOWoong won Lee
 
pycon2018 "RL Adventure : DQN 부터 Rainbow DQN까지"
pycon2018 "RL Adventure : DQN 부터 Rainbow DQN까지"pycon2018 "RL Adventure : DQN 부터 Rainbow DQN까지"
pycon2018 "RL Adventure : DQN 부터 Rainbow DQN까지"YeChan(Paul) Kim
 
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016Taehoon Kim
 
Natural Policy Gradient 직관적 접근
Natural Policy Gradient 직관적 접근Natural Policy Gradient 직관적 접근
Natural Policy Gradient 직관적 접근Sooyoung Moon
 
[2017 PYCON 튜토리얼]OpenAI Gym을 이용한 강화학습 에이전트 만들기
[2017 PYCON 튜토리얼]OpenAI Gym을 이용한 강화학습 에이전트 만들기[2017 PYCON 튜토리얼]OpenAI Gym을 이용한 강화학습 에이전트 만들기
[2017 PYCON 튜토리얼]OpenAI Gym을 이용한 강화학습 에이전트 만들기이 의령
 
Control as Inference.pptx
Control as Inference.pptxControl as Inference.pptx
Control as Inference.pptxssuserbd1647
 
ML + 주식 phase 2
ML + 주식  phase 2ML + 주식  phase 2
ML + 주식 phase 2HoChul Shin
 
Doing Deep Reinforcement learning with PPO
Doing Deep Reinforcement learning with PPODoing Deep Reinforcement learning with PPO
Doing Deep Reinforcement learning with PPO이 의령
 

La actualidad más candente (20)

[머가]Chap11 강화학습
[머가]Chap11 강화학습[머가]Chap11 강화학습
[머가]Chap11 강화학습
 
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기
 
안.전.제.일. 강화학습!
안.전.제.일. 강화학습!안.전.제.일. 강화학습!
안.전.제.일. 강화학습!
 
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
 
알아두면 쓸데있는 신기한 강화학습 NAVER 2017
알아두면 쓸데있는 신기한 강화학습 NAVER 2017알아두면 쓸데있는 신기한 강화학습 NAVER 2017
알아두면 쓸데있는 신기한 강화학습 NAVER 2017
 
분산 강화학습 논문(DeepMind IMPALA) 구현
분산 강화학습 논문(DeepMind IMPALA) 구현분산 강화학습 논문(DeepMind IMPALA) 구현
분산 강화학습 논문(DeepMind IMPALA) 구현
 
Introduction to SAC(Soft Actor-Critic)
Introduction to SAC(Soft Actor-Critic)Introduction to SAC(Soft Actor-Critic)
Introduction to SAC(Soft Actor-Critic)
 
강화학습 기초_2(Deep sarsa, Deep Q-learning, DQN)
강화학습 기초_2(Deep sarsa, Deep Q-learning, DQN)강화학습 기초_2(Deep sarsa, Deep Q-learning, DQN)
강화학습 기초_2(Deep sarsa, Deep Q-learning, DQN)
 
ddpg seminar
ddpg seminarddpg seminar
ddpg seminar
 
Introduction of Deep Reinforcement Learning
Introduction of Deep Reinforcement LearningIntroduction of Deep Reinforcement Learning
Introduction of Deep Reinforcement Learning
 
강화학습의 개요
강화학습의 개요강화학습의 개요
강화학습의 개요
 
From REINFORCE to PPO
From REINFORCE to PPOFrom REINFORCE to PPO
From REINFORCE to PPO
 
pycon2018 "RL Adventure : DQN 부터 Rainbow DQN까지"
pycon2018 "RL Adventure : DQN 부터 Rainbow DQN까지"pycon2018 "RL Adventure : DQN 부터 Rainbow DQN까지"
pycon2018 "RL Adventure : DQN 부터 Rainbow DQN까지"
 
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
 
Natural Policy Gradient 직관적 접근
Natural Policy Gradient 직관적 접근Natural Policy Gradient 직관적 접근
Natural Policy Gradient 직관적 접근
 
[2017 PYCON 튜토리얼]OpenAI Gym을 이용한 강화학습 에이전트 만들기
[2017 PYCON 튜토리얼]OpenAI Gym을 이용한 강화학습 에이전트 만들기[2017 PYCON 튜토리얼]OpenAI Gym을 이용한 강화학습 에이전트 만들기
[2017 PYCON 튜토리얼]OpenAI Gym을 이용한 강화학습 에이전트 만들기
 
Control as Inference.pptx
Control as Inference.pptxControl as Inference.pptx
Control as Inference.pptx
 
그림 그리는 AI
그림 그리는 AI그림 그리는 AI
그림 그리는 AI
 
ML + 주식 phase 2
ML + 주식  phase 2ML + 주식  phase 2
ML + 주식 phase 2
 
Doing Deep Reinforcement learning with PPO
Doing Deep Reinforcement learning with PPODoing Deep Reinforcement learning with PPO
Doing Deep Reinforcement learning with PPO
 

Destacado

알파고 풀어보기 / Alpha Technical Review
알파고 풀어보기 / Alpha Technical Review알파고 풀어보기 / Alpha Technical Review
알파고 풀어보기 / Alpha Technical Review상은 박
 
Multimodal Sequential Learning for Video QA
Multimodal Sequential Learning for Video QAMultimodal Sequential Learning for Video QA
Multimodal Sequential Learning for Video QANAVER Engineering
 
Video Object Segmentation in Videos
Video Object Segmentation in VideosVideo Object Segmentation in Videos
Video Object Segmentation in VideosNAVER Engineering
 
딥러닝을 활용한 비디오 스토리 질의응답: 뽀로로QA와 심층 임베딩 메모리망
딥러닝을 활용한 비디오 스토리 질의응답: 뽀로로QA와 심층 임베딩 메모리망딥러닝을 활용한 비디오 스토리 질의응답: 뽀로로QA와 심층 임베딩 메모리망
딥러닝을 활용한 비디오 스토리 질의응답: 뽀로로QA와 심층 임베딩 메모리망NAVER Engineering
 
알파고 해부하기 1부
알파고 해부하기 1부알파고 해부하기 1부
알파고 해부하기 1부Donghun Lee
 
Deep Learning, Where Are You Going?
Deep Learning, Where Are You Going?Deep Learning, Where Are You Going?
Deep Learning, Where Are You Going?NAVER Engineering
 
Step-by-step approach to question answering
Step-by-step approach to question answeringStep-by-step approach to question answering
Step-by-step approach to question answeringNAVER Engineering
 
조음 Goodness-Of-Pronunciation 자질을 이용한 영어 학습자의 조음 오류 진단
조음 Goodness-Of-Pronunciation 자질을 이용한 영어 학습자의 조음 오류 진단조음 Goodness-Of-Pronunciation 자질을 이용한 영어 학습자의 조음 오류 진단
조음 Goodness-Of-Pronunciation 자질을 이용한 영어 학습자의 조음 오류 진단NAVER Engineering
 
Online video object segmentation via convolutional trident network
Online video object segmentation via convolutional trident networkOnline video object segmentation via convolutional trident network
Online video object segmentation via convolutional trident networkNAVER Engineering
 
바둑인을 위한 알파고
바둑인을 위한 알파고바둑인을 위한 알파고
바둑인을 위한 알파고Donghun Lee
 
Finding connections among images using CycleGAN
Finding connections among images using CycleGANFinding connections among images using CycleGAN
Finding connections among images using CycleGANNAVER Engineering
 
1시간만에 GAN(Generative Adversarial Network) 완전 정복하기
1시간만에 GAN(Generative Adversarial Network) 완전 정복하기1시간만에 GAN(Generative Adversarial Network) 완전 정복하기
1시간만에 GAN(Generative Adversarial Network) 완전 정복하기NAVER Engineering
 
알파고 (바둑 인공지능)의 작동 원리
알파고 (바둑 인공지능)의 작동 원리알파고 (바둑 인공지능)의 작동 원리
알파고 (바둑 인공지능)의 작동 원리Shane (Seungwhan) Moon
 
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...Jeongkyu Shin
 
what is_tabs_share
what is_tabs_sharewhat is_tabs_share
what is_tabs_shareNAVER D2
 
[124]자율주행과 기계학습
[124]자율주행과 기계학습[124]자율주행과 기계학습
[124]자율주행과 기계학습NAVER D2
 
밑바닥부터시작하는360뷰어
밑바닥부터시작하는360뷰어밑바닥부터시작하는360뷰어
밑바닥부터시작하는360뷰어NAVER D2
 
[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라
[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라
[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라NAVER D2
 
[143]알파글래스의 개발과정으로 알아보는 ar 스마트글래스 광학 시스템
[143]알파글래스의 개발과정으로 알아보는 ar 스마트글래스 광학 시스템 [143]알파글래스의 개발과정으로 알아보는 ar 스마트글래스 광학 시스템
[143]알파글래스의 개발과정으로 알아보는 ar 스마트글래스 광학 시스템 NAVER D2
 
[132]웨일 브라우저 1년 그리고 미래
[132]웨일 브라우저 1년 그리고 미래[132]웨일 브라우저 1년 그리고 미래
[132]웨일 브라우저 1년 그리고 미래NAVER D2
 

Destacado (20)

알파고 풀어보기 / Alpha Technical Review
알파고 풀어보기 / Alpha Technical Review알파고 풀어보기 / Alpha Technical Review
알파고 풀어보기 / Alpha Technical Review
 
Multimodal Sequential Learning for Video QA
Multimodal Sequential Learning for Video QAMultimodal Sequential Learning for Video QA
Multimodal Sequential Learning for Video QA
 
Video Object Segmentation in Videos
Video Object Segmentation in VideosVideo Object Segmentation in Videos
Video Object Segmentation in Videos
 
딥러닝을 활용한 비디오 스토리 질의응답: 뽀로로QA와 심층 임베딩 메모리망
딥러닝을 활용한 비디오 스토리 질의응답: 뽀로로QA와 심층 임베딩 메모리망딥러닝을 활용한 비디오 스토리 질의응답: 뽀로로QA와 심층 임베딩 메모리망
딥러닝을 활용한 비디오 스토리 질의응답: 뽀로로QA와 심층 임베딩 메모리망
 
알파고 해부하기 1부
알파고 해부하기 1부알파고 해부하기 1부
알파고 해부하기 1부
 
Deep Learning, Where Are You Going?
Deep Learning, Where Are You Going?Deep Learning, Where Are You Going?
Deep Learning, Where Are You Going?
 
Step-by-step approach to question answering
Step-by-step approach to question answeringStep-by-step approach to question answering
Step-by-step approach to question answering
 
조음 Goodness-Of-Pronunciation 자질을 이용한 영어 학습자의 조음 오류 진단
조음 Goodness-Of-Pronunciation 자질을 이용한 영어 학습자의 조음 오류 진단조음 Goodness-Of-Pronunciation 자질을 이용한 영어 학습자의 조음 오류 진단
조음 Goodness-Of-Pronunciation 자질을 이용한 영어 학습자의 조음 오류 진단
 
Online video object segmentation via convolutional trident network
Online video object segmentation via convolutional trident networkOnline video object segmentation via convolutional trident network
Online video object segmentation via convolutional trident network
 
바둑인을 위한 알파고
바둑인을 위한 알파고바둑인을 위한 알파고
바둑인을 위한 알파고
 
Finding connections among images using CycleGAN
Finding connections among images using CycleGANFinding connections among images using CycleGAN
Finding connections among images using CycleGAN
 
1시간만에 GAN(Generative Adversarial Network) 완전 정복하기
1시간만에 GAN(Generative Adversarial Network) 완전 정복하기1시간만에 GAN(Generative Adversarial Network) 완전 정복하기
1시간만에 GAN(Generative Adversarial Network) 완전 정복하기
 
알파고 (바둑 인공지능)의 작동 원리
알파고 (바둑 인공지능)의 작동 원리알파고 (바둑 인공지능)의 작동 원리
알파고 (바둑 인공지능)의 작동 원리
 
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...
 
what is_tabs_share
what is_tabs_sharewhat is_tabs_share
what is_tabs_share
 
[124]자율주행과 기계학습
[124]자율주행과 기계학습[124]자율주행과 기계학습
[124]자율주행과 기계학습
 
밑바닥부터시작하는360뷰어
밑바닥부터시작하는360뷰어밑바닥부터시작하는360뷰어
밑바닥부터시작하는360뷰어
 
[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라
[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라
[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라
 
[143]알파글래스의 개발과정으로 알아보는 ar 스마트글래스 광학 시스템
[143]알파글래스의 개발과정으로 알아보는 ar 스마트글래스 광학 시스템 [143]알파글래스의 개발과정으로 알아보는 ar 스마트글래스 광학 시스템
[143]알파글래스의 개발과정으로 알아보는 ar 스마트글래스 광학 시스템
 
[132]웨일 브라우저 1년 그리고 미래
[132]웨일 브라우저 1년 그리고 미래[132]웨일 브라우저 1년 그리고 미래
[132]웨일 브라우저 1년 그리고 미래
 

Similar a RLCode와 A3C 쉽고 깊게 이해하기

03. linear regression
03. linear regression03. linear regression
03. linear regressionJeonghun Yoon
 
Q Learning과 CNN을 이용한 Object Localization
Q Learning과 CNN을 이용한 Object LocalizationQ Learning과 CNN을 이용한 Object Localization
Q Learning과 CNN을 이용한 Object Localization홍배 김
 
Linear regression
Linear regressionLinear regression
Linear regression전 희천
 
04. logistic regression ( 로지스틱 회귀 )
04. logistic regression ( 로지스틱 회귀 )04. logistic regression ( 로지스틱 회귀 )
04. logistic regression ( 로지스틱 회귀 )Jeonghun Yoon
 
Neural network (perceptron)
Neural network (perceptron)Neural network (perceptron)
Neural network (perceptron)Jeonghun Yoon
 
선형대수 08. 선형 변환 (Linear Transformation)
선형대수 08. 선형 변환 (Linear Transformation)선형대수 08. 선형 변환 (Linear Transformation)
선형대수 08. 선형 변환 (Linear Transformation)AHRA CHO
 
해커에게 전해들은 머신러닝 #3
해커에게 전해들은 머신러닝 #3해커에게 전해들은 머신러닝 #3
해커에게 전해들은 머신러닝 #3Haesun Park
 
[Probability for machine learning]
[Probability for machine learning][Probability for machine learning]
[Probability for machine learning]강민국 강민국
 
Lecture 2: Supervised Learning
Lecture 2: Supervised LearningLecture 2: Supervised Learning
Lecture 2: Supervised LearningSang Jun Lee
 
Multinomial classification and application of ML
Multinomial classification and application of MLMultinomial classification and application of ML
Multinomial classification and application of ML희수 박
 
Optimization algorithms in machine learning
Optimization algorithms in machine learningOptimization algorithms in machine learning
Optimization algorithms in machine learningYonsei University
 
Eigendecomposition and pca
Eigendecomposition and pcaEigendecomposition and pca
Eigendecomposition and pcaJinhwan Suk
 
세그먼트 트리 느리게 업데이트하기 - Sogang ICPC Team, 2020 Winter
세그먼트 트리 느리게 업데이트하기 - Sogang ICPC Team, 2020 Winter세그먼트 트리 느리게 업데이트하기 - Sogang ICPC Team, 2020 Winter
세그먼트 트리 느리게 업데이트하기 - Sogang ICPC Team, 2020 WinterSuhyun Park
 
개념 이해가 쉬운 Variational Autoencoder (VAE)
개념 이해가 쉬운 Variational Autoencoder (VAE)개념 이해가 쉬운 Variational Autoencoder (VAE)
개념 이해가 쉬운 Variational Autoencoder (VAE)jaypi Ko
 
Dsh data sensitive hashing for high dimensional k-nn search
Dsh  data sensitive hashing for high dimensional k-nn searchDsh  data sensitive hashing for high dimensional k-nn search
Dsh data sensitive hashing for high dimensional k-nn searchWooSung Choi
 
0124 1 linear_algebra_basic_vector
0124 1 linear_algebra_basic_vector0124 1 linear_algebra_basic_vector
0124 1 linear_algebra_basic_vectorJeonghun Yoon
 
Auto-Encoders and Variational Auto-Encoders
Auto-Encoders and Variational Auto-EncodersAuto-Encoders and Variational Auto-Encoders
Auto-Encoders and Variational Auto-EncodersJinho Lee
 
Playing atari with deep reinforcement learning
Playing atari with deep reinforcement learningPlaying atari with deep reinforcement learning
Playing atari with deep reinforcement learningKyeongUkJang
 

Similar a RLCode와 A3C 쉽고 깊게 이해하기 (20)

03. linear regression
03. linear regression03. linear regression
03. linear regression
 
Q Learning과 CNN을 이용한 Object Localization
Q Learning과 CNN을 이용한 Object LocalizationQ Learning과 CNN을 이용한 Object Localization
Q Learning과 CNN을 이용한 Object Localization
 
Linear regression
Linear regressionLinear regression
Linear regression
 
04. logistic regression ( 로지스틱 회귀 )
04. logistic regression ( 로지스틱 회귀 )04. logistic regression ( 로지스틱 회귀 )
04. logistic regression ( 로지스틱 회귀 )
 
Neural network (perceptron)
Neural network (perceptron)Neural network (perceptron)
Neural network (perceptron)
 
선형대수 08. 선형 변환 (Linear Transformation)
선형대수 08. 선형 변환 (Linear Transformation)선형대수 08. 선형 변환 (Linear Transformation)
선형대수 08. 선형 변환 (Linear Transformation)
 
Vae
VaeVae
Vae
 
해커에게 전해들은 머신러닝 #3
해커에게 전해들은 머신러닝 #3해커에게 전해들은 머신러닝 #3
해커에게 전해들은 머신러닝 #3
 
[Probability for machine learning]
[Probability for machine learning][Probability for machine learning]
[Probability for machine learning]
 
Lecture 2: Supervised Learning
Lecture 2: Supervised LearningLecture 2: Supervised Learning
Lecture 2: Supervised Learning
 
Multinomial classification and application of ML
Multinomial classification and application of MLMultinomial classification and application of ML
Multinomial classification and application of ML
 
Optimization algorithms in machine learning
Optimization algorithms in machine learningOptimization algorithms in machine learning
Optimization algorithms in machine learning
 
Eigendecomposition and pca
Eigendecomposition and pcaEigendecomposition and pca
Eigendecomposition and pca
 
Variational AutoEncoder(VAE)
Variational AutoEncoder(VAE)Variational AutoEncoder(VAE)
Variational AutoEncoder(VAE)
 
세그먼트 트리 느리게 업데이트하기 - Sogang ICPC Team, 2020 Winter
세그먼트 트리 느리게 업데이트하기 - Sogang ICPC Team, 2020 Winter세그먼트 트리 느리게 업데이트하기 - Sogang ICPC Team, 2020 Winter
세그먼트 트리 느리게 업데이트하기 - Sogang ICPC Team, 2020 Winter
 
개념 이해가 쉬운 Variational Autoencoder (VAE)
개념 이해가 쉬운 Variational Autoencoder (VAE)개념 이해가 쉬운 Variational Autoencoder (VAE)
개념 이해가 쉬운 Variational Autoencoder (VAE)
 
Dsh data sensitive hashing for high dimensional k-nn search
Dsh  data sensitive hashing for high dimensional k-nn searchDsh  data sensitive hashing for high dimensional k-nn search
Dsh data sensitive hashing for high dimensional k-nn search
 
0124 1 linear_algebra_basic_vector
0124 1 linear_algebra_basic_vector0124 1 linear_algebra_basic_vector
0124 1 linear_algebra_basic_vector
 
Auto-Encoders and Variational Auto-Encoders
Auto-Encoders and Variational Auto-EncodersAuto-Encoders and Variational Auto-Encoders
Auto-Encoders and Variational Auto-Encoders
 
Playing atari with deep reinforcement learning
Playing atari with deep reinforcement learningPlaying atari with deep reinforcement learning
Playing atari with deep reinforcement learning
 

RLCode와 A3C 쉽고 깊게 이해하기

  • 1. RLCode와 A3C 쉽고 깊게 이해하기 RLCode 리더 이웅원
  • 2. 파이썬과 케라스로 배우는 강화학습 http://wikibook.co.kr/reinforcement-learning/
  • 3. 인공지능 기반 시계열 데이터 분석 -비음성 소리인식 청각장애인: 아기울음, 경적, 초인종 등 보안/안전: 비명, 충돌음, 폭발음 등 -고장 모니터링 자동차, 산업기계 진동 등 아기울음소리 감지기의 예시
  • 4. 목차 1. New 베이스라인 A3C 2. A3C의 직관적 이해 3. Policy Gradient 4. REINFORCE 5. Actor-Critic 6. A3C
  • 7. 가장 유명한 알고리즘 : DQN DeepMind  Atari  DQN 게임 화면으로 게임 플레이하는 법을 학습
  • 8. DQN이 이룬 점과 부족한 점 1. DQN이 이룬 점 1) 게임 화면을 상태 입력으로 받아서 학습(CNN) 2) 사람보다 게임 플레이를 더 잘하는 에이전트 3) 샘플들 사이의 강한 상관관계를 리플레이 메모리로 해결 2. DQN이 부족한 점 1) 많은 메모리의 사용 2) 느린 학습 속도 3) 불안정한 학습 과정 (가치함수에 대한 greedy policy이므로)
  • 9. A3C = Asynchronous Advantage Actor-Critic 1. 샘플 사이의 상관관계를 비동기 업데이트로 해결 2. 리플레이 메모리를 사용하지 않음 3. policy gradient 알고리즘 사용가능(Actor-Critic) 4. 상대적으로 빠른 학습 속도(여러 에이전트가 환경과 상호작용)
  • 10. A3C = 비동기 + Actor-Critic
  • 11. Actor-Critic = REINFORCE + 실시간 학습
  • 12. REINFORCE = 몬테카를로 Policy gradient
  • 13. A3C를 파헤치는 과정 1. Policy gradient의 수식 유도 과정에 대한 이해 2. REINFORCE 알고리즘 이해 3. Actor-Critic 알고리즘 이해 4. Actor-Critic 을 비동기식으로 업데이트하는 방법 이해 Policy gradient REINFORCE Actor-Critic A3C
  • 15. 크로스 엔트로피 지도학습의 크로스 엔트로피(Cross entropy) 정답 y 예측 p Softmax − σ 𝑦𝑖 𝑙𝑜𝑔𝑝𝑖 : p와 y가 얼마나 다른지
  • 16. 크로스 엔트로피 지도학습의 크로스 엔트로피(Cross entropy) − σ 𝑦𝑖 𝑙𝑜𝑔𝑝𝑖 계산 Input data Label Gradient descent
  • 17. 강화학습 강화학습의 크로스 엔트로피 실제 에이전트가 한 행동 예측 p 정답 y
  • 18. 강화학습 강화학습의 크로스 엔트로피 − σ 𝑦𝑖 𝑙𝑜𝑔𝑝𝑖 계산 상태 𝑠0, 𝑠1, 𝑠2, ⋯ 실제 행동 𝑎0, 𝑎1, 𝑎2, ⋯ Gradient descent 나의 예측을 실제 행동에 가깝게 만든다  어떤 의미?? 업데이트의 방향성이 필요!
  • 19. Actor-Critic 정답이 되는 각 행동이 실제로 좋은 지, 좋다면 얼마나 좋은 지를 알 수 있을까?  큐함수(Q-function) : 𝑄 𝜋 𝑠, 𝑎 = 𝑬 𝜋 𝑅𝑡+1 + 𝛾𝑅𝑡+2 + ⋯ |𝑆𝑡 = 𝑠, 𝐴 𝑡 = 𝑎 𝑄(𝑆𝑡, 𝐴 𝑡) − σ 𝑦𝑖 𝑙𝑜𝑔𝑝𝑖 계산 상태 (𝑆𝑡) 실제 행동 ( 𝐴 𝑡) Gradient descent 업데이트의 방향과 크기 크리틱 : 뉴럴넷
  • 20. A3C 여러 개의 에이전트를 만들어서 각각 gradient를 계산하면? 𝑄 𝑆𝑡1 , 𝐴 𝑡1 − ෍ 𝑦𝑖 𝑙𝑜𝑔𝑝𝑖 Env1: 상태 (𝑆𝑡1 ) 실제 행동 ( 𝐴 𝑡1) Gradient 계산 Env2: 상태 (𝑆𝑡2 ) 실제 행동 ( 𝐴 𝑡2 ) Env3: 상태 (𝑆𝑡3 ) 실제 행동 ( 𝐴 𝑡3 ) Env4: 상태 (𝑆𝑡4 ) 실제 행동 ( 𝐴 𝑡4 ) agent1 agent2 agent3 agent4 𝑄 𝑆𝑡2 , 𝐴 𝑡2 − ෍ 𝑦𝑖 𝑙𝑜𝑔𝑝𝑖 Gradient 계산 𝑄 𝑆𝑡3 , 𝐴 𝑡3 − ෍ 𝑦𝑖 𝑙𝑜𝑔𝑝𝑖 Gradient 계산 𝑄 𝑆𝑡4 , 𝐴 𝑡4 − ෍ 𝑦𝑖 𝑙𝑜𝑔𝑝𝑖 Gradient 계산
  • 21. A3C 비동기적으로 global network를 업데이트 𝑄 𝑆𝑡1 , 𝐴 𝑡1 − ෍ 𝑦𝑖 𝑙𝑜𝑔𝑝𝑖agent1 Gradient 계산 agent2 agent3 agent4 Env2에서 탐험 Env3에서 탐험 Env4에서 탐험 Global network
  • 22. A3C 비동기적으로 global network를 업데이트 𝑄 𝑆𝑡3 , 𝐴 𝑡3 − ෍ 𝑦𝑖 𝑙𝑜𝑔𝑝𝑖 agent1 Gradient 계산 agent2 agent3 agent4 Env2에서 탐험 Env1에서 탐험 Env4에서 탐험 Global network
  • 23. A3C 비동기적으로 global network를 업데이트: 에이전트 1이 글로벌 신경망을 업데이트 환경 1 글로벌 신경망 에이전트 1 환경 2 에이전트 2 ⋯ 환경 n 에이전트 n gradient 업데이트 환경과 상호작용 중 환경과 상호작용 중
  • 24. A3C 비동기적으로 global network를 업데이트 : 글로벌 신경망으로 에이전트 1을 업데이트 환경 1 글로벌 신경망 에이전트 1 환경 2 에이전트 2 ⋯ 환경 n 에이전트 n 글로벌 신경망으로 업데이트 환경과 상호작용 중 환경과 상호작용 중
  • 25. A3C 비동기적으로 global network를 업데이트 : agent n이 글로벌 신경망을 업데이트 환경 1 글로벌 신경망 에이전트 1 환경 2 에이전트 2 ⋯ 환경 n 에이전트 n gradient 업데이트 환경과 상호작용 중 환경과 상호작용 중
  • 28. 정책과 강화학습 • 강화학습  보상을 받게 하는 행동의 확률 증가 • 즉, 현재 정책을 환경으로부터 받은 보상을 기준으로 업데이트를 해야 “강화학습” • 2가지를 알아야 함 1. 정책을 업데이트하는 기준 2. 그 기준에 따라 정책의 업데이트 방법
  • 29. Policy gradient 1. 정책을 업데이트 하는 기준: 목표함수 2. 목표함수에 따라 정책을 업데이트하는 방법: Gradient ascent
  • 30. Policy gradient 1. 정책(Policy)의 근사화 2. 목표함수에 대한 Gradient ascent
  • 31. 정책의 근사화 • Huge + High Dimension 상태 공간  각 상태에 대한 정책을 가지는 것은 힘들다 • 행동 = 𝑓(상태)  𝑓가 정책 상태 정책 행동 입력 출력
  • 32. 정책의 근사화 상태 입력 (x, y) 정책 𝜋 행동 (상, 하, 좌, 우) • 그리드월드의 경우 • 상태 : (x, y) 좌표 • 행동 : (상, 하, 좌, 우)
  • 33. 정책의 근사화 • 인공신경망으로 정책을 근사  정책 신경망 정책 𝜋 𝜃(𝑎|𝑠) = 𝑷 𝐴 𝑡 = 𝑎|𝑆𝑡 = 𝑠, 𝜃 𝜃
  • 34. Policy gradient 1. 정책(Policy)의 근사화 2. 목표함수에 대한 Gradient ascent
  • 35. 목표함수 • 가치 기반 강화학습 매 스텝마다 에이전트가 행동을 선택하는 기준  가치함수(Value function) • 정책 기반 강화학습 정책을 업데이트할 때마다 어떤 방향으로 업데이트할 지에 대한 기준  목표함수 (Objective function) or 𝐽(𝜃)
  • 36. 목표함수 • 에이전트가 정책 𝜋 𝜃에 따라서 가게 되는 “경로”를 생각해보자! • 경로(trajectory) = 에이전트와 환경이 상호작용한 흔적 𝜏 = 𝑠0, 𝑎0, 𝑟1, 𝑠1, 𝑎1, 𝑟2, ⋯ , 𝑠 𝑇 • 𝐽(𝜃) = 경로 동안 받을 것이라고 기대하는 보상의 합(경로가 매번 달라지므로) 𝐽 𝜃 = 𝑬 ෍ 𝑡=0 𝑇−1 𝑟𝑡+1 | 𝜋 𝜃 = 𝑬 𝑟1 + 𝑟2 + 𝑟3 + ⋯ + 𝑟 𝑇| 𝜋 𝜃
  • 37. Gradient ascent • 𝐽(𝜃) 를 기준으로 어떻게 𝜃(정책신경망)을 업데이트할 것인가?  𝜃에 대한 𝐽(𝜃)의 경사를 따라 올라가다(Gradient ascent) 𝜃′ = 𝜃 + 𝛼𝛻𝜃 𝐽(𝜃) 𝛻𝜃 𝐽 𝜃 = Policy gradient
  • 38. Policy gradient 𝝅 𝜽 𝑱 𝜽 Trajectory 𝜏 𝒙 𝒚 𝝅 𝜽′ 𝑱 𝜽′ 𝜽′ = 𝜽 + 𝜶𝜵 𝜽 𝑱(𝜽)
  • 41. Policy gradient 수식 유도 • Policy gradient의 정책 업데이트식  핵심은 Policy gradient 𝜃 ← 𝜃 + 𝛼𝛻𝜃 𝐽(𝜃) • Policy gradient의 기본 알고리즘 REINFORCE 식  이제부터 유도 𝛻𝜃 𝐽 𝜃 ~ ෍ 𝑡=0 𝑇−1 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃(𝑎 𝑡|𝑠𝑡) 𝐺𝑡
  • 42. Policy gradient 수식 유도 목표함수의 정의 𝐽 𝜃 = 𝑬 σ 𝑡=0 𝑇−1 𝑟𝑡+1 | 𝜋 𝜃 기대값 = (x일 확률 × x일 때의 값)의 x에 대한 합 ex) 주사위 기대값 𝑬 𝑓(𝑥) = ෍ 𝑥 𝑝 𝑥 𝑓(𝑥)
  • 43. Policy gradient 수식 유도 𝜏 = 𝑠0, 𝑎0, 𝑟1, 𝑠1, 𝑎1, 𝑟2, ⋯ , 𝑠 𝑇 목표함수의 정의 𝐽 𝜃 = 𝑬 ෍ 𝑡=0 𝑇−1 𝑟𝑡+1 | 𝜋 𝜃 = 𝑬 𝜏 𝑟1| 𝜋 𝜃 + 𝑬 𝝉 𝑟2| 𝜋 𝜃 + 𝑬 𝝉 𝑟3| 𝜋 𝜃 + ⋯ = ෍ 𝑡=0 𝑇−1 𝑷 𝑠𝑡, 𝑎 𝑡|𝜏 𝑅(𝑠𝑡, 𝑎 𝑡) = ෍ 𝑡=0 𝑇−1 𝑷 𝑠𝑡, 𝑎 𝑡|𝜏 𝑟𝑡+1 (𝑠𝑡, 𝑎 𝑡)일 확률 (𝑠𝑡, 𝑎 𝑡)일 때의 값 Trajectory 𝜏에서 𝑟1에 대한 기대값
  • 44. Policy gradient 수식 유도 양변에 𝛻𝜃 를 취하기(미분하기) 𝛻𝜃 𝐽 𝜃 = 𝛻𝜃 𝑬 σ 𝑡=0 𝑇−1 𝑟𝑡+1 | 𝜋 𝜃 = 𝛻𝜃 σ 𝑡=0 𝑇−1 𝑷 𝑠𝑡, 𝑎 𝑡|𝜏 𝑟𝑡+1 = σ 𝑡=0 𝑇−1 𝛻𝜃 𝑷 𝑠𝑡, 𝑎 𝑡|𝜏 𝑟𝑡+1 = σ 𝑡=0 𝑇−1 𝑷 𝑠𝑡, 𝑎 𝑡|𝜏 𝛻𝜃 𝑙𝑜𝑔𝑷 𝑠𝑡, 𝑎 𝑡|𝜏 𝑟𝑡+1 ?
  • 45. Policy gradient 수식 유도 𝛻𝜃 𝐽 𝜃 = σ 𝑡=0 𝑇−1 𝛻𝜃 𝑷 𝑠𝑡, 𝑎 𝑡|𝜏 𝑟𝑡+1 = ෍ 𝑡=0 𝑇−1 𝑷 𝑠𝑡, 𝑎 𝑡 𝜏 𝛻𝜃 𝑷 𝑠𝑡, 𝑎 𝑡 𝜏 𝑷 𝑠𝑡, 𝑎 𝑡 𝜏 𝑟𝑡+1 = ෍ 𝑡=0 𝑇−1 𝑷 𝑠𝑡, 𝑎 𝑡|𝜏 𝛻𝜃 𝑙𝑜𝑔𝑷 𝑠𝑡, 𝑎 𝑡|𝜏 𝑟𝑡+1 𝑑𝑙𝑜𝑔𝑥 𝑑𝑥 = 1 𝑥 𝑑𝑙𝑜𝑔𝑓(𝑥) 𝑑𝑥 = Τ𝑑𝑓(𝑥) 𝑑𝑥 𝑓(𝑥)
  • 46. Policy gradient 수식 유도 𝛻𝜃 𝐽 𝜃 = ෍ 𝑡=0 𝑇−1 𝑷 𝑠𝑡, 𝑎 𝑡|𝜏 𝛻𝜃 𝑙𝑜𝑔𝑷 𝑠𝑡, 𝑎 𝑡|𝜏 𝑟𝑡+1 = 𝑬 𝝉 σ 𝑡=0 𝑇−1 𝛻𝜃 𝑙𝑜𝑔𝑷 𝑠𝑡, 𝑎 𝑡|𝜏 𝑟𝑡+1 → ෍ 𝑡=0 𝑇−1 𝛻𝜃 𝑙𝑜𝑔𝑷 𝑠𝑡, 𝑎 𝑡 𝜏 𝑟𝑡+1 강화학습에서는 E[]를 계산 하지 않고 Sampling!! 알아야함
  • 47. Policy gradient 수식 유도 여기서 더 나아가기 위해서는 𝑷 𝑠𝑡, 𝑎 𝑡 𝜏 를 파헤쳐야 한다! 𝑷 𝑠𝑡, 𝑎 𝑡 𝜏 = 𝑷 𝑠0, 𝑎0, 𝑟1, 𝑠1, 𝑎1, 𝑟2, ⋯ , 𝑠𝑡, 𝑎 𝑡 𝜃 에이전트(agent)와 환경(env)의 상호작용 흔적 = 𝑷 𝑠0 𝜋 𝜃(𝑎0|𝑠0)𝑷(𝑠1|𝑠0, 𝑎0)𝜋 𝜃(𝑎1|𝑠1)𝑷(𝑠2|𝑠1, 𝑎1) ⋯ agent agentenv envenv 에이전트가 알 수 없는 정보
  • 48. Policy gradient 수식 유도 기대하시라 … 𝑙𝑜𝑔𝑷 𝑠𝑡, 𝑎 𝑡 𝜏 = 𝑙𝑜𝑔 𝑷 𝑠0 𝜋 𝜃(𝑎0|𝑠0)𝑷(𝑠1|𝑠0, 𝑎0)𝜋 𝜃(𝑎1|𝑠1) ⋯ 𝑷(𝑠𝑡|𝑠𝑡−1, 𝑎 𝑡−1)𝜋 𝜃(𝑎 𝑡|𝑠𝑡) = 𝑙𝑜𝑔𝑷 𝑠0 + 𝑙𝑜𝑔𝜋 𝜃 𝑎0 𝑠0 + 𝑙𝑜𝑔𝑷 𝑠1 𝑠0, 𝑎0 + 𝑙𝑜𝑔𝜋 𝜃 𝑎1 𝑠1 ⋯ + 𝑙𝑜𝑔𝑷 𝑠𝑡 𝑠𝑡−1, 𝑎 𝑡−1 + 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑙𝑜𝑔𝐴𝐵 = 𝑙𝑜𝑔𝐴 + 𝑙𝑜𝑔𝐵 목표 σ 𝑡=0 𝑇−1 𝑟𝑡+1 𝛻𝜃 𝑙𝑜𝑔𝑷 𝑠𝑡, 𝑎 𝑡 𝜏
  • 49. Policy gradient 수식 유도 기대하시라 … 𝛻𝜃 𝑙𝑜𝑔𝑷 𝑠𝑡, 𝑎 𝑡 𝜏 = 𝛻𝜃[𝑙𝑜𝑔𝑷 𝑠0 + 𝑙𝑜𝑔𝜋 𝜃 𝑎0 𝑠0 + 𝑙𝑜𝑔𝑷 𝑠1 𝑠0, 𝑎0 + 𝑙𝑜𝑔𝜋 𝜃 𝑎1 𝑠1 ⋯ + 𝑙𝑜𝑔𝑷 𝑠𝑡 𝑠𝑡−1, 𝑎 𝑡−1 + 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 ] = 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎0 𝑠0 + 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎1 𝑠1 + ⋯ + 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝛻𝜃 𝑙𝑜𝑔𝑷 𝑠0 , 𝛻𝜃 𝑙𝑜𝑔𝑷 𝑠1 𝑠0, 𝑎0 , ⋯ = 0 몰라도 돼!! 목표 σ 𝑡=0 𝑇−1 𝑟𝑡+1 𝛻𝜃 𝑙𝑜𝑔𝑷 𝑠𝑡, 𝑎 𝑡 𝜏
  • 50. ෍ 𝑡=0 𝑇−1 𝑟𝑡+1 𝛻𝜃 𝑙𝑜𝑔𝑷 𝑠𝑡, 𝑎 𝑡 𝜏 = ෍ 𝑡=0 𝑇−1 𝑟𝑡+1 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎0 𝑠0 + 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎1 𝑠1 + ⋯ + 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 = ෍ 𝑡=0 𝑇−1 𝑟𝑡+1 ෍ 𝑡′=0 𝑡 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡′ 𝑠𝑡′ = ෍ 𝑡=0 𝑇−1 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 ෍ 𝑡′=𝑡+1 𝑇 𝑟𝑡′ Policy gradient 수식 유도 목표 σ 𝑡=0 𝑇−1 𝑟𝑡+1 𝛻𝜃 𝑙𝑜𝑔𝑷 𝑠𝑡, 𝑎 𝑡 𝜏
  • 51. 𝛻𝜃 𝐽 𝜃 = 𝑬 𝝉 ෍ 𝑡=0 𝑇−1 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 ෍ 𝑡′=𝑡+1 𝑇 𝑟𝑡′ σ 𝑡′=𝑡 𝑇−1 𝑟𝑡′ 와 같은 단순 보상의 합  3가지 문제 REINFORCE 0.1 + 0.1 + ⋯ = ∞ 1 + 1 + ⋯ = ∞ 감가율(discount factor) 0 ≤ 𝛾 ≤ 1의 도입
  • 52. 𝛻𝜃 𝐽 𝜃 = 𝑬 𝝉 ෍ 𝑡=0 𝑇−1 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 ෍ 𝑡′=𝑡+1 𝑇 𝑟𝑡′ ~𝑬 𝝉 ෍ 𝑡=0 𝑇−1 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 ෍ 𝑡′=𝑡+1 𝑇 𝛾 𝑡′−𝑡−1 𝑟𝑡′ ෍ 𝑡′=𝑡+1 𝑇 𝛾 𝑡′−𝑡−1 𝑟𝑡′ = 𝑟𝑡+1 + 𝛾𝑟𝑡+2 + 𝛾2 𝑟𝑡+3 + ⋯ + 𝛾 𝑇−𝑡−1 𝑟𝑇 → 𝐺𝑡 REINFORCE Discounted future reward = Return G
  • 53. 𝛻𝜃 𝐽 𝜃 = 𝑬 𝝉 ෍ 𝑡=0 𝑇−1 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝐺𝑡 𝛻𝜃 𝐽 𝜃 ~ ෍ 𝑡=0 𝑇−1 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝐺𝑡 𝜃 ← 𝜃 + 𝛼𝛻𝜃 𝐽 𝜃 = 𝜃 + 𝛼 ෍ 𝑡=0 𝑇−1 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝐺𝑡 REINFORCE Sampling으로 E[]을 대체  강화학습 한 에피소드 : 하나의 샘플 REINFORCE 알고리즘 업데이트 식
  • 54. 1. 한 에피소드를 현재 정책에 따라 실행 2. Trajectory를 기록 3. 에피소드가 끝난 뒤 𝐺𝑡계산 4. Policy gradient를 계산해서 정책 업데이트 5. (1~4) 반복 REINFORCE Policy gradient = σ 𝑡=0 𝑇−1 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝐺𝑡 에피소드 마다 업데이트  몬테카를로 Policy gradient = REINFORCE
  • 55. REINFORCE의 문제 1. Variance가 높다 2. 에피소드마다 업데이트가 가능하다(on-line X) 몬테카를로  TD(Temporal-Difference) REINFORCE  Actor-Critic REINFORCE
  • 57. 𝛻𝜃 𝐽 𝜃 = 𝑬 𝝉 ෍ 𝑡=0 𝑇−1 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝐺𝑡 ෍ 𝑡=0 𝑇−1 𝑬 𝒔 𝟎,𝒂 𝟎,⋯,𝒔 𝒕, 𝒂 𝒕 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑬 𝒓 𝒕+𝟏,𝒔 𝒕+𝟏,⋯,𝒔 𝑻,𝒓 𝑻 [𝐺𝑡] 𝑬 𝒓 𝒕+𝟏,𝒔 𝒕+𝟏,⋯,𝒔 𝑻,𝒓 𝑻 [𝐺𝑡] = 𝑄(𝑠𝑡, 𝑎 𝑡) Actor-Critic Expectation을 쪼개보자  (𝑠0~𝑎 𝑡) + (𝑟𝑡+1~𝑟𝑇) 어디선가 봤던 이 수식은 바로 Q-function
  • 58. 𝛻𝜃 𝐽 𝜃 = 𝑬 𝝉 ෍ 𝑡=0 𝑇−1 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑄 𝜋 𝜃(𝑠𝑡, 𝑎 𝑡) ~ ෍ 𝑡=0 𝑇−1 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑄 𝜋 𝜃(𝑠𝑡, 𝑎 𝑡) 만약 𝑄 𝜋 𝜃(𝑠𝑡, 𝑎 𝑡)를 알 수 있다면 매 time-step마다 업데이트하는 것이 가능!! 𝑄 𝜋 𝜃 𝑠𝑡, 𝑎 𝑡 ~𝑄 𝑤 𝑠𝑡, 𝑎 𝑡 Let’s make Critic!!!! Actor-Critic
  • 59. 𝛻𝜃 𝐽 𝜃 ~𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑄 𝑤(𝑠𝑡, 𝑎 𝑡) Advantage 함수 = 큐함수 – 베이스라인  Variance를 낮춰준다 큐함수 : 특정 상태, 특정 행동에 따른 값 가치함수 : 특정 상태, 전반적 행동에 따른 값  베이스라인 𝛻𝜃 𝐽 𝜃 ~𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑄 𝑤 𝑠𝑡, 𝑎 𝑡 − 𝑉𝑣(𝑠𝑡) Actor-Critic
  • 60. 𝛻𝜃 𝐽 𝜃 ~𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑄 𝑤 𝑠𝑡, 𝑎 𝑡 − 𝑉𝑣(𝑠𝑡) Q와 V를 둘 다 근사하는 건(ex 뉴럴넷) 비효율적 𝑄 𝑠𝑡, 𝑎 𝑡 = 𝑬[𝑟𝑡+1 + 𝛾𝑉 𝑠𝑡+1 |𝑠𝑡, 𝑎 𝑡]을 이용! 𝛻𝜃 𝐽 𝜃 ~𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑟𝑡+1 + 𝛾𝑉𝑣(𝑠𝑡+1) − 𝑉𝑣(𝑠𝑡) Actor-Critic 큐함수 베이스라인
  • 61. Actor-Critic 1. Actor 1) 정책을 근사: 𝜃 2) 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑟𝑡+1 + 𝛾𝑉𝑣(𝑠𝑡+1) − 𝑉𝑣(𝑠𝑡) 로 업데이트 2. Critic 1) 가치함수(Value function)을 근사: 𝑣 2) 𝑟𝑡+1 + 𝛾𝑉𝑣 𝑠𝑡+1 − 𝑉𝑣 𝑠𝑡 2 의 오차함수로 업데이트
  • 62. Actor-Critic −𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑟𝑡+1 + 𝛾𝑉𝑣(𝑠𝑡+1) − 𝑉𝑣(𝑠𝑡) 𝑟𝑡+1 + 𝛾𝑉𝑣 𝑠𝑡+1 − 𝑉𝑣 𝑠𝑡 2 1. Actor의 loss function 2. Critic의 loss function 크로스 엔트로피 시간차 에러 시간차 에러
  • 63. Actor-Critic Actor 𝑠𝑡 𝑠𝑡+1 Env 𝑟𝑡+1𝑎 𝑡 Critic −𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑟𝑡+1 + 𝛾𝑉𝑣(𝑠𝑡+1) − 𝑉𝑣(𝑠𝑡)
  • 64. A3C
  • 65. A3C Actor-Critic과 다른 점 Actor를 업데이트하는 과정에서 1. Multi-step loss function 2. Entropy loss function
  • 66. A3C 1. Multi-step loss function −𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑟𝑡+1 + 𝛾𝑉𝑣(𝑠𝑡+1) − 𝑉𝑣(𝑠𝑡) ↓ −𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑟𝑡+1 + 𝛾𝑟𝑡+2 + 𝛾2 𝑉𝑣(𝑠𝑡+2) − 𝑉𝑣(𝑠𝑡) ↓ −𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑟𝑡+1 + 𝛾𝑟𝑡+2 + ⋯ + 𝛾19 𝑉𝑣(𝑠𝑡+20) − 𝑉𝑣(𝑠𝑡) 20 step을 가본 후에 loss function이 하나 나온다? 1-step multi-step
  • 67. A3C 1. Multi-step l𝑜𝑠𝑠 𝑓𝑢𝑛𝑡𝑖𝑜𝑛 = 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑟𝑡+1 + 𝛾𝑟𝑡+2 + ⋯ + 𝛾19 𝑉𝑣(𝑠𝑡+20) − 𝑉𝑣(𝑠𝑡) + 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡+1 𝑠𝑡+1 𝑟𝑡+2 + 𝛾𝑟𝑡+3 + ⋯ + 𝛾18 𝑉𝑣(𝑠𝑡+20) − 𝑉𝑣(𝑠𝑡+1) + 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡+2 𝑠𝑡+2 𝑟𝑡+3 + 𝛾𝑟𝑡+4 + ⋯ + 𝛾17 𝑉𝑣(𝑠𝑡+20) − 𝑉𝑣(𝑠𝑡+2) + ⋯ + 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡+19 𝑠𝑡+19 𝑟𝑡+19 + 𝛾𝑉𝑣(𝑠𝑡+20) − 𝑉𝑣(𝑠𝑡+19) 20 step 마다 20개의 loss function을 더한 것으로 업데이트
  • 68. A3C 2. Entropy loss function 엔트로피의 정의: − σ𝑖 𝑝𝑖 𝑙𝑜𝑔𝑝𝑖  ”거꾸로” σ𝑖 𝑝𝑖 𝑙𝑜𝑔𝑝𝑖  gradient descent 하기 위해! 행동이 두 가지 일 때 행동 확률에 따른 엔트로피의 그래프
  • 69. A3C 2. Entropy loss function Actor-Critic의 loss function −𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑟𝑡+1 + 𝛾𝑉𝑣(𝑠𝑡+1) − 𝑉𝑣(𝑠𝑡) A3C의 loss function −𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡+19 𝑠𝑡+19 𝑟𝑡+1 + ⋯ + 𝛾19 𝑉𝑣 𝑠𝑡+20 − 𝑉𝑣 𝑠𝑡 ⋯ + σ 𝑡=0 19 σ𝑖 𝑝𝑖 𝑙𝑜𝑔𝑝𝑖 Entropy: exploration20개의 cross entropy: exploitation
  • 70. A3C Actor 𝑠𝑡 Env 𝑎 𝑡 Critic −𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑟𝑡+1 + ⋯ + 𝛾19 𝑉𝑣 𝑠𝑡+20 − 𝑉𝑣 𝑠𝑡 + ⋯ + σ 𝑡=0 19 σ𝑖 𝑝𝑖 𝑙𝑜𝑔𝑝𝑖(탐험) 𝑠𝑡+1 𝑎 𝑡+1𝑟𝑡+1 𝑠𝑡+2 𝑟𝑡+2 ⋯ 𝑠𝑡+20 𝑟𝑡+20 Thread 1  여러 개의 Thread Global Actor Global Critic
  • 71. 여기까지 A3C를 직관적 + 수식적으로 이해해봤습니다 질문