
강화학습
중요도 샘플링 (Importance Sampling)
중요도 샘플링이랑 다른 분포에서 샘플링된 값을 가지고, 구하고자 하는 분포(타깃 분포)에서의 기댓값을 유추하는 방법이다.
랜덤 변수 x가 분포 b에서 샘플링 되었다고 가정해보자:
Sample: x b
Estimate: Eπ[X]
여기서 우리는 X의 기댓값을 구하고 싶지만, 분포 b에서의 샘플 평균을 그대로 사용할 수는 없다.
왜냐하면 이 방식으로 구하게 되면 타깃 분포에서의 기댓값이 아닌 분포 b에서의 기댓값이 구해지기 때문이다.
먼저 기댓값의 정의를 다시한번 살펴보자:
(0)Eπ[X]˙=∑x∈Xxπ(x)
(1)=xπ(x)b(x)b(x)
(2)=xπ(x)b(x)b(x)
(3)=xρ(x)b(x)
(4)=Eb[Xρ(X)]
(0) X의 기댓값은 일어날 수 있는 모든 결과 x에 각 x가 일어날 확률 π(x)를 곱해 모두 더한 것이다.
(1) 그리고 각 x에 분포 b에서의 확률을 각각 분자와 분모에 곱해준다.
이는 1을 곱한것과 같기 떄문에 수식상으로는 아무 문제가 없다.
(2) 그리고 π와 분자의 b를 맞바꾸면 비율이 된다.
이 비율을 중요도 샘플링 비율이라고 부른다.
(3) 이 비율은 보통 ρ로 표기한다.
(4) x와 중요도 샘플링 비율을 새로운 랜덤변수로 간주한다면,
우리는 이를 b에서의 기댓값으로 바꿀 수 있다.
위에서 보이는 중요도 샘플링은 매우 복잡해 보일 수 있다.
하지만 이를 몬테카를로 샘플링을 사용해 표현하면 매우 쉬워진다.
우리는 그저 x가 일어날 X에서의 확률과 b에서의 확률의 비율을 구해 곱해주고, 이를 평균하면 된다.
Eb≈1n∑ni=1xiρ(xi)
xi b
예제)

위 두가지 다른 분포 b와 π를 통해 중요도 샘플링을 예를 들어 살펴보자.
먼저 우리는 실제 X 기댓값이 2.2라고 가정한다.
분포 b에서 샘플링을 한 값이 각 x=[1,3,1] 이라고 하자.
b에서 이와 같이 샘플링될 확률은 각각 [.85,.5,.85] 이다.
그리고 이를 π에서 샘플링 할 확률은 각각 [.3,.1,.3] 이다.
중요도 샘플링을 통해 샘플 평균을 구하는 방법은 다음과 같다:
1n∑ni=1xiρ(xi)
(1×.3.85)+(3×.1.05)+(1×.3.85)3=2.24
이는 우리가 위에서 본 기댓값 2.2와 유사한 수치이다.
몬테카를로 예측 (Monte-Carlo Prediction)
그렇다면 이를 몬테카를로 예측에서 어떻게 사용할 수 있을까?
다음과 같이 각 에피소드들의 리턴이 있다:
average(Returns[0],Returns[1],Returns[2])
우리는 행동 정책 b를 따라 몬테카를로 기법을 통해 얻어진 결과값들은 정책 π를 학습시키는데 그대로 사용될 수 없다.
이 역시 중요도 샘플링을 적용해야 한다:
average(ρ0Returns[0],ρ1Returns[1],ρ2Returns[2])
하지만 이 실제 샘플들의 경우 비율 ρ를 어떻게 구할 수 있을까?
실제 샘플에서 중요도 샘플링을 하려면 우리는 각각 정책들의 궤적(trajectory)이 필요하다.
ρ=P(trajectoryunderπ)P(trajectoryunderb)
궤적의 비율을 맞추면, 이는 보상을 통한 결과값의 비율도 맞출 수 있다.
궤적의 비율
궤적의 분포란 임의의 상태 St에서 임의의 행동 At를 선택한 후 벌어질 수 있는 확률들의 집합니다:
P(At,St+1,At+1,...,ST|St,At:T)
이 확률은 St부터 ST까지 도달할떄까지의 모든 확률이다.
마르코프 속성으로 인해 우리는 이 확률을 작은 확률들로 분리할 수 있다:
b(At|St)p(St+1|St,At)×b(At+1|St+1)p(St+2|St+1,At+1)...p(ST|ST−1,AT−1)
그리고 이를 곱셈 표기법으로 합쳐서 표현할 수 있고, 이를 b에서의 궤적의 확률 분포로 정의한다:
∏T−1k=tb(Ak|Sk)p(Sk+1|St,Ak)
이제 위에서 정의한 궤적의 확률 분포를 비율 수식에 대입해보자:
ρt:T−1˙=∏T−1k=tπ(Ak|Sk)p(Sk+1|Sk,Ak)b(Ak|Sk)p(Sk+1|Sk,Ak)
ρt:T−1=∏T−1k=tπ(Ak|Sk)b(Ak|Sk)
각각의 상태 전환 확률은 분모와 분자에서 제거할 수 있기 때문에, 위 수식이 최종 비율이 된다.
위의 비율은 가치함수의 기댓값에도 대입하여 사용할 수 있다.
가치함수는 에이전트의 정책이 학습하는데 매우 중요하기 때문에, 이 역시 비율을 맞추어 계산해 주어야 한다.
vπ(s)=Eb[ρt:T−1G|St=s]
아래는 Off-Policy 에서의 몬테카를로 예측 알고리즘이다:

'데이터사이언스 > 강화학습' 카테고리의 다른 글
강화학습 - (19) SARSA (0) | 2020.10.30 |
---|---|
강화학습 - (18) 시간차 학습 (0) | 2020.10.04 |
강화학습 - (16) 오프 폴리시 (0) | 2020.10.04 |
강화학습 - (15) 입실론 그리디 (0) | 2020.10.04 |
강화학습 - (14) 몬테카를로 (0) | 2020.10.04 |