저번주까지 진행했던 DQN은 Value-based RL이라고 할 수 있다. 즉 action-value function에 초점을 두어 Qfunction을 구하고 이를 바탕으로 policy를 구하는 방식이다. DQN 또한 Q-function을 예측하고 policy를 만들어낸다.
policy 자체를 예측해서 function approximator에서 policy자체가 나온다.
기존 방법(value-based rl)에 비해서 수렴이 더 잘되며 가능한 action이 여러개 이거나 action 자체가 연속적인 경우에 효과적이다. 또한 하나의 optimal한 action으로 수렴하는것이 아니라 sthocastic한 policy를 배울 수 있다. (ex. 가위바위보)
기존 value-based RL은 value function을 바탕으로 policy를 계산하므로 value function이 약간만 달라져도 왼쪽으로 가야하는 policy가 오른쪽으로 가는 식으로 크게 변화할 수 있어 안정성이 떨어지고, 가위바위보 같은 상황 설정에서는 각각의 행동을 같은 확률로 행해야 할 수 있는데 하나의 optimal한 policy만을 도출할 수 밖에 없다는 문제가 있다.
policy를 함수화 하여 최적의 파라미터를 구하기 위해서는 목적 함수의 존재가 필요하다.
이 그림의 세가지가 policy에 대한 목적 함수로 존재할 수 있고 그 중 1번째 혹은 3번째가 많이 사용된다.
간단하게 설명하자면
1번째는 첫번째 stated의 value function을 최대로 하고자 하는 것이 목표가 되고 3번째는 time-step마다 받은 reward들을 discount하지 않고 stationary distribution(해당 state에서 머무르게 될 확률의 분포)을 사용해서 계산하게 됩니다.
각각의 parameter를 epsilon만큼 변화 시켜보고 각각의 parameter에 대한 Gradient를 구하는 것. policy자체가 미분 가능하지 않더라도 작동 가능하다는 장점이 있지만 parameter space가 커질수록 비효율적이고 노이지한 방법이다.
즉 각각의 parameter를 기존의 parameter보다 미세한 양을 랜덤하게 변화시킨 t개의 policy를 생성하고 각각에서 object function을 계산해서 average score를 계산해 update 한다.
policy는 미분 가능함을 가정하고 gradient를 취해주게 된다.
objective function에 직접 gradient를 취하게 되면 결국
저번주까지 진행했던 DQN은 Value-based RL이라고 할 수 있다. 즉 action-value function에 초점을 두어 Qfunction을 구하고 이를 바탕으로 policy를 구하는 방식이다. DQN 또한 Q-function을 예측하고 policy를 만들어낸다.
policy 자체를 예측해서 function approximator에서 policy자체가 나온다.
기존 방법(value-based rl)에 비해서 수렴이 더 잘되며 가능한 action이 여러개 이거나 action 자체가 연속적인 경우에 효과적이다. 또한 하나의 optimal한 action으로 수렴하는것이 아니라 sthocastic한 policy를 배울 수 있다. (ex. 가위바위보)
기존 value-based RL은 value function을 바탕으로 policy를 계산하므로 value function이 약간만 달라져도 왼쪽으로 가야하는 policy가 오른쪽으로 가는 식으로 크게 변화할 수 있어 안정성이 떨어지고, 가위바위보 같은 상황 설정에서는 각각의 행동을 같은 확률로 행해야 할 수 있는데 하나의 optimal한 policy만을 도출할 수 밖에 없다는 문제가 있다.
policy를 함수화 하여 최적의 파라미터를 구하기 위해서는 목적 함수의 존재가 필요하다.
이 그림의 세가지가 policy에 대한 목적 함수로 존재할 수 있고 그 중 1번째 혹은 3번째가 많이 사용된다.
간단하게 설명하자면
1번째는 첫번째 stated의 value function을 최대로 하고자 하는 것이 목표가 되고 3번째는 time-step마다 받은 reward들을 discount하지 않고 stationary distribution(해당 state에서 머무르게 될 확률의 분포)을 사용해서 계산하게 됩니다.
각각의 parameter를 epsilon만큼 변화 시켜보고 각각의 parameter에 대한 Gradient를 구하는 것. policy자체가 미분 가능하지 않더라도 작동 가능하다는 장점이 있지만 parameter space가 커질수록 비효율적이고 노이지한 방법이다.
즉 각각의 parameter를 기존의 parameter보다 미세한 양을 랜덤하게 변화시킨 t개의 policy를 생성하고 각각에서 object function을 계산해서 average score를 계산해 update 한다.
policy는 미분 가능함을 가정하고 gradient를 취해주게 된다.
objective function에 직접 gradient를 취하게 되면 결국
이런 식이 나오게 된다.
이 식을 보면 스칼라인 reward를 곱해줌으로써 policy의 업데이트에 대한 정보를 주게 되는데 immediate reward만 사용하면 그 순간 순간에 대한 평가만이 반영되기 때문에 long-term reward인 action value function(q function)을 사용하겠다는 것인 policy gradient theorem이다.
→ stochastic policy 같은 경우 softmax로 표현하게 된다.
이전에는 모든 state에 대한 action value function을 알기 어려워서 approximation을 했었는데 policy자체를 update하려니 기준이 필요하고 이를 위해서 monte-carlo 방법을 사용하게 된다.
즉 episode를 한 번 가보고 reward들을 기억해 episode가 끝난 다음에 각 state에 대한 return을 계산하면 된다. 이를 REINFORCE알고리즘이라고 한다.
이런 식이 나오게 된다.
이 식을 보면 스칼라인 reward를 곱해줌으로써 policy의 업데이트에 대한 정보를 주게 되는데 immediate reward만 사용하면 그 순간 순간에 대한 평가만이 반영되기 때문에 long-term reward인 action value function(q function)을 사용하겠다는 것인 policy gradient theorem이다.
→ stochastic policy 같은 경우 softmax로 표현하게 된다.
이전에는 모든 state에 대한 action value function을 알기 어려워서 approximation을 했었는데 policy자체를 update하려니 기준이 필요하고 이를 위해서 monte-carlo 방법을 사용하게 된다.
즉 episode를 한 번 가보고 reward들을 기억해 episode가 끝난 다음에 각 state에 대한 return을 계산하면 된다. 이를 REINFORCE알고리즘이라고 한다.