NIPS 2018 | Edward2.2,一种可以用 TPU 大规模训练的概率编程

论文速递 Admin ⋅ 于 3个月前 ⋅ 302 阅读

作者:Dustin Tran等
来源:机器之心@微信公众号(ID:almosthuman2014)

深度学习的很多研究结果都模糊了模型和计算之间的界限,有的甚至表明是一种「可微分编程」的新范式,它们的目标不仅仅是训练模型,同时还希望实现一般的程序综合体。在这一观点下,注意力机制和门控机制可以描述布尔逻辑运算符,残差连接和条件计算可以描述控制流,外部记忆可以访问函数内部作用范围外的元素。此外,学习算法也将变得越来越动态,例如学习如何学习、神经架构搜索和层级内的最优化等。

可微分编程范式鼓励建模者明确考虑计算成本,我们不仅需要考虑模型的统计属性,例如模型到底能不能拟合真实数据分布,拟合得又有多好。同时我们还需要考虑计算量、内存占用和传输带宽的成本等,这里主要关注训练和预测的效率究竟怎样。

相比之下,概率编程社区主要倾向于在模型和计算之间划清界限:首先我们可以指定一个概率模型作为程序,其次我们可以执行「inference query」以在给定数据的情况下自动训练模型。这种设计使得概率编程很难在大规模真实环境下实现概率模型,其中大规模可能需要训练有数十亿参数量的模型,并要求通过多个加速器和调度通信切分模型计算量。

Edward 等最近的研究能更好地控制深度学习中的推断过程,然而它们都将推断过程作为一个封闭系统,因此很难构成任意的计算或更广泛的机器学习生态系统。

在这篇论文中,作者描述了一种在深度学习生态系统中嵌入概率编程的简单方法,且他们在 TensorFlow 和 Python 实现了新的库 Edward2.2。这种轻量方法为灵活建模提供了底层模块,深度学习研究者可以使用概率基元灵活地设计原型。本论文主要的贡献有三点:

1)作者将概率编程的核心提炼为单个抽象:随机变量。

2)这种底层设计有两个重要意义:首先它允许研究具有足够的灵活性;其次它允许使用张量计算单元(TPU)等加速器实现更大的模型。

3)作者后面还举例了三种应用:通过 TPU 训练的模型并行化变分自编码器;由 TPU 训练的数据并行化自回归模型;和多 GPU No-U-Turn Sampler (NUTS)。本文并没有介绍这三种应用,感兴趣的读者可查看原论文。

论文:Simple, Distributed, and Accelerated Probabilistic Programming

file

论文地址:https://arxiv.org/abs/1811.02091

摘要:我们描述了一种用于在深度学习生态系统中嵌入概率编程的简单、底层方法。具体来说,我们将概率编程归结为一个抽象:随机变量。我们在 TensorFlow 中的轻量级实现支持许多应用:通过 TPU(TPUv2)训练的模型并行变分自编码器(VAE);通过 TPUv2 训练的数据并行自回归模型(Image Transformer);多 GPU 且无 U-Turn 的取样器(NUTS)。对于 64x 64 ImageNet 上的最新 VAE 和 256 x256 CelebA-HQ 上的 Image Transformer,我们的方法实现了从 1 到 256 块 TPUv2 芯片的线性加速。通过 NUTS,我们发现在 GPU 我们的方法比 Stan 快 100 倍,比 PyMC3 快 37 倍。

随机变量

我们在 Edward2 中概述了概率编程。它们只需要一个抽象:随机变量。然后,我们描述了如何利用追踪来执行灵活的底层操作。Edward 2 将任何可计算的概率分布具化为 Python 函数(程序),通常该函数执行生成过程并返回示例。

file

图 1:Beta-Bernoulli 程序。在即时运行模式中,model() 生成一个包含 50 个因素的二进制向量,model() 返回一个 op,该 op 在 TensorFlow 会话中进行评估。

file

图 2:变分程序 [35],可在即时运行模式下获得。Python 控制流可用于生成流程:给定硬币翻转,该程序可根据两个神经网络中的一个 生成流程。其输出具有不同的形状和结构。

file

图 3:分布式自回归流。(右)默认长度是 8,每个有 4 个独立的流。每个流通过关于自回归排序的层来转换输入。(左)流跨越 4x4 内核(矩形)的虚拟拓扑进行划分;每个内核计算两个流,并在本地连接;最后会汇集一个内核。虚拟拓扑与物理 TPU 拓扑对齐:对于 4x4 TPU,它很精确;对于 16x16 TPU,它要为了数据并行性而复制。

file

图 4:通过 TPU 训练模型并行的 VAE,从 8 位延迟生成 16 位 latents。先验和解码器根据分布式自回归流来分割计算。编码器可能会根据压缩器分割计算;为了节省空间我们选择忽略它。

file

图 6:一个程序执行。它是有向无环图,并追踪累计对数概率等各种 op 或寻找条件独立性。作者:Ming Pang、Wei Gao、Min Tao、Zhi-Hua Zhou
来源:机器之心@微信公众号(ID:almosthuman2014)

互联网的繁荣使得在线活动早已成为我们日常生活中一个必不可少的部分,例如,越来越多的客户更喜欢使用 Amazon 和 eBay 购物;很多人在 Youtube 和 Netflix 上观看各种各样的电影和电视节目。由于内容和用户的数量都在急剧增长,有效地推荐合适的产品是很有挑战性的工作。因此,各种各样的协同过滤技术被开发用于形形色色的系统,以帮助客户在一众内容中选择他们最喜爱的产品(Li et al., 2009; Bresler et al., 2014; Rao et al., 2015)。

很多协同过滤方法无力应对垃圾邮件制造者和排名操纵(Ling et al., 2013; Gunes et al., 2014),攻击者可能会向 user-item 评分矩阵中插入虚假的评分来使系统产生偏差。一些攻击者可能会增加他们内容的流行度(push attack,推攻击),一些攻击者则可能会减少竞品的流行度(nuke attack,核攻击)。大多数攻击检测研究聚焦于托攻击(shilling attack),并且在多种托攻击策略上表现出了较好的检测性能 (Mehta, 2007; Hurley et al., 2009; Ling et al., 2013)。他们认为所有的攻击都在使用同样的策略使某个特定的条目升级或者降级。例如,某个攻击组织者可能会生成数百个虚假用户资料,在这种策略中,每个假用户会给最流行的电影给出高分评价,而给要降级的目标电影给出低分评价。

各种各样切实可行的技术被开发用于控制托攻击,例如,网站注册需要实名和电话号码认证;验证码被用于确定某个响应是否由机器人生成;客户在购物网站上购买了某个产品之后才能进行评价。基于这些方法,传统的托攻击可能面临比较高昂的代价。例如,Amazon 等电商网站上的小型在线零售商可能不太愿意生成百上千个虚假客户来实现一次托攻击。

这篇论文研究了一种新型攻击模型——无组织恶意攻击(unorganized malicious attack),攻击者在没有任何组织者的情况下单独使用少量的用户资料来攻击目标。这种攻击类型在很多实际应用中都有发生,例如,Amazon 上的在线商店可能会制造一些虚假评价,降低其竞品高质量鞋子的评分;作家可能会雇佣几个读者给他们的低质量书籍打好评。实际证明这种少数的无组织恶意攻击会严重地影响系统,例如,首次恶意差评能够将卖家的销量较低 13% (Luca, 2016)。

研究者先将无组织恶意攻击公式化为矩阵补全问题的变体。X 代表没有噪声和攻击的真实评价矩阵,该矩阵是低秩矩阵,因为用户的偏好会受多个因素的影响 (Salakhutdinov et al., 2007)。让 Y 代表稀疏攻击评分矩阵,Z 代表噪声矩阵。我们可以观察到一个(部分)矩阵 M = X + Y + Z。据我们所知,之前的研究工作没有对攻击检测做出类似的公式化阐述。本研究中的优化问题和鲁棒 PCA 之间的主要区别是:鲁棒 PCA 主要聚焦于从完全或者不完全矩阵中恢复低秩矩阵 X,本研究则更注重从微弱扰动的噪声项 Z 中区分稀疏攻击项 Y。

理论上,本研究证明了低秩评价矩阵 X 和稀疏矩阵 Y 可以在一些经典的矩阵补全假设下恢复。本研究提出了无组织恶意攻击检测算法(UMA),可以看作是一种近似交替分裂增广拉格朗日(proximal alternating splitting augmented Lagrangian)方法。研究者开发了一些新技术,证明该方法在全局收敛的最糟糕的情况下也具有 O(1/t) 的收敛速度。实验结果证明了该算法的有效性,且优于当前最优的攻击检测方法。

论文:Unorganized Malicious Attacks Detection

file

论文链接:https://arxiv.org/pdf/1610.04086.pdf

摘要:过去十年,推荐系统吸引了很多关注。人们开发了许多攻击检测算法来提供更好的推荐,这些算法大多数聚焦于托攻击,在托攻击中,攻击组织者生成大量的用户资料,通过同样的策略来升级或者降级某个商品。本研究考虑了一种不同的攻击类型:无组织恶意攻击。在这种攻击中,攻击者在没有组织者的情况下单独使用少量的用户资料来攻击不同的目标。尽管这种无组织恶意攻击发生在很多实际应用中,但是相关的研究仍然是一个开放性问题。我们首次将无组织恶意攻击公式化地阐述为一个矩阵补全问题,并且提出了无组织恶意攻击检测算法(UMA),这是一种近似交替分裂增广拉格朗日方法。我们分别在理论上和实验中验证了该方法的有效性。

UMA 算法:

file

实验

file

表 1:在结合了传统策略的无组织恶意攻击下,UMA 与其他算法在数据集 MovieLens 100K 和 MovieLens 1M 上的检测查准率、查全率以及 F1 得分对比。

file

表 2:在一般无组织恶意攻击下,UMA 和其他算法在数据集 MovieLens 100K 和 MovieLens 1M 上的检测查准率、查全率和 F1 得分对比。

file

表 3:UMA 与其他算法在 Douban 10K 上的检测查准率,查全率以及 F1 得分对比。

微信公众号: 极市平台(ID: extrememart )
每天推送最新CV干货

成为第一个点赞的人吧 :bowtie:
回复数量: 0
暂无回复~
您需要登陆以后才能留下评论!