강화학습의 변천사

Markov Chain은 언어모델, 음성인식, 강화학습과 연관된 학습을 하다 보면 가장 근간이 된 사상이라고 생각이 든다. 그 이유는 바로 state와 transition probability란 것이 확률적 기반 학습을 진행할 때 가장 뿌리가 되는 부분이기 때문인 것 같다.

Deterministic Policy와 Stochastic Policy이 모두 state에 대한 action을 기반을 설계되어 있고 이 action이라는 것은 state transition probability와 큰 연관성이 있다. state transition probability에 대해서 생각해 보면 결국 action space가 discrete하냐 continuous하냐에 따라 즉 action이 일어나는 환경에 따라 다르게 접근하는 방법론이 태동할 수 밖에 없는 물리적 한계가 있다는 말과 같다고 봐도 된다.

이를 바탕으로 model-based learning은 유한한 상황에서 episodic task를 한정하여 똑같은 일이 반복된다는 것과 dynamic한 environment를 알고 있다는 가정하에 dynamic programming방법을 활용하여 value iteration과 policy iteration을 수행하는데 있다. 이미 위 가정에서 environment를 알고 있기 때문에 transition probability와 reward function을 정의할 수 있다. 여기서 장점은 bootstrapping이 가능하다는 것이다 bootstrapping이 가능하다는 것은 episode 끝까지 갈 필요없이 한번 갈 때 마다 다음 state의 값 기반으로 현재 state에대한 update가 가능하다는 것이다.

model-free learning은 environment를 알 수 없기 때문에 sampling을 활용하여 주어진 환경에 대해 monte carlo method로 상황을 추정하여 학습을 하는 방법론이다.
monte carlo method의 최고 장점은 model-free라는 것이다.

model-based learning의 bootstrapping이라는 장점과 model-free learning의 model-free라는 장점을 차용하여 탄생한 것이 바로 Temporal Difference Learning이다. off-policy환경에선 Q-learning이라고 불리고 on-policy환경에선 SARSA라고 불린다.

Deep Q Network
State를 Input으로 하여 Neural Network에 전송하면 Output은 각각의 Action에 대한 Q값이 나오는 형태이다. Q-learning이라고 하는 것은 Q-Table기반으로 State와 Action Pair를 어떤 Q값으로 Mapping해 주는 Function 즉 Q-Function을 학습하는 것이다. 하지만 Target값이 자꾸 커짐에 따라 overestimation하는 문제가 발생한다.

Double DQN
바로 위의 Target값이 자꾸 커짐에 따라 overestimation의 문제가 발생하는 것을 해결하기 위해 나온 방법
이는 on-line network에서 가장 높은 a값을 주는 action을 골라서 그 action을 Target Network에 input으로 하여 그 때 나오는 action값을 선택하겠다는 것이다. Target Network는 중간에 한 번 copy가 된다.
non-best action이 높아진 상태에서 Q-target network에 있으면 그 action을 선택하는 기존의 방법이 아니라 해당 action에 대해 Q-target network 값을 사용하여 overestimation문제를 완화시키겠다는 것이다.

Dueling DQN
state의 value를 estimation하는 부분과 그 state에서 action의 가치를 산출하는 부분을 분리하겠다.
분리하였을 때 Q값이 value 때문에 큰 것인지 action 때문에 큰 것인지가 불분명하다는 문제가 발생한다.

어떤 state에서 어떤 action기존의 Value-based RL의 approach를 적용한 방법론은 Q-learning(Q-Table)과 DQN이 있는데 모두 Q값을 구하는 데 초점을 맞추고 있다. DQN의 경우 continuous action space에 적용되기는 쉽지 않아 양자화(discretize)를 활용하여 continuous를 discrete하게 변환하여 적용하고 있다.

Policy Gradient Method(Policy Gradient Algorithm) = REINFORCE
Policy-based RL 방법론은 Q값을 구하지 않고 optimal policy를 구하겠다는 것이다. 기본적으로 stochastic policy를 활용할 것인데 stochastic policy의 probability distribution을 어떻게 구할 것이냐?
probability distribution을 neural network를 사용해서 function을 approximation하겠다는 것이다.

Policy Gradient Algorithm with Reward-To-Go
어떤 episode에서 어떤 action을 선택해서 갔는데 중간에 어떤 action들을 사용했는지 action의 가치를 전체적으로 볼 것이냐 여기까지 진행한 것은 어쩔 수 없는 선택이였다고 보고 그 이후 얼마나 잘 진행하였는가로 볼 것이냐 하는 것을 확인하는 방법론이다.

Policy Gradient Algorithm with Baseline
기존의 Policy Gradient Algorithm with Reward-To-Go에서 V(St) State의 가치를 빼고 action의 가치를 보고 싶다. Main Network는 Policy Network이고 Baseline이 Value Network이다.

Actor-Critic Method
Stochastic Policy이고 on-policy 방법론인데 Actor가 Policy Network이고 Critic은 Value Network이다. Actor-Critic은 결과적으로 Policy Gradient할 때 사용하는 방식이 advantage function을 사용해서 parameter를 update하는 방법이다.

Deep Deterministic Policy Gradient(DDPG)
Deterministic Policy이고 off-policy actor-critic이다. action space가 continuous하다는 가정을 전제로 한다. main critic network가 있고 gradient decent하면서 parameter를 update하여 target critic network에 soft replacement하여 반영한다. Actor Network의 경우 deterministic policy를 사용하기 때문에 exploration-exploitation dilemma에서 자유롭지 못하다. 이를 해결하기 위해 normalization방법으로 Gaussian Noise를 더해준다.

Twin Delayed DDPG(TD3)
추정값으로 인해 생기는 문제 overestimation의 해소를 위한 방법론이다.
Clipped double Q learning – Q값을 두개 계산하여 minimum한 값을 사용
Delayed policy update – critic(value network)은 자주 actor(policy network)는 가끔 update 해준다.
Target Policy Smoothing – 비슷한 action의 가치를 비슷하게 만들자
main actor, target actor, critic_1, critic_1_target, critic_2, critic_2_target 총 6개 network사용한다.

Soft Actor Critic(SAC)
stochastic policy이고, off-policy에 entropy개념을 적용한 것이다.
on-policy는 episode learning을 하면서 transition을 collection하는데 transition을 collection하기 위한 policy와 update policy가 같다. 단점으로는 어떤 policy가 있는데 policy로 부터 transition을 모아서 update를 하면 policy가 변경되는데 기존에 모아놓았던 Transition을 다시 사용할 때 문제가 된다.
문제가 되는 부분은 내가 optimize하고 있는 policy와는 다른 policy와 관련된 정보를 가지고 training하기 때문에 training focus가 안 맞는 문제이다.
이 문제를 극복하기 위해 off-policy에 entropy개념을 적용하였다.
entropy의 목적은 동일한 return값이라면 혹은 비슷한 return값이라면 action에 대한 점수가 어떤 순간에는 높고 다른 순간에는 점수가 낮은 policy보다는 그냥 smooth하게 비슷비슷한 점수가 높게 나오는 policy가 좋다는 것이다. 이를 maximum entropy reinforcement learning 또는 entropy regularized reinforcement learning이라고 부른다. entropy가 높으면 probability distribution이 펴져있다는 것이고, entropy가 낮다는 건 특정 action이 선택될 확률이 굉장히 높다는 것이다.

Proximal Policy Optimization(PPO)
Direction of the steepest ascent하는 것을 trusted region을 통해 new policy와 old policy 조절을 통해 급격하게 이동하다가 추락하는 것을 방지하자는 것이다.

위와 같이 다양한 강화학습 방법론이 탄생하고 진화하고 있지만 강화학습이 실생활에서 잘 활용되지 않는 부분은 바로 설계가 쉽지 않다는 부분이다. 이를 해결하기 위해서는 overestimation 문제를 기술적으로 해결하는 부분도 물론 중요하지만 현실상에서 다양한 수렴 포인트를 확인하여 안정성이 보장되는 서비스로 탑재 가능하도록 하려는 노력이 필요하다. 주식 시장에 많은 사람들이 강화학습으로 실시간 트레이닝을 하려는 노력을 하고 있지만 실제로 효용성이 있다는 것은 듣지 못하였다. 이는 어찌보면 당연한 것인지도 모르겠다.

Tagged

Leave a Reply

Your email address will not be published. Required fields are marked *