我们必须采取行动(A)从我们的开始状态过渡到我们的结束状态(S)。我们采取的每个行动将获得奖励(R)。 我们的行为可以导致正奖励或负奖励。 我们采取的行动的集合(A)定义了我们的策略(π),我们得到的奖励(R)定义了我们的价值(V)。 我们在这里的任务是通过选择正确的策略来最大化我们的奖励。 所以我们必须对时间t的所有可能的S值最大化。 旅行推销员问题 让我们通过另一个例子来进一步说明如何定义强化学习问题的框架。 上图:旅行推销员的例子。A–F表示地点,之间的连线上的数字代表在两个地点间的旅行成本。 这显示的是旅行推销员问题。推销员的任务是以尽可能低的成本从地点A到地点F。 这两个位置之间的每条连线上的数字表示旅行这段距离所需花费的成本。负成本实际上是一些出差的收入。 我们把当推销员执行一个策略累积的总奖励定义为价值。 这里, ● 一系列状态的集合是那些节点,开奖,即{A,B,C,D,E,F} ● 采取的行动的集合是从一个地方到另一个地方,即{A→B,C→D等} ● 奖励函数是节点的连线上的值,即成本 ● 策略是完成任务的“方式”,即{A - > C - > F} 现在假设你在位置A,在这个平台上唯一可见路径是你下一目的地的(亦称可观测的空间),除此之外所有都是未知的。 当然你可以用贪婪算法选择下一步最有可能的,从{A -> (B, C, D, E)}子集中选出{A -> D}。同样的你在位置D,想要到达F,你可以从{D -> (B, C, F)}中选择,可以看出由于{D -> F}路径花费最小,选择此路径。 到此为止,我们的规则是{A -> D -> F},价值为-120. 恭喜你!你刚刚完成了一个强化学习算法。这个算法被称作ε-贪心算法,以贪心方式解决问题。现在如果你(销售人员)想要再次从位置A到F,你总是会选择相同的策略。 其他的旅行方式? 你可以猜测到我们的策略属于哪一个类别么(例如,纯探索vs纯开发)? 可以看出我们选择的并不是最优策略,我们必须去一点点“探索”来发现最优策略。在这里我们使用的方法是基于策略的学习,我们的任务是在所有可能策略中发现最优策略。解决这个问题有很多不同的方式,简单列举主要类别如下: ● 基于策略,重点是找到最优策略 ● 基于价值,重点是找到最优价值,例如,累计奖励 ● 基于动作,重点是在执行每一步动作时,确定什么是最优动作 我会尝试在以后的文章中更深入地讲述强化学习算法,那时,你们就可以参考这篇强化学习算法调查的文章(https://www.jair.org/media/301/live-301-1562-jair.pdf)。(译者注:这里是原文作者的一个笔误。Q-learning,它可以用一个线性函数作为function approximator, 也可以通过列举每一个q-state的值来做。用神经网络来做Q-learning的function approximator应该是15年Google Deepmind发表在Nature的文章开始的,那篇文章中称该算法为deep-Q-network,后来统称为deep q learning) 4.强化学习的实践案例 我们会使用深度Q学习算法,Q学习是基于策略的,用神经网络来近似值函数的学习算法。Google使用该算法在Atari游戏中击败了人类。 让我们看看Q学习的伪代码: 初始化价值表‘Q(s,a)’. 观测到当前状态点’s’. 基于策略选择该状态下的行动’a’(例如,ε-贪心) 采取行动并观察奖励值’r’及新状态点’s’ 根据上面描述的公式及参数,用观测到的奖励值及下一状态可能的最大奖励值更新状态点新值。 设置新状态,重复此流程直至到达最后目标点。 Q学习算法的简单描述可以总结如下: 该图是Q学习算法流程图 我们先看看什么是Cartpole问题,再继续编程提供解决方案 (责任编辑:本港台直播) |