티스토리 뷰
Q1.강화학습의 목표는 무엇일까? => 마르코프 결정과정
- 주어진 환경에서 어떻게 행동해야 가장 높은 보상을 받을 수 있을지 알아내는 것
- 주어진 환경 = 상태가치함수 V(s), 행동가치함수 Q(s,a)
- 구하고자 하는 것 = 어떻게 행동 해야하는지 = 행동 정책 π*
Q2. 환경을 알고 있을 때 최적의 행동정책π* 은 어떻게 구해야 하는가? => 동적계획법
- 환경을 알고 있을 때 = 상태가치함수 V(s)와, 행동가치함수 Q(s, a)를 알고 있을때
- 환경을 안다는 것은, 모든 상태 (S), 상태천이Tensor (P), 어떤 상태에서 행동에 따른 보상 (R) 을 안다는 것이다
- 정책평가 = 주어진 행동 정책 π에서 상태가치, 행동가치 계산 Vπ(s), Qπ(s, a)
- 정책평가는 [bellman 방정식] 을 통해 수행
- 정책개선 = 기존보다 더 큰 상태가치와 행동가치를 가지는 새로운 행동 정책 π' 계산
- 정책반복 = 정책평가 + 정책개선
Bellman 방적식이란?
현재 상태의 가치를 구하는 공식
현재 가치 = 현재상태가 주어졌을 때, 도달할 수 있는 모든 미래의 상태로 부터 얻을 수 있는 보상의 현재가치의 합
행동 가치 = 현재상태와 행동정책이 주어졌을 때, 정책에 따른 행동으로 부터 얻을 수 있는 보상의 현재가치의 합
Q3. 환경을 모를때 최적의 행동정책π*은 어떻게 구해야 할까?
=> 몬테카를로, Temporal Difference 추정 = 가치기반 학습
- 환경을 모른다는 것 = 상태가치함수 V(s)와, 행동가치함수 Q(s, a)를 모른 다는 것
- 상태가치함수와 행동가치 함수를 추정 => 최적행동정책 구하기
- 추정한 환경을 바탕으로 정책 평가
- 몬테카를로 정책평가
- 주어진 행동 정책 π을 통해 Episode마다 모든 상태 탐색
- V(s) ← V(s) + α(Gt - V(s))
- V(s) 업데이트를 위해서 Episode에 포함된 모든 상태를 확인
- 분산이 크다/ 정확도는 높다
- Temporal Difference 정책평가
- V(s) 업데이트를 위해 일부 상태(n-step)만 확인 => Episode의 종결 필요 없음, 편향이 생김, 효율적, 상태변이가 반드시 마르코프 연쇄를 따라야함
- 현재 보상 Gt를 계산 할때 미래 상태 중 얼마나 뒤의 상태(n)까지 고려할 것인가에 따라 n-step TD가 결정
- n-step TD로 구한 미래 보상의 현재가치 합 = TD target => TD target - Gt = TD error
- 적절한 n을 구하기 위해 => λ(람다) 등장 => 온라인 형태로 만들기 어려움 => 잘 안씀
- 분산이 적다/ 정확도는 낮다 => n-step이 커질 수록 분산과 정확도 증가
- 몬테카를로 정책평가
- 추정한 환경을 바탕으로 정책 개선
- 몬테카를로 Control
- Greedy한 정책 개선은 새로운 가능성을 없앰 => ε-Greedy => 최적정책에 수렴 X => GLIE 수렴하는 ε
- 현재의 정책이 아닌 다른 행동 정책을 통해 정책 개선 => off policy MC control
- importance sampling 사용 => 분산더 커짐, 구현이 귀찮음 => 잘 안씀
- SARSA Control
- 현재 상태와 미래의 상태만 알면됨 S -> A -> R -> S' -> A' // 그래서 이름이 SARSA
- 현재의 정책이 아닌 다른 행동 정책을 통해 정책 개선 => off policy TD control (ex, Q-learning)
- Q-learning은 importance sampling 안씀, 구현 간편 => 하지만 과대평가 성향이 있음
- 몬테카를로 Control
- 추정한 환경을 바탕으로 정책 평가
Q4. 상태가치함수와 행동가치함수를 구하지 않고 곧바로 최적정책을 구할 수는 없을까?
- 환경을 추정하는 가치기반 학습의 문제점 = 행동이 많아지면 계산 어려움/ 확정적 행동
- 상태가치함수와 행동가치 함수를 추정하지 않고, 최적정책 구하기 => 정책경사(Policy gradient)
- 정책경사로 최적정책 구하는 일반 과정
- 정책(θ)의 성능(좋고, 나쁨)을 판단하는 기준 마련 한다 J(θ)
- J(θ)를 정책 θ에 대해 편미분 => 정책 변화에 따른 가치변화를 구한다 ∇J(θ) = Gt * lnπ(At | St)
- 경사 상승/ 경사 하강을 통해 => 보상을 극대화 할 수 있는 θ를 찾는다
- 정책경사 알고리즘
- REINFORCE
- Gt ← 미래 보상의 NPV (몬테카를로 방식) => 분산이 크다!!
- θ ← θ + α[ Gt * lnπ(At | St) ] (경사상승법)
- 정상상태 존재에 대한 가정, Bellman 방정식 사용
- 분산을 줄이기 위한 Tricks 1) baseline 2) Gt의 표준화
- Actor Critics [정책경사 + 가치기반 학습]
- Gt ← 추정된 행동가치 함수Q(s, a)를 통해 계산 => 분산이 크지 않다
- θ ← θ + α[ Q(s, a) * lnπ(At | St) ]
- Trajectory REINFORCE
- 정상상태 존재에 대한 가정, Bellman 방정식 사용 X
- J(θ) => E[R(τ)] (Tragectory의 기대 보상)
- ∇J(θ) => E[ Σ∇logπ(At | St) x ΣR(τ)] = Trajection의 확률 x Trajection의 보상
- 극대화의 의미 = Trajection의 보상이 크다면 해당 Trajection의 발생 확률을 높인다
- REINFORCE
728x90
'IT > Machine learning' 카테고리의 다른 글
[ML/python] python 코드 작성시 자잘한 내용들 (2023-01-23 updated) (0) | 2023.01.23 |
---|---|
[ML/강화학습] 강화학습의 기본 이론_ 몬테카를로를 활용한 정책반복 (0) | 2022.10.03 |
[강화학습] 강화학습 이론_비동기적 동적계획법 (0) | 2022.10.03 |
[강화학습] 최적의 행동은 어떻게 찾을까? _ 동적계획법 (feat 정책반복) (0) | 2022.10.03 |
[강화학습] 강화학습관련 수학이론_마르코프 결정 과정(MDP) (0) | 2022.09.30 |
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 알고리즘
- 비전공자
- IT기초
- It
- 파이썬
- 시스템투자
- 터틀트레이딩
- ET5X
- 일자별
- 가격데이터
- 사진크롤링
- 심리학
- PYTHON
- beautifulsoup
- 머신러닝
- 유니티
- C#
- 프로그래머스
- Anet
- 강화학습
- 랜덤맵
- 경영학
- requests
- 주식
- 스타트업
- 크롤링
- 마케팅
- 주식투자
- Unity
- json
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함