transform网络(transformer 网络)

http://www.itjxue.com  2023-02-23 11:25  来源:未知  点击次数: 

LSTM-GRU-Transform系列 时序网络

LSTM-GRU-Transform 时序神经网络( Recurrent Neural Network, 简称 RNN ), 是针对时间序列信号、视频等信息进行处理的神经网络,

经典分类CNN模型系列其二:VGG

自Alexnet于2012年的ILSVRC大赛中奋勇夺魁后,ConvNet就不可抑制地大发展了起来。2014年新的一届ILSVRC大赛中Googlenet与VGG的身影分外亮眼。Googlenet相对VGG而言在网络结构上有了更新的突破,不过其复杂度也大大增加了。VGG相对Googlenet虽然精度略逊些,但其整体网络框架还是延续了Alexnet及更早的Lenet等的一贯思路,此外还更深入的探讨了ConvNet深度对模型性能可能的影响。由于其整个网络结构的简单、强大,VGG16/VGG19曾一度广泛被用作各种检测网络框架像Faster-RCNN/SSD等的主干特征提取网络,直到Resnet提出之后,它才渐渐完成了其历史使命,退居二线了。。不过至今仍有许多计算机视觉领域内的任务会考虑VGG的网络设计来构建其新的应用网络模型。

下表所示为VGG论文当中实验过的几种ConvNet结构。它们其本采用了3x3的Conv kernel,pad/stride为1,只是在其中的若干Conv层后会置MaxPool层来作特征的上采样以高度抽象特征,节省后续的计算。然后在每个网络的最后则是同其它分类网络一样的若干个FCs层及Softmax(注意,在更为近代的Resnet/Googlenet系列模型当中已经去掉了参数非常多,计算量大的FC层,而改用了更好使的Average Pool层)。在这些网络结构中,VGG16与VGG19(表中的D网络与E网络)最为受人欢迎,它们在各大Frameworks上训练好的模型参数在网上都可公开获得。

作者表明虽然两个级联的3x3 conv或三个级联的3x3 conv分别在理论上等价于一个5x5 conv及一个7x7 conv。不过它们所具的模型参数(9 C^2与27 C 2)则分别要少于后两者的数目(分别为25*C 2与49*C^2)。同时作者实验表明更深(层数更多)而非更宽(conv channels更多)的网络有着自动规则自己参数的能力,因此有着更好的学习能力。(呵呵,这恐怕亦是一炼金术中招数,难有理论支撑吧,多半是作者在此种VGG类型网络中得到的经验总结)。

同Alexnet一样,也是用SGD对网络进行训练。其训练中用到的超参数像Learning rate/Dacay factor等与Alexnet也几乎一样。训练中用到的输入图片增强,VGG也是使用了一样的image shift及Random crop两种技术。

不过对于输入图片的维度,VGG分别实验了两种方法。一种是采用固定的维度输入,论文中分别尝试了256x256与384x384两种输入图片维度。另外一种则是采用了多维度训练及每次输入图片从一个维度范围内([256, 512])进行选择,resize后再用于进行训练。这种方法显然会受模型最后的几个FCs层的限制,因此作者特意将第一个FC改为了7x7的conv,后两个FC则改为了1x1的conv,最后如Googlenet那样接上了一个Average Pool层对得到的1000个(Imagenet共有1000类)score maps进行channel级加总,最后再用softmax层处理就得到了1000类的概率分布。

推理时VGG将完整的image直接通过训练好的VGG模型,其中在multi-scal训过的VGG上它最终后先得到一个1000个channels的score maps,然后经Average Pool层再得到最终的1000类的概率分布。作者实验了曾被证明较为成功的multi-crop图片进行预测,然后再对其求平场的方式,发现效果并不明显,提升精度有限,而且会带来较大的计算量。

作者在论文中的实验结果是使用了4个GPUs作多节点数据并行训练得到的。

首先下表为多种不同深度的VGG网络所分别具有的分类精度比较。可以看出最深的VGG16与VGG19表现突出。不过作者实验也表明若使用此类结构再进进一步对网络加深,那么其分类精度也不会再进一步提升了。换言之对于VGG类型的3x3 single scale conv叠加的网络而言,19层是它的天花板,再向上加层已无意义。

下表为VGG网络与当时其它的分类网络的结果比较。

作者本来就是基于Caffe完成的此网络实现。因此这里我们也使用caffe下的模型描述来分析下它的结构。

首先是它的基本输入层,与Alexnet网络一样。其用于完成数据增强的工作多是在transform里面完成,可见它只是用了Mirror镜像处理增强,此外就是以227x227的size对原图进行切割,在真正灌入网络之前还会使用已有的dataset mean file对图片进行归一化操作。

以下是它网络的基本组成成分。差不多就是Conv(3x3)+ReLu+LRN或者Conv(3x3)+ReLu+LRN+Pool(2x2)。注意后来更先进的分类网络已经纷纷抛弃了LRN而改用了更好的BN。

与Alexnet一样,在第一个参数量较多的FC层后也用了dropout来防止模型在训练当中出现过拟合。

然后就是最后的FC及用于训练的SoftmaxLoss层和用于推理的Accuracy层。

网络学习系列(六)ResNeXt

目前来说,提高网络的性能,要不就是增加网络的深度,要不就是增加网络的宽度,但这样做无疑会增加网络设计的难度与计算的开销,所以,能否设计一种网络结构,在不增加网络复杂度的基础上还能提高网络的性能,这就是ResNeXt网络所要解决的问题。

1、VGG跟ResNet都采用了一种堆叠的思想,即相同拓扑结构的块都堆在一起,其设计原则主要有两个:1)如果生成的spatial maps尺寸相同,则blocks的超参数相同(即具有相同的滤波器数目和大小)2)如果spatial maps下采样一半,则blocks宽度增加一倍,以保证相同的计算复杂度。

个人理解其实第一个原则就是将相同卷积核大小跟数目的卷积层堆在一起,第二个原则则是如果上一步操作将空间图尺寸减半,则这一步应该将卷积核的数目加倍。

2、Inception网络使用了一种split-transform-merge思想,即先将输入切分到不同的低维度中,然后做一个特征映射,最后将结果融合到一起。但模型的泛化性不好,针对不同的任务需要设计的东西太多。

1、split-transform-merge思想如下所示:

即先将x进行降维,然后做一个映射聚合,即 ,论文中加了残差结构,变为 ,这也是论文所设计的模块,如图示所示:

这里作者提出了一个基数的维度,是独立于深度、宽度的另一个影响网络性能的参数,指的是除了short -cut之外支路的数量,作者实验证明,增加基数可以比增加深度与宽度的效果要好。

2、下面是上图的等价模式:

考虑性能,作者选择了第三种模块,使用了分组卷积的操作,1中的C指的就是分组卷积的组数。

总结:个人认为,resnext其实就是结合resnet与inception的优点。

css鼠标悬停transform放大后不变

网络延时导致。图片hover之后等比例放大,鼠标移开又等比例恢复原状,同时带有动画过渡效果,放大不变是因为网络延时导致,建议切换网络重新连接即可。

利用空间变换网络如何将椭圆转换成正圆?

CNN分类时,通常需要考虑输入样本的局部性、平移不变性、缩小不变性,旋转不变性等,以提高分类的准确度。这些不变性的本质就是图像处理的经典方法,即图像的裁剪、平移、缩放、旋转,而这些方法实际上就是对图像进行空间坐标变换,我们所熟悉的一种空间变换就是仿射变换,图像的仿射变换公式可以表示如下:

这里写图片描述

式中,(xSource,ySource

)表示原图像像素点,(xTarget,yTarget

)表示仿射变换后的图像像素点。系数矩阵θ

即为仿射变换系数,可以通过调整系数矩阵θ

,实现图像的放大、缩小、平移、旋转等。

那么,神经网络是否有办法,用一种统一的结构,自适应实现这些变换呢?本文提出了一种叫做空间变换网络(Spatial Transform Networks, STN)的网络模型,该网络不需要关键点的标定,能够根据分类或者其它任务自适应地将数据进行空间变换和对齐(包括平移、缩放、旋转以及其它几何变换等)。在输入数据空间差异较大的情况下,这个网络可以加在现有的卷积网络中,提高分类的准确性。

本文所提的空间变换网络的主要作用在于:

1.可以将输入变换为网络的下一层期望的形式;

2.可以在训练的过程中自动选择感兴趣的区域特征;

3.可以实现对各种形变的数据进行空间变换;

这里写图片描述

例如对于上图中输入手写字体,我们感兴趣的是黄色框中的包含数字的区域,那么在训练的过程中,学习到的空间变换网络会自动提取黄色框中的局部数据特征,并对框内的数据进行空间变换,得到输出output。

2. 空间变换网络原理详解

所谓空间变换网络,实际上是在神经网络的某两层之间引入一个空间变换网络,该空间变换网络包括两个部分,网络结构如下图所示:

这里写图片描述

第一部分为为”localization net”,其用于生成仿射变换系络结构进行设计,”localization net”网络中的参数则为空间变换网络需要训练的参数;第二部分就是空间变换即仿射变换。通过该局部网络产生仿射变换系数θ

(也可以是其他类型的空间变换,可以根据需要设计局部网络得到对应的空间变换系数θ

,本文只以仿射变换为例进行讲解),得到仿射变换系数θ

后我们就可以对上一层的输入进行仿射变换,并将仿射变换结果输入到下一层。例如上图中, U是输入图像或CNN某一层的feature map, V是仿射变换后的feature map,U与V中间夹着的就是“空间变换网络”,如上所说该空间变换网络中,”localization net”为用于生成仿射变换系数θ

transform什么时候提出的

2017年。google是全球最大的搜索引擎公司,在2017年的公司总结会议上,首次提出了transform模型。取代了之前NLP任务中常用的RNN神经网络结构,该模型模型的最大特点是在处理序列输入时,可以对整个序列输入进行并行计算,不需要按照时间步循环递归处理输入序列。

(责任编辑:IT教学网)

更多

推荐DNS服务器文章