能不能给我发一份呢?
论文地址:《 Very Deep Convolutional Networks for Large-Scale Image Recognition 》 思维导图: LSVRC:大规模图像识别挑战赛 ImageNet Large Scale Visual Recognition Challenge 是李飞飞等人于2010年创办的图像识别挑战赛,自2010起连续举办8年,极大地推动计算机视觉发展。比赛项目涵盖:图像分类(Classification)、目标定位(Object localization)、目标检测(Object detection)、视频目标检测(Object detection from video)、场景分类(Scene classification)、场景解析(Scene parsing)。 VGG Net由牛津大学的视觉几何组( V isual G eometry G roup)参加2014年ILSVRC提出的网络模型,它主要的贡献是展示了卷积神经网络的深度(depth)是算法优良性能的关键部分。 研究了“卷积网络的深度”在大规模的图像识别环境下对准确性的影响(即神经网络的深度与其性能之间的关系)。 使用一个非常小的卷积核 对网络深度进行评估,评估发现将网络深度加至16层-19层,性能有了显著提升。 在ImageNet Challenge 2014竞赛中,定位赛道获得第一名,分类赛道获得第二名。 论文提出了多种规模的网络架构(不同规模深度不尽相同),下图为其中性能表现良好的网络架构之一:VGG16结构图。 所有卷积操作之后跟有3个全连接层(FC层): 所有的ConvNet配置如图所示,VGG结构全部都采用较小的卷积核(3x3,部分1x1): 两个3×3的卷积层串联相当于1个5×5的卷积层(二者具有等效感受野5x5),3个串联的3×3卷积层串联的效果相当于一个7×7的卷积层; 下图展示了为什么“两个3x3卷积层”与“单个5x5卷积层”具有等效的5x5的感受野。 2个3x3卷积层拥有比1个5x5卷积层更多的非线性变换(前者可以使用两次ReLU激活函数,而后者只有一次),使得卷积神经网络对特征的学习能力更强。 不影响输入输出的维度情况下(即图片宽高尺寸不变),降低了大量运算,同时改变了维度(通道数); 卷积之后再紧跟ReLU进行非线性处理,提高决策函数的非线性。 详见: 数据增强,有利于预防过拟合。 测试阶段与训练阶段主要有两点不同: VGGNet网络特点:
小目标问题在物体检测和语义分割等视觉任务中一直是存在的一个难点,小目标的检测精度通常只有大目标的一半。
CVPR2019论文: Augmentation for small object detection 提到了一些应对小目标检测的方法,笔者结合这篇论文以及查阅其它资料,对小目标检测相关技巧在本文进行了部分总结。
小目标的定义: 在MS COCO数据集中,面积小于 32*32 的物体被认为是小物体。
小目标难以检测的原因: 分辨率低,图像模糊,携带的信息少。由此所导致特征表达能力弱,也就是在提取特征的过程中,能提取到的特征非常少,这不利于我们对小目标的检测。
1、由于小目标面积太小,可以放大图片后再做检测,也就是在尺度上做文章,如FPN(Feature Pyramid Networks for Object Detection),SNIP(An Analysis of Scale Invariance in Object Detection – SNIP)。
Feature-Fused SSD: Fast Detection for Small Objects, Detecting Small Objects Using a Channel-Aware Deconvolutional Network 也是在多尺度上做文章的论文。
2、在Anchor上做文章(Faster Rcnn,SSD, FPN都有各自的anchor设计),anchor在设置方面需要考虑三个因素:
anchor的密度: 由检测所用feature map的stride决定,这个值与前景阈值密切相关。
anchor的范围: RetinaNet中是anchor范围是32~512,这里应根据任务检测目标的范围确定,按需调整anchor范围,或目标变化范围太大如MS COCO,这时候应采用多尺度测试。
anchor的形状数量: RetinaNet每个位置预测三尺度三比例共9个形状的anchor,这样可以增加anchor的密度,但stride决定这些形状都是同样的滑窗步进,需考虑步进会不会太大,如RetinaNet框架前景阈值是时,一般anchor大小是stride的4倍左右。
该部分anchor内容参考于:
3、在ROI Pooling上做文章,文章SINet: A Scale-Insensitive Convolutional Neural Network for Fast Vehicle Detection 认为小目标在pooling之后会导致物体结构失真,于是提出了新的Context-Aware RoI Pooling方法。
4、用生成对抗网络(GAN)来做小目标检测:Perceptual Generative Adversarial Networks for Small Object Detection。
1、从COCO上的统计图可以发现,小目标的个数多,占到了,但是含有小目标的图片只有,大目标所占比例为,但是含有大目标的图像却有。这说明有一半的图像是不含小目标的,大部分的小目标都集中在一些少量的图片中。这就导致在训练的过程中,模型有一半的时间是学习不到小目标的特性的。
此外,对于小目标,平均能够匹配的anchor数量为1个,平均最大的IoU为,这说明很多情况下,有些小目标是没有对应的anchor或者对应的anchor非常少的,即使有对应的anchor,他们的IoU也比较小,平均最大的IoU也才。
如上图,左上角是一个anchor示意图,右上角是一个小目标所对应的anchor,一共有只有三个anchor能够与小目标配对,且配对的IoU也不高。左下角是一个大目标对应的anchor,可以发现有非常多的anchor能够与其匹配。匹配的anchor数量越多,则此目标被检出的概率也就越大。
实现方法: 1、Oversampling :我们通过在训练期间对这些图像进行过采样来解决包含小对象的相对较少图像的问题(多用这类图片)。在实验中,我们改变了过采样率和研究不仅对小物体检测而且对检测中大物体的过采样效果
2、Copy-Pasting Strategies:将小物体在图片中复制多分,在保证不影响其他物体的基础上,增加小物体在图片中出现的次数(把小目标扣下来贴到原图中去),提升被anchor包含的概率。
如上图右下角,本来只有一个小目标,对应的anchor数量为3个,现在将其复制三份,则在图中就出现了四个小目标,对应的anchor数量也就变成了12个,大大增加了这个小目标被检出的概率。从而让模型在训练的过程中,也能够有机会得到更多的小目标训练样本。
具体的实现方式如下图:图中网球和飞碟都是小物体,本来图中只有一个网球,一个飞碟,通过人工复制的方式,在图像中复制多份。同时要保证复制后的小物体不能够覆盖该原来存在的目标。
网上有人说可以试一下lucid data dreaming Lucid Data Dreaming for Multiple Object Tracking ,这是一种在视频跟踪/分割里面比较有效的数据增强手段,据说对于小目标物体检测也很有效。
基于无人机拍摄图片的检测目前也是个热门研究点(难点是目标小,密度大)。 相关论文: The Unmanned Aerial Vehicle Benchmark: Object Detection and Tracking(数据集) Drone-based Object Counting by Spatially Regularized Regional Proposal Network Simultaneously Detecting and Counting Dense Vehicles from Drone Images Vision Meets Drones: A Challenge(数据集)
1: 2: 3: 4: 5: 6: 7:
检测主要有知网,万方,维普等。中国知网:由清华大学、清华同方发起,始建于1999年6月,导航内容覆盖自然科学、工程技术、农业、哲学、医学、人文社会科学等各个领域,读者可直接浏览期刊基本信息,按期查找期刊文章。万方数据库:万方数据库是由万方数据公司开发的,涵盖期刊、会议纪要、论文、学术成果、学术会议论文的大型网络数据库;也是和中国知网齐名的中国专业的学术数据库。维普资讯网:维普资讯是科学技术部西南信息中心下属的一家大型的专业化数据公司,是中文期刊数据库建设事业的奠基人,已经成为中国最大的综合文献数据库。除此之外,还有百度学术,谷歌学术里面也有一些免费的论文。希望采纳
Paperbye论文查重系统,利用软件的“机器人改重”功能,实现软件的自动修改论文重复内容,从而达到迅速自动降低论文重复率,特别是对于第一次写论文的同学,软件自动修改论文内容,会给同学们一些启示或直接使用机器修改的内容进行替换原文内容,提高的文章查重和修改效率。
具体看看有哪些实用功能:
1、机器人智能改重
Paperbye改重是机器人自动修改查重报告里相似的文字内容,自动修改就是论文查重完成后,系统自动把相似内容通过深度学习的数据内容进行替换修改,达到自动降低文章相似率的目的。一篇几万字的文章,10秒内容可以修改完成,这个修改效率是任何人工都无法比拟的,修改文章效率高是机器人修改的独特优势。机器人修改的语句并不是简单的替换关键词和调换语序,主要原理是通过深度学习大量数据后把语义相似的句子进行替换。
2、免费在线改重
在线改重功能是机器人改重功能的延伸和完善,机器改重功能并不是非常完美,就像我们现在的语音识别系统,语音输入并不是100%的完美识别,用手机语音输入文字大家应该有体会。对于机器人修改的语句并不是每句都修改的很完美的,遇到一些专业性比较强的术语修改的会有些牵强,但是不用担心,可以在免费改重工具编辑器里自主修改,通过人工修改相结合达到完美降重效果。
3、同步查重功能
这个功能根据“赫洛克效应”的及时反馈的心理原理,在修改论文的过程中,修改一句话,通过paperbye的“同步查重”功能,马上就可以看到修改效果,达到及时反馈,并且及时检验了修改的方法技巧,使继续修改的信心大增,可以大大提高修改论文的质量和效率。传统的论文查重方式的是你必须把全文或片段改完,重新提交论文到查重系统里重新检测才能知道结果,这种方式无论从流程,还是查重后修改,都比较繁琐,更重的是如果通过修改查重后的相似比例降下来不理想,给人的感觉比较身心疲惫,没有愉悦感,对修改论文极度厌恶。Paperbye论文查重系统解决了这个问题,算是颠覆传统,开创先河,让论文降重不再痛苦。
4、同步查重和在线改重的结合
这两个功能在paperbye查重系统里像一双筷子一样,紧密结合使用的,自己对文章内容修改后,就需要对修改的内容进行查重,点击系统里的“同步查重”,马上就会看到修改后的效果,甚至修改1个字,都可以进行马上查重并反馈修改结果,真正实现一边修改论文,一边进行论文查重。修改、查重同步进行,完美结合。市场上声称“在线改重”,好多同学容易误解,那种改重是必须改完整片文章,再整篇提交,就是传统的论文查重方式,并不能实现修改一句马上看到修改结果。目前paperbye才是真正的实现了边修改边查重的同步效果。
大学快结束了,毕业生总觉得通过论文查重很难,最痛苦的是无法通过论文检测。用什么系统对论文进行检测,将决定后续提交的论文是否能够顺利通过。当然,论文的后续修改也很重要。接下来就让paperfree小编来说说用什么查重系统对论文进行检测吧,希望对你有帮助。一、用什么系统检测论文小编推荐一个安全可靠的查重系统网站——paperfree。paperfree已经发展成为一个权威可靠的在线网站,用于检查论文的原创性和防止抄袭,该网站一直致力于学术论文的检测。paperfree查重系统检测范围广泛,涵盖所有中英文类别,包括哲学、经济学、管理学、法学、社会科学、教育学、文学、艺术学、历史学、理学、工学、农学、医学、政治学、军事学等。二、如何进行论文修改?1、注意文献的正确引用。引号后,不要轻易用句号结尾。一定要在引用结束后写句号,否则句号后引用的句子会被判定为抄袭。同时,引用文本的内容可以做成表格。表格和图表不在查重范围内,一目了然,是非常好的修改方法。2、进行增删改写。论文引用的句子有所改动,适当的词语有所放大,略有删减。然后,连贯地组合句子,使句子不同,减少文章中的重复字符。
常见的论文检测系统:知网、万方、维普、paperrater,高校使用最多的是知网、万方、维普次之,paperrater主要用于学生个人检查,收费也比较便宜。
河北有一名女子出门做核酸检测的视频火了,网友们关注焦点是门牙。由于在做核酸之前,女子跑到烤鸭店去吃了烤鸭,烤鸭上面的硬骨头,把牙齿给崩掉了。尽管如此,女子还是按往常一样排队去做核酸,做核酸已经成了生活中的一部分,还有很多学校把孩子健康码拿来,每个星期都在固定时间做两次核酸。如果不做核酸,正常生活也不能得以继续,女子也深知这一点,无论遇到什么样事情都去排队,那么让我们来具体了解一下吧!
一,女子出门做核酸检测的视频火了
这名女子穿着棉服,戴着眼镜和口罩,准备的特别充足,仔细一看也和平常路人差不多。刻意的对着视频拍下了自己可爱的一面,只见门牙已经掉了一颗。有许多网友调侃,在做核酸都不用张大嘴巴,只需要医护人员拿着棉签,从破牙齿伸过去,就可以达到目的了。她自己也觉得特别好笑,把视频传上去之后,许多网友也相继留言,女子平时性格比较活泼,想不到全网都在笑。
二,网友们关注焦点是什么?
网友们主要关注两个焦点,第一,女子的门牙。每个人都有一副坚硬的牙齿,由于女子是假牙,在吃烤鸭过程中直接被崩掉,作为一个大人,毕竟不是小朋友,小朋友掉牙是属于正常情况,但是大人突然掉牙齿,咧嘴笑的时候,还是感到喜感十足。第二,女子的性格。女子的搞笑性格感染着大家,大部分人碰到一些不好的事情总是会比较沮丧,女子却把自己也当做笑话来看待,当自己不尴尬,别人也更不会尴尬。
总之,女子身上有一股特殊魔力,她能够用幽默化解生活中的一切不美好。
网友们关注的焦点是这名女子在做核酸的时候严格遵循前后间隔一米的距离,而且手中拿着卷尺时刻进行距离的测量,这样的做法不仅让人们觉得非常的搞笑,而且很好的保证了自身以及他人的安全。
正确采核酸的手法如下:
首先我们应该适当地弯下腰,口腔的位置在采集者眼睛的稍下方。然后用力张大口,将舌头向下压,将咽喉部打开。可以发出“啊”的动作,但是不要发出声音,不要向外有气流呼出,也可以减少传播的风险。
核酸检测的物质是病毒的核酸。核酸检测是查找人体的呼吸道标本、血液或粪便中是否存在外来入侵的病毒的核酸,来确定是否被新冠病毒感染。因此一旦检测为核酸“阳性”,即可证明患者体内有病毒存在。
新型冠状病毒核酸检测的原理
以病毒独特的基因序列为检测靶标,经过PCR扩增,使选择的这段靶标DNA序列指数级增加,每一个扩增出来的DNA序列,都可和预先加入的一段荧光标记探针结合,产生荧光信号,扩增出来的靶基因越多,累积的荧光信号就越强。
而没有病毒的样本中,由于没有靶基因扩增,因此就检测不到荧光信号增强。因此,核酸检测,其实就是经过检测荧光信号的累积来确定样本中是否有病毒核酸。
学子们在学校封闭期间还是抓紧时间学习的,也可以看得出来新冠肺炎疫情是不能影响他们学习的心的,他们学习还是很努力的。
无可奈何需要
深度学习在计算机视觉领域内的广泛使用给人们的日常生活带来了很多的便利。使用深度学习的方法进行视频分析的速度非常快,平均每一帧图像仅需要左右的处理时间,所以应用深度学习方法对视频分析具有很高的研究价值与意义。
一,目标检测技术现状
目标检测问题在深度学习领域一直受到研究者的关注,目标检测的目的简单来说就是要在待检测的--幅图像中找出目标的位置并预测类别概率。在实际应用中,目标容易受到背景的干扰,比如当目标的颜色与背景颜色相似时,就会导致检测的效果不理想,再者,当目标发生形变或者各种姿态变化等原因也会导致最后的检测受到影响。传统的目标检测方法通常采用人工来设计目标特征,这样做的缺点是成本太高。
二,深度学习在乒乓球比赛视频分析中的应用
深度学习的核心思想是模拟哺乳动物大脑皮层的层级抽象结构,并以无监督学习的方式从输入数据(图片、视频、声音、文本等)中逐级提取特征,利用提取的特征完成目标任务。深度学习是当前人工智能学中的一-个 热点研究方向,是相对于浅层学习( Shallow Leaning) 来说的,浅层学习是基于反向传播算法( Back Propagation) 的人工神经网络的基础上提出来的,利用反向传播算法,人工神经网络模型可以从大量训练数据集中应用统计学的方法得到特征规律进而对目标进行预测,其隐藏层只有一层。
由于浅层人工神经网络隐藏层较少,对于复杂问题参数难调,训练出来的效果不佳,当样本数量和计算单元有限时表示能力较差,同时算法的泛化能力差,浅层学习也就慢慢淡出了人们的视线。相较于浅层学习,深度学习模型层数通常为5层,甚至更多。另一方面含有更多隐藏层可以学习到更多的目标特征,对特征的学习也更加深刻,从而可以提高识别物体的精度。
可以通过乒乓球视频来进行分析学习,可以从视频里学习一些技术,学习一些手法,也可以学习一些击球和发射的动作,可以对自己的动作进行改善,还可以提高自己的动作活跃度。
这是基于深度学习的计算机视觉分析方法在某个领域的一种新奇应用,是多种子任务的集合和集大成者。对赛事的分析,不仅需要球的位置,还需要外界环境信息,并对多种信息进行融合处理,最后才能综合得出比赛状态。
对于目标检测方向并不是特别熟悉,本文记录一下RCNN, fast-RCNN, faster-RCNN, mask-RCNN这4篇有关目标检测的论文笔记和学习心得。
R-CNN的意思就是Region based,主要思路就是根据一张图像,提取多个region,再将每个Region输入CNN来进行特征的提取。因此RCNN就可以分为 Region proposals , Feature extraction 两个主要部分,提取的特征就可以输入任意一个分类器来进行分类。 模型的流程图如下:
在训练的时候,首先使用的是已经训练好的CNN网络作为特征提取器,但是由于预训练是在分类数据集上,因此在应用到检测之前要做finetune。也就是说,为了将用ImageNet数据集训练的网络应用到新的任务(检测),新的数据集(region)上,作者将原来的CNN最后的1000类的fc层,更改为了 层, 代表待检测的物体的类别数。然后,对于所有的region,如果它和ground truth的重叠率大于,就认为是正类。 对于分类器的训练,作者发现选择多大的IoU来区分正类和负类非常关键。并且,对于每一类,都会训练一个分类器。
框的回归非常重要,在对每一个region proposal使用分类器进行打分评价之后,作者使用一个回归器来预测一个新的框作为结果。这个回归器使用的特征是从CNN中提取的特征。回归器的训练中,输入是 region proposal 的 和ground truth的 ,目标是学习一种变换,使得region proposal通过该变换能够接近ground truth。同时,希望这种变换拥有尺度不变性,也就是说尺度变化的话,变换不会改变。 如下图所示,每一个regressor会学习一组参数,特征输入是pool 5的特征输出,拟合的目标是 。
Fast-RCNN 主要解决的问题是在RCNN中对于每一个region proposal都进行特征提取,会产生非常多的冗余计算,因此可以先对一张图像进行特征提取,再根据region proposal在相应的特征上进行划分得到对应region的特征(映射关系)。 这样便可以实现共享计算提高速度,但是与SPPnets不同,SPPnets在一副图像得到对应的特征后,从这张图像的特征上proposal对应的部分,采用空间金字塔池化,如下图:
RoI pooling的方法很简单,类似于空间金字塔pooling,它将proposal部分对应卷积层输出的特征(称之为RoI,因为用于做pooling的特征是 region of interest,也就是我们感兴趣的区域)划分成 块,然后对每一块求最大值,最终得到了一个 的特征图。可以看出,它只是空间金字塔pooling的一部分。 但是SPP-nets的空间金字塔也是可以求导的,那么它到底不好在哪里呢?因为当每一个RoI都可能来源于不同的图像的时候(R-CNN和SPPnets的训练策略是从一个batch的不同图像中,分别挑选一个proposal region),SPPNets的训练非常地低效,这种低效来源于在SPPnets的训练中,每个RoI的感受野都非常地大,很可能对应了原图的整个图像,因此,得到的特征也几乎对应了整张图像,所以输入的图像也就很大。 为了提高效率,Fast-RCNN首先选取 个图像,再从每个图像上选择 个RoI,这样的效率就比从每个图像提取一个RoI提高了 倍。
为了将分类和框回归结合起来,作者采用了多任务的loss,来进行联合的训练。具体来说就是将分类的loss和框回归的loss结合起来。网络的设计上非常直接,就是将RoI得到的特征接几个FC层后,分别接不同的输出层。对应于分类部分,特征会接一个softmax输出,用于分类,对于框回归部分,会接一个输出4维特征的输出层,然后分别计算loss,用于反向传播。loss的公式如下:
回归的target可以参考前面的R-CNN部分。
notes
为什么比fast还fast呢?主要原因是在这篇论文中提出了一个新的层:RPN(region proposal networks)用于替代之前的selective search。这个层还可以在GPU上运算来提高速度。 RPN的目的:
为了能够进行region proposal,作者使用了一个小的网络,在基础的卷积层输出的特征上进行滑动,这个网络输入大小为 ,输入后会映射(用 的卷积)为一个固定长度的特征向量,然后接两个并联的fc层(用 的卷积层代替),这两个fc层,一个为box-regressoin,一个为box-classification。如下图:
在每一个滑动窗口(可以参考 ),为了考虑到尽可能多的框的情况,作者设计了anchors来作为region proposal。anchors就是对于每一个滑动窗口的中心位置,在该位置对应的原图位置的基础上,按照不同的尺度,长宽比例框出 个不同的区域。然后根据这些anchors对应的原始图像位置以及区域,和ground truth,就可以给每一个滑动窗口的每一个anchor进行标记,也就是赋予label,满足一定条件标记为正类(比如和ground truth重叠大于一个值),一定条件为负类。对于正类,就可以根据ground truth和该anchor对应的原图的区域之间的变换关系(参考前面的R-CNN的框回归),得到回归器中的目标,用于训练。也就是论文中的loss function部分:
自然地,也就要求RPN的两个并联的FC层一个输出2k个值用于表示这k个anchor对应的区域的正类,负类的概率,另一个输出4k个值,用于表示框回归的变换的预测值。
对于整个网络的训练,作者采用了一种叫做 4-step Alternating Training 的方法。具体可以参考论文。
与之前的检测任务稍有不同,mask r-cnn的任务是做instance segmentation。因此,它需要对每一个像素点进行分类。 与Faster R-CNN不同,Faster R-CNN对每一个候选框产生两个输出,一个是类别,一个是bounding box的offset。Mask R-CNN新增加了一个输出,作为物体的mask。这个mask类似于ps中的蒙版。
与Faster R-CNN类似的是,Mask R-CNN同样采用RPN来进行Region Proposal。但是在之后,对于每一个RoI,mask r-cnn还输出了一个二值化的mask。
不像类别,框回归,输出都可以是一个向量,mask必须保持一定的空间信息。因此,作者采用FCN来从每个RoI中预测一个 的mask。
由于属于像素级别的预测问题,就需要RoI能够在进行特征提取的时候保持住空间信息,至少在像素级别上能够对应起来。因此,传统的取最大值的方法就显得不合适。 RoI Pooling,经历了两个量化的过程: 第一个:从roi proposal到feature map的映射过程。 第二个:从feature map划分成7*7的bin,每个bin使用max pooling。
为此,作者使用了RoIAlign。如下图
为了避免上面提到的量化过程
可以参考
作者使用ResNet作为基础的特征提取的网络。 对于预测类别,回归框,mask的网络使用如下图结构:
整体看完这几篇大佬的论文,虽说没有弄清楚每一个实现细节,但是大体上了解了算法的思路。可以看出,出发点都源于深度神经网络在特征提取上的卓越能力,因此一众大神试图将这种能力应用在检测问题中。从R-CNN中简单地用于特征提取,到为了提高速度减少计算的Fast R-CNN,再到为了将region proposal集成进入整个模型中,并且利用GPU加速的RPN,也就是Faster R-CNN。再到为了应用于instance segmentation任务中,设计的RoIAlign和mask。包括bounding box regression,pooling层的设计,训练方法的选择,loss的设计等等细节,无一不体现了大师们的思考和创造力。 可能在我们这些“拿来”者的眼中,这些方法都显得“理所应当”和巧妙,好用,但是,它们背后隐藏的选择和这些选择的思考却更值得我们学习。 以及,对待每一个问题,如何设计出合理的解决方案,以及方案的效率,通用性,更是应该我们努力的方向。
论文地址: 前置文章:10/16、10/17、10/18
本文提出了Point Fractal Network(PF-Net),旨在从不完整的点云数据中恢复点云,克服了之前方法修改现有数据点、引入噪声和产生几何损失的缺点。
由前置文章可知,之前的点云修复方法是输入不完整的点云,输出完整的点云,但这样会导致原有信息的缺失。这篇文章提出PF-Net,主要特点有三个:
网络的整体结构如下:
网络详细推理步骤如下:
损失函数使用完整性损失和对抗损失的加权平均,完整性损失使用L-GAN中提出的CD距离:
对抗损失使用GAN中常见的损失函数
感觉这篇文章对多尺度的运用非常极致,在编码器、解码器和CMLP中都应用了这种思想,最后的效果也非常不错,很值得借鉴。
论文地址:
PointNet提出一种基础的网络结构,可以用于点云分类、部分分割和语义分割等多种任务。在这篇文章之前,点云数据的处理方式是将点云数据转换为多个二维的视图或三维的体素形式,然后应用2D/3D CNN进行处理,但这样引入了多余的体积,效率不高。本文是第一个直接使用点云数据的神经网络。(其实可以这样类比,在二维图像处理中,假设图像是二值化的,传统方法是将这个图像直接丢到CNN里面,但如果背景特别多会比较浪费资源。直接使用点云数据相当于直接将前景像素的坐标输入到神经网络里面,对稀疏数据会有比较好的性能,但因为以下三个问题导致直接使用坐标信息比较困难) 由于点云的排列是无序的(可以想象,点云中任意一点排在前面对点云的表达都是相同的)、点云之间是有相互作用的(相邻的点云才能构成形状)、点云在某些变换下具有不变性(比如旋转不会改变点云的类别)这些特性,要求神经网络既能处理无序的数据,又能捕捉全局的结构特征,同时对刚性变换不敏感。基于这些条件,作者提出了如下的网络结构:
可以简要分析一下网络的工作流程,以点云分类问题为例:
感觉网络的结构虽然简单,但是却很好地满足了点云数据自身特性对神经网络的要求。而且我觉得在图像处理中,也有时候必须用到坐标信息或者一些标量特征,这篇文章的方法对于怎样将这些特征融合进CNN里面也有一定的启发意义。
论文地址:
这篇文章的主要工作是:
首先来看衡量两个点云相似程度的指标部分,作者首先给出了两个距离,EMD和CD:
在计算上,CD更为简便,而且EMD是不可导的。
基于这两种距离,作者引入了三种衡量两个点云相似程度的指标:JSD、Coverage和MMD:
定义了指标后,就可以实现自动编码器和生成模型了。作者提到了四种结构,分别是:
作者同时验证了AE的一些其他功能,比如如果给AE的编码器输入不完整的点云数据,即可训练得到点云复原的模型。使用SVM对低维表示进行分类,即可进行点云分类的任务,证明AE在点云数据形式中的潜在应用较为广泛。
论文地址:
PointNet++针对PointNet提取局部信息能力不强的弊端,提出了一种层次神经网络,可以更好地提取局部信息。其中心思想是将整个点云分割成若干个小部分来提取信息,然后将每个小部分整合成较大的部分,提取更高层次的信息。类似于CNN中卷积和下采样的思想。首先来看网络结构图:
网络大概可以分为两个部分,左边是层次的点云特征提取网络,右边是针对不同任务的解码网络。 特征提取分为若干个set abstraction模块,每个模块又分为采样层、分组层和特征提取层。
得到了较高层次的特征后,对不同的任务需要不同的解码网络。对分类网络来说比较简单,使用全连接即可。对分割网络来说,由于对每个点都需要输出数值,则需要类似上采样的操作。具体的实现作者使用了插值的方法,将较少的点插值到较多的点上去。首先找到插值的目标坐标,然后寻找K个距离最近的已知点,以距离的倒数作为权重,将K个点的特征做加权平均,作为这个点的特征。然后使用之前特征提取中得到的该点的特征与当前特征做一个拼接,即可得到最终特征(类似U-Net的skip connection)。公式如下:
感觉这篇文章和PF-Net的思想差不多,都是希望提取多尺度的特征。但是思路不一样,都值得借鉴。
Inception系列的v1,v2读完了,该v3了,当年在渣浪做的视频推荐,提取视频特征的网络用的就是Inception v3。不过作者的标题没用v3,而是开始『Rethinking』了。
2777次。和v1,v2完全不在一个量级上。
2015年12月刊发于arXiv。比后来横空出世的ResNet也就早了几天。一作回归到了v1的作者Christian Szegedy,v2的作者Sergey Ioffe这次是三作,看来两人好基友,每次都是组团出现
1 提出一些设计网络架构的通用准则
2 各种分解卷积的骚套路
本文探索了各种扩大网络的方式,目标是通过合适的卷积分解和有效的正则化来尽可能有效地利用所增加的计算。
相比VGG和AlexNet,Inception的计算量和参数量都大大降低,因此可以用于大数据和移动设备。不过,如果架构只是简单的缩放,大部分计算带来的收益可能会立即丢失。
本文将介绍一些通用的准则和优化理念用来更有效的扩大卷积网络。
作者反复强调以上只是部分经验,实际使用时需根据具体情况抉择。。
GoogLeNet最初的收益大多数来自广泛使用的降维。这可以被视为以一种更有效的计算来分解卷积的特例。
因为Inception网络是全卷积的,每个权重对应于每次激活的一次乘法,因此任何计算代价的减少也会引起总参数量的减少。这意味着可以通过合适的分解,得到更可分的参数并因此加速训练。
较大的filter(例如,5×5或7×7)在计算方面往往不成比例地昂贵。
用两个3x3卷积代替一个5x5卷积
做了控制实验证明这种策略有效。
很自然的想到能不能把3x3继续缩小为2x2,作为比较,将3x3分解为2个2x2只能节约11%的计算,不过用3x1和1x3能节约33%。
理论上,还可以更进一步,将nxn都用1xn和nx1来代替。实践发现这种分解在早期的层效果并不好,但在中间的层效果非常好(对于m x m的特征图,m在12到20之间)
Inception-v1中使用的辅助分类器最初动机就是为了克服深层网络中的梯度消失问题,将有用的梯度使浅层立即可以使用。不过,经实验发现,在训练早期这样并不能改进收敛,只是在训练后期,比没有辅助分类器的网络稍微好一点。这说明在Inception-v1中的假设是错误的(自己打自己脸,佩服,有勇气承认,没有混过去)
传统上,卷积网络通过池化操作来减小feature map的大小。为了避免表示性的bottleneck,在执行平均或最大池化前都会扩展filter的维度。
图9的左图虽然减小了网格尺寸,不过违反了通用原则1,过早的引入了bottleneck,右图倒是没违反,不过带来了3倍的计算量。
图10给出了解决办法,即引入两个并行的stride都为2的block:P和C,之后再联结起来。这样不仅代价更低而且避免了表示性的bottleneck。
(虽然这里是官方定义的v2,不过大家貌似都将BN-Inception认为是v2?)
把起初的7x7卷积分解为3个3x3卷积,用了不同结构的Inception块(图5,6,7),总共42层,计算代价只比v1高倍。
提出了一种机制,通过估计训练期间标签丢失的边缘化效应来给分类层加正则。
分析了交叉熵损失过于自信导致过拟合的原因。提出一种机制鼓励模型减少这种自信。
对于标签为y的样本,将标签分布 替换为 在实验中,使用均匀分布 ,这样式子变为 称这种对真实标签分布的改变为标签平滑正则(label-smoothing regularization LSR)
另一种对LSR的解释是从交叉熵的角度出发 第二项损失惩罚了预测的标签分布p与先验u的偏差。这种偏差也可以通过KL散度等效地捕获,因为 ,而 是固定的。
在ILSVRC2012中,设置 , , 。带来了的提升。
用tensorflow训练了50个模型(这是Inception系列论文中第一次用tf),batch_size=32,epochs=100。起初的实验用带动量的SGD,decay=。但是最佳的模型是RMSProp,decay=, 。学习率用,每2个epoch衰减(指数衰减率为)。
另外,发现用RNN中的梯度裁剪(设置阈值为)可以使训练稳定。
常识 是,采用更高分辨率感受野的模型往往会显著提高识别性能。如果我们只是改变输入的分辨率而不进一步调整模型,那么最后就是使用低计算量的模型来解决更困难的任务。
问题转化为:如果计算量是恒定的,更高的分辨率能有多少帮助?
尽管低分辨率的网络需要训练更久,但是最终的效果差不太多。然而,只是根据输入分辨率简单的减小网络的尺寸结果往往会很糟糕。
(这部分的结论是更高分辨率的输入用更复杂的模型?)
本文将使用了所有提升的Inception-v2综合体称为Inception-v3。
我屮,表4有bug,Top-5和Top-1的标题反了
提供了几条设计准则,基于此来扩大卷积网络。
感觉Inception结构太复杂了,充满了魔数,看起来没有ResNet那种统一的简洁美。另外,感觉这篇讲的有点散,有种拼凑感。。要不是Label smoothing提升的不是特别多,应该都能专门拿出来写一篇。最受用的是几点设计准则,应该会有助于理解后来出现的网络的设计理念。
栈爆上一个用pandas实现label smoothing的示例
pytorch的官方实现只有v3,没有其他的
花书的节(向输出目标注入噪声)解释了label smoothing背后的原理。