我是强化学习(RL)和Q学习的新手。我有一组20个州和9个动作。我的目标是从某个随机状态开始,通过执行动作以最短的步骤数达到最终的第20个状态。我正在尝试使用Q学习解决这个问题。
状态: [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 。我也在使用epsilon-greedy进行探索。 eps=0.5/t where t is updated after every 50 episodes, eps is (0,1)
关于如何解决此局部最优问题的任何建议?还是RL(慢收敛和局部最优)总是问题吗?进一步增加剧集数量吗?此外,学习到的Q值是否适合或过度适合Q学习中的给定问题?