WEBVTT

00:00.500 --> 00:03.800
大家好, 欢迎回到人工智能课程｡ 

00:03.800 --> 00:06.920
最后, 我们来看看有趣的东西｡ 

00:06.920 --> 00:09.080
我们开始深入学习｡ 

00:09.200 --> 00:09.650
好吧, 我会的

00:09.650 --> 00:10.520
让我们来看看｡ 

00:10.550 --> 00:14.030
之前, 我们谈到了关键学习及其意义｡ 

00:14.030 --> 00:21.680
我们了解了年龄和环境, 以及代理人将如何看待这里或她所处的状态｡

00:21.710 --> 00:24.620
采取行动, 获得奖励, 进入一个新的状态｡ 

00:24.620 --> 00:29.360
基于这种反馈循环, 他们将继续采取行动, 并从中学习,

00:29.360 --> 00:32.000
了解什么是更好的行动｡

00:32.000 --> 00:34.880
所以我们看了这个迷宫的基本例子｡ 

00:34.880 --> 00:40.370
我们知道, 当代理人探索环境时, 理解状态的价值是什么｡ 

00:40.400 --> 00:46.490
然后, 我们从处理状态的值转移到处理动作的值或Q值｡

00:46.490 --> 00:55.190
在此基础上, 我们了解了计划在非随机环境中是如何工作的, 以及政策在随机环境中是如何工作的｡

00:55.190 --> 00:56.690
这是一个政策的例子｡ 

00:56.870 --> 01:01.160
以上是我们在基础学习中讨论的内容的简要回顾｡ 

01:01.160 --> 01:08.060
现在我们来看看如何通过深度学习, 通过添加深度学习, 将其提升到一个新的水平｡

01:08.450 --> 01:16.040
这就是我们的环境, 我们现在要做的是加法, 而不是在这个矩阵中做基本的计算,

01:16.040 --> 01:22.490
这很简单, 我们要做的是,

01:22.490 --> 01:30.200
我们要对轴进行加法, 我们要对X轴和y轴进行加法, 或者我们称它们为x1和x2, 只是为了使事情更一般化｡

01:30.230 --> 01:33.500
这里我们要给列编号｡ 

01:33.500 --> 01:35.930
一, 二, 三, 四, 跟在这里, 我们来编号行｡ 

01:35.930 --> 01:36.650
一, 二, 三, 一, 二, 三

01:36.650 --> 01:43.730
所以现在每一个状态都可以用一对两个值来描述｡ 

01:43.730 --> 01:50.870
所以代理人可能在的任何一个正方形都可以用x1x2来描述｡ 

01:50.870 --> 01:58.250
比如说, 现在他在x1等于1, x2等于2的正方形里.

01:58.250 --> 02:03.350
所以这是在求和中, 同样的, 我们可以摆脱任何平方, 也就是说, 我们可以描述任何状态｡

02:03.350 --> 02:10.070
当然, 这是一个非常简化的描述状态的环境, 但不管怎样, 它在这种情况下是有效的｡

02:10.070 --> 02:17.240
这意味着现在我们可以把这些状态输入到神经网络中｡ 

02:17.240 --> 02:21.620
顺便说一句, 在这里我只想提一下, 在课程的最后, 我们有附件,

02:21.620 --> 02:24.020
我们有附件一和附件二.

02:24.110 --> 02:28.490
为了顺利地完成这一部分,

02:28.490 --> 02:35.840
建议大家看一下附录一, 它是关于人工神经网络的, 这样你们就能了解它们是如何工作的, 这样我们就不必在这里深入研究了｡

02:35.840 --> 02:40.550
我们可以利用人工神经网络的工作原理｡ 

02:40.550 --> 02:49.670
所以我们把这个状态信息输入到神经网络, 然后它会处理这个信息｡

02:49.670 --> 02:55.290
所以X, Y, x两个, 取决于神经网络的结构, 它可能有多个隐藏层等等｡

02:55.310 --> 02:58.670
这是你在实践教程中会弄清楚的｡ 

02:58.670 --> 03:06.500
但是在最后我们会以这样一种方式来构造, 它会吐出四个值, 这四个值实际上是我们的线索值｡

03:06.500 --> 03:09.830
因此, 决定我们需要采取何种行动的价值观｡ 

03:09.830 --> 03:14.990
在本教程的后面, 我们将详细了解如何使用这些Q值来决定采取哪种操作｡

03:14.990 --> 03:22.430
但这里的重点是, 我们不再只是从学习的角度来看待这个迷宫｡ 

03:22.430 --> 03:30.830
我们现在把迷宫的状态输入到一个深层神经网络中, 以获得这些线索值｡

03:30.830 --> 03:33.860
在一天结束的时候, 我们仍然会想出一个行动｡ 

03:33.860 --> 03:36.920
我们仍然要了解我们需要采取什么行动｡ 

03:36.920 --> 03:38.900
我们会更详细地讨论这一切｡ 

03:38.900 --> 03:40.340
但现在的问题是为什么？

03:40.340 --> 03:41.870
我们为什么要这么做？

03:41.870 --> 03:42.900
我们为什么要遵守？

03:42.950 --> 03:48.140
为什么我们把事情弄得如此复杂, 而最初的学习方法已经奏效了？

03:48.320 --> 03:54.440
原因是学习是在一个非常简单化的环境中进行的, 我们现在继续处理这个非常简单化的环境,

03:54.440 --> 03:59.750
以便更好地理解这些概念｡

03:59.750 --> 04:05.930
但与此同时, 这种简单的学习在更复杂的环境中将不再起作用｡ 

04:05.930 --> 04:12.020
比如说,

04:12.260 --> 04:18.590
当人工智能在玩厄运游戏时, 自动驾驶汽车会创造或玩厄运游戏, 或者其他雅达利游戏,

04:18.590 --> 04:26.480
比如Breakout, 甚至是自动驾驶汽车, 还有更高级的强化学习, 比如机器人四处走动和执行动作｡

04:26.480 --> 04:30.380
在所有那些情况下, 基础学习都是不足的, 都是不牢固的｡ 

04:30.380 --> 04:34.610
它还不够强大, 无法应对这些挑战｡ 

04:34.610 --> 04:39.980
就像我们在深度学习课程中看到的,

04:39.980 --> 04:45.680
如果你参加过我们的部署课程, 或者你看过附录一和附录二,

04:45.680 --> 04:51.560
你就会真正知道深度学习远远上级任何类型的机器学习, 更不用说简单学习了｡

04:51.560 --> 04:54.140
这就是为什么我们在这里利用深度学习的力量｡ 

04:54.140 --> 04:58.430
所以我们把环境的信息作为一个价值向量输入｡ 

04:58.430 --> 04:59.330
所以在这种情况下, 才出手｡ 

04:59.380 --> 05:01.270
值进入深层神经网络｡ 

05:01.270 --> 05:07.170
然后我们用它来执行我们想要的动作, 以决定代理要采取哪些动作｡

05:07.180 --> 05:11.590
以上就是我们为什么要这么做的一个高层次的概述｡ 

05:11.590 --> 05:23.860
现在让我们更详细地看看当我们从简单学习转变为深度学习时, 关键学习的概念会发生什么变化｡

05:23.860 --> 05:33.520
正如你们在前面的直觉教程中看到的, 我们有一张类似的幻灯片, 它是时间差学习的基础｡

05:33.520 --> 05:37.390
这是时间差的公式, 基本上我们来看看.

05:37.390 --> 05:45.520
所以基本上我们有一个处于这个状态的代理人, 用蓝色箭头表示, 我们正在理解时间差异是如何作用于这个线索值的,

05:45.520 --> 05:51.340
比如, 上升｡

05:51.520 --> 05:56.410
所以我们在这里看到的是在这之前的简单学习, 而不是深度学习｡ 

05:56.410 --> 05:57.550
这在简单的学习中｡ 

05:57.580 --> 06:06.130
我们所看到的是, 在代理人有一定的色调值之前, 他已经知道了这个上升的动作｡

06:06.130 --> 06:08.620
所以他决定采取这个行动｡ 

06:08.620 --> 06:16.420
在他做出这个动作之后, 他会因为在这种状态下做出这个动作而得到奖励, 这就是奖励.

06:16.420 --> 06:22.720
另外, 现在他可以评估他所处的当前状态的价值, 这是所有新的线索价值, 所有线索价值,

06:22.720 --> 06:25.780
新的行动的最大值｡

06:25.780 --> 06:32.170
他可以把新状态下的质数取为质数, 然后我们把它乘以γ的衰变因子｡ 

06:32.170 --> 06:40.420
所以这基本上就是线索, 新的线索价值, 或者类似于经验线索价值, 他刚刚收到的,

06:40.420 --> 06:43.000
采取行动的线索价值｡

06:43.000 --> 06:45.550
理想情况下, 这两个应该是相同的｡ 

06:45.550 --> 06:51.010
所以实际上他记忆中关于这个动作的线索价值,

06:51.010 --> 06:57.370
应该等于实际奖励, 加上伽马乘以, 他最终所处状态的价值

06:57.370 --> 06:59.800
因此, 这就是我们计算时间差的方法｡ 

06:59.800 --> 07:05.110
我们把他得到的减去他得到的, 他心里想的, 他期待的｡ 

07:05.110 --> 07:07.600
你会从一个中减去另一个, 这就是你的时间差｡ 

07:07.600 --> 07:16.840
然后你用学习率α来调整Q值, 你的新提示值, 通过时间差, 但是有一个系数α.

07:16.840 --> 07:20.260
这就是简单线索学习的本质｡ 

07:20.260 --> 07:24.310
现在让我们来看看它在深度学习中是如何变化的｡ 

07:24.310 --> 07:29.350
所以我们还是要用这张幻灯片, 但我们要看看到底发生了什么｡ 

07:29.350 --> 07:35.440
所以在深度学习中, 神经网络会预测四个值, 就像我们在上一张幻灯片中看到的｡ 

07:35.440 --> 07:40.870
我们将在本教程后面看到, 神经网络将预测四个值, 或者如果在给定状态下有更多可能的动作,

07:40.870 --> 07:44.710
它可能会预测更多的值｡

07:44.710 --> 07:48.430
但在这个例子中, 我们知道只有四个动作, 向上, 向左, 向下.

07:48.430 --> 07:53.080
所以神经网络会预测其中的四个值｡ 

07:53.080 --> 07:56.710
所以不会有在处于深度学习的情况下｡ 

07:56.710 --> 07:58.750
重要的是要明白, 没有之前或之后｡ 

07:58.750 --> 08:01.510
这就是我们如何更好地了解这一点｡ 

08:01.510 --> 08:08.050
所以神经网络会预测其中的四个值, 它不会和之后发生的情况进行比较,

08:08.050 --> 08:11.740
而是和这个精确的值进行比较｡

08:11.740 --> 08:17.530
但在上一步中计算的正是该值｡ 

08:17.530 --> 08:22.870
所以在上一次当特工在这个方格的时候｡ 

08:22.870 --> 08:30.400
假设, 我不知道, 一段时间前代理也在这个正方形中,

08:30.400 --> 08:34.210
它之前计算过这个值｡

08:34.210 --> 08:40.270
所以在很久以前, 代理人计算了这个值, 然后代理人存储了这个值, 以备将来使用,

08:40.270 --> 08:43.510
现在未来已经到来｡

08:43.510 --> 08:48.580
现在他又回到了正方形中, 现在他得到了这些Q值, 这是预测的,

08:48.580 --> 08:50.410
其中一个是四个向上的｡

08:50.410 --> 08:58.600
现在他要做的就是把预测的Q值和之前记录的值进行比较｡

08:58.930 --> 09:01.840
我们现在就能明白为什么这很重要了｡ 

09:01.840 --> 09:06.910
所以这里需要理解的是, 在一个军官之前,

09:06.910 --> 09:13.540
在这个特定的方格里, 这个特定的时间, 我们取的Q值是他用神经网络预测的.

09:13.540 --> 09:22.930
我们把它和他上次得到的这个值进行比较, 上次他在这个方格里评估所有的情况.

09:22.930 --> 09:28.060
而且, 你知道, 就像上次他真的做了这个动作一样｡ 

09:28.060 --> 09:29.230
好了, 我们走吧｡ 

09:29.230 --> 09:33.280
现在, 让我们来看看这一切是如何在神经网络中工作的, 以及为什么｡ 

09:33.280 --> 09:35.110
为什么会这样呢？

09:35.110 --> 09:39.940
我知道现在听起来有点复杂, 但我们会把它分解成简单的术语, 好的, 马上就好｡

09:39.940 --> 09:45.550
所以这个神经网络, 我们把环境的状态输入到神经网络中, 是通过隐藏层的｡

09:45.550 --> 09:47.200
然后输出这些输出｡ 

09:47.230 --> 09:48.760
第一季第二季第三季第四季

09:48.760 --> 09:57.310
在特定的状态下, 这些是神经网络为可能的动作预测的提示值｡

09:57.310 --> 09:58.180
这些是Q值｡ 

09:58.180 --> 09:59.260
所以我们｡ 

09:59.360 --> 10:04.610
与目标相比, 这些目标是完全相同的, 如果我们回到这里, 这就是目标｡ 

10:04.610 --> 10:07.100
这就是预测的值｡ 

10:07.100 --> 10:11.600
然后我们也知道我们有一个目标, 从上次我们在广场上｡ 

10:11.600 --> 10:16.430
我们有一个目标, 例如, 这是向上的｡ 

10:16.430 --> 10:18.770
这里我们有一个目标, 我们将进行比较｡ 

10:18.770 --> 10:20.750
因此, 我们将第一季度与该目标进行比较｡ 

10:20.750 --> 10:24.890
我们在比较Q2和之前的目标.

10:25.310 --> 10:26.480
Q三号对目标｡ 

10:26.480 --> 10:28.070
Q4对目标｡ 

10:28.070 --> 10:38.580
这就是神经网络或智能体正在通过深度学习学习如何更好地穿越太空的部分｡

10:38.600 --> 10:41.950
关键是我们还在申请中｡ 

10:41.960 --> 10:47.180
Q学习, 但是在简单学习中的概念, 你通过时间差来学习, 这是非常简单的,

10:47.180 --> 10:50.630
我们已经讨论过了, 我们现在已经很清楚了｡

10:50.630 --> 10:54.530
但与此同时, 在深度学习中, 神经网络是如何学习的？

10:54.530 --> 10:56.870
神经网络通过调整权重来学习｡ 

10:56.870 --> 11:08.450
因此, 我们必须根据神经网络的实际工作方式来调整强化简单密钥学习的概念｡

11:08.450 --> 11:10.820
这就是通过更新它们的权重｡ 

11:10.820 --> 11:12.500
这就是我们要弄清楚的｡ 

11:12.500 --> 11:20.960
我们如何将时间差异的概念应用到神经网络中, 以便充分利用神经网络的全部功能？

11:20.990 --> 11:22.160
到目前为止, 我们已经得到了这个｡ 

11:22.160 --> 11:29.360
所以我们在这里输入环境状态, 作为一个向量, 通过神经网络, 我们得到Q值的预测｡

11:29.360 --> 11:34.340
然后从上一次代理处于该状态的时间开始, 我们有这些｡ 

11:34.340 --> 11:35.090
Q目标｡ 

11:35.090 --> 11:39.230
问：针对这些行动中的每一项行动, 确定目标1､ 2､ 3和4｡ 

11:39.230 --> 11:43.040
现在我们来做个比较｡ 

11:43.340 --> 11:50.360
从这里开始, 如果你能跟上神经网络的速度, 它就变得非常简单了｡ 

11:50.360 --> 11:52.350
再说一次, 这些都在附件里｡ 

11:52.370 --> 11:57.890
第一, 我们要计算损失, 这里是L, 我们会是.

11:57.890 --> 12:01.400
Q瞄准这个减去Q减去这个｡ 

12:01.700 --> 12:02.900
我们会解决的｡ 

12:02.900 --> 12:06.500
所以每一个的平方差, 我们要把它们加起来｡ 

12:06.500 --> 12:13.760
所以我们要取这些Q值和它们的目标值的平方差之和, 然后我们要把它们加起来, 这就是我们的损失｡

12:13.760 --> 12:19.160
理想情况下, 就像我们在学习时间差时,

12:19.160 --> 12:25.100
如果我们回到过去, 记得我们说过理想情况下我们希望这个等于这个, 所以我们希望时间差为零｡

12:25.100 --> 12:34.610
所以这就意味着代理人准确地预测了代理人所预测的Q值｡

12:34.610 --> 12:38.060
或者说他有一个对环境的确切描述的记忆｡ 

12:38.360 --> 12:42.650
因此, 代理可以很好地在环境中导航｡ 

12:42.650 --> 12:42.920
好吧, 我知道了

12:42.920 --> 12:43.940
没什么好惊讶的｡ 

12:43.940 --> 12:51.260
没有如果, 只要这个时间差是非常积极或非常消极的, 那么我们就会有一些惊喜｡

12:51.260 --> 12:56.510
但如果时间差为零, 那么他对环境非常了解, 他可以预测正在发生的事情, 他可以｡

12:56.510 --> 13:01.070
因此, 他的政策将是非常好的, 他将能够驾驭它｡ 

13:01.070 --> 13:02.630
所以这里, 同样的事情｡ 

13:02.630 --> 13:07.400
所以我们希望这个损失尽可能的接近于零｡ 

13:07.400 --> 13:15.590
这就是为什么我们现在要做的这一部分我们要充分利用神经网络的真实的力量｡

13:15.590 --> 13:21.410
所以我们将使用反向传播或随机梯度下降法来计算这个损失,

13:21.410 --> 13:29.360
并将其传递到网络中, 通过网络和随机梯度下降法来传播｡

13:29.420 --> 13:36.950
更新这些概要在网络中的权重, 这样下次我们遍历这个网络的时候, 权重已经能更好地描述环境了,

13:36.950 --> 13:41.000
这就是它的工作原理.

13:41.000 --> 13:48.020
如果您返回到这里, 则会计算此值和损耗, 并将其传播到网络中｡

13:48.020 --> 13:49.100
将更新权重｡ 

13:49.100 --> 13:55.280
然后下一次我们到这里, 这种情况再次发生, 我们到这里, 这种情况再次发生, 如此如此如此,

13:55.280 --> 13:56.600
它继续发生｡

13:56.600 --> 13:59.900
这就是这个特工的学习方式｡ 

13:59.900 --> 14:06.890
或者说现在基本上是神经网络, 也就是智能体的大脑在学习, 对环境的描述越来越多,

14:06.890 --> 14:11.960
因此智能体能够在环境中导航.

14:12.140 --> 14:17.900
当我们说描述性环境时,

14:17.900 --> 14:24.830
基本上意味着当我们输入主体所处环境的状态时, 我们更有可能越来越接近实际的线索值｡

14:24.830 --> 14:29.120
这是因为我们想要的关键价值观和找到正确的行动｡ 

14:29.120 --> 14:33.530
这是因为这些Q目标实际上是根据经验得出的｡ 

14:33.530 --> 14:36.680
那么他是怎么找到这些可爱的目标的呢？

14:36.680 --> 14:38.390
那是那是实际上是这样的｡ 

14:38.390 --> 14:40.240
所以他实际上是在观察｡ 

14:40.250 --> 14:42.800
那么, 一旦我迈出这一步, 我会得到什么回报呢？

14:42.800 --> 14:44.870
那么这个状态的价值是什么呢？

14:44.870 --> 14:48.620
和我们之前在Q学习中看到的一样, 在简单学习直觉中.

14:48.620 --> 14:54.190
所以他通过反复试验来学习这个, 然后他构建他的网络或者更新权重网络, 以这样一种方式,

14:54.500 --> 14:59.140
预测的线索值越来越接近｡

14:59.220 --> 15:01.260
接近目标｡ 

15:01.260 --> 15:09.330
Q值的概念非常类似于我们在这里讨论的简单时间差学习中的简单学习算法｡

15:09.690 --> 15:10.380
好了, 我们走吧｡ 

15:10.380 --> 15:12.360
这就是经纪人学习的方式.

15:12.360 --> 15:13.590
所以我们到了这里｡ 

15:14.280 --> 15:15.390
这是学习的一部分｡ 
