嗨, 欢迎回来
在上一节课中, 我们完成了对环境的定义, 我们的价值观,
我们的惩罚和奖励, 以及我们在环境中的行为｡
在这节课中, 我想介绍的是培训, 以及如何培训模型背后的想法,
并帮助你开始｡
然后在下一节课中提供解决方案, 并对所涉及的步骤进行更详细的分解｡
因此, 我们需要训练模型所需的训练｡
这是一种方法, 我们可以在以下步骤中使用它来训练模型｡
我们要选择一个随机的非终结状态, 它就是我们的代理的白色方块,
这就是我们在训练中要开始的情节｡
然后, 我们当然要为当前状态选择一个操作｡
我们需要让我们的代理人能够在环境中移动｡
所以我们和我们的代理在这个挑战中的行动将使用Epsilon Greedy来选择｡
此算法通常会为代理选择最有希望的操作, 但偶尔会选择不太有希望的选项｡
为了鼓励代理人探索环境, 我们确实要找到最优的策略｡
然后, 我们要执行所选的操作并转换到下一个状态｡
移动到下一个位置｡
我这么说的原因是, 我希望你们能思考一下, 如何把它分解成函数,
来解决这个问题｡
接下来, 我们需要获得前往新状态的奖励, 然后计算时间差｡
我们必须更新动作对中前一状态的Q值, 如果新的或当前状态是终结状态, 则我们将转到终结状态｡
否则我们就得进行第二步了｡
所以整个过程, 我们的目标是运行1000集来训练｡
这将为给予或我们的代理商提供足够的机会来计算项目包装区域与示例城市中其他位置之间的最短路径｡
太棒了｡
所以请考虑一下你会如何处理这个问题, 我想给予你一个想法来尝试解决这个问题｡
在我们的解决方案中, 我们将使用以下函数｡
实际上, 我可以注释掉它, 因为它是一个代码单元格｡
我很抱歉｡
我们不要美元符号｡
我们想注释掉这些, 我会帮助你开始第一个｡
总的来说, 我们将使用这些函数来定义训练模型的步骤｡
为了帮助你开始, 让我们来看看在python中创建函数时,
我们将如何处理is终端状态, 首先, 我们当然希望按原样定义函数｡
终端状态｡
这些是函数的名字, 你们会看到这些名字, 它们会给予你们一个想法, 可能会帮助你们分解它｡
我们要做的是获取当前行索引和当前列索引｡
这将有助于给予我们代理人的位置, 我们可以在这里为我们的奖励添加一个true或false｡
所以我们需要if语句｡
那么让我们来设定我们的奖励｡
我们的电流｡
行索引｡
如果它们处于该状态, 则当前列索引等于-1｡
我们将返回false或其他值｡
我们还会再来的｡
是的｡
很简单｡
这就是我们如何得到我们的终结状态的概念, 如果它存在于终结状态, 我们就想得到起始位置｡
作为一个提示, 您可以看看如何使用当前行索引和当前列索引, 并使用random设置numpy｡
我们要将其随机初始化为环境行环境列｡
但是在下一节课中你们会看到一个分解｡
您将看到其余的函数以及一些注释, 以给予您了解这些函数｡
我真的希望你们能抓住这个机会来尝试一下, 因为这只是一个很棒的学习方式, 并帮助给予你一个想法｡
这是给你的开始｡
所以别担心, 下节课你们会知道答案的｡
最后, 我们将实际分配Epsilon折扣系数､ 学习率､ 培训､
运行培训和查看结果等内容｡
太棒了｡
让我们在这里再停一次｡
试着解决这个问题｡
但是如果没有, 如果你想继续学习, 下一节课你会得到,
定义这些函数的答案｡
好吧, 我们下节课再见｡