본문 바로가기

Deep Learning/Hands On Machine Learning34

신용할당 문제(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.
강화학습 기본 18.1 보상을 최적화하기 위한 학습 * 강화학습에서 소프트웨어 Agent는 Observation을 하고 주어진 Environment에서 action을 한다. 이 action에 따른 reward는 positive reward, negative reward로 구분된다. 이 reward를 최대로 하는 것이 강화학습 Agent의 목표가 된다. * positive reward가 존재하지 않을 수도 있다 negative reward를 최소로 하는 것이 목표가 되는 것도 가능하다. 또한 우리가 쉽게 생각할 수 있는 자율주행과 같은 분야 외에도 물리적인 action을 취하지 않는 분야, 예를 들어 목표 온도를 맞춰 에너지를 소비를 최소로 하는 등의 작업에서도 강화학습이 쓰일 수 있다. 18.2 정책 탐색 * Agen.. 2022. 1. 8.