wwW8080ai显示“tomcat 8080页面报404浏览不到里面8080aicom的内容”怎么解决?

404 Not Found
404 Not Found
The requested URL was not found on this server.
您要找的内容已被删除您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
Web前端性能优化的研究与应用.pdf 90页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
Web前端性能优化的研究与应用论文
你可能关注的文档:
··········
··········
独创性声明
本人声明所呈交的学位论文是本人在导师指导下进行的研究工
作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地
方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含
为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。
与我一同工作的同志对本研究所做的任何贡献均己在论文中作了明
确的说明并表示谢意。
签名:数整数
日期:2。lD年5月西日
论文使用授权
本学位论文作者完全了解电子科技大学有关保留、使用学位论文
的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁
盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文
的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或
扫描等复制手段保存、汇编学位论文。
(保密的学位论文在解密后应遵守此规定)
签名:筮堂!盟聊签名:越
日期:20D年5月巧日
计算机技术和网络通讯技术的高速发展促进了Web应用的快速增长和普及,
web应用已经成为人们的一种必不可少的工具,充斥着人们生活的方方面面。电子
商务、在线娱乐、电子政务等已经不再是新名词。近年来Web站点数量激增、Web
站点的用户规模也日益庞大,其内容和功能也变得十分丰富。在这种情况下,对
Web站点的性能要求也越来越高,人们不仅要看到自己需要的内容,而且要求有尽
可能快地响应速度,用户不能忍受浏览网页的时候,长时间的等待。所以站点的
优化工作势在必行。
对于Web站点的优化,后台的优化技术已经比较成熟,比如数据库的优化、
后台代码的优化,但是对Web前端性能优化的研究和重视度还远远不够,就国内
的情况来看,大多数站点并不关注web前台的性能优化,这方面的研究也很少。
事实上web前台优化空间非常大。本文专注于web前端的性能优化,致力于在不
改变Web站点原始架构、不改变数据库和后台代码的基础上,以尽可能小的代价
实现对Web站点性能的提升。
本文首先介绍了Web前端优化的选题背景、国内外的研究现状。分析了Web
站点在发展过程中的各种模式,以确定前端的范畴,提出了Web前端优化所关注
的内容和进行Web前端优化的必要性。接下来通过对影响web前端性能的各种因
素,包括HTTP协议、浏览器工作方式、缓存机制、页面大小、页面结构以及Ajax
等前端相关理论的分析,有针对性的提出了前端优化的多种技术开展方法。并通
过理论和实验相结合的方式验证优化方案的正确性和可行性。
本文着重解决了浏览器的2连接请求问题。Ajax其异步的工作方式使得浏览
器的2连接请求问题越来越突出。为了避免阻塞现象的发生,本文设计并实现了
一个基于等待时间提升优先级的优先级请求队列,使所有的异步请求都放入优先
级对列,由该队列管理请求和发送请求,防止两个以上的并发服务器连接。
文章最后,实现了一个信息安全评估网站,并把文章中讨论到的优化方案综
合运用得到该站点中,由此证明这些优化方案是正确的可行的,有现实的意义和
关键词:Web前端,性能优化,Ajax,优先级队列
aIldne似orkcommunication
rapiddeVelopmentcOmputertechnology
moreandmore
applications
technology,me
正在加载中,请稍后...&figure&&img src=&https://pic1.zhimg.com/v2-8ba5ff20ea3f06d1341119_b.jpg& data-rawwidth=&683& data-rawheight=&526& class=&origin_image zh-lightbox-thumb& width=&683& data-original=&https://pic1.zhimg.com/v2-8ba5ff20ea3f06d1341119_r.jpg&&&/figure&&p&文章选自freecodecamp,作者:Nick Bourdakos,机器之心编译。&/p&&blockquote&CapsNet 将神经元的标量输出转换为向量输出提高了表征能力,我们不仅能用它表示图像是否有某个特征,同时还能表示这个特征的旋转和位置等物理特征。本文从可视化的角度出发详解释了 CapsNet 的原理的计算过程,非常有利于直观理解它的结构。&/blockquote&&p&尽管卷积神经网络已经做出了令人惊艳的成绩,但还是存在着一些根本性问题。是时候开始思考新的解决方案和改进了。现在就让我们一起来了解一下胶囊网络(capsules networks)。&/p&&p&在之前的文章中我曾简要地讨论过胶囊网络(&a href=&https://link.zhihu.com/?target=https%3A//hackernoon.com/capsule-networks-are-shaking-up-ai-heres-how-to-use-them-c233a0971952& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&hackernoon.com/capsule-&/span&&span class=&invisible&&networks-are-shaking-up-ai-heres-how-to-use-them-c233a0971952&/span&&span class=&ellipsis&&&/span&&/a&)是如何解决一些传统问题的。在过去的几个月里,我一直沉浸在各种各样的胶囊网络里。我觉得现在是时候一起更加深入地探索胶囊网络的实际运作方式了。&/p&&p&为了让后面的讨论更加容易,我开发了一款与胶囊网络实现配套的可视化工具,它能够让您看到网络的每一层是如何工作的。这些内容都可以在 GitHub 上找到(&a href=&https://link.zhihu.com/?target=https%3A//github.com/bourdakos1/CapsNet-Visualization& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/bourdakos1/C&/span&&span class=&invisible&&apsNet-Visualization&/span&&span class=&ellipsis&&&/span&&/a&)。&/p&&p&如下所示是 CapsNet 的结构。如果您现在还不理解每个部分的具体含义,不必担心。我会尽我所能一层一层地进行详细讨论。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-8cf687e2ae95ae4cc054b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1080& data-rawheight=&374& class=&origin_image zh-lightbox-thumb& width=&1080& data-original=&https://pic1.zhimg.com/v2-8cf687e2ae95ae4cc054b_r.jpg&&&/figure&&p&&b&part 0: 网络输入&/b&&/p&&p&胶囊网络(CapsNet)的输入是提供给神经网络的真实图片。在这个例子中输入的图片长宽都为 28 个像素。一张图片实际上有 3 个维度用来存储不同颜色通道的信息。&/p&&p&因为是灰度图,而用作示例的图片仅仅有一个颜色通道。大家所熟悉的大多数图片都有 3 或 4 个通道用来存储红-绿-蓝和可能用于存储灰度或透明度的额外通道。 &/p&&figure&&img src=&https://pic4.zhimg.com/v2-f89dd855ddb7dd5cff7715d2_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&683& data-rawheight=&526& class=&origin_image zh-lightbox-thumb& width=&683& data-original=&https://pic4.zhimg.com/v2-f89dd855ddb7dd5cff7715d2_r.jpg&&&/figure&&p&每个像素都被表示为 0 到 255 之间的一个数字并且被存储在一个 28x28x1 的矩阵 [28, 28, 1] 里。每一个像素的颜色越明亮,其数值越大。 &/p&&p&&b&Part 1a: 卷积&/b&&/p&&p&胶囊网络的第一个部分是传统的卷积网络。那么什么是卷积网络,它是怎么工作,而又有什么作用呢?&/p&&p&我们的目标是要从输入图像中提取一些非常基础的特征,比如边缘或者曲线。那么我们是怎么做到的呢?让我们来思考一个边缘情况:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-19d0f3d19e_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&391& data-rawheight=&443& class=&content_image& width=&391&&&/figure&&p&如果我们看到这个图片上的一些点,我们就能够从中发现出一种模式。而现在我们关注于这些点左右两侧的颜色:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-3f0be719f466d3cdf5d57_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&508& data-rawheight=&487& class=&origin_image zh-lightbox-thumb& width=&508& data-original=&https://pic3.zhimg.com/v2-3f0be719f466d3cdf5d57_r.jpg&&&/figure&&p&你也许会注意到当这个点在边缘时,其两侧颜色之间的差别会很大。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&255 - 114 = 141
114 - 153 = -39
153 - 153 = 0
255 - 255 = 0
&/code&&/pre&&/div&&p&如果我们纵览图片中的每一个像素并且用它和左右点之间的差异值来替换掉原始的值会发生什么?理论上这个图片除边缘外的部分会全部变成黑色。&/p&&p&我们可以通过循环来遍历图片中每一个像素并进行上述处理:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&for pixel in image {
result[pixel] = image[pixel - 1] - image[pixel + 1]
&/code&&/pre&&/div&&p&但是这是比较低效的。而实际上,我们可以使用卷积操作。更技术地来讲,这其实是「互相关」,但大家更喜欢称之为卷积。&/p&&p&本质上卷积操作和上述循环的效果几乎是一样的,但它可以充分利用矩阵运算的优势来提高效率。&/p&&p&卷积操作一开始会在图像的一角设置一个小的窗口,然后移动它遍历整幅图像。在每一个位置我们都仅仅关注窗口所覆盖的像素并且将其中全部的像素值与对应的权重相乘并求和。而这个窗口实质上是一个被称为「卷积核」的权重矩阵。&/p&&p&我们仅仅关注 2 个像素,但是当我们把它周围的窗口打包起来的时候,就可以让他们之间的像素变成胶囊。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&Window:
┌─────────────────────────────────────┐
│ left_pixel middle_pixel right_pixel │
└─────────────────────────────────────┘
&/code&&/pre&&/div&&p&你能够找到一组权重与这些像素相乘并求和得到我们想要的值吗?&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&Window:
┌─────────────────────────────────────┐
│ left_pixel middle_pixel right_pixel │
└─────────────────────────────────────┘
(w1 * 255) + (w2 * 255) + (w3 * 114) = 141
&/code&&/pre&&/div&&p&Spoilers below!&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&│
&/code&&/pre&&/div&&p&我们可以进行这样的操作:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&Window:
┌─────────────────────────────────────┐
│ left_pixel middle_pixel right_pixel │
└─────────────────────────────────────┘
(1 * 255) + (0 * 255) + (-1 * 114) = 141
&/code&&/pre&&/div&&p&有了这些权重,我们可以得到卷积核:&/p&&p&kernel = [1 0 -1]&/p&&p&当然,卷积核通常来说是方阵,所以我们可以用 0 来填充其他位置: &/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&kernel = [
&/code&&/pre&&/div&&p&这里有一个很棒的动态图来描述卷积的运算过程:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-deed516a8d858ecfaffa9_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&378& data-thumbnail=&https://pic1.zhimg.com/v2-deed516a8d858ecfaffa9_b.jpg& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic1.zhimg.com/v2-deed516a8d858ecfaffa9_r.jpg&&&/figure&&p&在步幅为 1 的情况下,输出的维度为输入的维度减去卷积核的维度再加 1,比如 (7—3) + 1 = 5(更多相关内容请看下一小节)。&/p&&p&经过卷积变换后的图片如下所示:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-affff4d78fd21acb82cfa_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1080& data-rawheight=&479& class=&origin_image zh-lightbox-thumb& width=&1080& data-original=&https://pic2.zhimg.com/v2-affff4d78fd21acb82cfa_r.jpg&&&/figure&&p&你也许会注意到在变换后的图片中一些边缘丢失了。具体来说,是那些水平方向的边缘。为了突出这些信息,我们需要另外一个卷积核来处理像素上方和下方的信息。比如:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&kernel = [
&/code&&/pre&&/div&&p&此外,这两个卷积核在处理其他的角度或者模糊的边界时都无法获得很好的效果。因此我们要使用多个卷积核(在我们的胶囊网络实现中,我们使用了 256 个卷积核)并且卷积核一般有更大的尺寸以增加处理的空间(我们使用 9x9 的的卷积核)。&/p&&p&其中一个经过训练后的卷积核如下所示。虽然不是很明显,但我们还是可以看出它是一个更加鲁棒的放大版边缘探测器。它仅仅用来找到那些从亮变暗的边缘。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&kernel = [
[ 0.02 -0.01
0.01 -0.05 -0.08 -0.14 -0.16 -0.22 -0.02]
0.00 -0.06 -0.14 -0.28
0.01 -0.11 -0.22 -0.08]
[ 0.03 -0.01 -0.02
0.07 -0.11 -0.24 -0.05]
[-0.01 -0.02 -0.02
0.12 -0.13 -0.31
[-0.05 -0.02
0.14 -0.17 -0.29
0.04 -0.18 -0.10
0.03 -0.01 -0.10 -0.07
0.02 -0.04 -0.02 -0.05
&/code&&/pre&&/div&&p&注意:我对所有的值都进行了取整,因为他们太长了,比如:0.。&/p&&p&幸运的是,我们不需要手动地设计这些卷积核。训练过程可以自动完成这一工作。所有的卷积核一开始都是空的(或者随机初始化),而在训练过程中他们被不断调整使得最终的输出和我们的目标更接近。&/p&&p&如下所示是经过训练后最终得到的 256 个卷积核(为了方便理解我给他们上了色)。我们用蓝色来表示负数, 用 0 来表示绿色,用黄色来表示正数. 并且颜色越强,其绝对值越大。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-944adf3a0a996a001b9c08d2ba02fe86_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&656& data-rawheight=&661& class=&origin_image zh-lightbox-thumb& width=&656& data-original=&https://pic3.zhimg.com/v2-944adf3a0a996a001b9c08d2ba02fe86_r.jpg&&&/figure&&p&用所有的卷积核处理完图片后,我们可以得到一个含有 256 张输出图片的栈。&/p&&p&&b&Part 1b: 线性整流函数&/b&&/p&&p&ReLU(线性整流函数)也许听起来很复杂,但实际上非常简单。作为一个激活函数,它对输入的值进行处理然后输出。如果输入的值是负数,那么输出为 0,如果输入的值是正数,那么输出和输入完全一致。 &/p&&p&代码如下: &/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&x = max(0, x)
&/code&&/pre&&/div&&p&如图所示:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-aa2d54314d8afd94faf35_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&718& data-rawheight=&439& class=&origin_image zh-lightbox-thumb& width=&718& data-original=&https://pic1.zhimg.com/v2-aa2d54314d8afd94faf35_r.jpg&&&/figure&&p&我们用这个函数对所有卷积输出进行处理。&/p&&p&为什么我们要这么做?因为如果我们不使用激活函数对神经元层的输出进行处理,那么整个网络就可以被描述为一个线性的函数,这样一来我们所有的努力就都失去意义了。 &/p&&p&添加一个非线性的部分使得我们可以描述所有种类的函数。我们可以使用很多不同种类的函数来作为激活函数,只是 ReLU 是最流行的一种,因为它使用起来最方便。 &/p&&p&第一个使用了 ReLU 的卷积层输出如下所示: &/p&&figure&&img src=&https://pic4.zhimg.com/v2-8abee7aeea0_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&652& data-rawheight=&652& class=&origin_image zh-lightbox-thumb& width=&652& data-original=&https://pic4.zhimg.com/v2-8abee7aeea0_r.jpg&&&/figure&&p&&b&Part 2a: 初级胶囊层(PrimaryCaps)&/b& &/p&&p&一开始我们使用一个普通的卷积层作为初级胶囊层。但这次我们要对前面输出的 256 个特征图进行操作,因此我们使用一个 9x9x256 的卷积核而不是 9x9x1 的卷积核。那么我们究竟想要得到什么?&/p&&p&在第一个卷积层我们在寻找简单的边角和曲线。现在我们希望从上一步得到的边缘信息中找到更加复杂一点的形状。&/p&&p&这次我们的步长是 2,即每次移动 2 个像素而不是 1 个。使用更大的步长可以让我们更快地降低输出尺寸。 &/p&&figure&&img src=&https://pic2.zhimg.com/v2-b41ce69bbeed97a06e3652_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1080& data-rawheight=&453& class=&origin_image zh-lightbox-thumb& width=&1080& data-original=&https://pic2.zhimg.com/v2-b41ce69bbeed97a06e3652_r.jpg&&&/figure&&p&注意:一般来说,输出的维度是 12,但由于我们的步长为 2,所以输出向量的维度减半。比如:((20—9) + 1) / 2 = 6。&/p&&p&我们会对输出再进行 256 次卷积操作,这样我们最终可以得到一个含有 256 个输出(6x6)的栈。 &/p&&p&但这一次我们想要的不仅仅是一些糟糕而普通的旧数据。我们要把这个栈切分成 32 层,其中每层有 8 个块,我们称之为「胶囊层」,每个胶囊层有 36 个「胶囊」。&/p&&p&更进一步地说,这意味着每个胶囊含有一个拥有 8 个值的数组,而一般我们称之为向量。 &/p&&p&我所要强调的是: &/p&&figure&&img src=&https://pic1.zhimg.com/v2-19a52c6d62e61a42be14e_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&846& data-rawheight=&572& class=&origin_image zh-lightbox-thumb& width=&846& data-original=&https://pic1.zhimg.com/v2-19a52c6d62e61a42be14e_r.jpg&&&/figure&&p&这些「胶囊」是我们新的像素。 &/p&&p&对于单一的像素值来说,我们仅仅能够存储在特定位置是否有一个边角的置信度。数值越大,置信度越高。 &/p&&p&而对于一个胶囊,我们可以在每个位置存储 8 个值!这让我们有机会存储更多的信息而不仅仅是是否在某个位置找到了某种形状。但我们想要存储的还有哪些信息呢? &/p&&p&当看到下面的形状的时候,你能够发现什么?如果你需要在对方不能观看的情况下告诉他如何复原这个形状,你会怎么说? &/p&&figure&&img src=&https://pic1.zhimg.com/v2-f9a0ae5c16f838afc9e3a81d59cf887b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&617& data-rawheight=&372& class=&origin_image zh-lightbox-thumb& width=&617& data-original=&https://pic1.zhimg.com/v2-f9a0ae5c16f838afc9e3a81d59cf887b_r.jpg&&&/figure&&p&这个图片非常基础,所以我们仅仅需要描述很少的一些细节。: &/p&&ul&&li&形状的类型 &/li&&li&位置&/li&&li&旋转&/li&&li&颜色&/li&&li&尺寸&/li&&/ul&&p&我们可以称之为「实例化参数」。对于更复杂的图片我们最终需要更多的细节。他们可以包括姿态(位置、尺寸、方向、)、畸变、速度、反照率、色调、质地等等。 &/p&&p&你也许还记得当我们为边缘检测设计卷积核的时候,它只会在某一个具体的角度起作用,因此对于每一个角度我们都需要一个卷积核。而事实上我们完全可以摆脱上述的过程,因为当我们在处理边缘时,描述边缘的方式是非常有限的。 &/p&&p&当我们在处理形状这一层次的特征时,我们不想给每一个角度的长方形、三角形、椭圆等等都去设计对应的卷积核。这太不明智了,尤其是当处理像光线一样有 3 个维度的旋转和特征的更复杂的形状时更是如此。 &/p&&p&而这恰恰正是传统的神经网络无法很好地处理微小旋转的原因。 &/p&&figure&&img src=&https://pic1.zhimg.com/v2-9b9c8dc24f5c16e1d122b5adcf2217dd_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&531& data-rawheight=&503& class=&origin_image zh-lightbox-thumb& width=&531& data-original=&https://pic1.zhimg.com/v2-9b9c8dc24f5c16e1d122b5adcf2217dd_r.jpg&&&/figure&&p&当我们从边缘到形状,再从形状到物体传递特征的时候,如果能够有更多的空间去存储额外有用的信息将会是很有帮助的。 &/p&&p&如下是两个胶囊层(一个用来处理长方形一个用来处理三角形)和 2 个传统像素输出的一个简化版对比: &/p&&figure&&img src=&https://pic1.zhimg.com/v2-738d34d3bde06c8de1fd5_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&770& data-rawheight=&391& class=&origin_image zh-lightbox-thumb& width=&770& data-original=&https://pic1.zhimg.com/v2-738d34d3bde06c8de1fd5_r.jpg&&&/figure&&p&与传统的 2 维或者 3 维的向量类似,这个向量也有角度和长度。长度描述概率而角度描述实例化的参数。在上面的例子中,这个角度实际上和形状的角度是一致的,但通常来说不一定是这样。 &/p&&p&在实际中想要可视化展示上述的向量是不可行或者至少是非常困难的,因为他们有 8 个维度。 &/p&&p&那么既然我们在胶囊中存储了这些额外的信息,我们应该可以在此基础上重构出最初的图片。这听起来很不错,但我们要怎样才能使得网络学习到这些内容呢?&/p&&p&在训练传统卷积神经网络的时候,我们仅仅关心模型是否能够预测正确的类别。而在训练胶囊网络的时候,我们有另外的一种叫做「重构」的方法。每次重构都尝试仅仅使用我们给出的向量复原原始图片。然后我们使用重构图片和目标图片的接近程度对模型进行评估。 &/p&&p&这里有一个简单的例子。而在接下来的部分中我会介绍更多的细节。 &/p&&figure&&img src=&https://pic1.zhimg.com/v2-738d34d3bde06c8de1fd5_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&770& data-rawheight=&391& class=&origin_image zh-lightbox-thumb& width=&770& data-original=&https://pic1.zhimg.com/v2-738d34d3bde06c8de1fd5_r.jpg&&&/figure&&p&&b&Part 2b: 非线性变换 Squashing&/b& &/p&&p&在得到胶囊之后,我们会再对其进行一次非线性变换(比如 ReLU),但这次的公式比之前略微难懂。这个函数成比例扩大了向量的值,使得它在角度不变的情况下长度有所增加。这样我们就可以让向量分布在 0 和 1 之间从而实际上获得一个概率值。 &/p&&p&经过压缩操作后胶囊向量的长度如下所示。在这时想要猜出每个胶囊的目标几乎是不可能的。 &/p&&figure&&img src=&https://pic4.zhimg.com/v2-8fb64a61784fbb609a84d296e2e0da43_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1080& data-rawheight=&214& class=&origin_image zh-lightbox-thumb& width=&1080& data-original=&https://pic4.zhimg.com/v2-8fb64a61784fbb609a84d296e2e0da43_r.jpg&&&/figure&&p&要注意的是每个像素实际上都是一个长度为 8 的向量。 &/p&&p&&b&Part 3: 一致性路由&/b& &/p&&p&接下来的一步是决定将要被传递给下一个层级的信息。在传统的网络中,我们也许会使用类似于「最大池化」的一些方式。最大池化通过仅仅传递某一区域中激活值最大的像素到下一层的方式来降维。 &/p&&figure&&img src=&https://pic1.zhimg.com/v2-8ad8cb906c2e10d60e9e17ced59a6aa6_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1080& data-rawheight=&492& class=&origin_image zh-lightbox-thumb& width=&1080& data-original=&https://pic1.zhimg.com/v2-8ad8cb906c2e10d60e9e17ced59a6aa6_r.jpg&&&/figure&&p&然而,在胶囊网络中,我们将使用一种被称作「一致性路由」的方式。其中每一个胶囊都试图基于它自己猜测下一层神经元的激活情况。 &/p&&figure&&img src=&https://pic4.zhimg.com/v2-683a52a5a77b527f557d22e15f3678ca_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1080& data-rawheight=&648& class=&origin_image zh-lightbox-thumb& width=&1080& data-original=&https://pic4.zhimg.com/v2-683a52a5a77b527f557d22e15f3678ca_r.jpg&&&/figure&&p&看到这些预测并且在不知道输入的情况下,你将选择把哪一个物体传递给下一层呢?也许是船,长方形的胶囊和三角形的胶囊都在船应该是什么样子上达成了一致。但他们并没有在预测房子的样子上达成一致。所以很有可能这个物体不是一个房子。 &/p&&p&通过一致性路由,我们仅仅将有用的信息传递给下一层并且丢弃掉那些可能使结果中存在噪音的数据。这让我们能够做出更加智能的选择而不仅仅是像最大池化一样选择最大的数字。 &/p&&p&在传统网络中,错位的信息并不会造成什么困惑。 &/p&&figure&&img src=&https://pic1.zhimg.com/v2-98dadadf3671_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&522& data-rawheight=&503& class=&origin_image zh-lightbox-thumb& width=&522& data-original=&https://pic1.zhimg.com/v2-98dadadf3671_r.jpg&&&/figure&&p&而在胶囊网络中,这些特征相互之间将不会达成一致: &/p&&figure&&img src=&https://pic1.zhimg.com/v2-b8baaefe2a078faa02ed1cc1c09be110_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&697& data-rawheight=&359& class=&origin_image zh-lightbox-thumb& width=&697& data-original=&https://pic1.zhimg.com/v2-b8baaefe2a078faa02ed1cc1c09be110_r.jpg&&&/figure&&p&正如我们所期望的那样,这种方式在直觉上是可行的。而在数学上,它究竟是怎么运作的呢? &/p&&p&我们的目标是预测 10 个不同的数字(每个数字为一类)&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&0, 1, 2, 3, 4, 5, 6, 7, 8, 9
&/code&&/pre&&/div&&p&注意:在船和房子的例子中,我们的目标是预测两个物体,而现在我们要预测 10 个。 &/p&&p&与船和房子的例子不同,在这里我们不是要预测实际的图片,而是要试图预测描述图片的向量。通过计算向量和每一个类别的权重矩阵的乘积,我们可以获得胶囊对于每一个类的预测结果。&/p&&p&注意我们有 32 个胶囊层,并且每个胶囊层有 36 个胶囊。这意味着我们总共有 1152 个胶囊。 &/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&cap_1 * weight_for_0 = prediction
cap_1 * weight_for_1 = prediction
cap_1 * weight_for_2 = prediction
cap_1 * ...
cap_1 * weight_for_9 = prediction
cap_2 * weight_for_0 = prediction
cap_2 * weight_for_1 = prediction
cap_2 * weight_for_2 = prediction
cap_2 * ...
cap_2 * weight_for_9 = prediction
cap_1152 * weight_for_0 = prediction
cap_1152 * weight_for_1 = prediction
cap_1152 * weight_for_2 = prediction
cap_1152 * ...
cap_1152 * weight_for_9 = prediction
&/code&&/pre&&/div&&p&经过计算,最终你将得到一个含有 11520 个预测值的列表。 &/p&&p&每个权重实际上是一个 16x8 的矩阵,所以每个预测都是胶囊向量同这个权重矩阵的乘积。 &/p&&figure&&img src=&https://pic1.zhimg.com/v2-83efa7f84ccfde26da2510e2_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&590& data-rawheight=&355& class=&origin_image zh-lightbox-thumb& width=&590& data-original=&https://pic1.zhimg.com/v2-83efa7f84ccfde26da2510e2_r.jpg&&&/figure&&p&正如你看到的那样,我们的预测结果是一个 16 维的向量。 &/p&&p&维度 16 是从何而来呢?这是一个任意的选择,就像我们最初使用 8 个胶囊一样。 &/p&&p&但需要注意的是,我们如果我们想要选择更深层的胶囊网络,我们就要扩大胶囊的维度。从直觉上来说,这是可行的。因为我们使用的网络越深,特征表达就越复杂,需要我们再现的参数就更多。举例来说,描述一整张脸比描述一只眼睛需要更多的信息。 &/p&&p&下一步是要找到在这 11520 个预测中和其他预测一致性最高的内容。 &/p&&p&想要可视化高维的向量是很有难度的一件事情,为了更符合人的直觉,我们假设这些向量仅仅是 2 维空间中的点。 &/p&&figure&&img src=&https://pic1.zhimg.com/v2-ee9a4b979e14079aeb7898_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&925& data-rawheight=&436& class=&origin_image zh-lightbox-thumb& width=&925& data-original=&https://pic1.zhimg.com/v2-ee9a4b979e14079aeb7898_r.jpg&&&/figure&&p&首先我们计算所有点的平均值。每个点在最初都被赋予了同样的重要性。 &/p&&figure&&img src=&https://pic3.zhimg.com/v2-dcda94afe4d41319bbcf_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&917& data-rawheight=&425& class=&origin_image zh-lightbox-thumb& width=&917& data-original=&https://pic3.zhimg.com/v2-dcda94afe4d41319bbcf_r.jpg&&&/figure&&p&接下来我们可以测量每个点和平均值点之间的距离。距离越远的点,其重要程度就越低。 &/p&&figure&&img src=&https://pic1.zhimg.com/v2-9eefb8febd808dac4b140dd0c2f88488_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&920& data-rawheight=&429& class=&origin_image zh-lightbox-thumb& width=&920& data-original=&https://pic1.zhimg.com/v2-9eefb8febd808dac4b140dd0c2f88488_r.jpg&&&/figure&&p&然后我们在考虑每个点的不同的重要性,重新计算平均值: &/p&&figure&&img src=&https://pic4.zhimg.com/v2-cc6deacfab233c89eb3648_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&916& data-rawheight=&417& class=&origin_image zh-lightbox-thumb& width=&916& data-original=&https://pic4.zhimg.com/v2-cc6deacfab233c89eb3648_r.jpg&&&/figure&&p&正如你能够看到的,随着我们重复进行这个循环,那些和其他点不一致的的点开始消失。而那些相互之间高度一致的点则最终将被传递给激活值最高的的下一层。 &/p&&p&&b&Part 4: DigitCaps&/b& &/p&&p&达成一致后,我们最终可以得到 10 个 16 维的向量,每个向量都和一个数字相对应。这个矩阵就是我们最终的预测结果。这个向量的长度是数字被找出的置信度——越长越好。这个向量也可以被用于生成输入图片的重构。 &/p&&figure&&img src=&https://pic1.zhimg.com/v2-ac2f2aaaae838_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&723& data-rawheight=&686& class=&origin_image zh-lightbox-thumb& width=&723& data-original=&https://pic1.zhimg.com/v2-ac2f2aaaae838_r.jpg&&&/figure&&p&这就是在输入为 4 的情况下向量的长度分布情况。 &/p&&p&第五个方块区域是最明亮的,意味着较高的置信度。注意数字 0 是第一类,所以我们在这里给出的预测是数字 4. &/p&&p&&b&Part 5: 重构&/b& &/p&&p&这个代码实现中重构的部分相对比较简单,它仅仅是一个多层的全连接网络,但重构本身的过程是非常有趣的。 &/p&&p&如果我们重构 4 个输入向量,我们将会得到:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-3b27eb6c1f7beac2eab1_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1080& data-rawheight=&635& class=&origin_image zh-lightbox-thumb& width=&1080& data-original=&https://pic2.zhimg.com/v2-3b27eb6c1f7beac2eab1_r.jpg&&&/figure&&p&如果我们调整这些滑动器,我们可以看到每一个维度是如何影响这 4 个输入的: &/p&&figure&&img src=&https://pic2.zhimg.com/v2-98e09b3c97f9afcbd0f54eeb_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1080& data-rawheight=&593& class=&origin_image zh-lightbox-thumb& width=&1080& data-original=&https://pic2.zhimg.com/v2-98e09b3c97f9afcbd0f54eeb_r.jpg&&&/figure&&p&我推荐大家下载使用这个可视化工具来观察在不同输入下滑动向量数值是如何影响重构过程的。 &/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&git clone https://github.com/bourdakos1/CapsNet-Visualization.git
cd CapsNet-Visualization
pip install -r requirements.txt
&/code&&/pre&&/div&&p&运行可视化工具 &/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&python run_visualization.py
&/code&&/pre&&/div&&p&接下来用浏览器访问 &a href=&https://link.zhihu.com/?target=http%3A//localhost%3A5000& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&http://localhost:5000 (http://localhost:5000/)&/a&&/p&&p&&br&&/p&&p&&b&总结&/b& &/p&&p&我认为对于胶囊网络的重构是令人惊叹的。考虑到我们仅仅使用了一个简单的数据集来训练当前的模型,这让我不由期待经由大量数据训练的成熟胶囊网络结构,及其效果。 &/p&&p&我非常期待看到控制更为复杂图像的重构向量将对模型产生怎样的影响。因此在接下来的工作中,我将在 CIFAR 和 smallNORB 数据上对胶囊网络进行测试。&/p&&p&&br&&/p&&p&原文地址:&a href=&https://link.zhihu.com/?target=https%3A//medium.freecodecamp.org/understanding-capsule-networks-ais-alluring-new-architecture-bdb228173ddc& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&medium.freecodecamp.org&/span&&span class=&invisible&&/understanding-capsule-networks-ais-alluring-new-architecture-bdb228173ddc&/span&&span class=&ellipsis&&&/span&&/a&&/p&
文章选自freecodecamp,作者:Nick Bourdakos,机器之心编译。CapsNet 将神经元的标量输出转换为向量输出提高了表征能力,我们不仅能用它表示图像是否有某个特征,同时还能表示这个特征的旋转和位置等物理特征。本文从可视化的角度出发详解释了 CapsNet 的…
&figure&&img src=&https://pic1.zhimg.com/v2-e466fbf8adb8fa553fae_b.jpg& data-rawwidth=&720& data-rawheight=&300& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&https://pic1.zhimg.com/v2-e466fbf8adb8fa553fae_r.jpg&&&/figure&&p&文章选自arXiv,作者:Lijie Fan、Wenbing Huang、Chuang Gan、Stefano Ermon、Boqing Gong、Junzhou Huang,机器之心编译。&/p&&blockquote&尽管端到端的特征学习已经取得了重要的进展,但是人工设计的光流特征仍然被广泛用于各类视频分析任务中。为了弥补这个不足,由来自腾讯 AI Lab、MIT、清华、斯坦福大学的研究者完成并入选 CVPR 2018 Spotlight 论文的一项研究提出了一种能从数据中学习出类光流特征并且能进行端到端训练的神经网络:TVNet。机器之心对本论文进行了摘要介绍,详情请参阅原论文。另外,该研究成果的 TensorFlow 实现已经发布在 GitHub 上。&/blockquote&&ul&&li&论文地址:&a href=&https://link.zhihu.com/?target=https%3A//arxiv.org/abs/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&arxiv.org/abs/&/span&&span class=&invisible&&3&/span&&span class=&ellipsis&&&/span&&/a&&/li&&li&代码地址:&a href=&https://link.zhihu.com/?target=https%3A//github.com/LijieFan/tvnet& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/LijieFan/tvn&/span&&span class=&invisible&&et&/span&&span class=&ellipsis&&&/span&&/a&&/li&&/ul&&p&图像分类和目标检测等基于图像的任务已经在深度学习(尤其是卷积神经网络(CNN))的推动下实现了革命性的发展。但是,视频分析方面的进展却并不尽如人意,这说明学习时空数据的表征是非常困难的。我们认为其中主要的难点是:寻找视频中明显的运动信息(motion cue)需要某种新型网络设计,而这些设计尚未被找到和测试。&/p&&p&尽管已经有些研究在尝试通过在空间和时间维度上同时执行卷积运算来学习特征,但是人工设计的光流(optical flow)特征在视频分析上仍有广泛和有效的应用。光流,顾名思义,是指两个连续帧之间的像素位移。因此,将光流应用到视频理解任务上可以明确而方便地实现运动线索的建模。然而,这种方法很低效,估计光流的计算和存储成本往往很高。目前成功将光流应用于视频理解的重要方法之一是 two-stream model [33],其在光流数据上训练了一个用于学习动作模式的卷积网络。研究者们已经提出了一些不同的 two-stream model 的扩展,并在动作识别和动作检测等多种任务上实现了当前最佳水平。&/p&&p&尽管表现出色,但当前的基于光流的方法存在一些显著缺陷:&/p&&ul&&li&训练是一种双阶段过程。第一个阶段是通过基于优化的方法(比如 TVL1 [42])提取每两个连续帧的光流。第二个阶段是基于提取出的光流数据上训练一个 CNN。这两个阶段是分开的,而且来自第二个阶段的信息(比如梯度)无法被用于调节第一个阶段的过程。&/li&&li&光流提取的空间和时间成本很高。提取出的光流必须写入到磁盘上,以便训练和测试。对于包含大约 1 万段视频的 UCF101 数据集而言,通过 TVL1 方法提取所有数据的光流需要消耗一个 GPU 一整天时间,而将原来的场作为浮点数来存储这些光流需要至少 1TB 的存储空间(为了节省存储成本,通常需要线性归一化成 JPEG)。&/li&&/ul&&p&为了解决上述问题,我们提出了一种全新的神经网络设计,可以端到端的方式学习类光流的特征。这个名叫 TVNet 的网络是通过模仿和展开 TV-L1 的迭代优化过程而获得的。尤其值得一提的是,我们将 TV-L1 方法中的迭代形式化为了神经网络的自定义层。因此,我们的 TVNet 的设定基础良好,无需任何额外训练就能直接被使用。&/p&&p&此外,我们的 TVNet 是可以端到端地训练的,因此可以自然地连接到特定任务的网络上(比如动作分类网络),进而实现「更深度」的可端到端训练的架构。因此,无需再预计算或存储光流特征。&/p&&p&最后,通过执行端到端学习,被初始化为标准的光流特征提取器的 TVNet 的权重可以得到进一步的调节。这让我们可以发现更丰富且更针对任务的特征(相比于原始的光流),从而实现更优的表现。&/p&&p&为了验证我们提出的架构的有效性,我们在两个动作识别基准(HMDB51 和 UCF101)上执行了实验,比较了我们提出的 TVNet 和几种互相竞争的方法。&/p&&p&总体而言,本论文有以下贡献:&/p&&ul&&li&我们通过将 TV-L1 方法的迭代展开成自定义的神经层,开发了一种学习视频中的运动的全新神经网络。这个网络名叫 TVNet,具有良好的初始化。&/li&&li&尽管我们提出的 TVNet 是以特定的 TV-L1 架构初始化的,但相比于标准的光流,它可以在进一步微调之后学习到更丰富和更面向任务的特征。&/li&&li&相比于其它动作表征学习的方法(比如 TV-L1、FlowNet2.0 和 3D Convnets),我们的 TVNet 在两个动作识别基准上实现了更优的准确度,即在 HMDB51 上实现了 72.6% 的准确度、在 UCF101 上实现了 95.4% 的准确度。&/li&&/ul&&figure&&img src=&https://pic2.zhimg.com/v2-ce93be6ebaae4c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&793& data-rawheight=&782& class=&origin_image zh-lightbox-thumb& width=&793& data-original=&https://pic2.zhimg.com/v2-ce93be6ebaae4c_r.jpg&&&/figure&&p&算法 1:用于光流提取的 TV-L1 方法 &/p&&figure&&img src=&https://pic3.zhimg.com/v2-09a01cfa956f8eaad6dadd_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&793& data-rawheight=&596& class=&origin_image zh-lightbox-thumb& width=&793& data-original=&https://pic3.zhimg.com/v2-09a01cfa956f8eaad6dadd_r.jpg&&&/figure&&p&图 1:由 TV-L1、TVNet(无训练)、TVNet(有训练)得到的类光流运动特征的可视化结果 &/p&&figure&&img src=&https://pic4.zhimg.com/v2-e25da6d690_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&793& data-rawheight=&251& class=&origin_image zh-lightbox-thumb& width=&793& data-original=&https://pic4.zhimg.com/v2-e25da6d690_r.jpg&&&/figure&&p&图 2:(a)将 TV-L1 展开成 TVNet 的过程示意图。对于 TV-L1,我们只描述了算法 1 中的单次迭代。我们将 TV-L1 中的双三次翘曲(bicubic warping)、梯度和散度计算重新形式化为了 TVNet 中的双线性翘曲(bilinear warping)和卷积运算。(b)用于动作识别的端到端模型。 &/p&&figure&&img src=&https://pic3.zhimg.com/v2-c414fc7f9c7adb0b9d157bff_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&837& data-rawheight=&724& class=&origin_image zh-lightbox-thumb& width=&837& data-original=&https://pic3.zhimg.com/v2-c414fc7f9c7adb0b9d157bff_r.jpg&&&/figure&&p&图 3:TV-L1 和 TVNet-50 在 MiddleBurry 上估计得到的光流示例。经过训练后,TVNet-50 可以提取出比 TV-L1 更精细的特征。 &/p&&figure&&img src=&https://pic4.zhimg.com/v2-30a8ed365f50a8ede568_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&839& data-rawheight=&443& class=&origin_image zh-lightbox-thumb& width=&839& data-original=&https://pic4.zhimg.com/v2-30a8ed365f50a8ede568_r.jpg&&&/figure&&p&表 3:在 HMDB51 和 UCF101 上的各种运动描述器的分类准确度。上面一部分是之前最佳的动作表征方法的结果;中间一部分给出了 4 种基准方法的准确度;下面的结果表明我们的 TVNet-50 模型在这两个数据集上都得到了最佳表现。 &/p&&figure&&img src=&https://pic1.zhimg.com/v2-92da45e226e22aa7a940_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&793& data-rawheight=&464& class=&origin_image zh-lightbox-thumb& width=&793& data-original=&https://pic1.zhimg.com/v2-92da45e226e22aa7a940_r.jpg&&&/figure&&p&表 4:在 HMDB51 和 UCF101 上的平均分类准确度 &/p&&figure&&img src=&https://pic3.zhimg.com/v2-f5d5b0a9a1b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&793& data-rawheight=&330& class=&origin_image zh-lightbox-thumb& width=&793& data-original=&https://pic3.zhimg.com/v2-f5d5b0a9a1b_r.jpg&&&/figure&&p&图 4:TV-L1 和 TVNet-50 在 UCF101 数据集上得到的运动特征。从第一列到最后一列,我们分别展示了输入图像对(仅第一张图像)、TV-L1 得到的运动特征、无训练和有训练的 TVNet-50 得到的运动特征。有意思的是,使用训练后,TVNet-50 可以得到比 TV-L1 及
TVNet-50 的非训练版本更抽象的运动特征。这些特征不仅自动移除了背景的运动(参见「punch」示例),而且还捕捉到了运动物体的轮廓。
&/p&&p&&br&&/p&&p&&b&论文:用于视频理解的运动表征的端到端学习(End-to-End Learning of Motion Representation for Video Understanding)&/b&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-992bcad6d83cc7e345666_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&793& data-rawheight=&195& class=&origin_image zh-lightbox-thumb& width=&793& data-original=&https://pic1.zhimg.com/v2-992bcad6d83cc7e345666_r.jpg&&&/figure&&p&尽管端到端学习的表征近来取得了成功,但视频分析任务广泛使用的仍然还是人工设计的光流特征。为了弥补这一不足,我们提出了一种全新的可端到端训练的神经网络 TVNet,可从数据中学习类光流特征。TVNet 是一种特定的光流求解器 TV-L1 方法,并且通过将 TV-L1 中的优化迭代展开成神经层而进行了初始化。因此,TVNet 无需任何额外训练就能直接使用。此外,它还可以自然地嫁接到其它特定任务的网络上,从而得到端到端的架构;因此,这种方法无需预计算和在磁盘上预存储特征,比之前的多阶段方法更加高效。最后,TVNet 的参数可以通过端到端训练进一步优化。这让 TVNet 不仅可以学习光流,而且还可以学习到更丰富的且更针对任务的动作模式。我们在两个动作识别基准上进行了广泛的实验,结果表明了我们提出的方法的有效性。我们的 TVNet 实现了比所有同类方法更优的准确度,同时在特征提取时间方面也能与最快的同类方法媲美。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-18cc987d5f379a82f22318_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&73& data-rawheight=&24& class=&content_image& width=&73&&&/figure&&p&&/p&&p&&/p&
文章选自arXiv,作者:Lijie Fan、Wenbing Huang、Chuang Gan、Stefano Ermon、Boqing Gong、Junzhou Huang,机器之心编译。尽管端到端的特征学习已经取得了重要的进展,但是人工设计的光流特征仍然被广泛用于各类视频分析任务中。为了弥补这个不足,由来自…
&figure&&img src=&https://pic1.zhimg.com/v2-594d28aff_b.jpg& data-rawwidth=&2555& data-rawheight=&1776& class=&origin_image zh-lightbox-thumb& width=&2555& data-original=&https://pic1.zhimg.com/v2-594d28aff_r.jpg&&&/figure&&p&正式接收的论文名单&/p&&p&&br&&/p&&p&Oral:&/p&&ol&&li&&b&Group Consistent Similarity Learning via Deep CRFs for Person Re-Identification &/b&Dapeng Chen, CUHK; Dan Xu, ; Hongsheng Li, ; Nicu Sebe, University of Trento, I Xiaogang Wang, Chinese University of Hong Kong&/li&&/ol&&p&&br&&/p&&p&Spotlight:&/p&&ol&&li&&b&Person Transfer GAN to Bridge Domain Gap for Person Re-Identification&/b&, Longhui Wei, Peking U Shiliang Zhang, Peking U Wen Gao, ; Qi Tian
&a href=&http://link.zhihu.com/?target=https%3A//arxiv.org/abs/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&[arXiv]&/a&&/li&&li&&b&Disentangled Person Image Generation&/b&,Liqian Ma, KU L Qianru Sun, MPI for I Stamatios Georgoulis, KU L Mario Fritz, MPI, Saarbrucken, G Bernt Schiele, MPI Informatics G Luc Van Gool, KU Leuven &a href=&http://link.zhihu.com/?target=https%3A//arxiv.org/abs/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&[arXiv]&/a&&/li&&li&&b&Unsupervised Person Image Synthesis in Arbitrary Poses, &/b&Albert Pumarola, IRI (CSIC-UPC); Antonio Agudo, IRI (CSIC-UPC); Alberto Sanfeliu, IRI (CSIC-UPC); Francesc Moreno-Noguer, Institut de Robotica i Informatica Industrial (UPC/CSIC)&/li&&li&&b&Good Appearance Features for Multi-Target Multi-Camera Tracking&/b&, Ergys Ristani, Duke U Carlo Tomasi, Duke University &/li&&/ol&&p&&br&&/p&&p&&br&&/p&&p&Poster:&/p&&ol&&li&&b&Diversity Regularized Spatiotemporal Attention for Video-based Person Re-identification, &/b&Shuang Li, The Chinese University of HK; Slawomir Bak, Disney R Peter Carr, Disney Research &a href=&http://link.zhihu.com/?target=https%3A//arxiv.org/abs/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&[arXiv]&/a&&/li&&li&&b&A Pose-Sensitive Embedding for Person Re-Identification with Expanded Cross Neighborhood Re-Ranking,&/b&M. Saquib Sarfraz, KIT; Arne Schumann, KIT; Andreas Eberle, KIT; Rainer Stiefelhagen, Karlsruhe Institute of Technology&a href=&http://link.zhihu.com/?target=https%3A//arxiv.org/abs/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&[arXiv]&/a&&/li&&li&&b&Image-Image Domain Adaptation with Preserved Self-Similarity and Domain-Dissimilarity for Person Re-identification, &/b&Weijian Deng, University of Chinese A Liang Zheng, University of Texas at San A GUOLIANG KANG, UTS; Yi Yang, ; Qixiang Ye, ; Jianbin Jiao,&a href=&http://link.zhihu.com/?target=https%3A//arxiv.org/abs/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&[arXiv]&/a&&/li&&li&&b&Human Semantic Parsing for Person Re-identification&/b&, Mahdi Kalayeh, UCF; Emrah Basaran, ; Mubarak Shah, UCF&/li&&li&&b&Video Person Re-identification with Competitive Snippet-similarity Aggregation and Co-attentive Snippet Embedding&/b& Dapeng Chen, CUHK; Hongsheng Li, ; Tong Xiao, The Chinese University of HK; Shuai Yi, The Chinese University of Hong K Xiaogang Wang, Chinese University of Hong Kong&/li&&li&&b&Mask-guided Contrastive Attention Model for Person Re-Identification&/b&, Chunfeng Song, CASIA; Yan Huang, ; Wanli Ouyang, ; Liang Wang, unknown&/li&&li&&b&Person Re-identification with Cascaded Pairwise Convolutions&/b&, Yicheng Wang, ; Zhenzhong Chen, Wuhan U Feng Wu, ; Gang Wang,&/li&&li&&b&Multi-Level Factorisation Net for Person Re-Identification&/b&, Xiaobin Chang, Queen Mary Univ. of L Timothy Hospedales, University of E Tao Xiang, Queen Mary University of London&a href=&http://link.zhihu.com/?target=https%3A//arxiv.org/abs/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&[arXiv]&/a&&/li&&li&&b&Attention-aware Compositional Network for Person Re-Identification&/b&, Jing Xu, SenseNets Technology L Rui Zhao, SenseNets Technology L Feng Zhu, SenseNets Technology L Huaming Wang, SenseNets Technology L Wanli Ouyang, The University of Sydney&/li&&li&&b&Deep Group-shuffling Random Walk for Person Re-identification&/b&, Yantao Shen, CUHK; Hongsheng Li, ; Tong Xiao, The Chinese University of HK; Shuai Yi, The Chinese University of Hong K Dapeng Chen, CUHK; Xiaogang Wang, Chinese University of Hong Kong&/li&&li&&b&Transferable Joint Attribute-Identity Deep Learning for Unsupervised Person Re-Identification&/b&, Jingya Wang, QMUL; Xiatian Zhu, Vision Semantics Ltd.; Shaogang Gong, Queen Mary U Wei Li, Queen Mary University of Lond&a href=&http://link.zhihu.com/?target=https%3A//arxiv.org/abs/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&[arXiv]&/a&&/li&&li&&b&Harmonious Attention Network for Person Re-Identification&/b&,Wei Li, Queen Mary University of L Xiatian Zhu, Vision Semantics Ltd.; Shaogang Gong, Queen Mary University&a href=&http://link.zhihu.com/?target=https%3A//arxiv.org/abs/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&[arXiv]&/a&&/li&&li&&b&Efficient and Deep Person Re-Identification using Multi-Level Similarity&/b&,Yiluan Guo, SUTD; Ngai-Man Cheung,&a href=&http://link.zhihu.com/?target=https%3A//arxiv.org/abs/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&[arXiv]&/a&&/li&&li&&b&Pose Transferrable Person Re-Identification&/b&,Jinxian Liu, Shanghai Jiao Tong U Yichao Yan, Shanghai Jiao Tong U Bingbing Ni, ; Peng Zhou, S Shuo Cheng, SJTU; jianguo Hu, Minivision&/li&&li&&b&Adversarially Occluded Samples for Person Re-identification&/b&,Houjing Huang, CASIA; Dangwei Li, ; Zhang Zhang, ; Xiaotang Chen, ; Kaiqi Huang,&/li&&li&&b&Camera Style Adaptation for Person Re-identification&/b&,Zhun Zhong, Xiamen U Liang Zheng, SUTD; Zhedong Zheng, UTS; Shaozi Li, ; Yi Yang, University of Technology, Sydney&a href=&http://link.zhihu.com/?target=https%3A//arxiv.org/abs/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&[arXiv]&/a&&/li&&li&&b&Exploit the Unknown Gradually:~ One-Shot Video-Based Person Re-Identification by Stepwise Learning&/b&,Yu Wu, University Yutian Lin, ; Xuanyi Dong, UTS; Yan Yan, UTS; Wanli Ouyang, The University of S Yi Yang,&/li&&li&&b&Dual Attention Matching Network for Context-Aware Feature Sequence based Person Re-Identification&/b&,Jianlou Si, BUPT; Honggang Zhang, ; Chun-Guang Li, Beijing Univ. of Posts&T Jason Kuen, NTU, S Xiangfei Kong, Nanyang Technological U Alex Kot, ; Gang Wang,&a href=&http://link.zhihu.com/?target=https%3A//arxiv.org/abs/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&[arXiv]&/a&&/li&&li&&b&Easy Identification from Better Constraints: Multi-Shot Person Re-Identification from Reference Constraints&/b&,Jiahuan Zhou, Northwestern U Bing Su, Chinese Academy of S Ying Wu, Northwestern University, USA&/li&&li&&b&Eliminating Background-bias for Robust Person Re-identification&/b&,Maoqing Tian, Sensetime L Shuai Yi, The Chinese University of Hong K Hongsheng Li, ; Shihua Li, ; Xuesen Zhang, SenseT Jianping Shi, SenseT Junjie Yan, ; Xiaogang Wang, Chinese University of Hong Kong&/li&&li&&b&End-to-End Deep Kronecker-Product Matching for Person Re-identification&/b&,Yantao Shen, CUHK; Tong Xiao, The Chinese University of HK; Hongsheng Li, ; Shuai Yi, The Chinese University of Hong K Xiaogang Wang, Chinese University of Hong Kong&/li&&li&&b&Exploiting Transitivity for Learning Person Re-identification Models on a Budget&/b&,Sourya Roy, UC R Sujoy Paul, UC R Neal Young, UC R Amit Roy-Chowdhury, UC Riverside&/li&&li&&b&Deep Spatial Feature Reconstruction for Partial Person Re-identification&/b&,Lingxiao He, Institute of AutomationC Jian Liang, CASIA; Haiqing Li, ; Zhenan Sun, CRIPAC&a href=&http://link.zhihu.com/?target=https%3A//arxiv.org/abs/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&[arXiv]&/a&&/li&&li&&b&Unsupervised Cross-dataset Person Re-identification by Transfer Learning of Spatio-temporal Patterns,&/b&Jianming Lv, South China University of T Weihang Chen, South China University of T Qing Li, City University of Hong K Can Yang, South China University of Technology&a href=&http://link.zhihu.com/?target=https%3A//arxiv.org/abs/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&[arXiv]&/a&&/li&&li&&b&Resource Aware Person Re-identification across Multiple ResolutionsYan Wang&/b&, C Lequn Wang, Cornell U yurong you, shang hai
xu zou, Vincent Chen, Serena Li, CORNELL UNIVERSITY; Bharath Hariharan, Cornell U Gao Huang, ; Kilian Weinberger, Cornell University&/li&&li&&b&Multi-shot Pedestrian Re-identification via Sequential Decision Making&/b&, Jianfu Zhang, Shanghai Jiaotong U Naiyan Wang, Liqing Zhang, Shanghai Jiaotong University&/li&&li&&b&Deep Mutual Learning&/b& Ying Zhang, QMUL; Tao Xiang, Queen Mary University of L Timothy Hospedales, University of E Huchuan Lu, Dalian University of Technology&/li&&/ol&&p&&br&&/p&&p&部分算法在DukeMTMC-reID 效果排名:&/p&&a href=&http://link.zhihu.com/?target=https%3A//github.com/layumi/DukeMTMC-reID_evaluation/blob/master/State-of-the-art/README.md& data-draft-node=&block& data-draft-type=&link-card& data-image=&https://pic3.zhimg.com/v2-a82bd9f50cc3f8cb48d1e_ipico.jpg& data-image-width=&337& data-image-height=&337& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&DukeMTMC-reID State-of-the-art&/a&&p&----------------------------&/p&&p&感谢看完,欢迎讨论。&/p&&p&更多相关文章:&/p&&ul&&li&&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&2017 ICCV 行人检索/重识别 接受论文汇总&/a&&/li&&li&&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&用GAN生成的图像做训练?Yes!&/a&&/li&&li&&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&为什么混合Loss可以提升图像检索效果?&/a&&/li&&/ul&
正式接收的论文名单 Oral:Group Consistent Similarity Learning via Deep CRFs for Person Re-Identification Dapeng Chen, CUHK; Dan Xu, ; Hongsheng Li, ; Nicu Sebe, University of Trento, I Xiaogang Wang, Chinese University of Hong Kong S…
&p&作为曾经在人工智能+营销创意领域工作了一年多的PM,我也来回答一下。&/p&&p&&br&&/p&&p&一年多前和李叫兽加入百度去做智能创意的时候,其实我对AI究竟能对这个领域做什么还没有太多的期待,但经过一年的尝试,我认为AI在未来能颠覆目前创意人的很多工作。&/p&&p&&br&&/p&&p&首先,我们想一下传统创意人是如何工作的。&/p&&p&&br&&/p&&p&一个创意人工作的过程可以概括为:&b&为一个产品(或者品牌)找到最好的、最能打动最多比例目标受众的表达。&/b&&/p&&p&&br&&/p&&p&比如以现在火热的信息流广告(就是插在新闻资讯中的广告)为例,假设是一家做学历培训的公司,你可能参考正常的信息流广告讲故事的套路写一句:&/p&&p&“现在才知道,没有本科证,居然比同事工资少这么多”&/p&&p&&br&&/p&&p&在这个创意工作中,有很多你其实比AI更擅长(这个是为什么AI仍然没有大规模替代所有创意人的原因),比如你想到利用“落后心态”的套路、利用同事之间的嫉妒心等来说服。但这些都是AI并不擅长,或者做起来成本很高的。&/p&&p&&br&&/p&&p&那么AI在创意环境中到底能做什么?&/p&&p&&br&&/p&&p&我们知道,很多行业颠覆性的技术,经常不是把加强原来做的事情,而是根本性地替代,在底层找到优化方法。(类似于区块链并不是为加强中介,而是根本性质疑和替代中介的作用)&/p&&p&&br&&/p&&p&同样,AI也是这样。后来我们发现,&b&AI真正的作用并不是帮助创意人想到并找到最好的营销创意,而是根本性质疑“最好的创意”这一假设,让一个营销方案中不再需要一个最好的创意。&/b&&/p&&p&&br&&/p&&p&比如上面的创意“现在才知道,没有本科证,居然比同事工资少这么多”,并不一定所有人都会喜欢,而AI的作用就是自动把这句文案改写成无数版本(通过文本相似度识别、离线词表映射、文本自动替换等),并且通过大数据匹配给对应的人。&/p&&p&&br&&/p&&p&同样这个创意,另一个喜欢美女的男性中层看到,可能是“美女同事在这里上课一月,找到高薪好工作”;另外一个可能对“比同事工资少”不够敏感,而是更在意他人“成功案例”,那么看到的文案可能是“闺蜜工资涨了1万,原来是在这修了本科&/p&&p&”。&/p&&p&&br&&/p&&p&当时我们做的“智能打动点”项目,就是实现上面说的这种自动创意改写、替换的功能,识别客户创意用的表达,然后自动针对不同的用户替换成不同的表达,从而让创意能够打动所有的人。(大幅提高了在线广告的点击率,有的替换句式的提升幅度甚至高达200%,转化成本也大幅度降低。)&/p&&p&&br&&/p&&p&当时有一个案例是,一个卖房app公司(业界top公司)在标题中插入智能打动点后,落地页浏览成本降低了57.6%。&/p&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-c4ab6d2cf8a505fd5bd2f132_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&865& data-rawheight=&481& data-watermark=&& data-original-src=&& data-watermark-src=&& data-private-watermark-src=&& class=&origin_image zh-lightbox-thumb& width=&865& data-original=&https://pic3.zhimg.com/v2-c4ab6d2cf8a505fd5bd2f132_r.jpg&&&/figure&&p&&br&&/p&&p&具体怎么做呢?其实需要综合技术(比如文本识别、文本替换、文本相似度等)和营销的理论(比如把一个创意拆解成卖点、句式、人物、地点、诉求等元素),然后通过大量样本的训练,从而逐步做到精准度越来越高的文本改写,让一个单一的创意,自动变成千变万化版本。&/p&&p&&br&&/p&&p&比如培训机构帮你找到工作的卖点,无非就是“高薪”、“名企”、“升职”等关键词(通过大量广告样本的数据挖掘),不同人喜欢不同的卖点,那就当他看到的那一刻再进行替换就行了。同样,23岁小伙、37岁大妈、33岁美女老板、29岁同事、公司主管等,都代表了故事主人公,也可以进行替换。&/p&&p&&br&&/p&&p&&br&&/p&&p&最终就会达到这样的效果:创意人不需要苦思冥想想出最好的创意、找到最好的卖点,而是只需要根据业务想一些话,然后机器就能够自动替代形成大量的千人千面的创意。最终根据用户的数据,来判断出现什么创意。&/p&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-a044d4e645eca804bcc8b8ae2a3a41f2_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&865& data-rawheight=&455& data-watermark=&& data-original-src=&& data-watermark-src=&& data-private-watermark-src=&& class=&origin_image zh-lightbox-thumb& width=&865& data-original=&https://pic3.zhimg.com/v2-a044d4e645eca804bcc8b8ae2a3a41f2_r.jpg&&&/figure&&p&&br&&/p&&p&当时除了标题,我们还在做智能配图、智能落地页等,目的都是很简单:&b&我们认为将来的创意人不再需要做最好的创意,而是只需要做创意的半成品,让机器来根据不同人的不同兴趣去做判断&/b&。在线的收益数据也证明了,这样对广告平台来说,提高了流量效率,对广告主来说,简化了工作、提高了获客(很多客户有超过30%以上的效率提升,甚至有的用智能落地页降低了一半的转化成本)。&/p&&p&&br&&/p&&p&例如,我们利用智能落地页帮助一些行业做了一些case。以招商加盟为例,每个人进入落地页看到的内容都会根据用户画像本身的不同进行动态化匹配。&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-ca5b8d957c2445aeae5aeacd9cdd1bad_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&834& data-rawheight=&777& data-watermark=&& data-original-src=&& data-watermark-src=&& data-private-watermark-src=&& class=&origin_image zh-lightbox-thumb& width=&834& data-original=&https://pic2.zhimg.com/v2-ca5b8d957c2445aeae5aeacd9cdd1bad_r.jpg&&&/figure&&p&&br&&/p&&p&借用当时李叫兽在内部开会时形容的:我们做的本质上是“&b&薛定谔的创意&/b&”——一个创意被创意人想出来的时候,就像薛定谔的猫一样,是不确定的,谁也不知道用户最终看到的那句话、哪张图、什么颜色,只有当系统智能推荐给用户的那一刻,创意才最终定版。&/p&&p&&br&&/p&&p&我自己也认为这代表了未来营销工作要最终走向的方向——&b&走向智能的千人千面的营销,而非找到最好的方案。&/b&&/p&&p&&br&&/p&&p&而这可能能解决商品销售的重要矛盾:&b&无法兼顾个性化与传播效率。&/b&&/p&&p&&br&&/p&&p&过去最常用的方法是“推销”,非常个性化,推销员见人说人话、见鬼说鬼话(比如见到口渴的人,说果汁能解渴;见到健身的人,说果汁很健康),但是每个商品都这么做的话成本太高。&/p&&p&&br&&/p&&p&而这就是我认为AI未来真正对营销领域的帮助。赋予广告主每一条物料如推销员一样的“察言观色”能力。&/p&&p&&br&&/p&&p&&br&&/p&&p&&b&最后结论说一下我的几个判断(很多经历了教训总结出的):&/b&&/p&&p&&br&&/p&&p&&b&1,几乎所有的启发、增强赋能类的工具都不靠谱&/b&&/p&&p&&br&&/p&&p&当时我们一开始做的就是,利用大数据挖掘,帮助人找到最能打动用户的创意灵感——比如“好文案搜索”、“智能提词器”等工具,让你可以选择不同的人群、不同的产品,自动就能看到什么表达能够打动这些用户。&/p&&p&&br&&/p&&p&比如说我们当时做的一款“好文案搜索”工具,通过聚类全网百万级别的优质创意,然后利用营销模型+机器学习,将这些文案重新聚类推荐给用户。&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-fa6c9240eaa819b221ce67d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&865& data-rawheight=&428& data-watermark=&& data-original-src=&& data-watermark-src=&& data-private-watermark-src=&& class=&origin_image zh-lightbox-thumb& width=&865& data-original=&https://pic2.zhimg.com/v2-fa6c9240eaa819b221ce67d_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-b9ca9ff1c11de48cb82bc_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&865& data-rawheight=&411& data-watermark=&& data-original-src=&& data-watermark-src=&& data-private-watermark-src=&& class=&origin_image zh-lightbox-thumb& width=&865& data-original=&https://pic1.zhimg.com/v2-b9ca9ff1c11de48cb82bc_r.jpg&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&工具的诞生也都带来了点击率等提升效果。例如,在“好文案搜索”的工具上,一些优质的文案套路,像“错过又要等一年”、“此链接专享”等,用户用完后的效果提升很明显。&br&&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-1e55592fae5bbec5d93ea00_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&865& data-rawheight=&474& data-watermark=&& data-original-src=&& data-watermark-src=&& data-private-watermark-src=&& class=&origin_image zh-lightbox-thumb& width=&865& data-original=&https://pic1.zhimg.com/v2-1e55592fae5bbec5d93ea00_r.jpg&&&/figure&&p&&br&&/p&&p&但是会存在这种问题——&b&那就是随着用户使用人数增加,创意的效果提升幅度会下降&/b&(当然永远有正面效果,我们覆盖达到百度所有客户过半以上的时候仍然能有不错效果)。&/p&&p&&br&&/p&&p&为什么会这样?因为你一旦通过大数据挖掘一个好点子,最好是给少数人用,如果所有人都用好点子,那么创意就会同质化,从而降低效果。&/p&&p&&br&&/p&&p&就像智能推荐股票软件,也是这个问题,如果我挖掘到一个好股票,我最好谁也不告诉,自己重仓、加杠杆去买,如果我一直有个工具能挖掘好股票,那我做的可能比桥水基金都大了。我干嘛要把这个信息通过工具告诉我所有的用户?&/p&&p&&br&&/p&&p&所以,智能创意的本质是要实现千人千面,让创意千变万化适应不同用户需求,而非帮助营销人启发想出更多好创意。不是帮助人从0到1想创意(这个用培训和看书来做更靠谱),而是帮你提高任何创意的表现。&/p&&p&&br&&/p&&p&2,智能创意的爆发口一定在效果广告行业&/p&&p&&br&&/p&&p&这个很简单,效果广告行业(比如信息流广告),是一个需要大规模创意量并且有迅速数据反馈的场景。电视广告等样本量太小、又没有数据,基本上很难中短期内有智能创意成分。&/p&&p&&br&&/p&&p&&b&3,将来的智能创意,可能演化形态就是一个对话式创意系统&/b&&/p&&p&&br&&/p&&p&也就是,通过你跟机器的多轮交互(机器问你问题,你回答问题),然后机器根据你回答的问题(相当于原始语料)完成检索、合成创意并启动改写。&/p&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-ee4cb61584f_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&865& data-rawheight=&488& data-watermark=&& data-original-src=&& data-watermark-src=&& data-private-watermark-src=&& class=&origin_image zh-lightbox-thumb& width=&865& data-original=&https://pic4.zhimg.com/v2-ee4cb61584f_r.jpg&&&/figure&&p&&br&&/p&&p&这个我们当时8月份做过一个版本,也有了雏形,客户回答几个简单问题,就能检索创意,并且进行改写和替换,但后来很快Robin就调李叫兽和团队去做更重要的主航道业务feed了,我也开始了对区块链的研究和投资,这个“创意机器人”项目就暂时搁置了。&/p&&p&&br&&/p&&p&不过我相信未来的营销一定会出现一个很好用的人机对话创意系统,机器通过模拟顾问的工作(先问你问题),帮你找到答案(洞察),并且变成千人千面的创意。&/p&&p&&br&&/p&&p&人工智能跟营销人员抢饭碗,不在今天,就在明天。&/p&
作为曾经在人工智能+营销创意领域工作了一年多的PM,我也来回答一下。 一年多前和李叫兽加入百度去做智能创意的时候,其实我对AI究竟能对这个领域做什么还没有太多的期待,但经过一年的尝试,我认为AI在未来能颠覆目前创意人的很多工作。 首先,我们想一下…
&figure&&img src=&https://pic1.zhimg.com/v2-0b1dbd78a2a17ea7b3797_b.jpg& data-rawwidth=&620& data-rawheight=&364& class=&origin_image zh-lightbox-thumb& width=&620& data-original=&https://pic1.zhimg.com/v2-0b1dbd78a2a17ea7b3797_r.jpg&&&/figure&&p&
Attention是一种用于提升基于RNN(LSTM或GRU)的Encoder + Decoder模型的效果的的机制(Mechanism),一般称为Attention Mechanism。Attention Mechanism目前非常流行,广泛应用于机器翻译、语音识别、图像标注(Image Caption)等很多领域,之所以它这么受欢迎,是因为Attention给模型赋予了区分辨别的能力,例如,在机器翻译、语音识别应用中,为句子中的每个词赋予不同的权重,使神经网络模型的学习变得更加灵活(soft),同时Attention本身可以做为一种对齐关系,解释翻译输入/输出句子之间的对齐关系,解释模型到底学到了什么知识,为我们打开深度学习的黑箱,提供了一个窗口,如图1所示。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-016fb32bc75f4131a7dbf_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&819& data-rawheight=&901& class=&origin_image zh-lightbox-thumb& width=&819& data-original=&https://pic4.zhimg.com/v2-016fb32bc75f4131a7dbf_r.jpg&&&/figure&&p&图1 NLP中的attention可视化&/p&&p&
又比如在图像标注应用中,可以解释图片不同的区域对于输出Text序列的影响程度。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-b5dcc336fabb_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&690& data-rawheight=&318& class=&origin_image zh-lightbox-thumb& width=&690& data-original=&https://pic4.zhimg.com/v2-b5dcc336fabb_r.jpg&&&/figure&&p&图2 图像标注中的attention可视化&/p&&p&
通过上述Attention Mechanism在图像标注应用的case可以发现,Attention Mechanism与人类对外界事物的观察机制很类似,当人类观察外界事物的时候,一般不会把事物当成一个整体去看,往往倾向于根据需要选择性的去获取被观察事物的某些重要部分,比如我们看到一个人时,往往先Attention到这个人的脸,然后再把不同区域的信息组合起来,形成一个对被观察事物的整体印象。&b&因此,&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzIxNDgzNDg3NQ%3D%3D%26mid%3D%26idx%3D1%26sn%3D712df7bdece%26chksm%3D97a0c84ca0d7415aee9ef00f104665ccf8cf41bbb6b2f63dc2685c%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Attention Mechanism可以帮助模型对输入的X每个部分赋予不同的权重,抽取出更加关键及重要的信息,使模型做出更加准确的判断,同时不会对模型的计算和存储带来更大的开销,这也是Attention Mechanism应用如此广泛的原因。&/a&&/b&&/p&&p&
有了这些背景知识的铺垫,接下来就一一介绍下Attention Mechanism其他细节,在接写来的内容里,我会主要介绍以下一些知识:&/p&&p&&br&&/p&&p&&b&1. Attention Mechanism原理&/b&&/p&&p&&b&
1.1 Attention Mechanism主要需要解决的问题&/b&&/p&&p&&b&
1.2 Attention Mechanism原理&/b&&/p&&p&&br&&/p&&p&&b&2. Attention Mechanism分类&/b&&/p&&p&&b&基本attention结构&/b&&/p&&p&&b&
2.1 soft Attention 与Hard Attention&/b&&/p&&p&&b&
2.2 Global Attention 和 Local Attention&/b&&/p&&p&&b&
2.3 Self Attention&/b&&/p&&p&&b&组合的attention结构&/b&&/p&&p&&b&
2.4 Hierarchical Attention&/b&&/p&&p&&b&
2.5 Attention in Attention&/b&&/p&&p&&b&
2.3 Multi-Step Attention&/b&&/p&&p&&br&&/p&&p&&b&3. Attention的应用场景&/b&&/p&&p&&b&
3.1 机器翻译(Machine Translation)&/b&&/p&&p&&b&
3.2 图像标注(Image Captain)&/b&&/p&&p&&b&
3.3 关系抽取(EntailMent Extraction)&/b&&/p&&p&&b&
3.4 语音识别(Speech Recognition)&/b&&/p&&p&&b&
3.5 自动摘要生成(Text Summarization)&/b&&/p&&p&&b&1. Attention Mechanism原理&/b&&/p&&p&&b&1.1 Attention Mechanism主要需要解决的问题&/b&&/p&&p&
《Sequence to Sequence Learning with Neural Networks》介绍了一种基于RNN的Seq2Seq模型,基于一个Encoder和一个Decoder来构建基于神经网络的End-to-End的机器翻译模型,其中,Encoder把输入X编码成一个固定长度的隐向量Z,Decoder基于隐向量Z解码出目标输出Y。这是一个非常经典的序列到序列的模型,但是却存在&b&两个明显的问题:&/b&&/p&&p&
1、把输入X的所有信息有压缩到一个固定长度的隐向量Z,忽略了输入输入X的长度,当输入句子长度很长,特别是比训练集中最初的句子长度还长时,模型的性能急剧下降。&/p&&p&
2、把输入X编码成一个固定的长度,对于句子中每个词都赋予相同的权重,这样做是不合理的,比如,在机器翻译里,输入的句子与输出句子之间,往往是输入一个或几个词对应于输出的一个或几个词。因此,对输入的每个词赋予相同权重,这样做没有区分度,往往是模型性能下降。&/p&&p&
同样的问题也存在于图像识别领域,卷积神经网络CNN对输入的图像每个区域做相同的处理,这样做没有区分度,特别是当处理的图像尺寸非常大时,问题更明显。因此,2015年,Dzmitry Bahdanau等人在《Neural machine translation by jointly learning to align and translate》提出了Attention Mechanism,用于对输入X的不同部分赋予不同的权重,进而实现软区分的目的。&/p&&p&&br&&/p&&p&&b&1.2 Attention Mechanism原理&/b&&/p&&p&
要介绍Attention Mechanism结构和原理,首先需要介绍下Seq2Seq模型的结构。基于RNN的Seq2Seq模型主要由两篇论文介绍,只是采用了不同的RNN模型。Ilya Sutskever等人与2014年在论文《Sequence to Sequence Learning with Neural Networks》中使用LSTM来搭建Seq2Seq模型。随后,2015年,Kyunghyun Cho等人在论文《Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation》提出了基于GRU的Seq2Seq模型。两篇文章所提出的Seq2Seq模型,想要解决的主要问题是,如何把机器翻译中,变长的输入X映射到一个变长输出Y的问题,其主要结构如图3所示。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-2a5baf4ebc73f2862fae_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&706& data-rawheight=&664& class=&origin_image zh-lightbox-thumb& width=&706& data-original=&https://pic3.zhimg.com/v2-2a5baf4ebc73f2862fae_r.jpg&&&/figure&&p&图3 传统的Seq2Seq结构&/p&&p&
其中,Encoder把一个变成的输入序列x1,x2,x3....xt编码成一个固定长度隐向量(背景向量,或上下文向量context)c,c有两个作用:1、做为初始向量初始化Decoder的模型,做为decoder模型预测y1的初始向量。2、做为背景向量,指导y序列中每一个step的y的产出。Decoder主要基于背景向量c和上一步的输出yt-1解码得到该时刻t的输出yt,直到碰到结束标志(&EOS&)为止。&/p&&p&
如上文所述,传统的Seq2Seq模型对输入序列X缺乏区分度,因此,2015年,Kyunghyun Cho等人在论文《Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation》中,引入了Attention Mechanism来解决这个问题,他们提出的模型结构如图4所示。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-163c0c3dda50d1fe7a4f7a64ba728d27_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&504& data-rawheight=&676& class=&origin_image zh-lightbox-thumb& width=&504& data-original=&https://pic4.zhimg.com/v2-163c0c3dda50d1fe7a4f7a64ba728d27_r.jpg&&&/figure&&p&图4 Attention Mechanism模块图解&/p&&p&
在该模型中,定义了一个条件概率:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-63ec14c6ecc76814b6ec_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&525& data-rawheight=&46& class=&origin_image zh-lightbox-thumb& width=&525& data-original=&https://pic1.zhimg.com/v2-63ec14c6ecc76814b6ec_r.jpg&&&/figure&&p&
其中,si是decoder中RNN在在i时刻的隐状态,如图4中所示,其计算公式为:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-de918a0ad5f38e2b2e199ae27b018b32_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&352& data-rawheight=&46& class=&content_image& width=&352&&&/figure&&p&
这里的背景向量ci的计算方式,与传统的Seq2Seq模型直接累加的计算方式不一样,这里的ci是一个权重化(Weighted)之后的值,其表达式如公式5所示:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-b9f1bbbf70f76e39fc3da_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&494& data-rawheight=&90& class=&origin_image zh-lightbox-thumb& width=&494& data-original=&https://pic3.zhimg.com/v2-b9f1bbbf70f76e39fc3da_r.jpg&&&/figure&&p&
其中,i表示encoder端的第i个词,hj表示encoder端的第j和词的隐向量,aij表示encoder端的第j个词与decoder端的第i个词之间的权值,表示源端第j个词对目标端第i个词的影响程度,aij的计算公式如公式6所示:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-ba995fd335a962b129529bbdbf9bec25_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&715& data-rawheight=&147& class=&origin_image zh-lightbox-thumb& width=&715& data-original=&https://pic2.zhimg.com/v2-ba995fd335a962b129529bbdbf9bec25_r.jpg&&&/figure&&p&
在公式6中,aij是一个softmax模型输出,概率值的和为1。eij表示一个对齐模型,用于衡量encoder端的位置j个词,对于decoder端的位置i个词的对齐程度(影响程度),换句话说:decoder端生成位置i的词时,有多少程度受encoder端的位置j的词影响。对齐模型eij的计算方式有很多种,不同的计算方式,代表不同的Attention模型,最简单且最常用的的对齐模型是dot product乘积矩阵,即把target端的输出隐状态ht与source端的输出隐状态进行矩阵乘。常见的对齐计算方式如下:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-967aac9fdc4_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&478& data-rawheight=&123& class=&origin_image zh-lightbox-thumb& width=&478& data-original=&https://pic1.zhimg.com/v2-967aac9fdc4_r.jpg&&&/figure&&p&
其中,Score(ht,hs) = aij表示源端与目标单单词对齐程度。可见,常见的对齐关系计算方式有,点乘(Dot product),权值网络映射(General)和concat映射几种方式。&/p&&p&&b&2. Attention Mechanism分类&/b&&/p&&p&&b&2.1 soft Attention 和Hard Attention&/b&&/p&&p&
Kelvin Xu等人与2015年发表论文《Show, Attend and Tell: Neural Image Caption Generation with Visual Attention》,在Image Caption中引入了Attention,当生成第i个关于图片内容描述的词时,用Attention来关联与i个词相关的图片的区域。Kelvin Xu等人在论文中使用了两种Attention Mechanism,即Soft Attention和Hard Attention。我们之前所描述的传统的Attention Mechanism就是Soft Attention。Soft Attention是参数化的(Parameterization),因此可导,可以被嵌入到模型中去,直接训练。梯度可以经过Attention Mechanism模块,反向传播到模型其他部分。&/p&&p&
相反,Hard Attention是一个随机的过程。Hard Attention不会选择整个encoder的输出做为其输入,Hard Attention会依概率Si来采样输入端的隐状态一部分来进行计算,而不是整个encoder的隐状态。为了实现梯度的反向传播

我要回帖

更多关于 www.8080ai 的文章

 

随机推荐