Я новичок в области обучения усилению (RL) и Q-обучения в частности. У меня есть набор из 20 штатов и 9 действий. Моя цель - начать с какого-то случайного состояния и достичь конечного 20-го состояния с минимальным количеством шагов, выполняя действия. Я пытаюсь решить эту проблему, используя Q-learning.
состояния: [20,22, 24, ...., 40,44 ..., 50 .... 60] 20 состояний
действия: [(-, +), (-, 0), (-, -) ......] 9 действий
награды: пробовал как двоичную функцию вознаграждения, так и непрерывную целевую функцию формирования награды
начальные Q-значения: пробовал как одинаковые Q-значения, так и начальные смещенные по цели начальные Q-значения
Функция оптимизации:
Q[s][a] = Q[s][a] + alpha*(r + GAMMA*max_q_s2a2 - Q[s][a]) where
GAMMA (discount factor) = 0.9 and
alpha = ALPHA / update_counts_sa[s][a], ALPHA= 0.1
Я запускал эту проблему для 10 000–20 000 эпизодов и все еще мог видеть, что полученные значения Q приводят к достижению некоторого промежуточного состояния, такого как 40 (локальная оптима), большую часть времени, но не конечного состояния 60, все время , Я использую эпсилон-жадный для исследования. eps=0.5/t where t is updated after every 50 episodes, eps is (0,1)
Любые предложения о том, как решить эту локальную проблему оптимума? или это всегда проблема с RL (медленная конвергенция и локальная оптима)? Еще больше увеличить количество эпизодов? Кроме того, изученные Q-значения соответствуют или превосходят данную проблему в Q-обучении?