본문 바로가기

전체 글101

PG(Policy Gradient) Algorithm * Policy Gradient Algorithm(이하 PG 알고리즘) 은 높은 reward를 얻는 방향의 gradient를 따르도록 policy의 parameter를 최하는 알고리즘이다. REINFORCE 알고리즘 * 1992년 Ronald Williams가 소개한 가장 많이 사용되는 알고리즘 중 하나이다. 알고리즘은 아래와 같다. 1) NN(Neural Network) policy에 따라 여러 번에 걸쳐 게임을 플레이하고 매 step마다 선택된 action이 더 높은 가능성을 가지는 gradient를 계산한다. 이 때 gradient는 NN의 출력 $hat{p}$의 log값 $log(hat{p})$가 더 커지는 방향으로 gradient를 update한다. 이는 경사 하강법의 반대 기법을 사용하는 것(.. 2022. 1. 8.
신용할당 문제(Credit Assignment Problem) * 만약 각 step에서 agent가 취해야 될 가장 적절한 action을 알고 있다면 이 action을 target 확률로 하여 추정된 확률과 target 확률 사이의 crossentropy를 계산하면 될 것이다. 하지만 강화학습에서는 가장 적절한 action같은 건 고려하지 않는다. 다만, reward를 통해서만 agent가 action을 결정할 뿐이다. * 하지만 이 agent는 reward를 받았을 때 어떤 action 때문인지 알 수가 없다. 이를 credit assignment problem이라고 한다. 예를 들어 cartpole환경에서 100 step을 움직인 후 막대가 떨어졌다고 해보자. 100 step까지는 reward가 계속적으로 주어졌을 것이다. 하지만, 어떤 action이 옳았는지,.. 2022. 1. 8.
강화학습의 신경망 정책 * 우리가 사용했던 cartpole환경의 경우 action이 2가지 밖에 없으므로 binary classification을 하는 신경망과 같이 마지막 layer에 neuron 1개를 적용하고 sigmoid함수를 통해 0~1사이의 확률을 출력하도록 구성한다. 이 때 출력된 확률 p는 threshold를 통해 0.5 이상이면 action 0을 출력하는 등의 처리를 해주는 것이 아니라, 정책을 sampling하는데 사용한다. 무슨 말이냐면 p가 0.3일 경우 0.3의 확률로 action 0을 선택하게 된다는 것이다. 이렇게 random sampling 과정을 추가하는 이유는 agent가 새로운 행동을 exploring하는 것과 잘 할 수 있는 행동을 exploiting하는 것의 균형을 맞추기 위해서이다. 다시.. 2022. 1. 8.
OpenAI gym OpenAI Gym * 강화학습을 위해서는 Agent와 환경을 구축해야 한다. 물리적으로 구축하려면 많은 제약이 있기 때문에 이를 가상으로 구축할 수 있는 서비스를 제공하는 툴킷이 존재한다. 지금부터 소개할 OpenAI Gym이다. 참고로 이 포스팅에서는 colab을 사용하고 있다. import gym gym.envs.registry.all() #가능한 environment 목록 # dict_values([EnvSpec(Copy-v0), EnvSpec(RepeatCopy-v0), EnvSpec(ReversedAddition-v0), EnvSpec(ReversedAddition3-v0), EnvSpec(DuplicatedInput-v0), EnvSpec(Reverse-v0), EnvSpec(CartPole.. 2022. 1. 8.