|
AI100_机器学习日报 2017-10-17
@ 好东西传送门 出品,由@AI100运营, 过往目录 见 http://ai100.com.cn
订阅:关注微信公众号 AI100(ID:rgznai100,扫二维码),回复“机器学习日报”,加你进日报群
今日焦点 (5)
爱可可-爱生活 网页链接 2017-10-17 08:27
入门 深度学习 语音 Yann Bayle
【音乐深度学习相关资料大列表(音乐生成/语音分离/说话人识别等)】’awesome-deep-learning-music - List of articles related to deep learning applied to music' by Yann Bayle GitHub: https ://github .com/ybayle/awesome-deep-learning-music
[img=20,20][/img] wx: 网页链接 2017-10-18 07:08
会议活动 算法 语音 Bruce Momjian Dan Kohn GPU Michael Widenius Salvatore Sanfilippo 行业动态 会议 数据库 张建锋
「本次云栖大会上,阿里开源了哪些顶级项目?」近年来,阿里巴巴在技术领域投入不断加强,拥抱开源也由来已久,积极加入了包括自由软件基金会、Apache软件基金会和Linux基金会在内的多家国际知名开源组织。目前,阿里巴巴开源和维护的开源项目超过150个,涵盖中间件、开发框架、数据库和各种工具类软件。“开源和阿里巴巴都根植于互联网,有了互联网技术平台之后,开源和商业将在未来相当长的时间内保持平衡的发展。”阿里巴巴集团CTO张建锋在2017杭州·云栖大会之开源技术峰会上表示。在开源中国公布的“2016年度最受欢迎中国开源软件评选TOP20”榜单中,阿里巴巴独占4席。其中Weex、Ant Design、Dubbo、Fastjson 在GitHub上Star已经破万,Alibaba在GitHub上Star数超过170,000,组织排名前十。本次云栖大会也邀请了众多开源界的大神出席,包括GitHub亚太区负责人 Sam Hunt、CNCF执行总裁Dan Kohn、MySQL & MariaDB创始人、MariaDB基金会创始人Michael Widenius、PostgreSQL社区联合创始人Bruce Momjian、Redis创始人Salvatore Sanfilippo等。图左为MySQL之父、MariaDB创始人Michael“Monty”Widenius这已经是Michael“Monty”Widenius连续三年参加杭州云栖大会了,这位数据库大神一手创办了MySQL和MariaDB,50多岁仍然奋战在代码第一线。Monty在2017杭州云栖大会上表示,杭州让他惊讶,很多MariaDB的运用源自杭州等地的开发者们,MariaDB也从阿里巴巴中获得了很多开源的支持和贡献,以后每年都会来云栖大会跟开发者们交流。开源界大神集体现身云栖大会,他们都说了啥?下面让我们来回顾下,在2017杭州·云栖大会上,阿里巴巴正式发布的多个开源项目、开放平台。全球化OpenMessaging和ApsaraCache开源项目阿里巴巴正式发布了全球化OpenMessaging和ApsaraCache两个开源项目,并宣布与GitHub、Hashicorp两家公司成为技术合作伙伴。此前,阿里巴巴捐赠开源的RocketMQ已被Apache基金会接纳为全球顶级项目。容器技术Pouch即将开源阿里巴巴正式宣布自主研发的容器技术Pouch即将开源。经过七年的沉淀和锤炼,阿里希望通过开源的形式回馈社区,与开发者共同推动容器技术发展,共建容器技术标准。Pouch的渊源可以追溯到2011年,当时阿里内部基于LXC技术为业务提供容器服务,经过七年左右的技术锤炼与经验积累,铸就了阿里容器技术的今天,也正是这七年在业务实践中踩过坑、走过弯路,让Pouch以一个务实者的姿态出现在如今的容器生态圈。Link物联网平台正式发布阿里云在2017杭州·云栖大会上宣布正式发布Link物联网平台,未来将借助阿里云在云计算、人工智能领域的积累,使物联网具备智能而成为智联网。阿里云Link物联网平台将战略投入物联网云端一体化使能平台、物联网市场、ICA全球标准联盟等三大基础设施,推动生活、工业、城市三大领域的智联网。AliOS Things将面向所有开发者全栈开源轻量级物联网嵌入式操作系统AliOS Things,具备极简开发、云端一体、丰富组件、安全防护等关键能力,可广泛应用在智慧城市、智能家电、智能家居、新出行等领域,实现物联网设备快速上云。据悉,“除安全、语音组件和uMesh外,AliOS Things也将面向所有开发者全栈开源,代码将在10月20日发布到github/alibaba/AliOS-Things”。阿里巴巴人工智能实验室宣布推出AR开放平台阿里巴巴人工智能实验室总经理浅雪据了解,AR开放平台将面向开发者开放2D识别追踪、3D识别追踪、内容制作平台、高质量渲染引擎等核心能力。开发者通过接入套件,即可快速创建AR 内容,无需担心开发算法,使用传感器,GPU优化等难题。 阿里人工智能实验室同时发布了AR内容平台——阿里火眼,开发者创建的AR内容可以直接发布到阿里火眼。针对优秀的AR内容和开发者,阿里巴巴人工智能室将提供现金奖励、流量扶持和商业化资源。阿里AR内容开放平台日前已与国家图书馆达成合作,双方将在数字化内容、文化教育视频,音频等领域进行AR技术落地。 转自:阿里技术 完整内容请点击“阅读原文” via: http://mp.weixin.qq.com/s?__biz= ... e=0#wechat_redirect
[img=20,20][/img] wx:高扬、卫峥 网页链接 2017-10-18 00:06
公告板 深度学习 视觉 算法 资源 Python 代码 分类 何恺明 可视化 课程 神经网络 书籍 问题
「变种神经网络的典型代表:深度残差网络」文章节选自《白话深度学习与TensorFlow》 文末评论赠送本书,欢迎留言! 随着人们对于神经网络技术的不断研究和尝试,每年都会诞生很多新的网络结构或模型。这些模型大都有着经典神经网络的特点,但是又会有所变化。你说它们是杂交也好,是变种也罢,总之对于神经网络创新的各种办法那真叫大开脑洞。而这些变化通常影响的都是使得这些网络在某些分支领域或者场景下的表现更为出色(虽然我们期望网络的泛化性能够在所有的领域都有好的表现吧)。深度残差网络(Deep Residual Network)就是众多变种中的一个代表,而且在某些领域确实效果不错,例如目标检测(Object Detection)。 应用场景 对于传统的深度学习网络应用来说,我们都有这样一种体会,那就是网络越深所能学到的东西就越多。当然收敛速度同时也就越慢,训练时间越长,然而深度到了一定程度之后就会发现有一些越往深学习率越低的情况。深度残差网络的设计就是为了克服这种由于网络深度加深而产生的学习率变低,准确率无法有效提升的问题,也称作网络的退化问题。甚至在一些场景下,网络层数的增加反而会降低正确率。关于深度残差网络的介绍资料不算多,至少比起传统的BP、CNN、RNN网络的介绍资料就少得多了,我这边参考的是何恺明先生在网上公开的一个介绍性资料“Deep Residual Networks——Deep Learning Gets Way Deeper”。说到对比传统的卷积神经网络在做分类器的时候,在加深网络层数的过程中是会观察到一些出出乎意料的现象的。例如在CIFAR-10项目上使用56层的3×3卷积核的网络其错误率无论是训练集上还是验证集上,都高于20层的卷积网络,这就尴尬了。通常为了让网络学到更多的东西,是可以通过加深网络的层数,让网络具备更高的VC维这样的手段来实现的。但眼前的事实就是这样,加到56层的时候其识别错误率是要比在20层的时候更加糟糕。这种现象的本质问题是由于出现了信息丢失而产生的过拟合问题。这些图片在经过多层卷积的采样后在较深的网络层上会出现一些奇怪的现象,就是明明是不同的图片类别,但是却产生了看上去比较近似的对网络的刺激效果。这种差距的减小也就使得最后的分类效果不会太理想,所以解决思路应该是尝试着使它们的引入这些刺激的差异性和解决泛化能力为主。所以才会考虑较大尺度地改变传统CNN网络的结构,而结果也没有让我们失望,新型的深度残差网络在图像处理方面表现出来的优秀特性确实令我们眼前一亮。到目前为止,在图像分类(Image Classification)、对象检测(Object Detection)、语义分割(Semantic Segmentation)等领域的应用中,深度残差网络都表现出了良好的效果。上面这几张图都是尝试用深度残差网络在一张图片中去识别具体的一个目标,每个目标的属性标注是基于微软的COCO数据集 的数据标识。物品(人)的框图上还标注了一个小数,这个数字就是概率(或者称确信度Precision),指模型识别这个物体种类的确信度。我们能看到,在这个图片中大部分物体的识别还是非常准确的。 结构解释与数学推导 深度网络有个巨大的问题,那就是随着深度的加深,很容易出现梯度弥散和梯度爆炸的问题。前面我们也提过这个问题,因为网络深度太大所以残差传播的过程在层与层之间求导的过程中会进行相乘叠加,一个小于1或一个大于1的数字在经过150层的指数叠加就会变得很大或者很小,我们自己手算一下也能算出来,0.8的150次方大约是,1.2的150次方大约是,这两种情况都是极为严重的灾难,任何一种都会导致训练劳而无功。在传统的平网络(Plain Network)中,一层的网络的数据来源只能是前一层网络,就像上图这样,数据一层一层向下流。对于卷积神经网络来说,每一层在通过卷积核后都会产生一种类似有损压缩的效果,可想而知在有损压缩到一定程度以后,分不清楚原本清晰可辨的两张照片并不是什么意外的事情。这种行为叫有损压缩其实并不合适,实际在工程上我们称之为降采样(Downsampling)——就是在向量通过网络的过程中经过一些滤波器(filters)的处理,产生的效果就是让输入向量在通过降采样处理后具有更小的尺寸,在卷积网络中常见的就是卷积层和池化层,这两者都可以充当降采样的功能属性。主要目的是为了避免过拟合,以及有一定的减少运算量的副作用。在深度残差网络中,结构出现了比较明显的变化。在这种情况下,会引入这种类似“短路”式的设计,将前若干层的数据输出直接跳过多层而引入到后面数据层的输入部分,如图所示。这会产生什么效果呢?简单说就是前面层的较为“清晰”一些的向量数据会和后面被进一步“有损压缩”过的数据共同作为后面的数据输入。而对比之前没有加过这个“短路”设计的平网络来说,缺少这部分数据的参考,本身是一种信息缺失丢失的现象本质。本来一个由2层网络组成的映射关系我们可以称之为F(x)的这样一个期望函数来拟合,而现在我们期望用H(x)=F(x)+x来拟合,这本身就引入了更为丰富的参考信息或者说更为丰富的维度(特征值)。这样网络就可以学到更为丰富的内容。这张图比较了三种网络的深度和结构特点,VGG-19、34层的“平网络”——也就是普通34层的CNN网络,还有34层的深度残差网络。在深度残差网络的设计中通常都是一种“力求简洁”的设计方式,只是单纯加深网络,所有的卷积层几乎都采用3×3的卷积核,而且绝不在隐藏层中设计任何的全连接层,也不会在训练的过程中考虑使用任何的DropOut机制。以2015年的ILSVRC & COCO Copetitions为例,以分类为目的深度残差网络“ImageNet Classfication”居然能够达到152层之深,也算是破了纪录了。这种短路层引入后会有一种有趣的现象,就是会产生一个非常平滑的正向传递过程。我们看和其前面一层xl的关系是纯粹一个线性叠加的关系。如果进一步推导及其以后层的输出会发现展开后是这样一个表达式:也就是后面的任何一层xL向量的内容会有一部分由其前面的某一层xl线性贡献。好,现在看反向的残差传递,也是一个非常平滑的过程。这是刚才我们看到的某层输出xL的函数表达式那么残差我们定义为E(就是Loss),应该有后面的xlable表示的是在当前样本和标签给定情况下某一层xL所对应的理想向量值,这个残差就来表示它就可以了。下面又是老生常谈的求导过程了,这里就是用链式法则可以直接求出来的,很简单注意这个地方,用白话解释一下就是任意一层上的输出xL所产生的残差可以传递回其前面的任意一层的xl上,这个传递的过程是非常“快”或者说“直接”的,那么它在层数变多的时候也不会出现明显的效率问题。而且还有一个值得注意的地方,后面这项它可以使得是一个线性叠加的过程而非连乘,所以它自然也不太可能出现梯度消失现象。这些就是从数学推导层面来解释为什么深度残差网络的深度可以允许那么深,并且还没有出现令人恐惧的梯度消失问题和训练效率问题。补充说明一下,中的E和xL在这里泛指某两个不同层之间的关系,指代他们的残差和输出值。大家请注意,在一个多层的网络中,每一层我们都可以认为是一种分类器模型,只不过每一层分类器的具体分类含义人类很难找到确切的并且令人信服的物理解释。然而每一层的各种神经元在客观上确实充当着分类器的功能,它将前面一层输入的向量进行采样并映射为新的向量空间分布。所以从这个角度去解释的话,可以看成指代任何一个“断章取义”的网络片段也没问题,也就不强调这个损失函数一定是由最后一层传到前面某一层去的了。 拓扑解释 除了前面我们提到的这种基于网络各层函数表达式的解释以外,深度残差网络的学习能力强,有好的性能表现还有一种解释,我们把这种解释可视化一下。短路项相当于像上图这样把所有的一个一个网络短接了过去,而这些短接过去的部分其实形成了新的拓扑结构。例如刚刚的f1、f2、f3这三个网络通过短接之后其实就演变成了右边这样一个拓扑结构,我们可以清楚地看到,这相当于是多个不同的网络模型做了融合或并联。将前面的向量信息通过多个不同的分类器模型将结构反馈到后面去。而没变化之前只有最下面的一条串联结构,这两种模型的不同正是造成它们学习能力不同的关键。残差网络中的特殊点就在于刚刚的这个结构就是将这样一个一个的带有ShortCut部分的单元头尾相接连在一起。笔者在Keras这种框架中发现它提供出来两种不同的ShortCut单元以供使用,一种是带有卷积项的,一种是不带有卷积项的。这里提一句Keras,Keras也是一个非常好的深度学习框架,或者说“壳子”更合适。它提供了更为简洁的接口格式,能够让使用者再非常非常短的代码中实现很多模型描述信息。它的后端支持TensorFlow和Theano两种框架作为后台实现(Backend)。在TensorFlow中描述很复杂的过程,可以在Keras里封装地非常好,所以在实际工作中笔者也经常使用Keras“包裹”着TensorFlow去做工程,代码可读性会好很多。大家有兴趣可以去试一下,本书的后面的附录也提供了Keras的安装文档以供参考。 Github示例 关于深度残差网络的实现在Github上有很多人都上传过,这里我们也尝试过一些版本,例如:https://github.com/ry/tensorflow-resnet https://github.com/raghakot/keras-resnet/blob/master/resnet.py前者还可以从网上下载一个Pretrained Model,都是模型制作人自己使用一些数据集训练的一些模型状态。我们可以认为它算是具备一定识别能力的“半成品”。在自己应用的场景中,可以根据需要在将这些“半成品”初始化后继续用一些数据集训练,使其更能适配自己所指派的场景。这种方式在工程中也很多见,毕竟要得到人家这个“半成品”的水平也要自己花费极多的人力成本和时间成本。何恺明先生自己也公开了一种实现方式,地址在https://github.com/KaimingHe/deep-residual-networks,不过是在Caffe上实现的,有兴趣的读者朋友如果想要研究Caffe框架的可以做个参考。具体的代码我们就不展开细讲了。 小结 应该说,残差网络的发明是对网络连接结构的又一种有益的尝试,而且实际效果还确实不错。曾经有人问过我,如果深度残差网络中不是用一个ShortCut跳过两个卷积层,而是跳过1个或者3个或者其他数量会有什么结果。 这个问题很难回答,但是问题本身并非没有意义。首先,跳过1个也好3个也罢,每一种不同的链接方式都是一种新的网络拓扑结构,有着不同的分类能力。由于神经网络本身的构造就非常复杂,经过这样的拓扑结构改变后直接讨论两种具备不同拓扑结构网络的学习能力也就比较困难。不过有一点可以确定,那就是网络发生类似“并联”的情况是会提高网络本身学习的容纳能力的。至于在哪个场景,有多大程度的能力提高,需要在实验中不断尝试和对比,从而总结归纳出一些新的理论成果。所以其实理论上确实不能排除跳过1个或者3个层来做短接在其它一些分类领域会有更好的效果,这需要具体的实验和论证过程。现在国际上每年出现的一些新的关于网络结构调整的论文也都是基于一些实验而归纳出来的理论,虽然大部分谈不上什么重大突破,不过科研这种东西总要有一个积量变为质变的过程。我倒是认为,大家在工作的过程中,一方面多关注国际上最新的一些论文和实验成果,一方面也可以在自己掌握的理论基础上大胆提出一些新的观点并进行论证尝试。这同样是一种值得鼓励的科研态度,也是得到经验的好方法。编者按:本书节选自图书《白话深度学习与TensorFlow》,本书本着“平民”起点,从“零”开始的初衷,介绍深度学习的技术与技巧,逐层铺垫,把微积分、梯度等知识重点化整为零,把学习曲线最大程度地拉平,让读者有良好的代入感和亲近感。《白话深度学习与TensorFlow》订购链接(点击阅读原文订购):https://item.jd.com/12228460.html又又又又赠书啦!!!留言告诉头条宝宝你想获得这本书的理由,点赞前3名就可获得本书。开奖截止时间10月19日(本周四)中午12点! via: http://mp.weixin.qq.com/s?__biz= ... e=0#wechat_redirect
AI前线 网页链接 2017-10-17 17:15
发布了头条文章:《机器学习与微博:TensorFlow在微博的大规模应用与实践》 http://t.cn/RO3e1gK
[img=20,20][/img] wx:让创新获得认可 网页链接 2017-10-17 16:25
会议活动 深度学习 算法 应用 资源 自然语言处理 AAAI ICML 会议 机器人 李军毅 社交网络 神经网络 书籍 信息检索 语言学 主题模型
「盘点 | 万变不离其宗,从文本生成看Seq2Seq模型」 关文本生成的论文,更有OpenAI等新兴公司陆续踏足这一领域。本文将从一系列文本生成的论文展开,为大家介绍Seq2Seq模型及其变体在这一领域是如何应用的。其中,文中有部分内容不是原创,如有侵权,请及时联系作者。本文收录于RUC AI Box专栏 https://zhuanlan.zhihu.com/RucAIBox作者:李军毅 ,来自中国人民大学大数据管理与分析方法研究北京市重点实验室,目前研究方向为深度学习、文本生成。 论文列表:《Recent Advances on Neural Headline Generation》 JCST 2017《A Neural Conversational Model》 ICML 2015《Topic Aware Neural Response Generation》 AAAI 2017 《A persona-Based Neural Conversation Model》 ACL 2016《Incorporating Copying Mechanism in Sequence-to-Sequence Learning》 ACL 2016《Context-aware Natural Language Generation with Recurrent Neural Networks》 AAAI 2016《Learning to Generate Product Reviews from Attributes》 EACL 2017 研究综述 2017年发表在JCST的文章《Recent Advances on Neural Headline Generation》主要是对Neural Headline Generation 的最新研究进展做了综述。同时,详细介绍了 Generation Model中的各个环节,包括 encoder, decoder 以及 training strategy。 在 Neural Headline Generation 中,模型采用的都是一种 end-to-end encoder-decoder 的框架,end-to-end 的好处在于通过缩减人工预处理和后续处理,尽可能使模型从原始输入到最终输出,给模型更多的可以根据数据进行自动调节的空间,增加模型的整体契合度。在encoder 部分,介绍了 Bag-of-Words Encoder,Convolutional Encoder,RNN Encoder 和Bidirectional Encoder,其中 RNN Encoder 又分别介绍了 LSTM-RNN和GRU-RNN 两种变体。Bag-of-Words Encoder 是对 word embedding 求平均,忽略了词的顺序和词与词之间的联系,Convolutional Encoder 使用卷积神经网络中的时延神经网络进行编码,无法解决长期依赖的问题,ENN Encoder 会出现梯度消失和梯度爆炸的问题,Bidirectional Encoder 分别从前后两个方向学习 hidden state,具体的公式论文中已详细列出。在 decoder 部分,介绍了Neural Network Language Model,RNN Decoder 以及 Attention-Based RNN Decoder,Neural Network Language Model 没有考虑历史信息对生成文本的贡献,因此在后来加入了attention 的机制,具体的公式论文已详细列出。在 training strategy 部分,主要介绍了两种训练策略,一种是单词水平的最大似然估计法(Maximum Likelihood Estimation),另一种则是句子水平的最小风险训练法(Minimum Risk Training)。 下面是利用最小风险训练法进行训练的算法实现: Seq2Seq基本模型的应用 本小节部分引用于文章“Datartisan 数据工匠 | 数据时代,匠心独运”。 2015年发表在ICML的《A Neural Conversational Model》是一篇利用seq2seq模型进行对话生成的论文。因为先前关于对话模型的研究局限于某些特定的领域,例如预定机票,点餐,并且还需要人工书写规则,所以此篇论文就利用已提出的 seq2seq 框架进行对话生成的工作。Seq2Seq 解决问题的主要思路是通过深度神经网络模型(常用的是LSTM,长短记忆网络,一种循环神经网络)将一个作为输入的序列映射为一个作为输出的序列,这一过程由编码输入与解码输出两个环节组成。如下图: 这与我们对话生成的工作是相似的,将输入的提问序列映射为输出的回答序列。比如说我们现在有提问序列“A B C EOS” (其中EOS=End of Sentence,句末标识符)作为输入,那么我们的目的就是将“A”,“B”,“C”,“EOS”依次传入模型后,把其映射为回答序列“W X Y Z EOS”作为输出。 在编码环节,各类长度不同的输入序列x将会经由循环神经网络构建的编码器编译为语境向量c。向量c通常为 RNN 中的最后一个隐节点,或是多个隐节点的加权总和。在解码环节,语境向量c将会进入一个 RNN 解码器中进行解译。简单来说,解译的过程可以被理解为运用贪心算法(一种局部最优解算法,即选取一种度量标准,默认在当前状态下进行最好的选择)来返回对应概率最大的词汇,或是通过集束搜索(Beam Search,一种启发式搜索算法,可以基于设备性能给予时间允许内的最优解)在序列输出前检索大量的词汇,从而得到最优的选择。在这篇论文中,attention 机制并没有运用到其中,但 attention 机制作为seq2seq模型的一个重要组成部分,最早由Bahdanau等人于2014年提出,该机制存在的目的是为了解决RNN中只支持固定长度输入的瓶颈。在该机制环境下,Seq2Seq 中的编码器被替换为一个双向循环网络(bidirectional RNN)。如下图所示: 在 attention 机制中,我们的源序列X=(x1,x2,...,xt)分别被正向与反向地输入了模型中,进而得到了正反两层隐节点,语境向量c则由RNN中的隐节点h通过不同的权重α加权而成,其公式如下: 其中,η为一个调整“注意回应强度”的函数。我们知道每一个隐节点 hi 都包含了对应的输入字符 xi 以及其对上下文的联系,这么做意义就在于现在模型可以突破固定长度输入的限制,根据不同的输入长度构建不同个数的隐节点,故不论我们输入的序列(比如待翻译的一段原文)长度如何,都可以得到模型输出结果。 Seq2Seq模型的变体及其应用 TA-Seq2Seq模型 本小节参考文章“如何生成主题相关的对话 | 每周一起读 #11”。 2017年发表在AAAI的《Topic Aware Neural Response Generation》是一篇通过在原有的 seq2seq 模型中加入输入语句的topic信息,从而对文本生成的表现进行优化的论文。文中模型的框架如下图: 1、在 Message Encoder 中,模型通过BGRU网络对输入信息做了编码,获得了在每一时刻的隐藏状态hidden state,图中的 hi; 2、在 Topic Words 中,模型运用了一个事先通过新浪微博语料训练好的TwitterLDA模型,其中算法是 collapsed Gibbs sampling。输入信息后,模型给出所有 topic,然后取前n(n=100)个最高概率的词作为 topic,同时去除通用词。最后将这些 topic words 转化为各自的向量表示 ki ,这些向量是通过计算每个 topic word 在所有 topic 下的归一化频率得到的,见文中Eq.(4); 3、在 Message Attention 中,这一部分和往常的 attention 机制的原理一样,得到了输入语句的 context vector 语境向量 ci ; 4、在 Topic Attention 中,这和现有的 attention 机制有点不同,它不仅考虑了每一个 ki 的作用,还加入了在第一步中得到的最后一个 hidden vector,这一做法目的是为了在计算最后的 topic vector 主题向量时,通过加入(总结了输入语句中的信息),增强 ki 中相关主题词的影响,提高其在输出中的出现概率,从而使得与输入语句的内容更贴合; 5、最后,构造由 message attention 和 topic attention 联合影响的解码概率,见文中 Eq.6,可以看到,最后的概率由两部分概率加和而成,该概率和强调了 topic words 的作用,基于这个概率可以进行解码。 总结:论文提出的 TA-Seq2Seq 模型的核心思想是,通过引入 LDA 模型获得文本主题,结合 Seq2Seq 模型来产生更有信息含量、更为多样性及更话题相关的对话回答。其思路是在现有的带attention机制的 Encoder-Decoder 模型架构上,通过结合输入信息的 message attention 和 topic attention 来共同影响对话的回答的生成。与标准的 seq2seq+attention 模型相比,TA-Seq2Seq 模型在对第一个单词解码时做了较好的处理。标准的 seq2seq+attention 模型在生成第一个单词时只取决于 c_0 ,而在 TA-Seq2Seq 模型中,加入了 o_0 先验信息的影响, 因此本文模型可以提高首次解码的质量,从而对整个解码结果的质量产生正向影响。 论文的整体思路比较简单直接,在阅读过程中,个人觉得有几点值得注意或借鉴的: 1、引入了 topic 的影响。在人们的实际对话过程中,在一定程度上,两者间的对话会基于某个话题来进行,引入 topic 的作用有一定的合理性; 2、 与传统的 attention 机制不同,topic attention 除了利用 topic words 的状态信息,还利用了 input message 的最终状态作为额外的输入来减弱不相关主题词并加强相关主题词的概率; 3、 在最后对话生成的过程中,采取了有偏于 topic words 的生成概率来增大 topic words 的出现几率; 4、不同于传统的 seq2seq 模型,在生成对话的第一个单词时,采用了 c0 和 o0 的组合,而不是只有 c0 ,这样的好处是可以产生更为准确的第一个词,来给后续的词及整个句子的产生带来了更好的效果,因为后续词的产生会依赖于前面生成的词。 Speaker 模型和 Speaker-Addressee 模型 2016年发表在 ACL 的《A persona-Based Neural Conversation Model》提出了两个模型:Speaker Model 和 Speaker-Addressee Model,分别对 respondent 和 respondent-addressee进行建模。模型在生成对话时考虑了 user identity 的影响,解决了在多轮对话时回答不一致的问题。下图是一个4层 seq2seq 模型在生成对话时前后回答不一致的例子,同样的问题,换一种问法就会得到不同的回答: 论文针对这个问题,将user identity(比如 background facts、user profile,age,country等信息)考虑到model中,构建出一个富含用户特色的 seq2seq 模型,为不同的 user,以及同一个user对不同的对象对话生成不同风格的response。 下图是 Speaker Model 的基本框架: 可以看出,这是一个典型的 seq2seq 模型,不同的地方在于在 decoding 部分增加了一个speaker embedding。因为无法对用户的信息显式地进行建模,所以用了一种 embedding 的方法,这个 embedding 中编码了 speaker 的信息,通过训练来得到 speaker 向量,下面左边的图是speaker向量在二维平面上的表示,具有相似背景信息的 user 在模型中会被聚集在一起,与下面右边二维图里的word embedding一个道理。 传统的利用 LSTM 的 Seq2Seq 模型在 decoding 时的公式如下图: 在 Speaker Model 中,公式做了小小的增加, vi 表示 speaker embedding: 第二个模型是 Speaker-Addressee Model,这个模型与上一个模型思想是一致的,在多人多轮对话中,每个人在面对不同的人说话时,他的说话方式是不同的,不能单单只对一个人进行建模,所以应该需要考虑说话的对象,用 V_{i,j} 来表示两个speaker i 和 j 之间的这种对话模式,decoding 部分计算如下式: 模型最后为了解决 Seq2Seq 模型容易出现 I don't know 这些无意义的回答,采用了 Li et al.(2016) 中的方法,通过 beam search 生成一个 N-Best List,用一些规则来重新排序得到更好的结果。 总结:论文用了类似于word embedding的思路,对 user infomation 进行建模表示,同样的思路可以用于情绪、上下文信息中。 CopyNet 模型 本小节参考文章Incorporating Copying Mechanism in Sequence-to-Sequence Learning。 2016年发表在 ACL 的《Incorporating Copying Mechanism in Sequence-to-Sequence Learning》提出了一个 CopyNet 模型,此模型借鉴了人类在处理难理解的文字时采用的死记硬背的方法,将传统的生成模式与拷贝模式结合起来构建了新的模型。论文提出的 CopyNet 模型会定位输入序列中的某个片段,然后将此片段拷贝到输出序列中。例如下面的两个例子: 无论是传统的 encoder-decoder 还是加入了 attention 之后的模型,它们都严重依赖于语义的表示(representation),这导致系统在需要引用输入的某个子序列例如命名实体或日期时会出现非常不准确的情况。相反,这种拷贝机制更接近人类语言处理时的死记硬背模式。CopyNet 模型不仅具备常规的生成文本的能力,还可以从输入序列拷贝合适的片段到输出序列中。 下面是 CopyNet 模型的基本框架: Encoder: 采用一个双向 RNN 模型,将源序列转换为一个隐藏层表示的矩阵作为decoder的输入。 Decoder: 与传统 RNN-decoder 有三个不同之处:预测:CopyNet 在预测下一个单词时,结合了两种模式下的概率,一种是生成模式generate-mode,一种是拷贝模式 copy-mode,生成模型是一个结合两种模式的概率模型。状态更新: CopyNet 不仅利用在 t-1 时刻生成的单词的词向量,而且利用其在M矩阵中对应位置的hidden state来更新 t 时刻的状态。读取M: CopyNet会利用 attentive-read 和 selective-read 两种方法来读取M矩阵,分别获取M中内容和位置的信息。 生成模式和拷贝模式: 首先,构造词汇表:表示高频词汇表,表示输入序列中只出现过一次的单词, UNK 表示超纲词 OOV 。最终,输入序列中的单词是这三个集合的并集。 给定了 decoder 在 t 时刻的状态和矩阵 M,生成下一个单词 yt 的概率为: 其中g表示生成模式,c表示拷贝模式,这两种模式的概率公式分别为: 状态更新:decoder 的状态更新公式为: 不同的是,这里 t-1 时刻的y是,后半部分是M矩阵中与t时刻y相关的状态权重之和,如下: M矩阵: M矩阵中既包含了内容信息,又包含了位置信息。CopyNet 在 attentive read 时由内容信息(语义)和语言模型来驱动,即生成模式;在拷贝模式时,selective read 由位置信息来控制。 位置信息的更新方式如下图所示: 总结:论文提出的 CopyNet 模型的核心思想是,通过引入拷贝机制,结合原有 Seq2Seq 模型中的生成机制来解决对话回答中出现的不一致问题。其思路是在现有的带attention机制的 Encoder-Decoder 模型架构上,在生成文本时加入一部分位置信息来共同影响对话的回答的生成。本篇论文的优势在于处理OVV问题时所提出的拷贝机制简单可行。 C2S 模型和 gC2S 模型 2016年发表在AAAI的《Context-aware Natural Language Generation with Recurrent Neural Networks》提出了两个模型:C2S 模型和 gC2S 模型。论文的主要工作是针对商品的描述生成评论,实验表明人工评判时有50%以上的生成评论都通过了,90%以上骗过了现有的识别算法。 传统的RNN模型进行文本建模的方式如下图: 论文中的 C2S: Contexts to Sequences 模型如下图,相比于传统方式,C2S 在开始翻译时多了一个表示上下文的向量。但是,当生成的序列太长时,context 中的信息很难传播,所以作者对此又进行了改进: 论文中的 gC2S: Gated Contexts to Sequences 模型如下图,作者在上下文信息和下一个单词之间建立了一个直接的联系,称为 gated mechanism,用于评价当前步骤与上下文之间的关系: Attention-Enhanced A2S 模型 2017年发表在 EACL 的《Learning to Generate Product Reviews from Attributes》提出了一个 attention-enhanced attribute-to-sequence模型,利用商品属性,例如 user,product,rating等信息,来生成商品评论。模型的基本框架如下图: 因为评论的多样性,在给定商品属性的同时生成评论是一项具有挑战性的工作。在本篇论文中使用的三个商品属性:user,product 和 rating 中,rating 是一个比较显式的线索,它可以直接决定评论中情绪词的使用,而 user 和 product 就是比较隐式的线索,同一个 user 对不同的 product 表现不一,反之同理。 模型分为三个部分:attribute encoder,sequence decoder 和 attention mechanism。Attribute encoder 是一个多层感知机,用于将 attribute 编码为 vector,sequence decoder 是一个 coarse-to-fine 的多层 RNN。 下图是没有 attention 机制下的模型: Attribute Encoder: 其中 e(αi) 是 one-hot 向量, g(αi) 是对应的 attribute vector,利用α来初始化 L-layer RNN。 Sequence Decoder: 在上图多层RNN中,横轴是时间,纵轴是层数。隐状态由下列公式更新: 最终,利用 softmax 函数预测下一个单词的概率为: Attention Mechanism: 总结:本文虽然是一个很简单的 attention-based encoder-decoder 模型的应用,但它加深了我对seq2seq 模型的理解和运用,是一篇很实用且易实现的例子。 全文总结 纵观所有论文,最基本的 seq2seq 模型框架就是 encoder-decoder,再加上 attention 机制,不管是往 decoder 里加入 topic 信息,还是 speaker 信息,亦或是 新增加 copy 机制,都万变不离其宗。 为了更好的理清这一系列seq2seq模型的思路,我对此次所讲的所有论文画了一个总结图如下,中间核心的黑色部分是最基本的 seq2seq 模型框架,其余浅灰色部分是上述论文做的一些创新性的工作,最开始是在 encoder 和 decoder 之间加入的 attention 机制,这里我称之为 message attention,然后2017年 AAAI 的《Topic Aware Neural Response Generation》类似地提出了一个 topic attention 机制,与原先的 attention 机制共同作用,之后在 decoder 部分创新最多,2016年 ACL 的《A persona-Based Neural Conversation Model》加入了 speaker vector 和 interaction vector 的影响因子,同年 ACL 大会的另一篇论文《Incorporating Copying Mechanism in Sequence-to-Sequence Learning》加入了 copying mechanism,2016年 AAAI 的《Context-aware Natural Language Generation with Recurrent Neural Networks》则加入的是 gating mechanism。 -END-现已涵盖CV、机器人、NLP、ML、IoT等多个当下火热的技术话题。我们每周邀请来自产学研的优秀技术人进行线上分享,目前群里已汇聚数千位上述领域的技术从业者。入群方式>>关注“将门创投”(id:thejiangmen)微信公众号,在后台回复关键词“技术社群”,提交入群申请表。通过审核后,我们会在第一时间发出邀请。 将门创投让创新获得认可!微信:thejiangmenservice@thejiangmen.com via: http://mp.weixin.qq.com/s?__biz= ... e=0#wechat_redirect
最新动态
[img=20,20][/img] wx:奕欣 网页链接 2017-10-17 22:18
公告板 入门 视觉 算法 应用 语音 知识工程 资源 自然语言处理 崔立明 行业动态 机器人 课程 李名杨 聂再清 推荐系统 招生 知识库
「动态 | 阿里AI实验室又添两员大将,微软亚研院聂再清、谷歌李名杨担任要职」AI科技评论消息,10 月 16 日,阿里巴巴宣布,微软亚洲研究院首席研究员聂再清博士、谷歌 Tango 和 DayDream 项目技术主管李名杨博士入职阿里人工智能实验室(以下简称 AI Labs)。其中聂再清将担任 AI Labs 北京研发中心总负责人,李名杨任 AI Labs 机器视觉杰出科学家。阿里巴巴人工智能实验室北京研发中心总负责人聂再清聂再清博士加入 AI Labs 此前在微软亚洲研究院主要负责微软自然语言理解、实体挖掘的研发工作。在对象级别搜索与大数据挖掘方面申请国际专利十余项。他带领团队旨在通过大数据挖掘和众包,建立 Web-scale 知识图谱,是微软学术搜索、人立方,以及企业智能助理 EDI 的发起人和负责人,也是微软自然语言理解平台LUIS的技术负责人。相关技术已经应用在 Bing、office、Cortana 等产品上。加入阿里 AI Labs 之后,除负责北京研发中心的各项研发工作外,聂再清还将重点突破知识图谱和自然语言理解这两个研究方向。阿里巴巴人工智能实验室机器视觉杰出科学家李名杨李名杨博士此前在谷歌工作时的主要研究领域是视觉-惯导里程计(VIO)和即时定位与地图重建(SLAM),并在该领域拥有 20 多篇顶级论文及相关专利。他推进了 tango 项目与全世界多个高校之间的合作研发计划,也将 SLAM 技术融合进了多个终端产品中,包括 tango 手机和 ARcore。随着上述两位专家加入,预示着 AI Labs 未来的产品方向除了天猫精灵这一语音交互产品外,很可能会推出基于视觉交互,甚至“机器人”类型的人工智能产品。————— AI 科技评论招人啦! —————你即将从事的工作内容:报道海内外人工智能相关学术会议,形成具有影响力的报道内容;采访高校学术青年领袖,输出人工智能领域的深度观点;跟进国内外学术热点,深入剖析学术动态;我们希望你是这样的小伙伴:英语好,有阅读英文科技网站的习惯;兴趣广,对人工智能有关注及了解;态度佳,有求知欲,善于学习;欢迎发送简历到 guoyixin@leiphone.com————— 给爱学习的你的福利 —————3个月,从无人问津到年薪30万的秘密究竟是什么?答案在这里——崔立明授课【推荐系统算法工程师-从入门到就业】3个月算法水平得到快速提升,让你的职业生涯更有竞争力!长按识别下方二维码(或阅读原文戳开链接)抵达课程详细介绍~———————————————————— via: http://mp.weixin.qq.com/s?__biz= ... e=0#wechat_redirect
[img=20,20][/img] wx:奕欣 网页链接 2017-10-17 22:18
公告板 会议活动 入门 深度学习 视觉 算法 应用 资源 自然语言处理 白硕 产业 陈钢 崔立明 冯圣中 会议 活动 课程 卢俊雷 情感分析 社交网络 神经科学 数据科学 推荐系统 王健宗 杨洋 招生 朱飞达
「大会 | CCF 大数据学术会议的企业论坛上,八位嘉宾们都在关注怎样的产业应用问题?」10 月 13 日至 15 日,第五届 CCF 大数据学术会议(CCF BigData 2017)于深圳举行。本届会议由中国计算机学会主办,中国计算机学会大数据专家委员会和深圳大学联合举办,雷锋网作为协办单位,也深度参与了本次会议。在与分论坛主席、平安科技大数据高级产品总监王健宗博士交流时,他向 AI 科技评论表示。中国计算机学会大数据专家委员会由国内外顶尖的大数据领域的专家组成,每年的委员年会与大数据会议同期举行,「从嘉宾的质量来看,至少从国内来说可以算是非常高规格的一个会议。」;另一方面,CCF BigData 2017 本质上还是属于一个学术会议,学术大牛的到场也让企业嘉宾更愿意受邀参与,但商业化性质会弱很多。「CCF 大数据学术会议的举办更多是履行一种社会责任,并进行大数据行业的趋势解读,邀请专家做预判,这是我个人认为的大数据会议的定位。」正因为浓厚的学术会议气氛,本次学术会议更多地是让各位嘉宾介绍自己的最新研究成果,并没有框定统一的主题。「我们也希望能带给学者们在大数据领域百花齐放的空间和想象,对研究上有一些新的启示」。与之相对的是 CCF 在 12 月份举行的富有针对性的大数据技术会议,期间除了大数据研究趋势报告的发布外,在会上将跟进 CCF 大数据与计算智能大赛 BDCI 的赛事动态,并筛选一年来国内的顶尖大数据应用案例进行展示。在王健宗博士看来,目前学术成果领域的研究已经到了应用和转化的时候,企业论坛便是一个很好的例证。作为正会开始前的分论坛环节,关注大数据科学教育与人才培养的优青论坛与注重大数据产业化与 AI 应用发展趋势的企业论坛于上周五举行。王健宗博士告诉 AI 科技评论,在制定议程上,委员会根据「大数据产业化与 AI 应用发展趋势」的核心主题,邀请了八位嘉宾来到现场分享了他们在大数据领域的心得。从嘉宾的选择上,王健宗博士也分享了他选择嘉宾的方向和想法。首先在金融大数据领域,邀请的是业界的相关权威白硕老师介绍区块链生态;并请网信创始合伙人周欣分享实践与创新应用;在学术领域,中科院深圳先进研究院的冯圣中博士及新加坡管理大学的朱飞达教授分享了他在研究领域的一些成果;至于业界公司领域,以包括 IBM 与 AdMaster 这样的业界领先企业代表做详细的应用案例演讲;鉴于深圳是一片产学研的沃土,企业论坛还邀请了两位本土创业公司的代表 WeGene 及 iPIN 介绍企业的产学研状况;在会议的开始,中国分布式总账基础协议联盟技术委员会主任白硕博士作为第一位演讲嘉宾进行了《区块链业务》的介绍。「在全面整肃 ICO 的大背景下,正确认识币圈和链圈的本质差别,积极鼓励链圈的技术创新,积极探索把币圈有价值的技术创新吸纳到链圈为我所用,全面提高我国区块链技术应用水平,具有重要的意义。区块链技术下一代的关键技术突破口的选择和技术创新激励机制的设计极为关键。」AdMaster(精硕科技)技术副总裁卢俊雷博士以《数字营销在人工智能的实践》为题,介绍了人工智能在数字营销应用场景,特别是跨设备识别、社交数据情感分析、广告图片智能识别的算法与应用。而对于大数据处理中的高性能计算问题,中科院深圳先进研究院院长助理冯圣中博士以脑科学中的大规模网络处理为例,在脑网络特点、复杂网络分析及复杂脑网络研究现状三方面分析了脑科学的高性能计算问题。新加坡管理大学朱飞达教授的主要研究方向包括大规模数据挖掘、人工智能、社交网络及新媒体数据挖掘与分析、数据驱动的商业智能和创新研究,因此他针对数据驱动的商业创新,提出了基于用户视角的一种处理数据的新方式。随后,WeGene 联合创始人兼 CTO 陈钢做了《用人工智能理解生命本质》为题的演讲,机器学习算法、深度学习等技术在基因组数据分析、人类表型预测,精准医学等领域的应用和挑战。IBM 认知系统技术总监徐宁则立足于采用 AI 技术进行大数据分析,带来产业变革,以应用实际案例介绍 AI 技术,介绍了如何帮助企业进行大数据分析与业务创新。网信创始合伙人、CTO 周欣介绍了网信金融大数据平台的实践及创新应用。「我们经历了近 5 年的发展,积累了大量的用户数据与行为数据。借助这些数据,我们自主打造了一个大数据平台,在用户画像、智能营销、风险控制、AI 交互、开放技术等业务做了深入探索,并取得了较好的成果。」最后,iPIN 创始人兼 CEO 杨洋以《认知智能—— AI 时代下的商业逻辑》,描述了 AI 提升商业效率的原理和逻辑路径,如何形成 AI 时代的商业思维,引导 AI 创业者们思考。CCF 大数据学术会议企业论坛当天在热烈的气氛下举行,并获得了现场观众的好评。在学术会议内,与产业界结合的企业论坛并不多见,而 CCF 大数据学术会议则为我们提供了一个新的思路,则通过企业论坛的方式,反向带动业界人士对学术资源与学术研究动向的关注。我们也期待在CCF大数据学术会议的带动下,有更多的产业界人士能参与到学术会议中来,互相促进大数据领域的发展。————— AI 科技评论招人啦! —————你即将从事的工作内容:报道海内外人工智能相关学术会议,形成具有影响力的报道内容;采访高校学术青年领袖,输出人工智能领域的深度观点;跟进国内外学术热点,深入剖析学术动态;我们希望你是这样的小伙伴:英语好,有阅读英文科技网站的习惯;兴趣广,对人工智能有关注及了解;态度佳,有求知欲,善于学习;欢迎发送简历到 guoyixin@leiphone.com————— 给爱学习的你的福利 —————3个月,从无人问津到年薪30万的秘密究竟是什么?答案在这里——崔立明授课【推荐系统算法工程师-从入门到就业】3个月算法水平得到快速提升,让你的职业生涯更有竞争力!长按识别下方二维码(或阅读原文戳开链接)抵达课程详细介绍~———————————————————— via: http://mp.weixin.qq.com/s?__biz= ... e=0#wechat_redirect
燕北新媒体 网页链接 2017-10-17 17:30
应用 行业动态 机器人
【谷歌AutoML人工智能系统,让机器写出比人类程序员更好的代码】相比人类“老师”,机器人“学生”们已经成为了“自我复制”的大师。谷歌AutoML系统最近出产了一系列机器学习代码,其能力甚至远胜于创造它的研究人员。它可以创建自学习代码,系统会运行数千个模拟来确定代码的哪些方面可以作出改进,以...全文: http://m.weibo.cn/1711479641/4163891703301616
ChatbotsChina 网页链接 2017-10-17 09:04
算法 自然语言处理 强化学习
强化学习在生成对抗网络文本生成中扮演的角色(Role of RL in Text Generation by GAN)(上)http://t.cn/ROm1WSY 强化学习在生成对抗网络文本生成中扮演的角色(Role of RL in Text Generation by GAN)(下) http://t.cn/ROm1WSQ
爱可可-爱生活 网页链接 2017-10-17 08:42
算法 He Xiangnan
'TensorFlow Implementation of Attentional Factorization Machine' by He Xiangnan GitHub: https ://github .com/hexiangnan/attentional_factorization_machine ref:《Attentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Networks》...全文: http://m.weibo.cn/1402400261/4163758899702083
爱可可-爱生活 网页链接 2017-10-17 08:37
会议活动 算法 应用 资源 He Xiangnan PDF SIGIR 会议 教育网站 信息检索
【TenforFlow实现的Neural Factorization Machine】’TenforFlow Implementation of Neural Factorization Machine' by He Xiangnan GitHub: https ://github .com/hexiangnan/neural_factorization_machine ref:《Neural Factorization Machines for Sparse Predictive Analy》http://t.cn/ROmEYi1
[img=20,20][/img] wx: 网页链接 2017-10-17 08:13
经验总结 深度学习 视觉 算法 资源 自然语言处理 Brad Dwyer GPU 博客 行业动态 课程 神经网络 书籍
「【机器学习爆款App技术解读】如何用“摄像头秒解数独”」【AI WORLD 2017世界人工智能大会倒计时 22天】 抢票链接:http://www.huodongxing.com/event/2405852054900?td=4231978320026大会官网:http://www.aiworld2017.com 新智元编译 来源:Medium作者:Brad Dwyer编译:费欣欣 【新智元导读】最近一款名叫 Magic Sudoku(魔法数独)的 App 火了,这款 App 能够“用摄像头解数独”,使用了计算机视觉、机器学习和增强现实技术,具体说,是 Keras + Vision Lib + CoreML + ARKit。本文是开发者 Brad Dwyer 的技术解读,分享了他在项目实践中,构建模型、收集数据等的经验和技巧。 Magic Sudoku(魔法数独)是一款基于苹果 ARKit 的 iOS 应用,能够“用摄像头解开数独”——用户只需将摄像头对准空白的数独题目,拍摄一下,瞬间就能得到答案,对于那些被特别难的数独题困扰的人来说,这无疑是一个超级救星。正所谓有了 Magic Sudoku,这个世界上没有解不开的数独。 尽管当前的 Magic Sudoku 只是一个 Demo,但已经引发了不小的轰动,不仅得到大量用户的追捧,这款应用还登上了 Gizmodo、CNET 乃至《快公司》等媒体的版面。开发者 Brad Dwyer 表示,该应用程序使用了几个神经网络,而解决每个数独题的关键则是一个递归算法。 下面,新智元编译了 Dwyer 发表在 Medium 的文章,详细介绍了他开发 Magic Sudoku 的经验教训。 核心要点:Magic Sudoku = Keras + Vision Lib + CoreML + ARKit Magic Sudoku 结合了计算机视觉、机器学习和增强现实,总之,用手机对准数独难题,App 就能工作。这个应用程序的基本流程是: 1)ARKit 从相机获取新的帧;2)使用 iOS 11 的 Vision Library 检测图像中的矩形;3)如果找到矩形,确定它们是不是数独;4)如果发现是数独,就将其分解成 81 个正方形的图像;5)每个正方形都通过训练好的神经网络,确定它代表什么数字(如果有的话);6)收集到足够的数字以后,使用传统的递归算法来解决这个数独题;7)将表示解开谜题的 3D 模型传回 ARKit,显示在原始相机图像的上面 所有这些在每秒钟内都会运行好几次。我不会太多地讲解 ARKit,也不会大书特书数独求解算法或实际的机器学习模型,网上已经有很多关于这些的教程。 对我来说最有趣的,是我在训练我的第一台机器学习算法时学到的实际方面。因此,下文将着重这部分的内容。 首先,我学会了几种失败的方法 我选择解数独作为我们开发的第一款 AR 应用程序,其中一个原因是我知道对数字进行分类,基本上是机器学习中的“Hello world”。因此,作为机器学习试水项目,同时也解决现实世界问题,开发 App 解算数独再适合不过。 在训练模型前,我尝试了一些策略,如果它们有用,接下来事情将会变得更容易。可惜,这些策略都没起效。 我尝试的第一件事是使用一个名为 SwiftOCR 的光学字符识别库。在我这个用例中,使用 SwiftOCR 的问题是,这个库是用于读取字符串(如礼品卡代码)的,而数独是单个的数字。我也无法让 SwiftOCR 区分“这是个空的方块”和“我不能读这个数字”。经过几个小时的实验后,它也没有变得比随机猜测数字好多少。 这并不是说 SwiftOCR 不好。实际上,这是一个很棒的库,只是不适合用于这个特殊的问题。 然后,我转而使用一个预训练的 MNIST 模型,已经转换适用 CoreML。使用预训练模型很好很方便,实际上这也是我取得的第一个里程碑: .mlmodel 文件是完全自包含的,还对应 Swift 里的一个类,几乎可以直接运行。 不幸的是,手写数字数据集 MNIST 里的数字跟计算机字体相差还挺大,因此不太好泛化,我的第一个原型很容易出错。 但是,到了这里,我已经知道我走在正确的轨道上。我希望如果我使用从数独题目里提取的现实世界数据来训练我的机器学习模型,后者将变得更加准确和可靠。 数据收集:巧妙设计工具,利用群众的力量标记数据 下一步就是收集尽可能多的数独难题实例了。我去我们当地的半价书店,买了他们所有的数独书。 我团队的同事帮我把这些书拆开,我修改了原型应用程序,将其扫描的每个小方块上传到服务器。从每本书中扫描出各种各样的谜题后,服务器上存储了大约60万张图像,但是它们完全没有标签。 所以,我耍了个小花招:我做了个简单的管理工具,让我们在 Hatchings 的用户帮助我们开发他们最喜欢的应用程序——通过按他们键盘上的数字键,对图像进行分类。我们在 Facebook 上发布声明后,不到 24 小时,所有 60 万张图片都标记完了! 但不幸的是,少数人误解了这个任务,结果数据中掺杂了大量的标记错误的图像。为了纠正这一点,我又做了第二个工具,显示 100 张图像(都应该是相同的数字),要求用户单击不匹配的图像,然后将其重新分类到第一个工具中。 然后,我就有了足够多的验证数据,我在两个工具中添加了一个自动精度检查器,它会定期显示用户已知的图像并检查其工作,从而确定在多大程度上信任用户分类的答案。 在接下来的几个星期,我们的玩家分类了更多的扫描数据。当我们推出 Magic Sudoku App 时,系统已经接收了数百万个数独的数字图像的训练。 我使用这个数据集代替 MNIST 数据集,并在教程的指导下,使用 Keras 制作神经网络。结果比我预期的更好:精度 98.6%!在后续版本中,精度能够提高到 99% 以上。 使用现实世界数据来训练 到那时候为止,我们从书店收集来的数独语料库工作都很好。我们没有意识到的是,这只是世界上数独汪洋大海的一小部分。 Magic Sudoku 发布后,我们立即开始收到 App 不能工作的报告。现在想来这简直太正常不过——但当时我们居然真的没有注意到!用户想尝试我们的应用程序能不能用,但手头又没有数独题,因此他们就在谷歌搜索,然后拍照下来试试看。 我们的机器学习模型只使用了纸上的数独题训练;不知道如何处理屏幕上的像素。后来的一周,我都连续熬夜,用电脑屏幕的数据重新训练模型。 问题二是苹果的 ARKit 只支持水平面,比如桌子和地板(而不支持竖直面,比如显示器)。解决这个问题比较棘手,但我确实提出了一个解决方案。我使用了启发式函数和 FeaturePoint 检测相结合,用来识别放在非水平面上的数独题。 另一个意外问题是 ARKit 不会自动对焦(焦距是固定的)。在设备之间也有一些变化(在我的 iPhone 7 相机传感器上能运行,但 iPhone 6S 近距离对焦就不行了)。对此,我们的“修复”方法是,将模糊图像添加到训练集中。 我不知道是否能够从这些图像中挖掘有用的信息,我甚至看都看不清楚……但是,添加模糊图像似乎并不影响模型的准确性!这样,即使当图像中的数字十分模糊的时候,当前版本的 Magic Sudoku 应用程序也能很好地运行。 上云:1200 美元自己打造机器,比 AWS GPU 更划算! 最后,最近很多关于亚马逊 AWS GPU实例深度学习和谷歌云深度学习产品的新闻,所以两个我都用了一下。(我还尝试了 FloydHub 的“Heroku 深度学习”平台)。 结论:有用,但很慢。我 2016 年的 Macbook Pro 运行 tensorflow-cpu 速度都胜过 AWS p2.xlarge GPU 实例。我怀疑训练瓶颈是磁盘而不是计算。 上云也很贵。根据我的计算,自己建一台机器回报不到两个月,所以我花 1200 美元,在我父母的地下室自己攒了台规格普通的机器(这里是表单 https://pcpartpicker.com/list/FRmGCy)。 运行我的数据集,我自己的机器比 AWS GPU 实例要快 3 倍,我相信应该很快就能收回成本。 我还是机器学习初学者,但是通过开发这款 Magic Sudoku 魔术数独 App 让我学到了很多。 接下来的几个星期,我有一个很长的待修复列表,还要对当前功能集进行小幅改进。现在我已经解决了大部分问题与奇怪的字体、权重、填充和模糊的问题,下一步是改善我的启发式函数,从而更好地识别数独题。 如果题目的拼图和纸张边缘之间没有太多的填充,或边缘附近有文字,当前版本(v1.4)可能会遇到麻烦。所以,我接下来还要继续尝试。 我一直在收集正确对齐的数独题和扫描得不好的数据集,我准备使用这些数据来训练另一个神经网络,这个神经网络的作用是过滤掉坏的扫描数据。 再看远一点,我们还计划添加一些非常棒的功能。例如,我们想为已经完成的数独题添加一个“checkr”功能。大部分的这些新功能都需要从计算机给出的数字中读取和分离笔迹,因此我们收集了来自世界各地用户的手写样本,准备训练新的机器学习模型。欢迎你提供反馈! 原文地址:https://blog.prototypr.io/behind ... solver-e586e5b685b0 【AI WORLD 2017世界人工智能大会倒计时 22 天】点击图片查看嘉宾与日程。大会门票销售火热,抢票链接:http://www.huodongxing.com/event/2405852054900?td=4231978320026【扫一扫或点击阅读原文抢购大会门票】AI WORLD 2017 世界人工智能大会购票二维码: via: http://mp.weixin.qq.com/s?__biz= ... e=0#wechat_redirect
[img=20,20][/img] wx: 网页链接 2017-10-17 08:13
公告板 会议活动 入门 深度学习 视觉 算法 应用 资源 自然语言处理 Chao Ma CVPRECCV GMM GPU Han B Han B. Modeling Huang Z. Large ICCV Martin Danelljan Naiyan Wang PCA SVMYang Li Zhu J 分类 广告系统 行业动态 和子 幻灯片 回归 会议 可视化 神经网络 统计 凸优化 推荐系统 王强 吴毅 相似度量 语言学
「计算机视觉中,目前有哪些经典的目标跟踪算法?」【AI WORLD 2017世界人工智能大会倒计时 22 天】 抢票链接:http://www.huodongxing.com/event/2405852054900?td=4231978320026 大会官网:http://www.aiworld2017.com 新智元推荐 来源:知乎作者:YaqiLYU 【新智元导读】这篇文章将非常详细地介绍计算机视觉领域中的目标跟踪,尤其是相关滤波类方法,分享一些作者认为比较好的算法。 相信很多来这里的人和我第一次到这里一样,都是想找一种比较好的目标跟踪算法,或者想对目标跟踪这个领域有比较深入的了解,虽然这个问题是经典目标跟踪算法,但事实上,可能我们并不需要那些曾经辉煌但已被拍在沙滩上的tracker(目标跟踪算法),而是那些即将成为经典的,或者就目前来说最好用、速度和性能都看的过去tracker。我比较关注目标跟踪中的相关滤波方向,接下来我帮您介绍下我所认识的目标跟踪,尤其是相关滤波类方法,分享一些我认为比较好的算法,顺便谈谈我的看法。 先跟几个SOTA的tracker混个脸熟,大概了解一下目标跟踪这个方向都有些什么。一切要从2013年的那个数据库说起。如果你问别人近几年有什么比较niubility的跟踪算法,大部分人都会扔给你吴毅老师的论文,OTB50和OTB100(OTB50这里指OTB-2013,OTB100这里指OTB-2015,50和100分别代表视频数量,方便记忆): Wu Y, Lim J, Yang M H. Online object tracking: A benchmark [C]// CVPR, 2013.Wu Y, Lim J, Yang M H. Object tracking benchmark [J]. TPAMI, 2015. 顶会转顶刊的顶级待遇,在加上引用量1480+320多,影响力不言而喻,已经是做tracking必须跑的数据库了,测试代码和序列都可以下载: Visual Tracker Benchmark(http://cvlab.hanyang.ac.kr/tracker_benchmark/),OTB50包括50个序列,都经过人工标注: 两篇论文在数据库上对比了包括2012年及之前的29个顶尖的tracker,有大家比较熟悉的OAB, IVT, MIL, CT, TLD, Struck等,大都是顶会转顶刊的神作,由于之前没有比较公认的数据库,论文都是自卖自夸,大家也不知道到底哪个好用,所以这个database的意义非常重大,直接促进了跟踪算法的发展,后来又扩展为OTB100发到TPAMI,有100个序列,难度更大更加权威,我们这里参考OTB100的结果,首先是29个tracker的速度和发表时间(标出了一些性能速度都比较好的算法): 接下来再看结果(更加详细的情况建议您去看论文比较清晰): 直接上结论:平均来看Struck, SCM, ASLA的性能比较高,排在前三不多提,着重强调CSK,第一次向世人展示了相关滤波的潜力,排第四还362FPS简直逆天了。速度排第二的是经典算法CT(64fps)(与SCM, ASLA等都是那个年代最热的稀疏表示)。如果对更早期的算法感兴趣,推荐另一篇经典的survey(反正我是没兴趣也没看过): Yilmaz A, Javed O, Shah M. Object tracking: A survey [J]. CSUR, 2006. 2012年以前的算法基本就是这样,自从2012年AlexNet问世以后,CV各个领域都有了巨大变化,所以我猜你肯定还想知道2013到2017年发生了什么,抱歉我也不知道(容我卖个关子),不过我们可以肯定的是,2013年以后的论文一定都会引用OTB50这篇论文,借助谷歌学术中的被引用次数功能,得到如下结果: 这里仅列举几个引用量靠前的,依次是Struck转TPAMI, 三大相关滤波方法KCF, CN, DSST, 和VOT竞赛,这里仅作示范,有兴趣可以亲自去试试。(这么做的理论依据是:一篇论文,在它之前的工作可以看它的引用文献,之后的工作可以看谁引用了它;虽然引用量并不能说明什么,但好的方法大家基本都会引用的(表示尊重和认可);之后还可以通过限定时间来查看某段时间的相关论文,如2016-2017就能找到最新的论文了,至于论文质量需要仔细甄别;其他方向的重要论文也可以这么用,顺藤摸瓜,然后你就知道大牛是哪几位,接着关注跟踪一下他们的工作 ) 这样我们就大致知道目标跟踪领域的最新进展应该就是相关滤波无疑了,再往后还能看到相关滤波类算法有SAMF, LCT, HCF, SRDCF等等。当然,引用量也与时间有关,建议分每年来看。此外,最新版本OPENCV3.2除了TLD,也包括了几个很新的跟踪算法 OpenCV: Tracking API: TrackerKCF接口实现了KCF和CN,影响力可见一斑,还有个GOTURN是基于深度学习的方法,速度虽快但精度略差,值得去看看。tracking方向的最新论文,可以跟进三大会议(CVPR/ICCV/ECCV) 和arXiv。 接下来总体介绍下目标跟踪。这里说的目标跟踪,是通用单目标跟踪,第一帧给个矩形框,这个框在数据库里面是人工标注的,在实际情况下大多是检测算法的结果,然后需要跟踪算法在后续帧紧跟住这个框,以下是VOT对跟踪算法的要求: 通常目标跟踪面临几大难点(吴毅在VALSE的slides):外观变形,光照变化,快速运动和运动模糊,背景相似干扰: 平面外旋转,平面内旋转,尺度变化,遮挡和出视野等情况: 正因为这些情况才让tracking变得很难,目前比较常用的数据库除了OTB,还有前面找到的VOT竞赛数据库(类比ImageNet),已经举办了四年,VOT2015和VOT2016都包括60个序列,所有序列也是免费下载 VOT Challenge | Challenges: Kristan M, Pflugfelder R, Leonardis A, et al. The visual object tracking vot2013 challenge results [C]// ICCV, 2013.Kristan M, Pflugfelder R, Leonardis A, et al. The Visual Object Tracking VOT2014 Challenge Results [C]// ECCV, 2014.Kristan M, Matas J, Leonardis A, et al. The visual object tracking vot2015 challenge results [C]// ICCV, 2015.Kristan M, Ales L, Jiri M, et al. The Visual Object Tracking VOT2016 Challenge Results [C]// ECCV, 2016. OTB和VOT区别:OTB包括25%的灰度序列,但VOT都是彩色序列,这也是造成很多颜色特征算法性能差异的原因;两个库的评价指标不一样,具体请参考论文;VOT库的序列分辨率普遍较高,这一点后面分析会提到。对于一个tracker,如果论文在两个库(最好是OTB100和VOT2016)上都结果上佳,那肯定是非常优秀的(两个库调参你能调好,我服,认了~~),如果只跑了一个,个人更偏向于VOT2016,因为序列都是精细标注,且评价指标更好(人家毕竟是竞赛,评价指标发过TPAMI的),差别最大的地方,OTB有随机帧开始,或矩形框加随机干扰初始化去跑,作者说这样更加符合检测算法给的框框;而VOT是第一帧初始化去跑,每次跟踪失败(预测框和标注框不重叠)时,5帧之后重新初始化,VOT以short-term为主,且认为跟踪检测应该在一起不分离,detecter会多次初始化tracker。 补充:OTB在2013年公开了,对于2013以后的算法是透明的,论文都会去调参,尤其是那些只跑OTB的论文,如果关键参数直接给出还精确到小数点后两位,建议您先实测(人心不古啊~被坑的多了)。VOT竞赛的数据库是每年更新,还动不动就重新标注,动不动就改变评价指标,对当年算法是难度比较大,所以结果相对更可靠。(相信很多人和我一样,看每篇论文都会觉得这个工作太好太重要了,如果没有这篇论文,必定地球爆炸,宇宙重启~~所以就像大家都通过历年ILSVRC竞赛结果为主线了解深度学习的发展一样,第三方的结果更具说服力,所以我也以竞赛排名+是否公开源码+实测性能为标准,优选几个算法分析) 目标视觉跟踪(Visual Object Tracking),大家比较公认分为两大类:生成(generative)模型方法和判别(discriminative)模型方法,目前比较流行的是判别类方法,也叫检测跟踪tracking-by-detection,为保持回答的完整性,以下简单介绍。 生成类方法,在当前帧对目标区域建模,下一帧寻找与模型最相似的区域就是预测位置,比较著名的有卡尔曼滤波,粒子滤波,mean-shift等。举个例子,从当前帧知道了目标区域80%是红色,20%是绿色,然后在下一帧,搜索算法就像无头苍蝇,到处去找最符合这个颜色比例的区域,推荐算法ASMS vojirt/asms: Vojir T, Noskova J, Matas J. Robust scale-adaptive mean-shift for tracking [J]. Pattern Recognition Letters, 2014. ASMS与DAT并称“颜色双雄”(版权所有翻版必究),都是仅颜色特征的算法而且速度很快,依次是VOT2015的第20名和14名,在VOT2016分别是32名和31名(中等水平)。ASMS是VOT2015官方推荐的实时算法,平均帧率125FPS,在经典mean-shift框架下加入了尺度估计,经典颜色直方图特征,加入了两个先验(尺度不剧变+可能偏最大)作为正则项,和反向尺度一致性检查。作者给了C++代码,在相关滤波和深度学习盛行的年代,还能看到mean-shift打榜还有如此高的性价比实在不容易(已泪目~~),实测性能还不错,如果您对生成类方法情有独钟,这个非常推荐您去试试。(某些算法,如果连这个你都比不过。。天台在24楼,不谢) 判别类方法,OTB50里面的大部分方法都是这一类,CV中的经典套路图像特征+机器学习, 当前帧以目标区域为正样本,背景区域为负样本,机器学习方法训练分类器,下一帧用训练好的分类器找最优区域: 与生成类方法最大的区别是,分类器采用机器学习,训练中用到了背景信息,这样分类器就能专注区分前景和背景,所以判别类方法普遍都比生成类好。举个例子,在训练时告诉tracker目标80%是红色,20%是绿色,还告诉它背景中有橘红色,要格外注意别搞错了,这样的分类器知道更多信息,效果也相对更好。tracking-by-detection和检测算法非常相似,如经典行人检测用HOG+SVM,Struck用到了haar+structured output SVM,跟踪中为了尺度自适应也需要多尺度遍历搜索,区别仅在于跟踪算法对特征和在线机器学习的速度要求更高,检测范围和尺度更小而已。这点其实并不意外,大多数情况检测识别算法复杂度比较高不可能每帧都做,这时候用复杂度更低的跟踪算法就很合适了,只需要在跟踪失败(drift)或一定间隔以后再次检测去初始化tracker就可以了。其实我就想说,FPS才TMD是最重要的指标,慢的要死的算法可以去死了(同学别这么偏激,速度是可以优化的)。经典判别类方法推荐Struck和TLD,都能实时性能还行,Struck是2012年之前最好的方法,TLD是经典long-term的代表,思想非常值得借鉴: Hare S, Golodetz S, Saffari A, et al. Struck: Structured output tracking with kernels [J]. IEEE TPAMI, 2016.Kalal Z, Mikolajczyk K, Matas J. Tracking-learning-detection [J]. IEEE TPAMI, 2012. 长江后浪推前浪,前面的已被排在沙滩上,这个后浪就是相关滤波和深度学习。相关滤波类方法correlation filter简称CF,也叫做discriminative correlation filter简称DCF,注意和后面的DCF算法区别,包括前面提到的那几个,也是后面要着重介绍的。深度学习(Deep ConvNet based)类方法,因为深度学习类目前不适合落地就不瞎推荐了,可以参考Winsty的几篇 Naiyan Wang - Home,还有VOT2015的冠军MDNet Learning Multi-Domain Convolutional Neural Networks for Visual Tracking,以及VOT2016的冠军TCNN http://www.votchallenge.net/vot2016/download/44_TCNN.zip,速度方面比较突出的如80FPS的SiamFC SiameseFC tracker和100FPS的GOTURN davheld/GOTURN,注意都是在GPU上。基于ResNet的SiamFC-R(ResNet)在VOT2016表现不错,很看好后续发展,有兴趣也可以去VALSE听作者自己讲解 VALSE-20160930-LucaBertinetto-Oxford-JackValmadre-Oxford-pu,至于GOTURN,效果比较差,但优势是跑的很快100FPS,如果以后效果也能上来就好了。做科研的同学深度学习类是关键,能兼顾速度就更好了。 Nam H, Han B. Learning multi-domain convolutional neural networks for visual tracking [C]// CVPR, 2016.Nam H, Baek M, Han B. Modeling and propagating cnns in a tree structure for visual tracking. arXiv preprint arXiv:1608.07242, 2016.Bertinetto L, Valmadre J, Henriques J F, et al. Fully-convolutional siamese networks for object tracking [C]// ECCV, 2016.Held D, Thrun S, Savarese S. Learning to track at 100 fps with deep regression networks [C]// ECCV, 2016. 最后,深度学习END2END的强大威力在目标跟踪方向还远没有发挥出来,还没有和相关滤波类方法拉开多大差距(速度慢是天生的我不怪你,但效果总该很好吧,不然你存在的意义是什么呢。。革命尚未成功,同志仍须努力)。另一个需要注意的问题是目标跟踪的数据库都没有严格的训练集和测试集,需要离线训练的深度学习方法就要非常注意它的训练集有没有相似序列,而且一直到VOT2017官方才指明要限制训练集,不能用相似序列训练模型。 最后强力推荐两个资源。王强 @QiangWang 维护的benchmark_results foolwood/benchmark_results:大量顶级方法在OTB库上的性能对比,各种论文代码应有尽有,大神自己C++实现并开源的CSK, KCF和DAT,还有他自己的DCFNet论文加源码,找不着路的同学请跟紧。 @H Hakase维护的相关滤波类资源 HakaseH/CF_benchmark_results ,详细分类和论文代码资源,走过路过别错过,相关滤波类算法非常全面,非常之用心! (以上两位,看到了请来我处交一下广告费,9折优惠~~) 介绍最经典的高速相关滤波类跟踪算法CSK, KCF/DCF, CN。很多人最早了解CF,应该和我一样,都是被下面这张图吸引了: 这是KCF/DCF算法在OTB50上(2014年4月就挂arVix了, 那时候OTB100还没有发表)的实验结果,Precision和FPS碾压了OTB50上最好的Struck,看惯了勉强实时的Struck和TLD,飙到高速的KCF/DCF突然有点让人不敢相信,其实KCF/DCF就是在OTB上大放异彩的CSK的多通道特征改进版本。注意到那个超高速615FPS的MOSSE(严重超速这是您的罚单),这是目标跟踪领域的第一篇相关滤波类方法,这其实是真正第一次显示了相关滤波的潜力。和KCF同一时期的还有个CN,在2014'CVPR上引起剧烈反响的颜色特征方法,其实也是CSK的多通道颜色特征改进算法。从MOSSE(615)到 CSK(362) 再到 KCF(172FPS), DCF(292FPS), CN(152FPS), CN2(202FPS),速度虽然是越来越慢,但效果越来越好,而且始终保持在高速水平: Bolme D S, Beveridge J R, Draper B A, et al. Visual object tracking using adaptive correlation filters [C]// CVPR, 2010.Henriques J F, Caseiro R, Martins P, et al. Exploiting the circulant structure of tracking-by- detection with kernels [C]// ECCV, 2012.Henriques J F, Rui C, Martins P, et al. High-Speed Tracking with Kernelized Correlation Filters [J]. IEEE TPAMI, 2015.Danelljan M, Shahbaz Khan F, Felsberg M, et al. Adaptive color attributes for real-time visual tracking [C]// CVPR, 2014. CSK和KCF都是Henriques J F(牛津大学)João F. Henriques 大神先后两篇论文,影响后来很多工作,核心部分的岭回归,循环移位的近似密集采样,还给出了整个相关滤波算法的详细推导。还有岭回归加kernel-trick的封闭解,多通道HOG特征。 Martin Danelljan大牛(林雪平大学)用多通道颜色特征Color Names(CN)去扩展CSK得到了不错的效果,算法也简称CN Coloring Visual Tracking 。 MOSSE是单通道灰度特征的相关滤波,CSK在MOSSE的基础上扩展了密集采样(加padding)和kernel-trick,KCF在CSK的基础上扩展了多通道梯度的HOG特征,CN在CSK的基础上扩展了多通道颜色的Color Names。HOG是梯度特征,而CN是颜色特征,两者可以互补,所以HOG+CN在近两年的跟踪算法中成为了hand-craft特征标配。最后,根据KCF/DCF的实验结果,讨论两个问题: 1. 为什么只用单通道灰度特征的KCF和用了多通道HOG特征的KCF速度差异很小? 第一,作者用了HOG的快速算法fHOG,来自Piotr's Computer Vision Matlab Toolbox,C代码而且做了SSE优化。如对fHOG有疑问,请参考论文Object Detection with Discriminatively Trained Part Based Models第12页。 第二,HOG特征常用cell size是4,这就意味着,100*100的图像,HOG特征图的维度只有25*25,而Raw pixels是灰度图归一化,维度依然是100*100,我们简单算一下:27通道HOG特征的复杂度是27*625*log(625)=47180,单通道灰度特征的复杂度是10000*log(10000)=40000,理论上也差不多,符合表格。 看代码会发现,作者在扩展后目标区域面积较大时,会先对提取到的图像块做因子2的下采样到50*50,这样复杂度就变成了2500*log(2500)=8495,下降了非常多。那你可能会想,如果下采样再多一点,复杂度就更低了,但这是以牺牲跟踪精度为代价的,再举个例子,如果图像块面积为200*200,先下采样到100*100,再提取HOG特征,分辨率降到了25*25,这就意味着响应图的分辨率也是25*25,也就是说,响应图每位移1个像素,原始图像中跟踪框要移动8个像素,这样就降低了跟踪精度。在精度要求不高时,完全可以稍微牺牲下精度提高帧率(但看起来真的不能再下采样了)。 2. HOG特征的KCF和DCF哪个更好? 大部分人都会认为KCF效果超过DCF,而且各属性的准确度都在DCF之上,然而,如果换个角度来看,以DCF为基准,再来看加了kernel-trick的KCF,mean precision仅提高了0.4%,而FPS下降了41%,这么看是不是挺惊讶的呢?除了图像块像素总数,KCF的复杂度还主要和kernel-trick相关。所以,下文中的CF方法如果没有kernel-trick,就简称基于DCF,如果加了kernel-trick,就简称基于KCF(剧透基本各占一半)。当然这里的CN也有kernel-trick,但请注意,这是Martin Danelljan大神第一次使用kernel-trick,也是最后一次。。。 这就会引发一个疑问,kernel-trick这么强大的东西,怎么才提高这么点?这里就不得不提到Winsty的另一篇大作: Wang N, Shi J, Yeung D Y, et al. Understanding and diagnosing visual tracking systems[C]// ICCV, 2015. 一句话总结,别看那些五花八门的机器学习方法,那都是虚的,目标跟踪算法中特征才是最重要的(就是因为这篇文章我粉了WIN叔哈哈),以上就是最经典的三个高速算法,CSK, KCF/DCF和CN,推荐。 VOT与OTB一样最早都是2013年出现的,但VOT2013序列太少,第一名的PLT代码也找不到,没有参考价值就直接跳过了。直接到了VOT2014竞赛 VOT2014 Benchmark 。这一年有25个精挑细选的序列,38个算法,那时候深度学习的战火还没有烧到tracking,所以主角也只能是刚刚展露头角就独霸一方的CF,下面是前几名的详细情况: 前三名都是相关滤波CF类方法,第三名的KCF已经很熟悉了,这里稍微有点区别就是加了多尺度检测和子像素峰值估计,再加上VOT序列的分辨率比较高(检测更新图像块的分辨率比较高),导致竞赛中的KCF的速度只有24.23(EFO换算66.6FPS)。这里speed是EFO(Equivalent Filter Operations),在VOT2015和VOT2016里面也用这个参数衡量算法速度,这里一次性列出来供参考(MATLAB实现的tracker实际速度要更高一些): 其实前三名除了特征略有差异,核心都是KCF为基础扩展了多尺度检测,概要如下: 尺度变化是跟踪中比较基础和常见的问题,前面介绍的KCF/DCF和CN都没有尺度更新,如果目标缩小,滤波器就会学习到大量背景信息,如果目标扩大,滤波器就跟着目标局部纹理走了,这两种情况都很可能出现非预期的结果,导致漂移和失败。 SAMF ihpdep/samf,浙大Yang Li的工作,基于KCF,特征是HOG+CN,多尺度方法是平移滤波器在多尺度缩放的图像块上进行目标检测,取响应最大的那个平移位置及所在尺度: Li Y, Zhu J. A scale adaptive kernel correlation filter tracker with feature integration [C]// ECCV, 2014. Martin Danelljan的DSST Accurate scale estimation for visual tracking,只用了HOG特征,DCF用于平移位置检测,又专门训练类似MOSSE的相关滤波器检测尺度变化,开创了平移滤波+尺度滤波,之后转TPAMI做了一系列加速的版本fDSST,非常+非常+非常推荐: Danelljan M, Häger G, Khan F, et al. Accurate scale estimation for robust visual tracking [C]// BMVC, 2014.Danelljan M, Hager G, Khan F S, et al. Discriminative Scale Space Tracking [J]. IEEE TPAMI, 2017. 简单对比下这两种尺度自适应的方法: DSST和SAMF所采用的尺度检测方法哪个更好? 首先给大家讲个笑话:Martin Danelljan大神提出DSST之后,他的后续论文就再没有用过(直到最新CVPR的ECO-HC中为了加速用了fDSST)。 虽然SAMF和DSST都可以跟上普通的目标尺度变化,但SAMF只有7个尺度比较粗,而DSST有33个尺度比较精细准确;DSST先检测最佳平移再检测最佳尺度,是分步最优,而SAMF是平移尺度一起检测,是平移和尺度同时最优,而往往局部最优和全局最优是不一样的;DSST将跟踪划分为平移跟踪和尺度跟踪两个问题,可以采用不同的方法和特征,更加灵活,但需要额外训练一个滤波器,每帧尺度检测需要采样33个图像块,之后分别计算特征、加窗、FFT等,尺度滤波器比平移滤波器慢很多;SAMF只需要一个滤波器,不需要额外训练和存储,每个尺度检测就一次提特征和FFT,但在图像块较大时计算量比DSST高。 所以尺度检测DSST并不总是比SAMF好,其实在VOT2015和VOT2016上SAMF都是超过DSST的,当然这主要是因为特征更好,但至少说明尺度方法不差。总的来说,DSST做法非常新颖,速度更快,SAMF同样优秀也更加准确。 DSST一定要33个尺度吗? DSST标配33个尺度非常非常敏感,轻易降低尺度数量,即使你增加相应步长,尺度滤波器也会完全跟不上尺度变化。关于这一点可能解释是,训练尺度滤波器用的是一维样本,而且没有循环移位,这就意味着一次训练更新只有33个样本,如果降低样本数量,会造成训练不足,分类器判别力严重下降,不像平移滤波器有非常多的移位样本(个人看法欢迎交流)。总之,请不要轻易尝试大幅降低尺度数量,如果非要用尺度滤波器33和1.02就很好。 以上就是两种推荐的尺度检测方法,以后简称为类似DSST的多尺度和类似SAMF的多尺度。如果更看重速度,加速版的fDSST,和仅3个尺度的SAMF(如VOT2014中的KCF)就是比较好的选择;如果更看重精确,33个尺度的DSST,及7个尺度的SAMF就比较合适。 接下来到了VOT2015竞赛 VOT2015 Challenge | Home ,这一年有60个精挑细选的序列,62个tracker,最大看点是深度学习开始进击tracking领域,MDNet直接拿下当年的冠军,而结合深度特征的相关滤波方法DeepSRDCF是第二名,主要解决边界效应的SRDCF仅HOG特征排在第四: 随着VOT竞赛的影响力扩大,举办方也是用心良苦,经典的和顶尖的齐聚一堂,百家争鸣,多达62个tracker皇城PK,华山论剑。除了前面介绍的深度学习和相关滤波,还有结合object proposals(类物体区域检测)的EBT(EBT:Proposal与Tracking不得不说的秘密 - 知乎专栏)排第三,Mean-Shift类颜色算法ASMS是推荐实时算法,还有前面提到的另一个颜色算法DAT,而在第9的那个Struck已经不是原来的Struck了。除此之外,还能看到经典方法如OAB, STC, CMT, CT, NCC等都排在倒数位置, 经典方法已经被远远甩在后面。 在介绍SRDCF之前,先来分析下相关滤波有什么缺点。总体来说,相关滤波类方法对快速变形和快速运动情况的跟踪效果不好。 快速变形主要因为CF是模板类方法。容易跟丢这个比较好理解,前面分析了相关滤波是模板类方法,如果目标快速变形,那基于HOG的梯度模板肯定就跟不上了,如果快速变色,那基于CN的颜色模板肯定也就跟不上了。这个还和模型更新策略与更新速度有关,固定学习率的线性加权更新,如果学习率太大,部分或短暂遮挡和任何检测不准确,模型就会学习到背景信息,积累到一定程度模型跟着背景私奔了,一去不复返。如果学习率太小,目标已经变形了而模板还是那个模板,就会变得不认识目标。 快速运动主要是边界效应(Boundary Effets),而且边界效应产生的错误样本会造成分类器判别力不够强,下面分训练阶段和检测阶段分别讨论。 训练阶段,合成样本降低了判别能力。如果不加余弦窗,那么移位样本是长这样的: 除了那个最原始样本,其他样本都是“合成”的,100*100的图像块,只有1/10000的样本是真实的,这样的样本集根本不能拿来训练。如果加了余弦窗,由于图像边缘像素值都是0,循环移位过程中只要目标保持完整,就认为这个样本是合理的,只有当目标中心接近边缘时,目标跨越了边界的那些样本是错误的,这样虽不真实但合理的样本数量增加到了大约2/3(一维情况padding= 1)。但我们不能忘了即使这样仍然有1/3(3000/10000)的样本是不合理的,这些样本会降低分类器的判别能力。再者,加余弦窗也不是“免费的”,余弦窗将图像块的边缘区域像素全部变成0,大量过滤掉了分类器本来非常需要学习的背景信息,原本训练时判别器能看到的背景信息就非常有限,我们还加了个余弦窗挡住了背景,这样进一步降低了分类器的判别力(是不是上帝在我前遮住了帘。。不是上帝,是余弦窗)。 检测阶段,相关滤波对快速运动的目标检测比较乏力。相关滤波训练的图像块和检测的图像块大小必须是一样的,这就是说你训练了一个100*100的滤波器,那你也只能检测100*100的区域,如果打算通过加更大的padding来扩展检测区域,那样除了扩展了复杂度,并不会有什么好处。目标运动可能是目标自身移动,或摄像机移动,按照目标在检测区域的位置分四种情况来看: 如果目标在中心附近,检测准确且成功。如果目标移动到了边界附近但还没有出边界,加了余弦窗以后,部分目标像素会被过滤掉,这时候就没法保证这里的响应是全局最大的,而且,这时候的检测样本和训练过程中的那些不合理样本很像,所以很可能会失败。如果目标的一部分已经移出了这个区域,而我们还要加余弦窗,很可能就过滤掉了仅存的目标像素,检测失败。如果整个目标已经位移出了这个区域,那肯定就检测失败了。 以上就是边界效应(Boundary Effets),推荐两个主流的解决边界效应的方法,其中SRDCF速度比较慢,并不适合实时场合。 Martin Danelljan的SRDCF Learning Spatially Regularized Correlation Filters for Visual Tracking,主要思路:既然边界效应发生在边界附近,那就忽略所有移位样本的边界部分像素,或者说限制让边界附近滤波器系数接近0: Danelljan M, Hager G, Shahbaz Khan F, et al. Learning spatially regularized correlation filters for visual tracking [C]// ICCV. 2015. SRDCF基于DCF,类SAMF多尺度,采用更大的检测区域(padding = 4),同时加入空域正则化,惩罚边界区域的滤波器系数,由于没有闭合解,采用高斯-塞德尔方法迭代优化。检测区域扩大(1.5->4),迭代优化(破坏了闭合解)导致SRDCF只有5FP,但效果非常好是2015年的baseline。 另一种方法是Hamed Kiani提出的MOSSE改进算法,基于灰度特征的CFLM Correlation Filters with Limited Boundaries 和基于HOG特征的BACF Learning Background-Aware Correlation Filters for Visual Tracking,主要思路是采用较大尺寸检测图像块和较小尺寸滤波器来提高真实样本的比例,或者说滤波器填充0以保持和检测图像一样大,同样没有闭合解,采用ADMM迭代优化: Kiani Galoogahi H, Sim T, Lucey S. Correlation filters with limited boundaries [C]// CVPR, 2015.Kiani Galoogahi H, Fagg A, Lucey S. Learning Background-Aware Correlation Filters for Visual Tracking [C]// ICCV, 2017. CFLB仅单通道灰度特征,虽然速度比较快167FPS,但性能远不如KCF,不推荐;最新BACF将特征扩展为多通道HOG特征,性能超过了SRDCF,而且速度比较快35FPS,非常推荐。 其实这两个解决方案挺像的,都是用更大的检测及更新图像块,训练作用域比较小的相关滤波器,不同点是SRDCF的滤波器系数从中心到边缘平滑过渡到0,而CFLM直接用0填充滤波器边缘。 VOT2015相关滤波方面还有排在第二名,结合深度特征的DeepSRDCF,因为深度特征都非常慢,在CPU上别说高速,实时都到不了,虽然性能非常高,但这里就不推荐,先跳过。 VOT2016竞赛 VOT2016 Challenge | Home,依然是VOT2015那60个序列,不过这次做了重新标注更加公平合理,今年有70位参赛选手,意料之中深度学习已经雄霸天下了,8个纯CNN方法和6个结合深度特征的CF方法大都名列前茅,还有一片的CF方法,最最最重要的是,良心举办方竟然公开了他们能拿到的38个tracker,部分tracker代码和主页,下载地址:VOT2016 Challenge | Trackers (以后妈妈再也不用担心我找不到源码了~),注意部分是下载链接,部分是源码压缩包,部分源码是二进制文件,好不好用一试便知,方便对比和研究,需要的赶快去试试。马上来看竞赛结果(这里仅列举前60个): 高亮标出来了前面介绍过的或比较重要的方法,结合多层深度特征的相关滤波C-COT排第一名,而CNN方法TCNN是VOT2016的冠军,作者也是VOT2015冠军MDNet,纯颜色方法DAT和ASMS都在中等水平(其实两种方法实测表现非常接近),其他tracker的情况请参考论文。再来看速度,SMACF没有公开代码,ASMS依然那么快,排在前10的方法中也有两个速度比较快,分别是排第5的Staple,和其改进算法排第9的STAPLE+,而且STAPLE+是今年的推荐实时算法。首先恭喜Luca Bertinetto的SiamFC和Staple都表现非常不错,然后再为大牛默哀三分钟(VOT2016的paper原文): VOT2016竟然发生了乌龙事件,Staple在论文中CPU上是80FPS,怎么EFO在这里只有11?幸好公开代码有Staple和STAPLE+,实测下来,虽然我电脑不如Luca Bertinetto大牛但Staple我也能跑76FPS,而更可笑的是,STAPLE+比Staple慢了大约7-8倍,竟然EFO高出4倍,到底怎么回事呢? 首先看Staple的代码,如果您直接下载Staple并设置params.visualization = 1,Staple默认调用Computer Vision System Toolbox来显示序列图像,而恰好如果您没有这个工具箱,默认每帧都会用imshow(im)来显示图像,所以非常非常慢,而设置params.visualization = 0就跑的飞快(作者你是孙猴子派来的逗逼吗),建议您将显示图像部分代码替换成DSST中对应部分代码就可以正常速度运行和显示了。 再来看STAPLE+的代码,对Staple的改进包括额外从颜色概率图中提取HOG特征,特征增加到56通道(Staple是28通道),平移检测额外加入了大位移光流运动估计的响应,所以才会这么慢,而且肯定要慢很多。 所以很大可能是VOT举办方把Staple和STAPLE+的EFO弄反了,VOT2016的实时推荐算法应该是排第5的Staple,相关滤波结合颜色方法,没有深度特征更没有CNN,跑80FPS还能排在第五,这就是接下来主要介绍的,2016年最NIUBILITY的目标跟踪算法之一Staple (直接让排在后面的一众深度学习算法怀疑人生)。 颜色特征,在目标跟踪中颜色是个非常重要的特征,不管多少个人在一起,只要目标穿不用颜色的一幅就非常明显。前面介绍过2014年CVPR的CN是相关滤波框架下的模板颜色方法,这里隆重介绍统计颜色特征方法DAT Learning, Recognition, and Surveillance @ ICG ,帧率15FPS推荐: Possegger H, Mauthner T, Bischof H. In defense of color-based model-free tracking [C]// CVPR, 2015. DAT统计前景目标和背景区域的颜色直方图并归一化,这就是前景和背景的颜色概率模型,检测阶段,贝叶斯方法判别每个像素属于前景的概率,得到像素级颜色概率图,再加上边缘相似颜色物体抑制就能得到目标的区域了。 如果要用一句话介绍Luca Bertinetto(牛津大学)的Staple Staple tracker,那就是把模板特征方法DSST(基于DCF)和统计特征方法DAT结合: Bertinetto L, Valmadre J, Golodetz S, et al. Staple: Complementary Learners for Real-Time Tracking [C]// CVPR, 2016. 前面分析了相关滤波模板类特征(HOG)对快速变形和快速运动效果不好,但对运动模糊光照变化等情况比较好;而颜色统计特征(颜色直方图)对变形不敏感,而且不属于相关滤波框架没有边界效应,快速运动当然也是没问题的,但对光照变化和背景相似颜色不好。综上,这两类方法可以互补,也就是说DSST和DAT可以互补结合: 两个框架的算法高效无缝结合,25FPS的DSST和15FPS的DAT,而结合后速度竟然达到了80FPS。DSST框架把跟踪划分为两个问题,即平移检测和尺度检测,DAT就加在平移检测部分,相关滤波有一个响应图,像素级前景概率也有一个响应图,两个响应图线性加权得到最终响应图,其他部分与DSST类似,平移滤波器、尺度滤波器和颜色概率模型都以固定学习率线性加权更新。 另一种相关滤波结合颜色概率的方法是17CVPR的CSR-DCF,提出了空域可靠性和通道可靠性,没有深度特征性能直逼C-COT,速度可观13FPS: Lukežič A, Vojíř T, Čehovin L, et al. Discriminative Correlation Filter with Channel and Spatial Reliability [C]// CVPR, 2017. CSR-DCF中的空域可靠性得到的二值掩膜就类似于CFLM中的掩膜矩阵P,在这里自适应选择更容易跟踪的目标区域且减小边界效应;以往多通道特征都是直接求和,而CSR-DCF中通道采用加权求和,而通道可靠性就是那个自适应加权系数。采用ADMM迭代优化,可以看出CSR-DCF是DAT和CFLB的结合算法。 VOT2015相关滤波还有排第一名的C-COT(别问我第一名为什么不是冠军,我也不知道),和DeepSRDCF一样先跳过。 以前提到的很多CF算法,也包括VOT竞赛,都是针对short-term的跟踪问题,即短期(shor-term)跟踪,我们只关注短期内(如100~500帧)跟踪是否准确。但在实际应用场合,我们希望正确跟踪时间长一点,如几分钟或十几分钟,这就是长期(long-term)跟踪问题。 Long-term就是希望tracker能长期正确跟踪,我们分析了前面介绍的方法不适合这种应用场合,必须是short-term tracker + detecter配合才能实现正确的长期跟踪。 介绍CF方向一篇比较有代表性的long-term方法,Chao Ma的LCT chaoma99/lct-tracker: Ma C, Yang X, Zhang C, et al. Long-term correlation tracking[C]// CVPR, 2015. LCT在DSST一个平移相关滤波Rc和一个尺度相关滤波的基础上,又加入第三个负责检测目标置信度的相关滤波Rt,检测模块Online Detector是TLD中所用的随机蔟分类器(random fern),在代码中改为SVM。第三个置信度滤波类似MOSSE不加padding,而且特征也不加cosine窗,放在平移检测之后。 如果最大响应小于第一个阈值(叫运动阈值),说明平移检测不可靠,调用检测模块重新检测。注意,重新检测的结果并不是都采纳的,只有第二次检测的最大响应值比第一次检测大1.5倍时才接纳,否则,依然采用平移检测的结果。如果最大响应大于第二个阈值(叫外观阈值),说明平移检测足够可信,这时候才以固定学习率在线更新第三个相关滤波器和随机蔟分类器。注意,前两个相关滤波的更新与DSST一样,固定学习率在线每帧更新。 LCT加入检测机制,对遮挡和出视野等情况理论上较好,速度27fps,实验只跑了OTB-2013,跟踪精度非常高,根据其他论文LCT在OTB-2015和 VOT上效果略差一点可能是两个核心阈值没有自适应, 关于long-term,TLD和LCT都可以参考 。 接下来介绍跟踪置信度。 跟踪算法需要能反映每一次跟踪结果的可靠程度,这一点非常重要,不然就可能造成跟丢了还不知道的情况。生成类(generative)方法有相似性度量函数,判别类(discriminative)方法有机器学习方法的分类概率。有两种指标可以反映相关滤波类方法的跟踪置信度:前面见过的最大响应值,和没见过的响应模式,或者综合反映这两点的指标。 LMCF(MM Wang的目标跟踪专栏:目标跟踪算法 - 知乎专栏 )提出了多峰检测和高置信度更新: Wang M, Liu Y, Huang Z. Large Margin Object Tracking with Circulant Feature Maps [C]// CVPR, 2017. 高置信度更新,只有在跟踪置信度比较高的时候才更新跟踪模型,避免目标模型被污染,同时提升速度。 第一个置信度指标是最大响应分数Fmax,就是最大响应值(Staple和LCT中都有提到)。 第二个置信度指标是平均峰值相关能量(average peak-to correlation energy, APCE),反应响应图的波动程度和检测目标的置信水平,这个(可能)是目前最好的指标,推荐: 跟踪置信度指标还有,MOSSE中的峰值旁瓣比(Peak to Sidelobe Ratio, PSR), 由相关滤波峰值,与11*11峰值窗口以外旁瓣的均值与标准差计算得到,推荐: 还有CSR-DCF的空域可靠性,也用了两个类似指标反映通道可靠性, 第一个指标也是每个通道的最大响应峰值,就是Fmax,第二个指标是响应图中第二和第一主模式之间的比率,反映每个通道响应中主模式的表现力,但需要先做极大值检测: 最后这部分是Martin Danelljan的专场,主要介绍他的一些列工作,尤其是结合深度特征的相关滤波方法,代码都在他主页Visual Tracking,就不一一贴出了。 Danelljan M, Shahbaz Khan F, Felsberg M, et al. Adaptive color attributes for real-time visual tracking [C]// CVPR, 2014. 在CN中提出了非常重要的多通道颜色特征Color Names,用于CSK框架取得非常好得效果,还提出了加速算法CN2,通过类PCA的自适应降维方法,对特征通道数量降维(10 -> 2),平滑项增加跨越不同特征子空间时的代价,也就是PCA中的协方差矩阵线性更新防止降维矩阵变化太大。 Danelljan M, Hager G, Khan F S, et al. Discriminative Scale Space Tracking [J]. IEEE TPAMI, 2017. DSST是VOT2014的第一名,开创了平移滤波+尺度滤波的方式。在fDSST中对DSST进行加速,PCA方法将平移滤波HOG特征的通道降维(31 -> 18),QR方法将尺度滤波器~1000*17的特征降维到17*17,最后用三角插值(频域插值)将尺度数量从17插值到33以获得更精确的尺度定位。 SRDCF是VOT2015的第四名,为了减轻边界效应扩大检测区域,优化目标增加了空间约束项,用高斯-塞德尔方法迭代优化,并用牛顿法迭代优化平移检测的子网格精确目标定位。 Danelljan M, Hager G, Shahbaz Khan F, et al. Adaptive decontamination of the training set: A unified formulation for discriminative visual tracking [C]// CVPR, 2016. SRDCFdecon在SRDCF的基础上,改进了样本和学习率问题。以前的相关滤波都是固定学习率线性加权更新模型,虽然这样比较简单不用保存以前样本,但在定位不准确、遮挡、背景扰动等情况会污染模型导致漂移。SRDCFdecon选择保存以往样本(图像块包括正,负样本),在优化目标函数中添加样本权重参数和正则项,采用交替凸搜索,首先固定样本权重,高斯-塞德尔方法迭代优化模型参数,然后固定模型参数,凸二次规划方法优化样本权重。 Danelljan M, Hager G, Shahbaz Khan F, et al. Convolutional features for correlation filter based visual tracking [C]// ICCVW, 2015. DeepSRDCF是VOT2015的第二名,将SRDCF中的HOG特征替换为CNN中单层卷积层的深度特征(也就是卷积网络的激活值),效果有了极大提升。这里用imagenet-vgg-2048 network,VGG网络的迁移能力比较强,而且MatConvNet就是VGG组的,MATLAB调用非常方便。论文还测试了不同卷积层在目标跟踪任务中的表现: 第1层表现最好,第2和第5次之。由于卷积层数越高语义信息越多,但纹理细节越少,从1到4层越来越差的原因之一就是特征图的分辨率越来越低,但第5层反而很高,是因为包括完整的语义信息,判别力比较强(本来就是用来做识别的)。 注意区分这里的深度特征和基于深度学习的方法,深度特征来自ImageNet上预训练的图像分类网络,没有fine-turn这一过程,不存在过拟合的问题。而基于深度学习的方法大多需要在跟踪序列上end-to-end训练或fine-turn,如果样本数量和多样性有限就很可能过拟合。 Ma C, Huang J B, Yang X, et al. Hierarchical convolutional features for visual tracking [C]// ICCV, 2015. 值得一提的还有Chao Ma的HCF,结合多层卷积特征提升效果,用了VGG19的Conv5-4, Conv4-4和Conv3-4的激活值作为特征,所有特征都缩放到图像块分辨率,虽然按照论文应该是由粗到细确定目标,但代码中比较直接,三种卷积层的响应以固定权值1, 0.5, 0.02线性加权作为最终响应。虽然用了多层卷积特征,但没有关注边界效应而且线性加权的方式过于简单,HCF在VOT2016仅排在28名(单层卷积深度特征的DeepSRDCF是第13名)。 Danelljan M, Robinson A, Khan F S, et al. Beyond correlation filters: Learning continuous convolution operators for visual tracking [C]// ECCV, 2016. C-COT是VOT2016的第一名,综合了SRDCF的空域正则化和SRDCFdecon的自适应样本权重,还将DeepSRDCF的单层卷积的深度特征扩展为多成卷积的深度特征(VGG第1和5层),为了应对不同卷积层分辨率不同的问题,提出了连续空间域插值转换操作,在训练之前通过频域隐式插值将特征图插值到连续空域,方便集成多分辨率特征图,并且保持定位的高精度。目标函数通过共轭梯度下降方法迭代优化,比高斯-塞德尔方法要快,自适应样本权值直接采用先验权值,没有交替凸优化过程,检测中用牛顿法迭代优化目标位置。 注意以上SRDCF, SRDCFdecon,DeepSRDCF,C-COT都无法实时,这一系列工作虽然效果越来越好,但也越来越复杂,在相关滤波越来越慢失去速度优势的时候,Martin Danelljan在2017CVPR的ECO来了一脚急刹车,大神来告诉我们什么叫又好又快,不忘初心: Danelljan M, Bhat G, Khan F S, et al. ECO: Efficient Convolution Operators for Tracking [C]// CVPR, 2017. ECO是C-COT的加速版,从模型大小、样本集大小和更新策略三个方便加速,速度比C-COT提升了20倍,加量还减价,EAO提升了13.3%,最最最厉害的是, hand-crafted features的ECO-HC有60FPS。。吹完了,来看看具体做法。 第一减少模型参数,定义了factorized convolution operator(分解卷积操作),效果类似PCA,用PCA初始化,然后仅在第一帧优化这个降维矩阵,以后帧都直接用,简单来说就是有监督降维,深度特征时模型参数减少了80%。 第二减少样本数量, compact generative model(紧凑的样本集生成模型),采用Gaussian Mixture Model (GMM)合并相似样本,建立更具代表性和多样性的样本集,需要保存和优化的样本集数量降到C-COT的1/8。 第三改变更新策略,sparser updating scheme(稀疏更新策略),每隔5帧做一次优化更新模型参数,不但提高了算法速度,而且提高了对突变,遮挡等情况的稳定性。但样本集是每帧都更新的,稀疏更新并不会错过间隔期的样本变化信息。 ECO的成功当然还有很多细节,而且有些我也看的不是很懂,总之很厉害就是了。。ECO实验跑了四个库(VOT2016, UAV123, OTB-2015, and TempleColor)都是第一,而且没有过拟合的问题,仅性能来说ECO是目前最好的相关滤波算法,也有可能是最好的目标跟踪算法。hand-crafted features版本的ECO-HC,降维部分原来HOG+CN的42维特征降到13维,其他部分类似,实验结果ECO-HC超过了大部分深度学习方法,而且论文给出速度是CPU上60FPS。 最后是来自Luca Bertinetto的CFNet End-to-end representation learning for Correlation Filter based tracking,除了上面介绍的相关滤波结合深度特征,相关滤波也可以end-to-end方式在CNN中训练了: Valmadre J, Bertinetto L, Henriques J F, et al. End-to-end representation learning for Correlation Filter based tracking [C]// CVPR, 2017. 在SiamFC的基础上,将相关滤波也作为CNN中的一层,最重要的是cf层的前向传播和反向传播公式推导,两层卷积层的CFNet在GPU上是75FPS,综合表现并没有很多惊艳,可能是难以处理CF层的边界效应吧,持观望态度。 下面是CVPR 2017的目标跟踪算法结果:可能MD大神想说,一个能打的都没有! 仿照上面的表格,整理了ICCV 2017的相关论文结果对比ECO:哎,还是一个能打的都没有! 凑个数,目前相关滤波方向贡献最多的是以下两个组(有创新有代码): 牛津大学:Joao F. Henriques和Luca Bertinetto,代表:CSK, KCF/DCF, Staple, CFNet (其他SiamFC, Learnet).林雪平大学:Martin Danelljan,代表:CN, DSST, SRDCF, DeepSRDCF, SRDCFdecon, C-COT, ECO. 国内也有很多高校的优秀工作就不一一列举了。 本文来自知乎,作者YaqiLYU授权转载,如需转载请联系原作者。 以下是作者的几点说明: 1.图片来自某些slides和paper,如有侵权请提醒删除。2.以下内容主要是论文的简单总结,代码分析和个人看法,不涉及任何公司内部资料。3.转载请注明出处,谢谢。4.如有错误欢迎指出,非常感谢。有问题可以私信我,也可以在评论区提出,时间有限但也都会尽量回复,同时感谢各位道友帮忙解答。 点击阅读原文,查看原文链接。 【AI WORLD 2017世界人工智能大会倒计时 22天】点击图片查看嘉宾与日程。大会门票销售火热,抢票链接:http://www.huodongxing.com/event/2405852054900?td=4231978320026【扫一扫或点击阅读原文抢购大会门票】AI WORLD 2017 世界人工智能大会购票二维码: via: http://mp.weixin.qq.com/s?__biz= ... e=0#wechat_redirect
爱可可-爱生活 网页链接 2017-10-17 06:20
深度学习 算法 资源 PDF 教育网站 神经网络
【博士论文:深度神经网络知识表示与推理】《Knowledge Representation And Reasoning with Deep Neural Networks》Arvind Neelakantan [University of Massachusetts Amherst] (2017) http://t.cn/ROmWTgn video: http://weibo.com/1402400261/FcB5gE0dw
新智元 网页链接 2017-10-17 00:22
产业 余承东 张宝峰
【新智元导读】刚刚,华为消费者业务 CEO 余承东在慕尼黑发布了携带华为首款人工智能手机芯片——麒麟970的 HUAWEI Mate 10 系列。本文带来发布会详情和全面技术盘点。发布会后,我们采访到了华为软件工程部副总裁张宝峰。对于“华为在AI方面的研发投入,除了芯片,未来还会有哪些方向的布局?”这一问...全文: http://m.weibo.cn/5703921756/4163633036817401
|
|