一个数学博士的深度学习方法(第 5 部分)

一个数学博士的深度学习方法(第 5 部分),第1张

一个数学博士的深度学习方法(第 5 部分)

在获得博士学位后,我开始了学习数据科学和机器学习的旅程。我拥有纯数学博士学位,并且由于有许多有趣的应用程序,我对学习机器学习产生了兴趣。

作为一个纯粹的数学家,我对如何使用我的知识来理解算法感到怀疑,但我也认为不要仅仅停留在理论上非常重要,所以我开始学习很多课程。在我的旅程中,我注意到通过阅读书籍,我可以更好地保留知识。

前面,我们连载了四次数学博士的深度学习方法(点击直达):

ntent="mp" data-source="outerlink" href="https://mp.weixin.qq.com/s/dPBsL7tZcdpuEUnW3KJPig" rel="noopener noreferrer noopener noreferrer" target="_blank">一个数学博士的深度学习方法(第 4 部分)

ntent="mp" data-source="outerlink" href="https://mp.weixin.qq.com/s/vuO0Qwyzews8AFG5R4VhHQ" rel="noopener noreferrer noopener noreferrer" target="_blank">一个数学博士的深度学习方法(第 3 部分)

ntent="mp" data-source="outerlink" href="https://mp.weixin.qq.com/s/xloa-73fcA7XfawMVzQCaQ" rel="noopener noreferrer noopener noreferrer" target="_blank">一个数学博士的深度学习方法(第 2 部分)

ntent="mp" data-source="outerlink" href="https://mp.weixin.qq.com/s/bmZg0DjK1bLeZQbCTCH6Tw" rel="noopener noreferrer noopener noreferrer" target="_blank">一个数学博士的深度学习方法(第 1 部分)

更多学习方法和算法也可以直接打开整个系列:ntent="mp" data-source="outerlink" href="https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzg5MzU3NTIyOA==&action=getalbum&album_id=2312809888399474690#wechat_redirect" rel="noopener noreferrer noopener noreferrer" target="_blank">「链接」

在本文第5部分,博士将给大家谈谈最著名的神经网络架构之一:卷积神经网络(CNN)。这种类型的网络非常适合计算机视觉,在过去十年中促进了深度学习解决方案的采用。

CNN 使用相邻点之间的空间相关性来检测模式。CNN 的灵感来自于人脑处理图像的方式,即有一些部分负责检测基本特征,例如边缘和曲线,还有一些部分负责检测复杂特征作为空间不变性。

在 MLP 网络中,我们可以选择以任意顺序将特征传递给输入层。当然,在选择一个订单后,我们必须使用该订单来训练 MLP。但对于 CNN,情况有所不同,因为数据具有空间相关性,我们无法选择将信息传递给 CNN 的顺序。

在灰度图像中,每个像素(屏幕中的点)是一个从 0(黑色)到 255(白色)的数字,像素的数量取决于图像分辨率。计算机将 512x512 图像视为 512x512 矩阵。对于 512x512 彩色图像,我们必须通知三个 512x512 矩阵,一个用于红色,一个用于绿色,一个用于蓝色(在 RGB 系统中)。因此图像被处理为高度 x 宽度 x 通道形式的张量,在 512x512x1 张量和 512x512x3 张量之前的示例中。

在 MLP 网络中,有权重将神经元从一层连接到另一层,但在 CNN 中,有一些线性 *** 作将一层连接到另一层,例如卷积和池化。

卷积

考虑我们有两个连续函数,一个函数 f(输入)和一个函数 g(内核),所以 f 和 g 的卷积为

我们可以把内核想象成一个过滤器,它通过函数 f 来搜索某种模式。如果 f 和 g 是离散函数,则卷积为

一维卷积

在实践中,假设我们有输入数据 [2 1 4 1 1 0 3 2 2] 和一个内核 [2 0 -1] 所以我们可以按照以下方式进行卷积

也就是说,我们对乘法元素进行求和,通过这种方式,我们得到输出。

二维卷积

二维数据更有趣。考虑我们有输入数据 I 和内核 K 如下

让我们计算卷积以获得特征图 O。考虑下面的示例

以这种方式进行,我们有

我们可以将卷积 *** 作看成是扫描输入数据以搜索作为核数据的模式,因此特征图是在查看输入数据不同位置的核模式。

一般来说,我们可以写类似

那是

或者我们可以写

请注意,特征图(输出数据)的维度小于输入数据,如果我们想要搜索很多模式,那么这种降维是不好的。为了解决这个问题,我们可以用零填充输入矩阵的外部,以保留相关信息的维度。

为了减少特征图的维度,我们可以使用更大的内核(过滤器)或者我们可以增加步幅大小。让我们做与上面相同的卷积,但这次我们将步幅增加到 2。

这样,我们可以计算特征图的维度为

其中 I 是 nxn 数组,K 是 kxk 数组,p 是填充,s 是步幅。

我们可以为我们正在寻找的每个模式重复这个过程一次,并将这些输出堆叠在一起,形成一个三维数组,称为层。

例如,假设我们有一个大小为 100 x 100 的图像和一个大小为 20 x 20 且步幅为 2 的内核。如果我们将其应用于输入 13 次,则该层是一个形式为 3 维数组40 x 40 x 13。

三维卷积

三维卷积对深度以及高度和宽度进行卷积。假设输入数据大小为 21 x 21 x 15,内核大小为 5 x 5 x 5,步长为 1,则输出大小为 17 x 17 x 11。

这种类型的卷积用于在 3D 中查找关系的任务中。例如,对象分割或检测视频中的运动。

奇怪的是,如果我们将大小为 nxnxt 的数据与 kxkxt 形式的内核进行卷积,我们会得到一个二维数组。让我们看一个例子。

假设我们有一个彩色图像作为输入,尺寸为 3x3x3,内核尺寸为 2x2x3,因此输入为

3x3x3 维输入

我们在每个通道中进行卷积

R为红色通道,B为蓝色通道,G为绿色通道

所以我们的输出是

我们可以用数学的方式写成

汇集

池化是减少特征图大小的一种 *** 作。在特征图上滑动一个窗口,只选择最大值或计算平均值。

池化 *** 作没有参数,因此无法“学习”和调整。我们可以用下面的表达式计算池化后的特征图的大小。

假设一个 4x4 的输入 I 和一个 2x2 的最大池如下,我们将获得一个 3x3 的特征图。

假设现在相同的情况,但使用平均池化,让我们使用 2 的步幅。

一般来说,max pooling 有更好的性能,但是在 pooling 中丢失了多少信息,在实践中使用的越来越少。

在实践中,最常用的卷积大小为 3x3、5x5 和 7x7,但也可以使用其他顺序。使用这些大小的原因是它们的计算密集度较低,并且具有与较大大小的内核相同的性能。

美国有线电视新闻网的概述

正如我们所看到的,MLP 和 CNN 之间存在差异。在 CNN 中,连续层中的每个神经元从图像中的一小部分局部像素接收输入;CNN 层中的每个神经元具有相同的权重;CNN 是平移不变量,即无论图像上的位置如何,都可以检测到相同的对象;CNN 的参数较少,最常用的激活函数是 ReLU、PReLU 和指数线性单元。

一般来说,CNN架构是:

如下所示

下一篇…

OK!我们踏上了 CNN 领域的旅程。总的来说,我希望您喜欢并了解 CNN 的工作原理。在下一篇文章中,我们将发现另一个非常有趣的架构,即循环神经网络 (RNN)。再见!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/4806046.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-10
下一篇 2022-11-09

发表评论

登录后才能评论

评论列表(0条)

保存