WEBVTT

00:00.480 --> 00:03.150
大家好, 欢迎今天继续学习深度学习课程｡ 

00:03.150 --> 00:10.800
我们正在讨论最大池, 我们有一些非常令人兴奋的幻灯片即将到来, 甚至在教程的最后一个特别的惊喜｡

00:10.800 --> 00:12.260
那么我们开始吧｡ 

00:12.270 --> 00:15.780
第一个问题是什么是池, 为什么我们需要它？

00:15.810 --> 00:18.540
为了回答这个问题, 让我们来看看这些图片｡ 

00:18.540 --> 00:20.640
在这三张照片上, 我们看到了一只猎豹｡ 

00:20.640 --> 00:23.580
事实上, 它和第一张图片上的猎豹一模一样｡ 

00:23.580 --> 00:26.130
图像已正确定位｡ 

00:26.220 --> 00:27.900
猎豹正直直地盯着你｡ 

00:27.900 --> 00:32.490
在第二个图像上, 它有点旋转, 第三个图像有点压扁｡ 

00:32.490 --> 00:41.190
我们希望神经网络能够在每一张图片中识别出猎豹｡

00:41.190 --> 00:43.170
事实上, 这只是一只猎豹｡ 

00:43.170 --> 00:45.030
如果我们有很多不同的猎豹呢？

00:45.030 --> 00:45.960
这是一只猎豹｡ 

00:45.960 --> 00:47.160
这是一只猎豹｡ 

00:47.160 --> 00:48.480
这是另一只猎豹｡ 

00:48.510 --> 00:51.420
这是一只猎豹, 这是一只猎豹, 这是一只猎豹.

00:51.420 --> 00:55.860
我们想让神经网络把所有这些猎豹都识别为猎豹｡ 

00:55.980 --> 01:01.710
如果他们都朝不同的方向看, 它怎么能做到呢？

01:01.710 --> 01:04.050
它们都在图像的不同部分｡ 

01:04.050 --> 01:06.990
就像他们的脸被放置在图像的不同部分｡ 

01:06.990 --> 01:10.560
有人在右手边, 有人在左角, 有人在中间｡ 

01:10.860 --> 01:12.390
他们都有点不同｡ 

01:12.480 --> 01:16.110
纹理有点不同, 灯光也有点不同｡ 

01:16.110 --> 01:17.340
有很多细微的差别｡ 

01:17.340 --> 01:23.130
所以如果神经网络寻找特定的特征, 比如说,

01:23.130 --> 01:31.740
猎豹的一个显著特征就是它脸上从眼睛流出的眼泪, 或者看起来像眼泪的阴影, 纹理,

01:31.740 --> 01:36.090
从眼睛流下的图案｡

01:36.090 --> 01:37.740
这是在它的鼻子大小｡ 

01:37.740 --> 01:38.430
看起来像眼泪｡ 

01:38.430 --> 01:40.680
这是猎豹的显著特征｡ 

01:40.680 --> 01:53.190
但如果它要寻找的特征是它从特定的猎豹身上学到的在特定的位置或特定的形状或结构上它永远不会找到其他的猎豹

01:53.190 --> 02:01.380
所以我们必须确保我们的神经网络有一个叫做空间不变性的属性, 这意味着它不关心特征在哪里,

02:01.380 --> 02:10.320
不关心在图像的哪个部分, 因为我们已经在地图上, 在po上,

02:10.320 --> 02:16.560
在卷积层上考虑到了这一点｡

02:16.560 --> 02:23.340
但是它不必关心特征是否有点倾斜,

02:23.340 --> 02:30.150
特征是否在纹理上有点不同, 特征是否有点靠近, 或者特征是否相对于彼此分开得有点远｡

02:30.150 --> 02:37.200
因此, 如果特征本身有点失真, 我们的神经网络必须有一定的灵活性,

02:37.200 --> 02:42.120
才能找到那个特征, 这就是池化的意义所在｡

02:42.510 --> 02:44.880
让我们来看看池的工作原理｡ 

02:44.880 --> 02:46.080
这是我们的功能图｡ 

02:46.080 --> 02:52.470
我们已经完成了卷积运算, 现在开始处理卷积层｡

02:52.500 --> 02:53.820
现在, 我们将应用池｡ 

02:53.820 --> 02:54.600
那么它是如何工作的呢？

02:54.600 --> 02:56.280
我们将应用最大池｡ 

02:56.550 --> 03:01.140
有几种不同类型的池可以应用是平均池, 最大池, 一些池,

03:01.140 --> 03:03.360
我们将在本教程的最后评论这些｡

03:03.360 --> 03:05.010
但现在我们只是应用最大池｡ 

03:05.010 --> 03:12.240
所以我们拿一个像这样的2 × 2像素的盒子, 同样, 它不一定是2 × 2｡ 

03:12.270 --> 03:13.470
你可以选择任何大小的盒子｡ 

03:13.470 --> 03:18.360
同样, 我们会在试验结束时对此进行评论, 你把它放在左手,

03:18.360 --> 03:21.840
你会在那个方框中找到最大值｡

03:21.840 --> 03:26.100
然后你只记录这个值而忽略其他三个值｡ 

03:26.100 --> 03:31.530
所以在你的盒子里有四个值, 你忽略了三个, 你只保留了一个最大值, 在这个例子中是一｡

03:31.530 --> 03:36.000
然后你把你的盒子向右移动一个步幅, 你再一次选择这个步幅｡ 

03:36.000 --> 03:41.010
这里我们选择步幅为2, 这是您通常选择的步幅｡ 

03:41.010 --> 03:42.780
您可以选择一个步幅, 您可以选择｡ 

03:42.780 --> 03:44.310
所以有重叠的盒子｡ 

03:44.310 --> 03:48.090
你可以选择任何你喜欢的步幅, 甚至三个, 如果你想要的｡ 

03:48.600 --> 03:52.290
但我们这里选择的步幅是2, 这是常用的步幅｡ 

03:52.290 --> 03:53.850
然后你重复, 重复这个过程｡ 

03:53.850 --> 03:55.770
在这里记录最大值｡ 

03:55.770 --> 03:59.880
如果你超度了, 那就无所谓了, 你只要继续做你正在做的事情就行了｡ 

03:59.880 --> 04:07.230
所以你还是在这里记录最大值, 这里是0, 这里是4, 这里是2, 这里是10102,

04:07.230 --> 04:10.740
然后是1｡

04:11.190 --> 04:13.920
所以如你所见, 发生了一些事情｡ 

04:13.920 --> 04:18.360
首先, 我们仍然能够保留特征, 对吗？

04:18.930 --> 04:23.670
因为我们知道卷积层的工作原理｡ 

04:23.670 --> 04:31.410
我们知道, 特征图中的最大值或位大的数字表示您实际上找到与某个特征最接近的相似性的位置｡

04:31.410 --> 04:38.190
但是通过合并这些特征, 我们首先是摆脱了75%的信息｡ 

04:38.190 --> 04:46.170
这不是我们关注的重要功能, 因为我们忽略了四个像素中的三个,

04:46.170 --> 04:51.240
所以我们只保留了25%｡

04:51.240 --> 04:59.880
还有一个原因是我们取的是像素的最大值｡ 

05:00.480 --> 05:04.080
因此, 我们对任何扭曲都进行了解释｡ 

05:04.080 --> 05:11.880
举个例子, 两张图片中, 比如说, 猎豹眼睛上的眼泪｡ 

05:12.060 --> 05:15.480
在一个图像中, 有一位向左或一位向左旋转｡ 

05:15.480 --> 05:16.080
再来一个｡ 

05:16.080 --> 05:21.330
有一点, 有它们应该是什么样的, 或者我们喜欢什么样的, 如果我们把一个作为基础,

05:21.330 --> 05:26.490
然后把另一个向左旋转, 合并的特征将完全相同｡

05:26.490 --> 05:30.360
所以你可以看到这里, 如果我们谈论的是作弊者, 干杯｡ 

05:30.360 --> 05:34.110
假设这是4, 它就在这里.

05:34.110 --> 05:35.970
然后如果它有点旋转｡ 

05:35.970 --> 05:41.010
比如说, 四个在这里结束, 然后当我们进行合并时,

05:41.010 --> 05:42.690
我们仍然会得到相同的合并特征图｡

05:42.960 --> 05:46.140
这就是它背后的原理｡ 

05:46.410 --> 05:51.930
这是一个非常粗略的解释,

05:51.930 --> 06:02.130
再一次, 直观的解释, 但这就是我们仍然能够保存这些特征的汇集点, 而且还能解释它们可能的空间或纹理或其他类型的扭曲｡

06:02.130 --> 06:05.730
除此之外, 我们还在缩小规模｡ 

06:05.730 --> 06:07.290
所以还有另一个好处｡ 

06:07.290 --> 06:12.900
我们保留了特征, 引入了空间不变量,

06:12.900 --> 06:19.470
将尺寸缩小了75%, 这是一个巨大的进步, 这将在处理方面对我们有很大的帮助｡

06:19.470 --> 06:25.050
此外, 池化的另一个好处是我们减少了参数的数量｡ 

06:25.050 --> 06:27.750
所以我们又减少了75%｡ 

06:27.750 --> 06:35.160
我们减少了进入神经网络最后一层的参数数量, 因此我们防止了过度拟合｡

06:35.160 --> 06:41.100
这是一个非常重要的好处池, 我们正在删除信息｡ 

06:41.100 --> 06:42.510
这是一件好事｡ 

06:42.510 --> 06:52.620
这是一件好事, 因为这样我们的模型就不会过度拟合这些信息, 特别是因为这些信息是不相关的｡

06:52.620 --> 06:57.060
请记住, 就像我们一开始所说的,

06:57.060 --> 07:02.370
即使是对人类来说, 重要的是要准确地看到特征, 而不是进入我们眼睛的所有其他噪音｡

07:02.550 --> 07:04.440
神经网络也是一样｡ 

07:04.440 --> 07:12.090
他们通过忽略不必要的不重要的信息, 我们正在帮助防止过度拟合｡ 

07:12.240 --> 07:12.990
所以他们会去｡ 

07:12.990 --> 07:14.520
这就是池的意义所在｡ 

07:14.520 --> 07:18.720
当然, 问题是, 为什么？

07:18.720 --> 07:19.800
为什么是麦克斯·普尔林, 对吧.

07:19.800 --> 07:25.020
有很多不同类型的池, 为什么为什么跨越尝试, 为什么一个大小为2 × 2像素,

07:25.020 --> 07:26.520
很多这些东西｡

07:26.520 --> 07:33.900
关于这一点, 我想向你们介绍这篇很棒的研究论文, 叫做“卷积架构中的池化运算在物体识别中的评估”,

07:33.900 --> 07:40.890
作者是来自波恩大学的多米尼克·谢勒｡

07:40.890 --> 07:47.460
这就是其中的联系, 这篇论文的美妙之处在于它非常, 非常简单, 非常直接｡ 

07:47.460 --> 07:51.480
所以, 如果你以前从未读过研究论文, 你想尝试给予吗？

07:51.480 --> 07:53.760
这是一个很好的开始｡ 

07:53.760 --> 07:56.790
它很短, 只有十页, 非常容易阅读｡ 

07:56.790 --> 08:02.610
另外, 额外的好处是, 我们已经讨论了卷积和池化,

08:02.610 --> 08:05.880
您将完全熟悉本文中讨论的所有内容｡

08:05.880 --> 08:09.360
而你这是一个很好的方式来巩固你的知识｡ 

08:09.360 --> 08:11.550
所以我强烈推荐你看看这篇论文｡ 

08:11.700 --> 08:17.520
我会花20分钟来阅读它, 你甚至可以跳过第二部分, 这被称为相关工作｡ 

08:17.520 --> 08:19.800
如果感觉有点牵强或疏远｡ 

08:19.800 --> 08:20.970
别读那部分｡ 

08:20.970 --> 08:23.610
直接从第一部分跳到第三部分｡ 

08:23.610 --> 08:29.670
关于这篇论文, 你们需要知道一件事, 他们谈到了一个叫做子采样的概念,

08:30.300 --> 08:33.150
子采样基本上是平均池｡

08:33.150 --> 08:37.320
记住我们是如何取最大值的.

08:37.320 --> 08:39.870
所以在我们的平方中我们取最大值｡ 

08:39.870 --> 08:42.990
有一个概念叫做平均池或一些池｡ 

08:42.990 --> 08:46.740
有些汇集是你只是把这些值中的一些往上平均汇集还是平均汇集？

08:46.740 --> 08:53.850
你把所有这些的平均值取出来, 子抽样有点像平均值合并的推广｡

08:53.850 --> 09:00.780
这是一种更普遍的方法来取这些值的平均值｡ 

09:00.780 --> 09:06.390
你可以在报纸上读到更多关于它的内容, 但除此之外, 当你阅读报纸的时候, 你可以把它看作是平均池｡

09:06.720 --> 09:09.690
在这里你可以得到关于这个主题的更多信息｡ 

09:09.690 --> 09:12.270
现在让我们回顾一下我们的进展？

09:12.270 --> 09:14.070
这就是我们的输入图像｡ 

09:14.610 --> 09:18.870
然后, 我们应用卷积运算, 得到卷积层｡ 

09:18.870 --> 09:24.090
现在, 对于我们获得的每一个功能映射, 我们都应用了池化层｡ 

09:24.090 --> 09:31.920
我们已经完成了卷积和合并这两个步骤, 现在我们要做一些非常有趣的事情, 一些令人兴奋的事情｡

09:31.920 --> 09:34.380
我们要做个实验｡ 

09:34.380 --> 09:44.550
这是我从Adam哈雷创建的一个工具上截取的一张截图, 他在瑞尔森计算机科学大学的时候, 现在他在卡内基梅隆大学, 我想,

09:44.550 --> 09:50.910
他正在读博士, 这是一个很棒的工具｡

09:50.910 --> 09:52.410
所以让我们打开｡ 

09:52.410 --> 09:54.090
让我们看看, 这样你就能找到它了｡ 

09:54.090 --> 09:55.680
你不能通过谷歌找到它｡ 

09:55.680 --> 09:57.450
你必须知道网址｡ 

09:57.450 --> 09:59.370
只是很难找到｡ 

09:59.480 --> 10:01.010
因为这里没有文字｡ 

10:01.160 --> 10:03.950
SC好吧, 就这个网址｡ 

10:04.130 --> 10:08.270
政务司司长点瑞尔森档案, 然后在最后这件事｡ 

10:08.270 --> 10:11.930
基本上这就是我们正在做的｡ 

10:11.930 --> 10:12.620
但是观想｡ 

10:12.620 --> 10:14.330
所以这里你需要画一个数字｡ 

10:14.330 --> 10:21.290
假设我画了4, 这个工具会把4放在这里.

10:21.290 --> 10:24.080
这是你在我们第一步中的形象｡ 

10:24.080 --> 10:26.990
这就是卷积步骤, 对吧？

10:26.990 --> 10:28.130
这是合并步骤｡ 

10:28.130 --> 10:30.320
顺便说一下, 池化也被称为下采样｡ 

10:30.320 --> 10:33.350
因此, 池化和缩减采样是一回事｡ 

10:33.860 --> 10:39.050
你可以看到它是应用卷积, 然后是应用池, 你可以看到它是如何工作的｡ 

10:39.050 --> 10:44.780
所以你可以看到它应用了什么样的卷积, 或者它应用了什么样的滤波器, 它们看起来是什么样子｡

10:44.780 --> 10:50.570
您可以看到它要寻找哪些功能, 然后应用､ 池化, 从而减小大小｡

10:50.570 --> 10:53.300
你可以看到这很重要, 对吧？

10:53.300 --> 11:01.700
因此, 您可以看到, 这是相关图像, 这是合并图像, 您仍然可以看到相同的特征｡

11:01.700 --> 11:04.210
只是信息少了, 但功能相同, 对吧？

11:04.220 --> 11:05.750
特征被保留｡ 

11:05.750 --> 11:07.160
这才是最重要的｡ 

11:08.150 --> 11:13.370
而且, 如果我们的四个像这样稍微向一边旋转一点,

11:13.370 --> 11:16.790
它仍然可以拾取非常相似的池层｡

11:16.790 --> 11:18.500
然后它有更多的层次｡ 

11:18.500 --> 11:19.730
我们还没谈这个呢｡ 

11:19.730 --> 11:27.380
这里还有另一个卷积卷积层, 实际上我们没有, 还有另一个池层,

11:27.380 --> 11:30.700
但基本上只是重复相同的过程｡

11:30.710 --> 11:36.110
之后, 我们将在课程的后面讨论完全连接的层等等,

11:36.110 --> 11:39.800
但你肯定可以玩这个游戏｡

11:39.800 --> 11:47.720
所以如果我删除了你喜欢的, 如果我画了一个7, 你会看到它实际上告诉你猜测是它猜测是这是一个7, 第二个猜测,

11:47.720 --> 11:52.730
第二个可能性是一个3｡

11:52.730 --> 11:56.360
所以你可以给它画一些有挑战性的东西, 看看它能不能把它们捡起来｡ 

11:56.360 --> 12:01.100
假设我画了一个看起来像零的东西, 但它不是终点零, 它会不会把它捡起来,

12:01.100 --> 12:03.620
这次没有捡起来｡

12:03.620 --> 12:06.080
看起来像是九比一的图像｡ 

12:06.080 --> 12:08.270
如果我像这样结束呢？

12:08.270 --> 12:14.390
所以现在它认为是0或者9, 你可以看到是什么点亮了0或者9.

12:14.390 --> 12:16.220
但我们会在后面讨论这部分｡ 

12:16.460 --> 12:17.270
我们再来一次｡ 

12:17.300 --> 12:19.760
比如说八个｡ 

12:19.760 --> 12:25.820
我觉得8对这个来说很难, 现在拿一个8, 所以你可以看到它变成了8｡ 

12:25.820 --> 12:28.850
然后就再也认不出来了｡ 

12:28.850 --> 12:31.970
这些止损对我们人类来说是有意义的, 对吧？

12:31.970 --> 12:38.540
这些功能, 它的工作, 但在同一时间, 它是正确的认识到, 它是一个8｡

12:38.750 --> 12:40.460
是啊, 所以一定要好好玩玩｡ 

12:40.460 --> 12:43.430
你可以画一个笑脸, 看看会发生什么｡ 

12:43.940 --> 12:50.860
它看起来像是这个工具的3, 因为这个工具显然只训练了0到9的数字｡

12:50.860 --> 12:55.870
所以它必须从这些中识别出一些东西, 它识别出一个3｡ 

12:56.830 --> 13:02.110
这就像在生活中, 当你看到一种你从未见过的水果,

13:02.140 --> 13:05.830
比如奶油冻苹果什么的.

13:05.830 --> 13:12.250
你觉得它就像是梨因为你从来没见过.

13:12.250 --> 13:13.930
你不知道该把它归为什么｡ 

13:13.930 --> 13:14.590
这里也一样｡ 

13:14.590 --> 13:17.590
所以实际上它并没有训练笑脸｡ 

13:17.590 --> 13:19.270
这就是为什么它认为它是一棵树｡ 

13:19.450 --> 13:20.200
这是一个三｡ 

13:20.200 --> 13:20.860
所以你去那里｡ 

13:20.860 --> 13:22.600
这是一个非常强大的工具｡ 

13:22.600 --> 13:25.190
它会对你有帮助的发挥周围｡ 

13:25.190 --> 13:32.950
实际上, 当你把鼠标放在一个像素上时, 它会显示特征检测器在哪里检测到这个像素,

13:32.950 --> 13:37.390
这样你就可以看到这个像素是从哪里来的｡

13:37.390 --> 13:44.410
你们也可以看到滤波器就像是穿过图像一样, 这正是我们在课程中所讲的｡

13:44.410 --> 13:56.950
在这里你可以看到池, 你可以看到池是用一个2乘2的小正方形来完成的｡

13:56.950 --> 14:03.670
你可以看到它的步幅也是2, 就像我们在今天的教程中讨论的那样｡ 

14:03.670 --> 14:09.130
好了, 我们来玩一玩, 希望大家喜欢今天的课程｡ 

14:09.130 --> 14:10.450
我期待着下次见到你｡ 

14:10.450 --> 14:12.580
在此之前, 请尽情享受深度学习｡ 
