Почему примеры keras-rl всегда выбирают линейную активацию в выходном слое?
Я - новичок в Обучении Укреплению. И у меня есть вопрос о выборе функции активации выходного слоя для агентов keras-rl. Во всех примерах, предоставленных keras-rl ( https://github.com/matthiasplappert/keras-rl/tree/master/examples), выберите функцию линейной активации в выходном слое. Почему это? Какой эффект мы бы ожидали, если бы я пошел с другой функцией активации? Например, если я работаю со средой OpenAI с дискретным пространством действия 5, я должен также рассмотреть возможность использования softmax в выходном слое для агента? Большое спасибо заранее.
1 ответ
Для некоторых агентов в keras-rl linear
Функция активации используется, даже если агенты работают с дискретными пространствами действий (например, dqn, ddqn). Но, например, CEM использует softmax
функция активации для дискретных пространств действия (чего и следовало ожидать).
Причина позади linear
Функция активации для dqn и ddqn - это ее политика исследования, которая является частью агента. Если мы рассмотрим класс политики разведки, используемый для них обоих, в качестве примера и метода select_action
мы увидим следующее:
class BoltzmannQPolicy(Policy):
def __init__(self, tau=1., clip=(-500., 500.)):
super(BoltzmannQPolicy, self).__init__()
self.tau = tau
self.clip = clip
def select_action(self, q_values):
assert q_values.ndim == 1
q_values = q_values.astype('float64')
nb_actions = q_values.shape[0]
exp_values = np.exp(np.clip(q_values / self.tau, self.clip[0], self.clip[1]))
probs = exp_values / np.sum(exp_values)
action = np.random.choice(range(nb_actions), p=probs)
return action
В процессе принятия решения для каждого действия, выход linear
функция активации последней dense
Слой трансформируется в соответствии с политикой разведки Больцмана в диапазон [0,1], а решение о конкретном действии принимается в соответствии с разведкой Больцмана. Вот почему softmax
не используется в выходном слое.
Вы можете прочитать больше о различных стратегиях исследования и их сравнении здесь: https://medium.com/emergent-future/simple-reinforcement-learning-with-tensorflow-part-7-action-selection-strategies-for-exploration-d3a97b7cceaf