大家好, 欢迎回来
在上一节课中, 你们看到了我们如何使用帮助函数来真正设置我们的核心功能, 以训练我们的模型｡
因此, 我们有我们的终端状态, 我们的开始位置,
我们的下一个行动, 下一个位置和最短路径真正定义了我们的代理或环境将如何工作的大部分｡
我们最后要做的就是利用我们的训练来利用我们的训练｡
这是非常直接的意义上说, 我们需要包括什么, 我们如何去做, 是一个不同的故事｡
也就是说, 如果你们使用不同的方法, 或者你想定制它并进行实验,
强烈推荐｡
除此之外, 如果您使用了不同的方法, 并希望讨论它, 请随时在问答中分享｡
非常乐意和你讨论｡
这是一个很好的主意, 因为有很多方法可以解决这个问题, 你可能会找到一个更好的方法,
更有利｡
我们可以再看看利弊, 非常乐意讨论｡
好吧, 我会的
那我们该怎么办？
我们得开始训练了｡
为了我们的训练｡
我们想用Epsilon｡
所以基本上我们要采取的最佳行动的百分比, 而不是随机行动｡
让我们把ε设为0｡ 我们将对折扣因子和学习率做类似的处理｡
所以让我们把贴现因子设为0｡ 9.
让我们把学习率设为0｡ 9.
这就是我们的经纪人将要学习或应该学习的速度｡
我们还要取训练集的个数, 我们称之为n训练集｡
所以我们有很多训练集｡
让我们将其设置为1000｡
它要训练多少次或者它要训练多少集？
太棒了｡
现在, 我们要做的就是遍历每一集｡
我们要取训练集的数量范围, 并设置基本上的ε｡
我们想找出我们的时间差｡
要设置该值, 我们需要查看之前的一些Q值｡
我们需要计算行动指数的起始位置｡
那么我们开始吧｡
让我们来做一个大的for循环｡
所以我们有我们的四集｡
在我们的训练次数范围内｡
我们走吧｡
如果我没有任何语法错误, 我们希望将网格的行索引和列索引作为玉米列索引｡
并将其设置到目标起始位置｡
我们需要一个开始的位置, 所以让我们有倾倒是每一集｡
现在, 我们可以设置我们的终端状态｡
不是的｡
是终端状态｡
我们想看看行索引和列索引｡
接下来, 让我们为下一个动作设置动作索引｡
所以我们确实需要下一步行动｡
当这个代理为我们的动作索引遍历迷宫时, 我们可以使用get next action｡
我们可以使用行索引列索引, 我们称之为epsilon｡
所以我们想用这个来代替我们的随机操作, 让我们用列索引｡
我们需要艾普西隆｡
太棒了｡
如果我没拼错的话, 我们在这里｡
你想要艾普西隆？
好吧, 让我删除这个OC｡
让我来看看剩下的代码, 我们将逐步完成它, 这样我们就不必看着我键入每一行｡
但请记住, 我们要如何处理设置旧行的问题, 我们需要一个旧行索引｡
我们也希望我们的列和行得到奖励｡
我们需要查看队列值和旧队列值, 并且需要计算时间差异｡
所以你可以看到代码的变化或者代码的更新｡
我们将使用旧的行索引和列索引来查看行索引和列索引｡
我们的行索引列索引等于我们的下一个位置, 我们的下一个位置需要行索引, 列,
索引和动作｡
最后, 我们来看看奖励｡
我们的旧Q值将是具有旧行索引､ 旧列索引的Q值,
再次,
参考我们的动作索引和时间差的计算, 这是我们的奖励, 加上折扣因子乘以具有行索引和列索引的Q值减去旧Q值的前一Q值｡
差不多完成了, 我们需要新的Q值,
它是旧的Q值加上学习率､ 时间､ 时间差和Q值, 旧的列索引中的旧的行索引等于新的Q值｡
如果你们想进一步讨论这个问题, 强烈推荐问答｡
请随意打印｡
尝试使用此处使用的所有变量进行试验｡
如果你想看到这些形状, 看看它们是如何使用的, 它所引用的是什么｡
我强烈推荐这家酒店, 我非常乐意与您进一步讨论｡
最后一件事, 我们可以做, 所以我们有一点点的通知｡
让我们添加一条print语句, 以便知道1000行的训练何时完成｡
好吧, 我会的
如果我这边没有语法错误的话, 我们应该可以开始了｡
协作笔记本已初始化｡
我重新检查了一遍｡
让我来查一下｡
应该很快, 因为我们只使用麻木｡
从某种意义上说, 这是一个非常优化的模型｡
让我单击此按钮, 然后我们将查找最短路径｡
好吧, 我会的
我们的训练已经完成了｡
让我们也打印一些起始选项的最短路径｡
我们从第三行第九列开始, 最短路径选项是最短路径.
我们要查看第五行和第零行, 从第九行和第五列开始｡
把这些打印出来｡
太棒了｡
我们有最短的路径, 但我们还没有完成｡
我们快到了｡
我们可以看到我们的邮递员自动获得最短的路径, 从一个法律的, 我们可以考虑的位置从我们的城市到项目包装区｡
但是, 反过来又会怎样呢？
基本上是指我们的邮递员能把一件东西从城市的任何地方送到包装区吗？
但在项目之后, 它将需要从该地区, 从包装区到城市的另一个位置,
因为它将不得不拿起下一个项目｡
那么我们能做些什么来解决这个问题呢？
其实很简单｡
您可以修改最短路径的顺序｡
试着想一想, 然后这将是解决方案｡
我们可以使用最短路径｡
让我们取第五行第二列, 然后你需要做的就是使用相反的选项｡
在Python中, 我们使用路径反转, 并且可以打印出路径｡
所以我们要找的是5和2｡
好了
我们有最短的路径, 如果你想抓取单元格中的图像, 并把它拿下来比较和查看这些路径,
这真的很有帮助｡
但是你可以看到路径, 如果你把打印出来的报表, 看一下订单中的列,
看看这些销售员是怎么走的｡
你用的东西太棒了｡
Q学习｡
我们从这门课中学到了一些额外的, 有趣的场景和部分来解决这个本质上是旅行推销员的问题｡
我们正在寻找邮递员在城市里投递包裹和物品时找到的那些最短的选择和最短的路径｡
我强烈建议您自定义､ 测试其他选项､
更改超级参数, 如果您发现任何更好的东西, 如果您发现任何可使用的优化或最佳参数, 请随时在问答中分享｡
太神奇了｡
我希望你们真的喜欢这个｡
请自定义､ 试验并不断学习｡
和它一起工作真的很有趣｡
问：
学习和享受我｡