WEBVTT

00:00.710 --> 00:02.530
大家好, 欢迎回来｡ 

00:02.540 --> 00:07.910
在这堂课中, 我们将设置我们的环境,

00:07.910 --> 00:11.420
我想为那些想尝试自己解决这个问题的人介绍这个更高层次的概述｡

00:11.420 --> 00:14.270
这在上节课中可能看起来很熟悉, 你们看到了｡ 

00:14.270 --> 00:15.770
所以如果你看了, 我很抱歉｡ 

00:15.770 --> 00:17.510
我们很快就过一遍｡ 

00:17.840 --> 00:19.070
重要的事情先说｡ 

00:19.070 --> 00:25.430
在这个项目中, 我们的目标是尽可能简单, 因为我们不需要导入太多的库｡

00:25.430 --> 00:27.920
我们基本上就是用NumPy来做这个｡ 

00:27.920 --> 00:33.260
我们只需要将NumPy导入为NP, 通常是numpy的公共引用｡ 

00:33.260 --> 00:37.490
我们还希望设置环境, 如您所见｡ 

00:37.490 --> 00:40.580
我们将很快地再回顾一遍, 作为一个概述｡ 

00:40.610 --> 00:46.250
Q学习的第一步是我们要定义一个邮递员必须导航的环境｡ 

00:46.250 --> 00:50.210
我们需要建立这样的环境, 这样我们就可以真正地迭代和通过它｡ 

00:50.510 --> 00:55.580
在这节课中, 环境将由状态､ 行为和奖励组成｡ 

00:55.580 --> 01:01.160
状态和动作是Q学习代理的输入, 而可能的动作是代理, 输出是我们可以思考的状态,

01:01.160 --> 01:06.620
并将此图像视为我们的表示｡

01:06.620 --> 01:11.870
我们环境中的状态是城市中所有可能的位置, 我们可以称之为示例城市｡

01:11.870 --> 01:17.840
其中一些位置是城市边界, 这将是我们的黑色广场, 而其他位置是岛屿,

01:17.840 --> 01:21.110
邮递员可以使用通过城市旅行｡

01:21.110 --> 01:22.580
这些是白色的方块｡ 

01:22.670 --> 01:27.020
绿色正方形表示物品包装和运输区域｡ 

01:27.020 --> 01:31.520
黑色和绿色的方块是我们称之为终结状态｡ 

01:31.520 --> 01:36.050
总的来说, 我们的目标, 或者说我们的代理人的目标, 我们想要使用最短路径｡ 

01:36.050 --> 01:41.870
我们希望我们的代理了解项目包装区, 罐子, 绿色和所有其他地点之间的最短路径, 在城市中,

01:41.870 --> 01:45.260
邮递员是允许旅行｡

01:49.360 --> 01:55.750
在上图中, 我们在城市中有121个可能的州或位置｡ 

01:55.780 --> 01:58.690
这些状态以11 × 11的网格排列｡ 

01:58.720 --> 02:02.400
因此, 每个位置可以通过其行和列索引来标识｡ 

02:02.410 --> 02:04.510
那么我们的第一步是什么呢？

02:04.510 --> 02:07.870
我希望你们能开始思考如何定义它｡ 

02:08.380 --> 02:10.420
我们需要定义环境｡ 

02:10.420 --> 02:13.180
这是一个很好的例子, 说明了我们的形象以及我们将如何实现它｡ 

02:13.180 --> 02:14.580
那么, 您将如何建模呢？

02:14.590 --> 02:20.890
请记住, 我们使用的是NumPy,

02:20.920 --> 02:27.310
所以我们需要定义这些边界, 我们可以定义一个3d numpy数组来保存每个状态和动作对的当前Q值, 就像我们看到的表示一样｡

02:27.400 --> 02:32.440
对于那些不熟悉的人, 或者是新的, 或者你只是想复习一下,

02:32.440 --> 02:38.320
这门课的i a z手册非常有帮助, 强烈推荐｡

02:38.320 --> 02:40.080
那我们现在要做什么？

02:40.090 --> 02:41.420
事实上我们可以｡ 

02:41.440 --> 02:45.100
让我快速地展开一下, 这样我们可以更容易地查看它｡ 

02:45.100 --> 02:46.630
让我添加一些代码单元格｡ 

02:46.630 --> 02:49.060
我们要定义一个三维numpy数组｡ 

02:49.360 --> 02:51.070
你会怎么做？

02:51.190 --> 02:57.370
因此, 我们有一些选择, 但最直接和简单的选择, 让我们称之为环境行｡

02:59.820 --> 03:01.500
罗丝把它设为11.

03:01.500 --> 03:02.640
是11乘11的｡ 

03:02.690 --> 03:06.960
然后我们还可以做一个环境, 给列加下划线｡ 

03:08.890 --> 03:10.870
我们也可以将其设置为11｡ 

03:11.200 --> 03:18.610
最后, 我们可以设置Q值, 因为我们需要将numpy与环境行和环境列相加｡

03:19.910 --> 03:32.030
我们可以将Q值设为等于NumPy个零, 我们需要使用环境行, 环境列｡

03:32.760 --> 03:40.260
我们有了3D numpy数组, 我们的3D环境表示集｡ 

03:41.100 --> 03:41.760
太棒了｡ 

03:42.240 --> 03:46.500
现在, 我们将在这里结束讨论, 但我希望大家开始考虑如何解决此问题,

03:46.500 --> 03:48.340
因为您已经设置了环境｡

03:48.360 --> 03:52.820
作为提示, 接下来您需要做的是设置操作｡ 

03:52.830 --> 03:55.620
您的代理需要能够在环境中移动｡ 

03:55.620 --> 03:57.330
那你会怎么表示呢

03:57.330 --> 04:00.750
这道题你怎么写？

04:00.930 --> 04:01.950
我们把它关了吧｡ 

04:01.950 --> 04:04.950
在下一个视频中, 我们将重新回顾这些操作｡ 

04:05.100 --> 04:05.790
太棒了｡ 

04:05.970 --> 04:07.170
下一个视频里见｡ 
