前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从未失手的AI 预测:川普将赢得选举,入主白宫 (附深度学习生成川普语录教程)

从未失手的AI 预测:川普将赢得选举,入主白宫 (附深度学习生成川普语录教程)

作者头像
新智元
发布2018-03-26 10:20:52
9520
发布2018-03-26 10:20:52
举报
文章被收录于专栏:新智元新智元

【新智元导读】 从2004年开始连续三次准确预测美国总统大选结果的AI系统MogAI10月28日发布最新预测,看好川普赢得与希拉里的2016总统之争。不管最终结果如何,川普作为美国总统候选人都已经获得了“深入人心”的形象,国外甚至有人整理了他的一些有趣的言论,推出“川普语录”。本文后半部分秉承新智元的干货原则,手把手教你使用递归神经网络在TensorFlow上让生成川普讲话。

“唐纳德·川普会赢”,准确预测了前三场选举的AI系统如此说道。

“如果川普输了,将是过去12年里第一次违反数据趋势,”AI的开发人员说。

2016年10月27日在日内瓦(俄亥俄州)的竞选集会上,支持者们在聆听共和党总统候选人唐纳德·川普的演讲。川普花了一整天在俄亥俄州进行竞选造势。

一个高度可靠的统计模型预测唐纳德·川普将在总统竞选中胜出,人工智能系统已经成功预测了过去三次总统选举。

MogAI是印度医疗保健公司Genic.ai的创始人Sanjiv Rai开发的AI系统,它预测唐纳德·川普将成为美国总统,CNBC报道。

MogAI——名字来源于《奇幻森林》(“The Jungle Book”)的Mowgli,因为它就像那个狼孩,它从环境中学习——已经正确地预测了前三次总统选举的结果,以及民主党和共和党的初选结果。它使用来自Facebook,Twitter和Google等公共平台的信息生成投票行为的预测。

数据显示,人们对川普话题的参与度比2008年奥巴马顶峰时还要高25%。从表面上看,这种参与表示支持候选人。

Rai向CNBC解释说,“如果川普输了,将是过去12年中第一次违反数据趋势,12年前互联网开始全面介入竞选活动。”

但是,AI系统没有考虑它检测的用户活动的语气或意图。因此,如果有人在Twitter上发表对Trump的负面态度,AI也将其简单地标注为“参与”,认为是积极的量度。

Rai写道:“数据的粒度决定了偏见是越来越少的,尽管掺杂有消极或积极的权重。”

换句话说,更准确的数据能让MogAI分辨出候选人的支持者和反对者。例如,获取用户的IP地址能让AI系统更精确地跟踪用户的总体参与情况。

Rai 承认AI系统还有其他潜在的漏洞。例如,现在在社交媒体参与总统竞选讨论的用户比2008年时更多。尽管如此,正如川普所擅长的:任何宣传都可以是好的宣传。

“如果你看看初选就会发现,在初选阶段,社交媒体上出现了大量针对川普的负面言论,”Rai说,“然而,讨论越来越多,对川普是有利的。最后川普以不错的言论形象在初选中胜出了。” CNBC称,川普现在的胜率已经比2008年时候的奥巴马高出25%。MogIA始建于2004年,已经准确地预测出美国最近三次民主党与共和党的总统大选之争。

干货:用RNN生成川普语录

来源:http://deeplearningathome.com/

本文将介绍如何向Tensorflow的语言建模教程中添加采样步骤/模式。让人非常惊奇的是,RNN可以从极少的数据中学习。我们使用川普的讲话作为样本。

递归神经网络(RNN),正如其名字所指,是具有递归连接的神经网络。也就是说,它与更简单的前馈网络不同,它不仅考虑当前的输入,还考虑前个状态。由于这种改进,RNN是许多类型的时序数据(文本、话语、音频、视频等)建模时的自然选择。有时,RNN模型(尤其是LSTM风格不同的)可以非常有效。RNN经常被用作更大型、更复杂的模型的构建块,这种形式下他们可以帮助语音识别、机器翻译、语言建模以及其他任务达到最优的结果。

本文中,我将从Tensorflow的语言建模教程开始,并做一点点修改,使它更有趣。

要使用下面的代码,强烈建议您至少使用一个更高端的NVIDIA GPU。在另一篇文章中我介绍了我的硬件配置(http://deeplearningathome.com/2016/09/Building-PC-For-Deep-Learning-Hardware.html)。你还需要安装Tensorflow。

PTB文本和字符模型

Tensorflow的语言建模教程使用非常小的Penn Tree Bank数据集中更小型的模型。不过,它是使用RNN做语言建模的非常好的介绍。更“大”的模型需要在一台GTX 1080上花费约3.5小时训练。

完整源代码可以在GitHub上获得(https://github.com/deeplearningathome/rnn_text_writer)。

语言建模

语言建模是一种在一系列所有可能的词序列中学习概览分布P(w_1, ..., w_n)的任务。其目标是理解这样一个事实:在概率分布P中真正的句子会比随机的单词组合拥有更大的概率。一旦这些概率分布原理被学会,我们就能把它当成一个生成模型,从中建立样本,以生成新的文本。从语言模型中抽取样本是最有趣的部分,但是,在TensorFlow的官方教程中并不包含这一部分,所以,我们在这里进行补充。

首先,我们对模型的图进行调整,把样本生成器包括进来:

接下来,我们增加抽样函数,由它来喂给数据并实际执行抽样:

注意到这一函数接收到了一个种子序列( seeding sequence),并将根据这一种子序列,抽取它的第一个样本。对于第一个之后的所有样本,它会同时考虑种子序列和此前生成的样本。你可以生成任意长度的样本序列。

PTB 数据集很小,并且执行的是现代的标准。在数据集中,它只有887521个单词,附带一个词汇表,内含10000个不同的词汇。我会使用这一数据库训练2个模型:1)一个使用单词作为输入的语言模型;2)只使用字母作为输入的语言模型。

基于单词的PTB语言模型

在这里,我遵照TensorFlow的官方教程,实现了78.853的测试复杂度,这与Zaremba等人提供的原论文《Recurrent Neural Network Regularization》是一致的。在训练模型之前,我在每一epoch上增加了抽样步骤。

我的种子词组是“the balance is supplied”,这是在原始的数据中找到的词组。在进行训练并随机的生成模型之前,我得到的一些东西包括:

influx stretching stein formula sell petco intellectual underwear conglomerate rowe microsoft than audio exactly cardiovascular azoff order boasts usx child-care 26-week petrie commodity misconduct recycling

正如早先期待的那样,这没什么意义,意味着我们在词序列的(目前随机的)概率分布并不是特别有用。让我们检查一下,离最终的训练还有多远。再一次的,我们使用种子词组“the balance is supplied”。在经历了54epoch后,我得到的结果是:

by slowing growth jack chips the government 's chief financial officer in detroit said the intention of investment to be produced by citicorp

55次epoch 后我得到:

as defendants allow many purchasers to participate in proportion to those who are no greater than a temporary recession to invest he admits the

注意,至少从语法上,这看起来已经很像英语了。例如,在“the balance is supplied”之后,单词 “as” or “by” 比“influx”在语法上更正确。还有,后面两句话的 “topic” 是 finance或investing,而第一句话至少随机的单词组合(本来也应该如此)。

基于字母的PTB语言模型

我把代码中的配置也写出来了:

为了便于比较,我使用了相同的种子词组:“the balance is supplied”。当我使用随机生成的模型抽样,获得的东西如下:

usb9xkrd9ruaias$dsaqj’4lmjwyd61\se.lcn6jey0pbco40ab’65<8um324 nqdhm<ufwt#y*/w5bt’nm.zq«2rqm-a2'2mst#u315w&tNwdqNafqh

这是一个字母的随机序列。令人意外的是,在第一个epoch之后(验证复杂度为3.64),我得到的结果如下:

to will an apple for a N shares of the practeded to working rudle and a dow listed that scill extressed holding a

仅仅在一个epoch之后,模型似乎就已经学会了英语单词。虽然词组本身不具有意义,其中的词语毫无疑问已经是英文,只不过有一两个排列的错误。在第76个epoch之后,我得到的验证复杂度为3.076,样本看起来变成了这样:

president economic spokesman executive for securities was support to put used the sharelike the acquired who pla

再次的,毫无疑问这是英文,但是没多大意义。但是,验证复杂度跟第一个epoch相比,并没有多大的提升。

川普语录生成器

我在美国写下这篇文章,此时正有一场总统大选在进行。这一次选举的候选人有些不寻常,我们想看看字母级别的RNN能从他们的言论中学到什么。

我搜集了川普几次演讲的底稿。你可以在Github上获取(https://github.com/deeplearningathome/rnn_text_writer)。所有的这些演讲知识产权都属于川普,在这里仅用于语言建模研究使用。我一共使用了7篇讲稿,作为训练集,还有一个作为验证集。需要注意的是,这是一个非常非常小的训练数据集。训练集中包含的的单词比PTB数据库要小一个量级。如果模型能在如此小的数据库中学习一些东西,那简直太令人兴奋了。自然地,我会训练基于字母的而不是基于单词的模型。我还降低了所有字母,忽视掉除了字母之外的一些东西,以及标点符号。

以下是我使用的训练配置:

用于抽样的种子词组,我选择了“make america”。当然,随机的模型产生的是随机的字母集。但是,随后,我们开始得到一些东西:

a border will be a folk the everyn country, last an lobfer as no

在第四个Epoch之后(训练复杂度为5.486)。这不仅仅看起来更像英语,同时也反映了川普讲话的一些重点话题(比如,border, country)。再次的,在训练之前,模型对英语或者川普一无所知,仅仅有作为输入特征的字母。接近训练结束时(第55epoch,训练复杂度3.029),我得到如下的一些东西:

n plan will be again.the radical islamic steel that establishme

使用最后的模型,从中抽取更多的文本。你可以给予任何你想要的种子作为输入,抽取任意多的字母。

如果这样训练模型:

你可以通过添加抽样标志从中进行抽样:

那么,我们开始吧:

  • 种子: “hillary”. 继续:

n will end speech taxes. theyre administration almost choa. it is time to federal people.

  • 种子: “russia”. 继续:

n, will not even work at our victory of as now? radical immigrants who start only has been me as federal erol trapped into being shongth mentions.

  • 种子: “war on terror”. 继续:

ism around who are many earels bill closs institute and tonight, they need to couse today, she has been every, and secure the demainst tould came they end by the failed radical islam immigration

  • 种子: “build a wall around mexico”. 继续:

is highated to have the transpacifical great illegal immigrants will be able her signing too administration.this includes now is not a children, theyve reform everyant at our workers

  • 种子: “our economy is”. 继续:

about pulpneedressed delieve nothing to already families under the american people who want americans. we will cause the shifted by the national illegal immigrants shes cannot fwart to protect our

  • 最后,从RNN Donald更大的样本中,种子:“if i win election”

继续:

the hillary clinton cheated, and we have on our grussics and close.just that how for the convioration will be her its redicentable that. this includes immigration class nearly raxs activity, and terrorism will, sobificial politicians man at sofice. our new good. never runes to obamaclinton, just one who have provide the reprofuction, needs of corations, and brutally friend to do the american people, for it away. which theng me in it, the u.s.you cant not believe. we have an igned to speech. together, we are going to take a members, or doctors with system in order to every other agreements has been so served isis about how our provided. there is how surrend.remember, all up for the radical people their eeerly stuel million projects and crime.this are going to know about her alartpess of anysoming now talking hillary clintonwages?i have come and better east, and me tunn this taxard obama grow and the must make america many、

显然,你实际的样本会根据抽样过程固有的随机性而产生变化。

结论

在文本建模上,递归神经非常强大。3层LSTM模型能在如此少的文本中进行学习(在川普的例子中,仅有21841个单词),这令我很震惊。这一技术可以用于图说生成、聊天机器人、问答系统等等应用。并且,大量可用的开源工具,比如TensorFlow 和CNTK,加上GPU所提供的令人赞叹的计算能力,深度学习大有可为。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-10-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 新智元 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
语音识别
腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档