目录
- 第四门课 卷积神经网络(Convolutional Neural Networks)
- 第四周 特殊应用:人脸识别和神经风格转换(Special applications: Face recognition &Neural style transfer)
- 4.11 一维到三维推广(1D and 3D generalizations of models)
第四门课 卷积神经网络(Convolutional Neural Networks)
第四周 特殊应用:人脸识别和神经风格转换(Special applications: Face recognition &Neural style transfer)
4.11 一维到三维推广(1D and 3D generalizations of models)
你已经学习了许多关于卷积神经网络(ConvNets)的知识,从卷积神经网络框架,到如何使用它进行图像识别、对象检测、人脸识别与神经网络转换。即使我们大部分讨论的图像数据,某种意义上而言都是 2D 数据,考虑到图像如此普遍,许多你所掌握的思想不仅局限于 2D 图像,甚至可以延伸至 1D,乃至 3D 数据。
让我们回头看看在第一周课程中你所学习关于 2D 卷积,你可能会输入一个 14×14 的图像,并使用一个 5×5 的过滤器进行卷积,接下来你看到了 14×14 图像是如何与 5×5 的过滤器进行卷积的,通过这个操作你会得到 10×10 的输出。
如果你使用了多通道,比如 14×14×3,那么相匹配的过滤器可能是 5×5×3,如果你使用了多重过滤,比如 16,最终你得到的是 10×10×16。
事实证明早期想法也同样可以用于 1 维数据,举个例子,左边是一个 EKG 信号,或者说是心电图,当你在你的胸部放置一个电极,电极透过胸部测量心跳带来的微弱电流,正因为心脏跳动,产生的微弱电波能被一组电极测量,这就是人心跳产生的 EKG,每一个峰值都对应着一次心跳。
如果你想使用 EKG 信号,比如医学诊断,那么你将处理 1 维数据,因为 EKG 数据是由时间序列对应的每个瞬间的电压组成,这次不是一个 14×14 的尺寸输入,你可能只有一个14 尺寸输入,在这种情况下你可能需要使用一个 1 维过滤进行卷积,你只需要一个 1×5 的过滤器,而不是一个 5×5 的。
二维数据的卷积是将同一个 5×5 特征检测器应用于图像中不同的位置(编号 1 所示),你最后会得到 10×10 的输出结果。1 维过滤器可以取代你的 5 维过滤器(编号 2 所示),可在不同的位置中应用类似的方法(编号 3,4,5 所示)。
当你对这个 1 维信号使用卷积,你将发现一个 14 维的数据与 5 维数据进行卷积,并产生一个 10 维输出。
再一次如果你使用多通道,在这种场景下可能会获得一个 14×1 的通道。如果你使用一个 EKG,就是 5×1 的,如果你有 16 个过滤器,可能你最后会获得一个 10×16 的数据,这可能会是你卷积网络中的某一层。
对于卷积网络的下一层,如果输入一个 10×16 数据,你也可以使用一个 5 维过滤器进行卷积,这需要 16 个通道进行匹配,如果你有 32 个过滤器,另一层的输出结果就是 6×32,如果你使用了 32 个过滤器的话。
对于 2D 数据而言,当你处理 10×10×16 的数据时也是类似的,你可以使用 5×5×16 进行卷积,其中两个通道数 16 要相匹配,你将得到一个 6×6 的输出,如果你用的是 32 过滤器,输出结果就是 6×6×32,这也是 32 的来源。
所有这些方法也可以应用于 1 维数据,你可以在不同的位置使用相同的特征检测器,比如说,为了区分 EKG 信号中的心跳的差异,你可以在不同的时间轴位置使用同样的特征来检测心跳。
所以卷积网络同样可以被用于 1D 数据,对于许多 1 维数据应用,你实际上会使用递归神经网络进行处理,这个网络你会在下一个课程中学到,但是有些人依旧愿意尝试使用卷积网络解决这些问题。
下一门课将讨论序列模型,包括递归神经网络、LCM 与其他类似模型。我们将探讨使用1D 卷积网络的优缺点,对比于其它专门为序列数据而精心设计的模型。
这也是 2D 向 1D 的进化,对于 3D 数据来说如何呢?什么是 3D 数据?与 1D 数列或数字矩阵不同,你现在有了一个 3D 块,一个 3D 输入数据。以你做 CT 扫描为例,这是一种使用 X 光照射,然后输出身体的 3D 模型,CT 扫描实现的是它可以获取你身体不同片段(图片信息)。
当你进行 CT 扫描时,与我现在做的事情一样,你可以看到人体躯干的不同切片(整理者注:图中所示为人体躯干中不同层的切片,附 CT 扫描示意图,图片源于互联网),本质上这个数据是 3 维的。
一种对这份数据的理解方式是,假设你的数据现在具备一定长度、宽度与高度,其中每一个切片都与躯干的切片对应。
如果你想要在 3D 扫描或 CT 扫描中应用卷积网络进行特征识别,你也可以从第一张幻灯片(Convolutions in 2D and 1D)里得到想法,并将其应用到 3D 卷积中。为了简单起见,如果你有一个 3D 对象,比如说是 14×14×14,这也是输入 CT 扫描的宽度与深度(后两个 14)。再次提醒,正如图像不是必须以矩形呈现,3D 对象也不是一定是一个完美立方体,所以长和宽可以不一样,同样 CT 扫描结果的长宽高也可以是不一致的。为了简化讨论,我仅使用14×14×14 为例。
如果你现在使用 5×5×5 过滤器进行卷积,你的过滤器现在也是 3D 的,这将会给你一个10×10×10 的结果输出,技术上来说你也可以再×1(编号 1 所示),如果这有一个 1 的通道。这仅仅是一个 3D 模块,但是你的数据可以有不同数目的通道,那种情况下也是乘 1(编号2 所示),因为通道的数目必须与过滤器匹配。如果你使用 16 过滤器处理 5×5×5×1,接下来的输出将是 10×10×10×16,这将成为你 3D 数据卷积网络上的一层。
如果下一层卷积使用 5×5×5×16 维度的过滤器再次卷积,通道数目也与往常一样匹配,如果你有 32 个过滤器,操作也与之前相同,最终你得到一个 6×6×6×32 的输出。某种程度上 3D 数据也可以使用 3D 卷积网络学习,这些过滤器实现的功能正是通过你的 3D 数据进行特征检测。CT 医疗扫描是 3D 数据的一个实例,另一个数据处理的例子是你可以将电影中随时间变化的不同视频切片看作是 3D 数据,你可以将这个技术用于检测动作及人物行为。
总而言之这就是 1D、2D 及 3D 数据处理,图像数据无处不在,以至于大多数卷积网络都是基于图像上的 2D 数据,但我希望其他模型同样会对你有帮助。
这是本周最后一次视频,也是最后一次关于卷积神经网络的课程,你已经学习了许多关于卷积网络的知识,我希望你能够在未来工作中发现许多思想对你有所裨益,祝贺你完成了这些视频学习,我希望你能喜欢这周的课后练习,接下来关于顺序模型的课程我们不见不散。