강화 학습에서 부트 스트랩은 정확히 무엇입니까?


23

강화 학습에서 시간차 (TD) 방법은 부트 스트랩 방법입니다. 반면, Monte Carlo 방법은 부트 스트랩 방법이 아닙니다.

RL에서 부트 스트랩은 정확히 무엇입니까? RL의 부트 스트랩 방법은 무엇입니까?

답변:


22

RL의 부트 스트랩은 " 같은 종류 의 추정값 에 대해 업데이트 단계에서 하나 이상의 추정값 사용"으로 읽을 수 있습니다 .

대부분의 TD 업데이트 규칙에는 다음과 같은 SARSA (0) 업데이트가 표시됩니다.

Q(s,a)Q(s,a)+α(Rt+1+γQ(s,a)Q(s,a))

Rt+1+γQ(s,a)Q(s,a) 실제 값에 대한 추정치이며 TD 목표라고도합니다. 우리는 부분적으로 다른 Q 값을 업데이트하기 위해 Q 값을 사용하기 때문에 부트 스트랩 방법입니다. Rt+1 의 형태 , 단계에 대한 즉각적인 보상 및 상태 전이 ss 에서 소량의 실제 관측 된 데이터가 있습니다.

동등한 업데이트 규칙이있는 Monte Carlo와 대조 :

Q(s,a)Q(s,a)+α(GtQ(s,a))

어디 Gt 시간의 총 할인 보상이었다 t 이 상태에서 시작한이 업데이트에서 가정 s 액션 복용 a , 다음 에피소드가 끝날 때까지 현재의 정책을 따랐다. 기술적으로 Gt=k=0Tt1γkRt+k+1 여기서 T터미널 보상 및 상태의 시간 단계입니다. 특히이 목표 값은 기존의 다른 추정치 (기타 Q 값)를 전혀 사용하지 않으며, 환경으로부터의 일련의 관찰 (즉, 보상) 만 사용합니다. 이와 같이,이 보장되는 바이어스 의 참값의 추정값 Q(s,a) 는 기술적으로 한, 시료Q(s,a) .

부트 스트랩의 주요 단점은 Q(s,a) (또는 V(s) ) 의 시작 값이 무엇이든간에 바이어스된다는 것입니다 . 그것들은 대부분 틀 렸으며, 업데이트 시스템은 자기 참조가 너무 많고 실제 데이터가 충분하지 않기 때문에 전체적으로 불안정 할 수 있습니다. 이것은 신경망을 사용하는 정책 외 학습 (예 : Q- 학습)의 문제입니다.

부트 스트랩이 없으면 긴 궤적을 사용 하는 대신 종종 분산높아 지므로 실제로 추정값이 수렴되기 전에 더 많은 샘플이 필요합니다. 따라서 부트 스트랩 문제에도 불구하고 제대로 작동 할 수 있다면 학습 속도가 훨씬 빨라지고 종종 Monte Carlo 방식보다 선호됩니다.

길이가 다른 궤적의 결과를 혼합하여 부트 스트랩하는 Monte Carlo 샘플 기반 방법과 단일 단계 TD 방법 사이에서 타협 할 수 있습니다. 이것을 TD ( λ ) 학습 이라고 하며 SARSA ( λ ) 또는 Q ( λ ) 와 같은 다양한 특정 방법이 있습니다.


1
아마도 다른 질문이 될 것입니다. 응답 할 경우, 이유를 정확히 와 추정에 대한 Q ( S , A는 ) ? Rt+1+γQ(s,a)Q(s,a)
nbro

1
@nbro : 수렴에서 (이러한 방정식과 대부분의 RL은 MDP에 대한 Bellman 방정식으로 구동됩니다). 상태로 시작 발생한 실제 사건을보고 액션Q(s,a)=E[Rt+1+γQ(St+1,At+1)|St=s,At=a]sa 이면 기본적으로 해당 기대 값을 샘플링하는 것입니다. 문제는 Q에 대한 값 ( S t + 1 , A t + 1 )입니다.Q(St+1,At+1) 아직 수렴되지 않았으므로 샘플이 바이어스 것입니다.
Neil Slater

1
부트 스트래핑으로 전환하기 전에 MC 방법을 화상 으로 사용하지 못하게하는 것은 무엇입니까 ? 아니면 의 하위 사례로 간주 될 수 있습니까? λTD
n1k31t4

1
@ n1k31t4 : 아무것도 이것을 막을 수 없으며 유효한 RL 접근 방식이어야합니다. TD ( ) 와는 다르지만 두 알고리즘 모두에서 좋은 기능을 얻으려는 동일한 아이디어에 동기가 부여되었습니다. 시도해보고 학습 효율성을 TD ( λ ) 와 비교해야합니다. 튜닝 할 하이퍼 매개 변수가 있습니다. MC를 실행할 에피소드 수입니다. 보다 일반적인 버전은 λ 가 변경 되도록 허용하는 것 입니다 = 1로 시작하여 0.4로 줄이십시오 . 그러나, 2 개 하이퍼 매개 변수, 부패 속도와 대상이 λλλλλ=10.4λ
닐 슬레이터

@NeilSlater, when using bootstrapping, can it converge? I cannot understand why it should since Q(s',a') is just an arbitrary guess which then distorts the estimate for Q(s,a). Also, why does MC have a high-variance as compared to TD?
d56

4

In general, bootstrapping in RL means that you update a value based on some estimates and not on some exact values. E.g.

Incremental Monte Carlo Policy Evaluation updates:

V(에스)=V(에스)+α(V(에스))

TD(0) Policy Evaluation updates:

V(St)=V(St)+α(Rt+1+γV(St+1)V(St))

In TD(0), the return starting from state s is estimated (bootstrapped) by Rt+1+γV(St+1) while in MC we use the exact return Gt.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.