O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
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....
A3C = Asynchronous Advantage Actor-Critic
1. 샘플 사이의 상관관계를 비동기 업데이트로 해결
2. 리플레이 메모리를 사용하지 않음
3. policy gradient 알고리즘 사용가능(A...
A3C = 비동기 + Actor-Critic
Actor-Critic = REINFORCE + 실시간 학습
REINFORCE = 몬테카를로 Policy gradient
A3C를 파헤치는 과정
1. Policy gradient의 수식 유도 과정에 대한 이해
2. REINFORCE 알고리즘 이해
3. Actor-Critic 알고리즘 이해
4. Actor-Critic 을 비동기식으로 업데이...
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 + ⋯ |𝑆𝑡 = 𝑠, 𝐴 ...
A3C
여러 개의 에이전트를 만들어서 각각 gradient를 계산하면?
𝑄 𝑆𝑡1
, 𝐴 𝑡1
− ෍ 𝑦𝑖 𝑙𝑜𝑔𝑝𝑖
Env1: 상태
(𝑆𝑡1
)
실제 행동
( 𝐴 𝑡1)
Gradient 계산
Env2: 상태
(𝑆𝑡2
...
A3C
비동기적으로 global network를 업데이트
𝑄 𝑆𝑡1
, 𝐴 𝑡1
− ෍ 𝑦𝑖 𝑙𝑜𝑔𝑝𝑖agent1 Gradient 계산
agent2
agent3
agent4
Env2에서 탐험
Env3에서 탐험
Env4에...
A3C
비동기적으로 global network를 업데이트
𝑄 𝑆𝑡3
, 𝐴 𝑡3
− ෍ 𝑦𝑖 𝑙𝑜𝑔𝑝𝑖
agent1
Gradient 계산
agent2
agent3
agent4
Env2에서 탐험
Env1에서 탐험
Env4...
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)
• 정책 기반 강화학습
정책을 업데이트할 때마다 어떤 방향으로 업데이트할 지에 대한 기준
 목표함수...
목표함수
• 에이전트가 정책 𝜋 𝜃에 따라서 가게 되는 “경로”를 생각해보자!
• 경로(trajectory) = 에이전트와 환경이 상호작용한 흔적
𝜏 = 𝑠0, 𝑎0, 𝑟1, 𝑠1, 𝑎1, 𝑟2, ⋯ , 𝑠 𝑇
• 𝐽(...
Gradient ascent
• 𝐽(𝜃) 를 기준으로 어떻게 𝜃(정책신경망)을 업데이트할 것인가?
 𝜃에 대한 𝐽(𝜃)의 경사를 따라 올라가다(Gradient ascent)
𝜃′
= 𝜃 + 𝛼𝛻𝜃 𝐽(𝜃)
𝛻𝜃 𝐽 𝜃...
Policy gradient
𝝅 𝜽
𝑱 𝜽
Trajectory 𝜏
𝒙
𝒚
𝝅 𝜽′
𝑱 𝜽′
𝜽′ = 𝜽 + 𝜶𝜵 𝜽 𝑱(𝜽)
REINFORCE
수식 주의!!
수식이 많이 나옵니다
Policy gradient 수식 유도
• Policy gradient의 정책 업데이트식  핵심은 Policy gradient
𝜃 ← 𝜃 + 𝛼𝛻𝜃 𝐽(𝜃)
• Policy gradient의 기본 알고리즘 REINFO...
Policy gradient 수식 유도
목표함수의 정의
𝐽 𝜃 = 𝑬 σ 𝑡=0
𝑇−1
𝑟𝑡+1 | 𝜋 𝜃
기대값 = (x일 확률 × x일 때의 값)의 x에 대한 합
ex) 주사위 기대값
𝑬 𝑓(𝑥) = ෍
𝑥
𝑝 𝑥 ...
Policy gradient 수식 유도
𝜏 = 𝑠0, 𝑎0, 𝑟1, 𝑠1, 𝑎1, 𝑟2, ⋯ , 𝑠 𝑇
목표함수의 정의
𝐽 𝜃 = 𝑬 ෍
𝑡=0
𝑇−1
𝑟𝑡+1 | 𝜋 𝜃 = 𝑬 𝜏 𝑟1| 𝜋 𝜃 + 𝑬 𝝉 𝑟2| 𝜋 ...
Policy gradient 수식 유도
양변에 𝛻𝜃 를 취하기(미분하기)
𝛻𝜃 𝐽 𝜃 = 𝛻𝜃 𝑬 σ 𝑡=0
𝑇−1
𝑟𝑡+1 | 𝜋 𝜃
= 𝛻𝜃 σ 𝑡=0
𝑇−1
𝑷 𝑠𝑡, 𝑎 𝑡|𝜏 𝑟𝑡+1
= σ 𝑡=0
𝑇−1
𝛻𝜃...
Policy gradient 수식 유도
𝛻𝜃 𝐽 𝜃 = σ 𝑡=0
𝑇−1
𝛻𝜃 𝑷 𝑠𝑡, 𝑎 𝑡|𝜏 𝑟𝑡+1
= ෍
𝑡=0
𝑇−1
𝑷 𝑠𝑡, 𝑎 𝑡 𝜏
𝛻𝜃 𝑷 𝑠𝑡, 𝑎 𝑡 𝜏
𝑷 𝑠𝑡, 𝑎 𝑡 𝜏
𝑟𝑡+1
= ෍
𝑡...
Policy gradient 수식 유도
𝛻𝜃 𝐽 𝜃 = ෍
𝑡=0
𝑇−1
𝑷 𝑠𝑡, 𝑎 𝑡|𝜏 𝛻𝜃 𝑙𝑜𝑔𝑷 𝑠𝑡, 𝑎 𝑡|𝜏 𝑟𝑡+1
= 𝑬 𝝉 σ 𝑡=0
𝑇−1
𝛻𝜃 𝑙𝑜𝑔𝑷 𝑠𝑡, 𝑎 𝑡|𝜏 𝑟𝑡+1
→ ෍
𝑡=0...
Policy gradient 수식 유도
여기서 더 나아가기 위해서는 𝑷 𝑠𝑡, 𝑎 𝑡 𝜏 를 파헤쳐야 한다!
𝑷 𝑠𝑡, 𝑎 𝑡 𝜏 = 𝑷 𝑠0, 𝑎0, 𝑟1, 𝑠1, 𝑎1, 𝑟2, ⋯ , 𝑠𝑡, 𝑎 𝑡 𝜃
에이전트(ag...
Policy gradient 수식 유도
기대하시라 …
𝑙𝑜𝑔𝑷 𝑠𝑡, 𝑎 𝑡 𝜏
= 𝑙𝑜𝑔 𝑷 𝑠0 𝜋 𝜃(𝑎0|𝑠0)𝑷(𝑠1|𝑠0, 𝑎0)𝜋 𝜃(𝑎1|𝑠1) ⋯ 𝑷(𝑠𝑡|𝑠𝑡−1, 𝑎 𝑡−1)𝜋 𝜃(𝑎 𝑡|𝑠𝑡)
= ...
Policy gradient 수식 유도
기대하시라 …
𝛻𝜃 𝑙𝑜𝑔𝑷 𝑠𝑡, 𝑎 𝑡 𝜏
= 𝛻𝜃[𝑙𝑜𝑔𝑷 𝑠0 + 𝑙𝑜𝑔𝜋 𝜃 𝑎0 𝑠0 + 𝑙𝑜𝑔𝑷 𝑠1 𝑠0, 𝑎0 + 𝑙𝑜𝑔𝜋 𝜃 𝑎1 𝑠1 ⋯
+ 𝑙𝑜𝑔𝑷 𝑠𝑡 𝑠𝑡...
෍
𝑡=0
𝑇−1
𝑟𝑡+1 𝛻𝜃 𝑙𝑜𝑔𝑷 𝑠𝑡, 𝑎 𝑡 𝜏
= ෍
𝑡=0
𝑇−1
𝑟𝑡+1 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎0 𝑠0 + 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎1 𝑠1 + ⋯ + 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡
= ෍
𝑡=0
𝑇−1
𝑟𝑡+...
𝛻𝜃 𝐽 𝜃 = 𝑬 𝝉 ෍
𝑡=0
𝑇−1
𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 ෍
𝑡′=𝑡+1
𝑇
𝑟𝑡′
σ 𝑡′=𝑡
𝑇−1
𝑟𝑡′ 와 같은 단순 보상의 합  3가지 문제
REINFORCE
0.1 + 0.1 + ⋯ = ∞
1...
𝛻𝜃 𝐽 𝜃 = 𝑬 𝝉 ෍
𝑡=0
𝑇−1
𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 ෍
𝑡′=𝑡+1
𝑇
𝑟𝑡′
~𝑬 𝝉 ෍
𝑡=0
𝑇−1
𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 ෍
𝑡′=𝑡+1
𝑇
𝛾 𝑡′−𝑡−1
𝑟𝑡′
෍
𝑡′=𝑡+1
𝑇
...
𝛻𝜃 𝐽 𝜃 = 𝑬 𝝉 ෍
𝑡=0
𝑇−1
𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝐺𝑡
𝛻𝜃 𝐽 𝜃 ~ ෍
𝑡=0
𝑇−1
𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝐺𝑡
𝜃 ← 𝜃 + 𝛼𝛻𝜃 𝐽 𝜃 = 𝜃 + 𝛼 ෍
𝑡=0
𝑇−1
𝛻𝜃 𝑙𝑜𝑔...
1. 한 에피소드를 현재 정책에 따라 실행
2. Trajectory를 기록
3. 에피소드가 끝난 뒤 𝐺𝑡계산
4. Policy gradient를 계산해서 정책 업데이트
5. (1~4) 반복
REINFORCE
Policy...
REINFORCE의 문제
1. Variance가 높다
2. 에피소드마다 업데이트가 가능하다(on-line X)
몬테카를로  TD(Temporal-Difference)
REINFORCE  Actor-Critic
REI...
Actor-Critic
𝛻𝜃 𝐽 𝜃 = 𝑬 𝝉 ෍
𝑡=0
𝑇−1
𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝐺𝑡
෍
𝑡=0
𝑇−1
𝑬 𝒔 𝟎,𝒂 𝟎,⋯,𝒔 𝒕, 𝒂 𝒕
𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑬 𝒓 𝒕+𝟏,𝒔 𝒕+𝟏,⋯,𝒔 𝑻,𝒓 𝑻
[𝐺𝑡]
𝑬 ...
𝛻𝜃 𝐽 𝜃 = 𝑬 𝝉 ෍
𝑡=0
𝑇−1
𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑄 𝜋 𝜃(𝑠𝑡, 𝑎 𝑡)
~ ෍
𝑡=0
𝑇−1
𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑄 𝜋 𝜃(𝑠𝑡, 𝑎 𝑡)
만약 𝑄 𝜋 𝜃(𝑠𝑡, 𝑎 𝑡)를 알 수 ...
𝛻𝜃 𝐽 𝜃 ~𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑄 𝑤(𝑠𝑡, 𝑎 𝑡)
Advantage 함수 = 큐함수 – 베이스라인  Variance를 낮춰준다
큐함수 : 특정 상태, 특정 행동에 따른 값
가치함수 : 특정 상태, 전...
𝛻𝜃 𝐽 𝜃 ~𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑄 𝑤 𝑠𝑡, 𝑎 𝑡 − 𝑉𝑣(𝑠𝑡)
Q와 V를 둘 다 근사하는 건(ex 뉴럴넷) 비효율적
𝑄 𝑠𝑡, 𝑎 𝑡 = 𝑬[𝑟𝑡+1 + 𝛾𝑉 𝑠𝑡+1 |𝑠𝑡, 𝑎 𝑡]을 이용!
𝛻𝜃...
Actor-Critic
1. Actor
1) 정책을 근사: 𝜃
2) 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑟𝑡+1 + 𝛾𝑉𝑣(𝑠𝑡+1) − 𝑉𝑣(𝑠𝑡) 로 업데이트
2. Critic
1) 가치함수(Value function)을...
Actor-Critic
−𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑟𝑡+1 + 𝛾𝑉𝑣(𝑠𝑡+1) − 𝑉𝑣(𝑠𝑡)
𝑟𝑡+1 + 𝛾𝑉𝑣 𝑠𝑡+1 − 𝑉𝑣 𝑠𝑡
2
1. Actor의 loss function
2. Critic의 loss...
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)...
A3C
1. Multi-step
l𝑜𝑠𝑠 𝑓𝑢𝑛𝑡𝑖𝑜𝑛 = 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑟𝑡+1 + 𝛾𝑟𝑡+2 + ⋯ + 𝛾19
𝑉𝑣(𝑠𝑡+20) − 𝑉𝑣(𝑠𝑡)
+ 𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡+1 𝑠𝑡+1 𝑟𝑡+2 + ...
A3C
2. Entropy loss function
엔트로피의 정의: − σ𝑖 𝑝𝑖 𝑙𝑜𝑔𝑝𝑖
 ”거꾸로” σ𝑖 𝑝𝑖 𝑙𝑜𝑔𝑝𝑖
 gradient descent 하기 위해!
행동이 두 가지 일 때 행동 확률에 따른 ...
A3C
2. Entropy loss function
Actor-Critic의 loss function
−𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑟𝑡+1 + 𝛾𝑉𝑣(𝑠𝑡+1) − 𝑉𝑣(𝑠𝑡)
A3C의 loss function
−𝛻...
A3C
Actor
𝑠𝑡
Env
𝑎 𝑡
Critic
−𝛻𝜃 𝑙𝑜𝑔𝜋 𝜃 𝑎 𝑡 𝑠𝑡 𝑟𝑡+1 + ⋯ + 𝛾19 𝑉𝑣 𝑠𝑡+20 − 𝑉𝑣 𝑠𝑡 + ⋯ + σ 𝑡=0
19 σ𝑖 𝑝𝑖 𝑙𝑜𝑔𝑝𝑖(탐험)
𝑠𝑡+1 𝑎 𝑡+1𝑟𝑡+...
여기까지 A3C를
직관적 + 수식적으로
이해해봤습니다
질문
감사합니다
Terminou este documento.
Transfira e leia offline.
Próximos SlideShares
파이썬과 케라스로 배우는 강화학습 저자특강
Avançar
Próximos SlideShares
파이썬과 케라스로 배우는 강화학습 저자특강
Avançar
Transfira para ler offline e ver em ecrã inteiro.

Compartilhar

RLCode와 A3C 쉽고 깊게 이해하기

Baixar para ler offline

최근에 DeepRL에서 베이스라인 알고리즘이 된 A3C에 대해서 직관적으로 살펴보고 Policy gradient부터 시작해서 A3C까지 이론적으로 깊게 살펴본다.

RLCode와 A3C 쉽고 깊게 이해하기

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

    Apr. 2, 2020
  • seokhohong6

    Mar. 13, 2020
  • ssuser4accb0

    Mar. 3, 2020
  • ssuser344f49

    Jan. 23, 2020
  • JunseokKim6

    Nov. 29, 2019
  • ChoJunHeum

    Oct. 7, 2019
  • yourdukky

    Sep. 25, 2019
  • YoonNJune

    Sep. 11, 2019
  • InsuPark8

    Aug. 22, 2019
  • SangukRyu1

    Aug. 12, 2019
  • DanielLee55

    Jul. 30, 2019
  • JongBhinWoo

    Jul. 6, 2019
  • ssuserd37bda

    Apr. 21, 2019
  • JungsubLim1

    Mar. 26, 2019
  • SOOHYUNCHO8

    Feb. 21, 2019
  • JwawonSeo1

    Feb. 10, 2019
  • jamessungjinkim

    Feb. 1, 2019
  • HwanheeKim2

    Dec. 30, 2018
  • neo884

    Dec. 13, 2018
  • GyuhoLee5

    Oct. 22, 2018

최근에 DeepRL에서 베이스라인 알고리즘이 된 A3C에 대해서 직관적으로 살펴보고 Policy gradient부터 시작해서 A3C까지 이론적으로 깊게 살펴본다.

Vistos

Vistos totais

17.574

No Slideshare

0

De incorporações

0

Número de incorporações

242

Ações

Baixados

728

Compartilhados

0

Comentários

0

Curtir

45

×