
강화학습
몬테카를로 가치 근사
가치 예측 (Value Estimation)
가치함수의 예측은 지도학습과 비슷한 점이 있다.
몬테카를로 예측에서는 상태 Si를 받아 반환값 Gi를 예측하는 것을 지도학습과 비슷하다고 볼 수 있고,
시간차학습에서는 상태 Si를 받아 보상과 미래가치 Ri+1+γvi+1를 예측하는 것을 비슷하다고 볼 수 있다.
여기서 v를 함수 근사로 표현하면 ˆv(Si+1,w)로 표현할 수 있다.
하지만 강화학습에서는 지도학습과는 다른점이 존재한다.
지도학습은 어떠한 정답(ground truth label)이 존재한다.
하지만 강화학습은 에이전트의 자체적은 다음 상태에 대한 예측값이 사용된다.
(몬테카를로에서는 Gi, TD에서는 γˆv(Si+1,w)).
따라서 강화학습에서는 예측모델의 타겟이 계속 변하게 된다.
또한 한가지 더 다른 점은, 강화학습은 정해진 배치(batch)로 학습하는 학습법이 아니라는 것이다.
특정 지도학습 기법들은 랜덤배치로만 동작하는 기법들이 존재한다.
데이터가 한건한건 별개로 들어오는 상황을 online-setting이라고 하는데,
온라인 상황에서 활용될 수 있어야만 강화학습이라고 불릴 수 있다.
가치 에러 목적함수
강화학습이 지도학습과 비슷하게 학습을 하려면, 최적화를 위한 목적이 있어야 한다.
다음과 같은 에피소드가 존재한다고 하자:
{(S1,vπ(S1)),(S2,vπ(S2)),(S3,vπ(S3)),...}
이 에피소드를 데이터로 우리는 가치함수를 근사할 수 있는 가중치 w를 학습시켜야 한다.
가중치 w는 모든 상태 s에 대해서 vπ(s)를 근사할 수 있도록 학습되어야 한다:
ˆv(s,w)≈vπ(s)
우리는 모든 상태 s에 대해서 가치 v를 완벽하게 학습할 수는 없다.
하지만 w가 주어진 상태에 대해서 비교적 정확한 v를 학습할 수 있도록 해야 한다.
이를 학습하기 위해서는 우리의 근사값이 실제 가치함수와 어느정도 차이가 있는지에 대한 산정이 필요하다.
예제)
다음과 같이 선형 함수 근사를 사용하고, 모든 상태는 연속적이라고 가정해보자.
우리가 학습할 가치함수는 ˆv으로표기되고실제가치함수는v_{\pi}$로 표기된다.

한 상태 s에 대헤서 우리는 가치가 얼마나 다른지를 산정해야 하고,
보통 지도학습에서는 이를 평균제곱오차(mean squared error)로 산정한다.
∑sμ(s)[vπ(s)−ˆv(s,w)]2
여기서 한 상태에 대해 갱신하는 것은 다른상태에서는 더 많은 에러를 낳게 될 수 있음을 의미한다.
따라서 우리는 모든 상태에 대해 에러를 반영할 수 있어야 한다.
여기서 중요한 것은 s가 모든 상태에 대해서 같은 수를 갖지 않는다는 것이다.
에이전트가 상태si에 얼마나 많이 방문했느냐에 따라 횟수가 달라지게 된다.
이 때문에 위 수식에서는 각 상태의 평균 μ(s)를 곱해주게 된다.
이를 통해 평균제곱오차를 사용하면, 더 많이 방문된 상태에 대해 더 많은 갱신이 이뤄지게 된다.
당연히 여기서 w의 학습은 머신러닝/딥러닝에서 사용하는 경사하강을 통해 학습하게 된다.
∇∑sμ(s)[vπ(s)−ˆv(s,w)]2
경사하강법
이제 수식을 경사하강법을 사용해 풀이해본다.
(1) ∇∑sμ(s)[vπ(s)−ˆv(s,w)]2
(2) =∑sμ(s)∇[vπ(s)−ˆv(s,w)]2
(3) =−∑sμ(s)2[vπ(s)−ˆv(s,w)]∇ˆv(s,w)
(2) 위 수식에서 경사는 미적분 법칙에 의해 summation안쪽으로 들어올 수 있다.
(3) 그리고 체인룰을 통해 제곱을 풀어낸다.
여기서 vπ의 제곱은 경사 미분에 의해 사라진다.
사라지는 이유는 vπ는 우리가 갱신하고자 하는 w와 관계없는 항이기 때문이다.
따라서 우리는 위 수식에서 vπ와 ˆv의 차이만큼 w를 갱신하게 된다.
여기서 한가지 문제가 발생한다.
우리는 상태의 분포 μ를 알고있지 않다.
이를 해결하기 위해 우리는 확률적 경사하강을 사용한다:
wt+1˙=wt+α[vπ(s)−ˆv(s,w)]∇ˆv(s,w)
모든 경사하강에서 그렇듯 위 수식에서 α는 학습률이라는 하이퍼파라미터 이다.
이제 마지막 한가지 문제만이 남아있다.
우리는 vπ에 대해서도 알지 못한다는 것이다.
이를 해결하기 위해 우리는 vπ(st) 대신 반환값 Gt를 대입한다:
wt+1˙=wt+α[Gt−ˆv(s,w)]∇ˆv(s,w)
이것이 가능한 이유는 바로 vπ(st)의 기댓값이 Gt이기 때문이다:
vπ(s)˙=Eπ[Gt|St=s]
위에 설명한 모든것을 포함하고 있는 몬테카를로 경사 알고리즘은 다음과 같다:

'데이터사이언스 > 강화학습' 카테고리의 다른 글
강화학습 - (24-1) Deep SARSA 코드예제 (0) | 2020.12.07 |
---|---|
강화학습 - (24) 시간차 가치 근사 (0) | 2020.11.21 |
강화학습 - (22) 가치함수의 근사 (0) | 2020.11.15 |
강화학습 - (21) 모델 (0) | 2020.11.15 |
강화학습 - (20-2) Expected SARSA 코드예제 (0) | 2020.11.15 |