深度学习学习笔记(四)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

此篇博客是对于神经网络中的卷积网络学习的相应笔记。


提示:以下是本篇文章正文内容,下面案例可供参考

一、卷积神经网络(Convolutional Neural Networks)

1.1 计算机视觉

深度学习与计算机视觉可以帮助汽车,查明周围的行人和汽车,并帮助汽车避开它们。还使得人脸识别技术变得更加效率和精准。

同时计算机视觉还衍生出新的神经网络结构与算法,这启发将这些算法和结构应用到其他的领域中。

应用计算机视觉时要面临一个挑战,就是数据的输入可能会非常大。这就意味着你的特征向量x的维度非常大。这回导致你的参数很大,难以获得足够的数据来防止神经网络发生过拟合和竞争需求,此时就需要进行卷积计算。

1.2 边缘检测示例

具体的卷积计算如下(这里考虑对于竖直边缘的检测)
在这里插入图片描述通过移动过滤器来得到右边的矩阵。

完成的效果如下
在这里插入图片描述可知在完成边缘检测后得到的结果图像,会在边缘处有着较高的亮出,以表示在该处发现了一个垂直边缘。

除此之外,还可以相应的做水平边缘检测。

在这里插入图片描述这里由于我们使用的都是相对较小的图片,使得中间过渡区域的数值较大。

对于过滤器的设置有着如下的几种,
除了我们上述使用过的过滤器,还有Sobel过滤器,它的优点在于增加了中间一行元素的权重,这使得结果的鲁棒性会更高。

在这里插入图片描述
还有如Scharr 过滤器。
在这里插入图片描述
而随着深度学习的发展,我们可以将过滤器中的数字组合作为参数,通过反向传播的方式来进行学习,以此,可能得到更好的过滤器数字组合。

1.4 Padding

从之前的例子中,我们可以发现,每经过一次卷积操作,你的图像就会缩小。
同时,你会发现边缘的像素在输出中采用较少,这也就意味着你丢掉了图像边缘位置的许多信息。

为了解决这两个问题,我们考虑在卷积操作前填充这幅图像。
在这里插入图片描述对于填充的像素数,你可以选择填充多个。
一般而言,通常有两种选择
1.Valid卷积 意味着不填充
2.Same卷积 意味你填充后,你的输出大小和输入大小是一样的

通过式子求解,我们可以知道,p=(f-1)/2
一般而言,我们在卷积网络中的过滤器为奇数,这不仅与计算填充像素数,也利于找到对应的过滤器中心位置。

1.5 卷积步长

同样,对于卷积神经网络中,卷积步长也是其中的一个基本操作。
当步长为2时,此时我们会考虑将过滤器移动两个单位,由此我们得到了对应的输出矩阵维度公式,如下
在这里插入图片描述
当得到的值不为整数时,我们考虑向下取整,具体公式如下
在这里插入图片描述

补充
在实际的数学定义中,我们知道在做元素乘积求和是,会先对过滤器进行镜像操作。(沿水平和竖直翻转)该操作会使得公式满足结合律,对于信号处理应用有较大的帮助。
可以这么说,我们之前的卷积操作实际上被称作互相关,但是在深度学习文献中,我们按照惯例,将其称为卷积操作。

1.6 三维卷积(Convolutions over volumes)

这里我们考虑将卷积应用在三维立体上,
这里我们假设将考虑对于RGB彩色图片进行卷积操作。
如下
在这里插入图片描述此时,我们需要将过滤器也转变为3维。然后类似于之前的卷积操作,来完成相应的计算。

假如,我们想要对于图像红色通道的边缘进行检测。那么我们可以将第一维的过滤器设置为如下,
其余的过滤器为全0
在这里插入图片描述

补充
按照计算机视觉的惯例,当你的输入有特定的高宽和通道数时,你的过滤器可以有不同的高,不同的宽,但是必须一样的通道数。理论上,我们的过滤器只关注红色通道,或者只关注绿色或者蓝色通道也是可行的。

如果我们不想仅仅检测垂直边缘,还想同时检测水平边缘,那么我们可以设置第二个过滤器,来得到相应的特征,也就是说,我们可以通过设置n个过滤器来得到n个特征。

1.7 单层卷积网络

对于单层卷积网络,我们假设通过卷积操作后得到一个输出矩阵,然后对该矩阵利用python的广播性质来增加一个bias,在经过Nonlinear -function ReLu 来得到该层的输出。

上述过程非常类似于之前的神经网络的前向传播。

对于参数的矩阵维度,我们有着以下的公式计算
在这里插入图片描述对于偏差参数,为了方便,在编程中,我们表示为一个
1* 1* 1* nc 的四维向量。

接下来我们考虑一个具体的卷积层
在这里插入图片描述
在得到最后一层的特征后,我们可以将其平滑或展开,然后通过logistic或者softmax来进行预测输出。

一般而言卷积层,我们通常用Conv来标注。

1.8 池化层 (Pooling)

除了卷积层,卷积网络也经常使用池化层来缩减模型的大小,提高计算速度,同时提高所提取特征的鲁棒性。

一般考虑的池化层都采用最大池化。
即考虑一个树池 2*2,它将输入的矩阵分为四个不同的区域,在每个区域中得到对应的最大的值作为输出。
步骤如下 (此处考虑s=2)
在这里插入图片描述对于最大池化功能的直观理解就是这个4×4输入看作是某些特征的集合,数字大意味着可能探测到了某些特定的特征,最大池将这个象限内提取到的某个特征保留在输出中。

对应的,池化层也有着它的一组超参数,但是该参数并不需要学习,也就是说当f和s固定时,池化层就是一个固定的运算。

补充 另外还有一种池化方法,即平均池化,也就是对于对应的区域取平均值。 目前而言,在神经网络中,最大池化要比平均池化用的多。
最大池很少使用padding,同时一般而言,它的过滤器大小为f=2,s=2

1.9 带有全连接的卷积神经网络

(LeNet-5)

补充
人们发现在卷积神经网络文献中,卷积有两种分类,这与所谓层的划分存在一致性。一类卷积是一个卷积层和一个池化层一起作为一层,这就是神经网络的Layer1。另一类卷积是把卷积层作为一层,而池化层单独作为一层。

由于池化层没有参数,所以我们这里将池化层和卷积层看做一层。
在这里插入图片描述上图,我们设立了两个卷积层,然后通过两层标准神经网络层最后加上softmax层来完成对应的输出。

补充
在神经网络中,另一种常见模式就是一个或多个卷积后面跟随一个池化层,然后一个或多个卷积层后面再跟一个池化层,然后是几个全连接层,最后是一个softmax。这是神经网络的另一种常见模式。

和只用全连接层相比,卷积层的两个主要优势在于参数共享和稀疏连接。

参数共享 观察发现,特征检测如垂直边缘检测如果适用于图片的某个区域,那么它也可能适用于图片的其他区域,因此只需要较少的参数即可。

稀疏连接 可知经过卷积操作得到的输出至于对应的几个单元相关,其他的像素值不会对该输出产生任何的影响。

由此卷积网络可以通过这两种机制来减少参数,使得我们能够
用更小的训练集来训练它,从而预防过拟合。

总的来说,我们通过建立这样结构的卷积网络,通过代价函数来进行训练,利用梯度下降法或者Adam算法来优化神经网络中的所有参数。

习题
1 假设你的输入是一个300×300的彩色(RGB)图像,而你没有使用卷积神经网络。 如果第一个隐藏层有100个神经元,每个神经元与输入层进行全连接,那么这个隐藏层有多少个参数(包括偏置参数)?

此时有100个隐藏单元,所以有100个偏置参数,所以应该为3003003*100+100=27000100

2假设你的输入是300×300彩色(RGB)图像,并且你使用卷积层和100个过滤器,每个过滤器都是5×5的大小,请问这个隐藏层有多少个参数(包括偏置参数)?

355*100+100=7600

由卷积层->池化层作为一个layer,在前向传播过程中,池化层里保存着卷积层的各个部分的最大值/平均值,然后由池化层传递给下一层,在反向传播过程中,由下一层传递梯度过来,“不影响反向传播的计算”这意味着池化层到卷积层(反向)没有梯度变化,梯度值就为0,既然梯度值为0,那么例如在W[l]=W[l]−α×dW[l]的过程中,参数W[l]=W[l]−α×0,也就是说它不再更新,那么反向传播到此中断。所以池化层会影响反向传播的计算。

在课堂上,我们讨论了“稀疏连接”是使用卷积层的好处。这是什么意思?
下一层中的每个激活只依赖于前一层的少量激活。

二、深度卷积网络 实例探究

2.1 经典网络架构

LeNet-5
该网络的具体结构如下
其主要是针对灰度图片训练,且它采用的池化层采用的是平均池化方法。
在这里插入图片描述这个神经网络中还有一种模式至今仍然经常用到,就是一个或多个卷积层后面跟着一个池化层,然后又是若干个卷积层再接一个池化层,然后是全连接层,最后是输出,这种排列方式很常用。

补充 LeNet-5网络对于每个过滤器都采用了和输入模块一样的同道数量,同时他在池化后采用了非线性函数进行处理。 图形变形网络

AlexNet网络
网络结构如下
在这里插入图片描述AlexNet网络非常类似于LeNet网络,不过它采用的是Relu激活函数,同时还有局部响应归一化层,即对于某个位置对于整个同道都进行归一化操作。
该操作的主要目的是为了能够不需要太多的高激活函数。

VGG-16网络
该网络没有很多的超参数,它只用非常简单的结构来构建神经网络。

在这里插入图片描述
这种网络结构很规整,都是几个卷积层后面跟着可以压缩图像大小的池化层,池化层缩小图像的高度和宽度。同时,卷积层的过滤器数量变化存在一定的规律,由64翻倍变成128,再到256和512。

2.3 残差网络(ResNets)

因为存在梯度消失和梯度爆炸问题使得非常深的神经网络难以训练。
而残差网络则给出了一种称为跳跃连接的方式,它可以从某一层网络层获取激活,然后迅速反馈给另外一层,甚至是神经网络的更深层。我们可以利用这一点来构造深度网络。

残差块
在这里插入图片描述
在残差网络中有一点变化,我们将al直接向后,拷贝到神经网络的深层,在ReLU非线性激活函数前加上al,这是一条捷径。的信息直接到达神经网络的深层,不再沿着主路径传递,即在这里插入图片描述通过将多个残差块堆积在一起,就组成了ResNet网络。通过残差块,他能够保证当深度更深时,训练的效果会变得不错,不会像普通网络那样,训练误差变得越来越多。

对于为什么ResNet会有比较好的效果,我们这样考虑
我们考虑如下网络片段
在这里插入图片描述其中a[l+2]=g(w[l+2]*a[l+1]+b[l+2]+a[l])

此时L2正则化会对w进行权重衰减,我们假设W=0同时b=0(假设对于b也进行正则化)
那么此时a[l+2]=a[l]
这就意味着,哪怕给大型神经网络增加两层,不会影响网络的表现和效率。
加入在隐藏单元中学到一些有用的信息,那么可能性能会更好。

补充
ResNets使用了许多same卷积,所以这个的维度等于这个输出层的维度。之所以能实现跳跃连接是因为same卷积保留了维度,所以很容易得出这个捷径连接,并输出这两个相同维度的向量。
加入输入和输出维度不相同,那么可以呈上一个W矩阵,他可以是一个通过网络学习得到的矩阵也可以是一个固定的矩阵即pading为0.
通过padding来成比例缩放image长宽,通过1x1 filter改变channel,filter卷积核后面不添加任何激活函数,即文中所谓的只做线性变换改变维度使其匹配插入的层维度,但不添加任何非线性激活函数。

普通网络和ResNets网络常用的结构是:卷积层-卷积层-卷积层-池化层-卷积层-卷积层-卷积层-池化层……依此重复。直到最后,有一个通过softmax进行预测的全连接层。

2.4 网络中的1*1卷积

当对于一个信道为1的图片,使用11的过滤器进行卷积时,效果并不佳。但是当你对一个信道不为1的图片使用11的过滤器进行卷积时,卷积效果会比较好。
在这里插入图片描述对于上述例子而言,11的卷积可以看做对于这32个位置都应用一个全连接层。
这样的方法即被称为1
1卷积或者Network in Network

补充 1*1的卷积核可以对于输入进行压缩或者扩大。

在这里插入图片描述

2.5 Inception网络

构建卷积层时,你要决定过滤器的大小究竟是1×1),3×3还是5×5,或者要不要添加池化层。而Inception网络的作用就是代替你来决定。

Inception网络使用如下的网络结构
在这里插入图片描述对于Inception层的计算成本,如果使用之前的same 卷积那么会有着非常大的计算代价,此时我们可以引入之前介绍的1*1卷积来对输入进行信道的压缩然后再经过卷积层。

具体如下
在这里插入图片描述有时,中间的这个较小的层也被称为瓶颈层。

补充 对于瓶颈层,只要合理构建,那么便不会降低网络性能。

总结一下,如果你在构建神经网络层的时候,不想决定池化层是使用1×1,3×3还是5×5的过滤器,那么Inception模块就是最好的选择。我们可以应用各种类型的过滤器,只需要把输出连接起来。

具体的Inception网络结构如下
单层
在这里插入图片描述全局
在这里插入图片描述其中Inception网络还存在一些分支,这些分支通过隐藏层,全连接层和softmax层来进行预测,它主要起着防止过拟合的作用。

补充 目前已有许多新版本的Inception 例如 Inception V2,V3,V4以及引入跳跃连接技术。

2.6 数据扩充

最简单的数据扩充方法就是垂直镜像对称。另一个经常使用的技巧是随机裁剪。
第二种经常使用的方法是彩色转换,有这样一张图片,然后给R、G和B三个通道上加上不同的失真值。
比如如下
在这里插入图片描述即通过使用不同的R,G和B值来改变颜色。
还有一种影响颜色失真的算法是PCA,
PCA颜色增强的大概含义是,比如说,如果你的图片呈现紫色,即主要含有红色和蓝色,绿色很少,然后PCA颜色增强算法就会对红色和蓝色增减很多,绿色变化相对少一点,所以使总体的颜色保持一致。

2.7 计算机视觉现状

当你有很多数据时,人们倾向于使用更简单的算法和更少的手工工程,因为我们不需要为这个问题精心设计特征。
但对于只有较少的数据时,我们需要完成许多手工工程。
同样,迁移学习能够帮助你很多。

补充 Benchmark 基准测试,Benchmark是一个评价方式,在整个计算机领域有着长期的应用。

对于基准测试中的小技巧
1一个是集成,这就意味着在你想好了你想要的神经网络之后,可以独立训练几个神经网络,并平均它们的输出
2. 进行数据扩充。Multi-crop at test time

由于计算机视觉问题建立在小数据集之上,其他人已经完成了大量的网络架构的手工工程。一个神经网络在某个计算机视觉问题上很有效,但令人惊讶的是它通常也会解决其他计算机视觉问题。所以你可以从他人的神经网络架构入手。

习题
1.在典型的卷积神经网络中,随着网络的深度增加,你能看到的现象是?
nH 和 nW 减少,同时 nC 增加
(AlexNet)

2.在典型的卷积神经网络中,你能看到的是?
多个卷积层后面跟着的是一个池化层。
全连接层(FC)位于最后的几层。

在没有残差的普通神经网络中,理论上是误差越来越低的,但是实际上是随着网络层数的加深,先减小再增加;在有残差的ResNet中,即使网络再深,训练误差都会随着网络层数的加深逐渐减小。

通过padding来成比例缩放image长宽,通过1x1 filter改变channel,filter卷积核后面不添加任何激活函数,即文中所谓的只做线性变换改变维度使其匹配插入的层维度,但不添加任何非线性激活函数。

三、目标检测(Objecct detection)

3.1 目标定位(Object localization)

对象检测,它是计算机视觉领域中一个新兴的应用方向。
对于图片分类任务,我们已经知道如何使用卷积神经网络来进行预测。

如何做目标定位呢?
我们考虑使用如下的方式,即在输出中的某个特征表示是否有对象,某几个特征表示图片分类,某几个特征表示对应的目标位置。
在这里插入图片描述当图片中不存在对对象时,则其余的参数将变得毫无意义。

由此我们可以定义该神经网络对应的损失函数。
在这里插入图片描述我们可以用如上所示的均方误差,也可以针对不同的类别使用不同的误差然后相加,比如对于是否存在对象这个特征,可以采用logistic回归的代价函数,对于位置信息可以使用均方误差,对于图片分类,可以使用softmax误差。

3.2 特征点检测(Landmark detection)

神经网络可以通过输出图片上特征点的(x,y)坐标来实现对目标特征的识别。
比如如下
在这里插入图片描述
具体做法是,准备一个卷积网络和一些特征集,将人脸图片输入卷积网络,输出1或0,1表示有人脸,0表示没有人脸,然后输出脸上的一些特征值的坐标。

同样对于人物姿势的识别也可以采用这种方式,比如定义一些关键特征点,如胸部的中点,左肩,左肘,腰等等。然后通过神经网络标注人物姿态的关键特征点,再输出这些标注过的特征点,就相当于输出了人物的姿态动作。

3.3 目标检测(Object detection)

在这一节,我们来考虑一个对象检测算法,通过基于滑动窗口的目标检测算法。

首先我们训练一个神经网络来识别汽车的图片。然后利用滑动窗口即选定一个特定大小的窗口在图片中移动,并输入到神经网络中进行判断。

为了提高准确率,我们可以多次重复,并且每次都采取不同大小的窗口来进行检测。

上述算法叫作滑动窗口目标检测,因为我们以某个步幅滑动这些方框窗口遍历整张图片,对这些方形区域进行分类,判断里面有没有汽车。

同样该算法也有比较明显的缺点,那就是计算成本过高。

3.4 滑动窗口的卷积实现

在上节,我们考虑使用滑动窗口来选取对应的图片,然后如输入到卷积神经网络中进行分类,判断,这样会导致效率较低。

在这一节,我们考虑使用卷积的方式来实现对应的滑动窗口来提高算法的效率。

我们首先需要将卷积网络中的全连接层改为卷积层,具体如下

在这里插入图片描述
据上图可知,我们用400个55的过滤器(卷积核)来对输入进行卷及操作,该操作得到的是11400的输出层,我们可以将其看做是对于每个5516通过线性函数的操作得到对应的11的结果。(我们把这5516看做线性函数的权值参数,即可从数学上认为该卷积操作类似于线性函数)

然后,我们在添加下一层,通过11的卷积网络来同样完成全连接层的工作。最后我们在用11*4的卷积核处理,得到对应的softmax激活值。

补充 Sermanet, Pierre, et al. “OverFeat: Integrated Recognition,Localization and Detection using Convolutional Networks.” Eprint Arxiv(2013).

然后我们再考虑使用如上的卷积网络来实现对应的滑动窗口。

具体结构如下
在这里插入图片描述我们可以看做在原图上进行窗口的滑动,然后让卷积网络运行4次,得到对应的4个输出标签。(多个公共计算)
因为最大池化参数为2,相当于以大小为2的步幅在原始图片上应用神经网络。

上述实现方式,提高了算法的效率,但是该算法仍然存在一个缺点,就是边界框的位置可能不够准确。

3.5 Bounding Box预测

YOLO算法,它的基本思路是采用图像分类和图像定位算法。
通过对于图片上放上一个固定的网格,然后对于每个网格进行图像的检测分类。其中得到的y标签如下
在这里插入图片描述
这个算法的优点就是他能够输出准确的边界框。同时他利用卷积实现能够提高算法的效率。

补充 把对象分配到一个格子的过程是,你观察对象的中点,然后将这个对象分配到其中点所在的格子,由此可知,对于图像的中心必定在该格子内,但是具体对象的宽度和高度有可能超过一个格子的大小。具体的指定边界框可以参考下述文献
Redmon, Joseph, et al. “You Only Look Once: Unified, Real-Time Object Detection.” (2015):779-788.

3.6 交并比(IOU)

对于对象检测任务,我们如何去评估算法是否运作良好呢?
我们通过交并比来进行相应的评估。

交并比具体而言
考虑实际边界框和算法给出的边界框的交集和其并集之比。
当IOU越高,那么边界框就越精确。

一般而言,我们会认为IOU的阈值为0.5,即大于0.5的结果我们会直接舍弃。

3.7 非极大值抑制(Non-max suppression)

对于前述的算法,有可能会对于同一对象作出多次检测。而非极大值抑制的方法能够确保你的算法那对于每个对象都只检测一次。

非极大值抑制算法会寻找检测结果中概率最高的网格,然后排除掉所有与之有很高交并比的边框,一直循环往复。

当你的算法需要检测多个对象时,那么就需要独立的进行三次非极大值抑制,即对每个类别都做一次相应的处理。

详细如下
在这里插入图片描述

3.8 Anchor Boxes

上述所研究的算法中,对每个各自都只能检测出一个对象,如果你需要对于一个格子检测出多个对象,那么就需要使用anchor box概念。

具体而言就是通过定义不同的anchor box 来进行相应的匹配(通过IOU)

我们这里假设有两个anchor box
即如下所示
在这里插入图片描述算法对应的输出结果如下
在这里插入图片描述假如你在某个网格中检测到了两个对象,那么我们可根据他与不同anchor box匹配的程度来进行检测(取匹配程度最高的anchor box)

补充 设立anchor box的好处在于anchor box能让你的学习算法能够更有针对性
如何选择anchor box
我们可以手工指定,或者更高级的采用k-mean算法来进行选取。

3.9 YOLO算法

在这一节,我们将之前的东西整合起来
在这里插入图片描述
即输入一张图片,然后再固定的网格中通过卷积方式去进行算法检测。得到的输出结果类似于之前的。(包括位置信息,图像分类信息,anchor box概念)

然后对于输出结果进行非极大值抑制算法。

3.10 候选区域(Region proposals)

在对象检测中,还有另一种思路。即通过候选区域的选取进行相应的对象检测。

具体而言就是通过图像分割算法,来得到可能存在对象的候选区域,然后对于这些候选区域进行相应的对象检测和对象定位。

在这里插入图片描述缺点 算法的运行速度非常慢。

改进
1 用卷积实现了滑动窗法
2 用卷积神经网络完成候选区的聚类步骤。

四、人脸识别和神经风格转换(Face recognition & Neural style transfer)

4.1 人脸识别 ——One-Shot学习

人脸识别所面临的一个挑战就是你需要解决一次学习问题,这意味着在大多数人脸识别应用中,你需要通过单单一张图片或者单单一个人脸样例就能去识别这个人。

为了解决这个问题,我们要做的就是让神经网络学习Similarity函数。

在这里插入图片描述它以两张图片作为输入,然后输出这两张图片的差异值。
如果该值大于某个阈值,那么我们认为这两张照片不是同一个人,否则,则认为是同一个人。

4.2 Siamese 网络(Siamese network)

我们在这一节,考虑Siamese Network 网络来实现上一节所述的功能。
具体的网络结构如下
在这里插入图片描述我们考虑上述两张图片在最后输出的特征值的相似程度来判断这两张图片是否是同一个对象。
对于相似度的判断,我们使用两者编码之差的范数。
在这里插入图片描述

4.3 Triplet损失

在这一节我们定义相应的损失函数。
我们考虑输入为如下图片

在这里插入图片描述通过A与p和N的相似函数比较来得到对应的损失函数
在这里插入图片描述
由于我们不希望神经网络训练后得到的每个图片的编码都是一样的,所以我们考虑如下的目标函数

在这里插入图片描述
通过参数α来拉大Anchor和Positive 和Anchor 和Negative图片之间的差距。

由此我们就得到了对应的Loss function

在这里插入图片描述为了训练你的系统你确实需要一个数据集,里面有同一个人的多个照片。

在这里插入图片描述

4.4 人脸验证与二分类

除了Triplet Loss 我们还有其他的学习参数的方法,比如二分类问题。
我们考虑一下的网络结构
在这里插入图片描述即将最后的输出特征输入到逻辑回归单元,然后进行预测,相同为1,不同为0.

在这里插入图片描述其中的距离公式我们可以用以下公式代替
在这里插入图片描述
计算技巧
可以对于数据库中的数据预先计算好编码。预先计算的思想,可以节省大量的计算。

总结一下,把人脸验证当作一个监督学习,创建一个只有成对图片的训练集,不是三个一组,而是成对的图片,目标标签是1表示一对图片是一个人,目标标签是0表示图片中是不同的人。利用不同的成对图片,使用反向传播算法去训练神经网络,训练Siamese神经网络。

4.6 神经风格迁移

实现效果如下
在这里插入图片描述

CNN可视化 文献 Zeiler M D, Fergus R.Visualizing and Understanding Convolutional Networks[J]. 2013, 8689:818-833.

代价函数
我们把这个代价函数定义为两个部分。

在这里插入图片描述我们用两个超参数来确定内容代价和风格代价。

内容代价函数
在这里插入图片描述风格代价函数(不同通道间的相关性)
在这里插入图片描述

在这里插入图片描述Frobenius范数

参考文献 Leon A. Gatys, Alexander S. Ecker, Matthias Bethge, (2015). A Neural Algorithm of Artistic Style

4.11 一维到三维推广

对于一维数据,我们采用大小为5*1的卷积核进行卷积运算。

补充
对于许多1维数据应用,你实际上会使用递归神经网络进行处理

推广到三维也是类似的。

Guess you like

Origin blog.csdn.net/weixin_43869415/article/details/120443387