강화학습 겉햙기(5)[Deep RL]
이번에는 강화학습에 머신러닝을 살짝 섞어보겠습니다.
저번까지 강화학습에 전반적인 시나리오는 테이블 안 이였습니다.
그런데 여기서 문제가 있습니다. 바로 테이블의 칸이 많아질때 입니다.
만약 테이블의 칸이 10170이라면 어떻게 해야할까요?
우리는 테이블의 칸을 모두 저장한 후에 그 상태를 방문해야지만 학습이 가능하기때문에
실질적으로 불가능합니다.
이때 나온게 바로 함수입니다
이 함수를 도입하게되면 가지는 가장 큰 장점은 일반화입니다
우리가 상태별 가치를 학습하려면 모든 상태별 값들을 저장하여야 했지만, 여기서는 어림 짐작할수 있게 되었습니다.
뉴럴넷을 이용하여 vπ(s)를 학습하는 방법 : 상태 벨류의 값 Vtrue(s) 을 통한 구현
손실함수(L(θ)) = (Vtrue(s) - Vθ(s))2
정책함수 π 를 이용해 방문했던 상태 s 에 대해 계산
L(θ) = Eπ[(Vtrue(s) - Vθ(s))2]
이 계산을 하게되면 π가 자주 방문하는 상태의 가중치는 높아지고, π가 거의 방문하지 않는 상태의 가중치는 낮아진다.
L(θ)의 θ에 대한 그라디언트 계산 : Vtrue(s) 가 상수임을 이용한 체인룰 사용
∇θL(θ) = -Eπ[(Vtrue(s) - Vθ(s))∇θVθ(s)
● MDP 를 모를때
몬테 카를로 컨트롤 리턴 :
밸류 업데이트 하는 방식 :
기존 테이블 방식 - V(st) <- V(st) + α(Gt - V(st))
뉴럴넷 방식 - L(θ) = Eπ[(Gt - Vθ(s))2] -> θ' = θ + α(Gt - Vθ(st))∇θVθ(st))
TD 컨트롤 리턴 : TD 로 V 학습
밸류 업데이트 하는 방식 :
기존 테이블 방식 - V(st) <- V(st) + α(R + γV(st) - V(st))
뉴럴넷 방식 - L(θ) = Eπ[(R + γV(st) - Vθ(s))2] -> θ' = θ + α(R + γV(st) - Vθ(st))∇θVθ(st))