刘慈欣科幻里的场景,科学家用深度学习再现了
刘慈欣 的科幻小说《诗云》中描写了一个这样的故事:在未来,来自遥远宇宙的高等文明在太阳系建造了一个名为「诗云」的巨型量子存储器,它可以存储起由超级量子计算机试遍所有汉字的排列组合而写出的、这世间所有的古诗词,包括人类历史上已经被写出的、还有未来所有可能与不可能被写出的。这不禁让人想到,如果把计算机和人工智能运用到「写作」领域,它们有可能会做出什么?
曾经有一个无限猴子理论是这样说的:如果让无限只的猴子在无限多台打字机上随机打字,并持续无限久的时间,那么在某个时候,它们必然会打出莎士比亚的全部著作。
关于这个理论,至今仍有争议。但如果使用机器学习来做这件事会发生什么?机器可以自己进行文学创作吗?事实告诉我们,这也是可能的。
任性的人工智能作家
到目前为止,已经有不少科学家都希望通过人工智能写出真正匹敌人类文学大师的作品。
2016 年 3 月,日本函馆未来大学「任性的人工智能之我是作家」团队利用人工智能写出的一篇小说《计算机写小说的一日》(The Day a Computer Writes a Novel)入围了日本「星新一文学奖」。这篇小说的结尾是这样的:
「写作使我快乐,这是我之前从未体验过的,我也将继续带着兴奋写作。这是计算机开始写小说的第一天。我终于不用再为人类工作,而是要首先追寻自身的快乐。」
看看这个团队的队名就知道这届 AI 有多任性了。除了这篇代表作外,本次文学奖中,另外几篇由人类与人工智能共同创作的作品也通过了第一轮筛选。
那么问题来了,机器是怎么写小说的?
据研究者们介绍,他们的人工智能是以人类事先创作出的一篇小说为模板(人设、情节什么的当然得由人类来钦定了!)然后再由计算机对文本进行读取、拆分各单词词组并对其加以自动选择,最终便生成了一篇新的小说。
在过去这一年里,关于机器写作的事还有不少,比如 MIT 计算机科学与人工智能实验室博士后 Bradley Hayes 在推特上开的马甲号「DeepDrumpf」去年就在推特上爆红,原因是其背后其实是一款能专门模仿川普语气和用词的发推机器人。这位川普二号发了很多推文,比如这种:
头像好评。
在中国,百度曾经上线过一个「为你写诗」的服务,用户只要拍照上传人物或景物图片,后台系统利用百度大脑的图像处理、自然语言处理和 深度学习 技术,根据用户提供的图像进行智能分析和匹配,为用户量身打造属于自己的诗歌。
人在写诗的过程中,大脑会充分发挥想象力并综合运用各种知识。百度自然语言处理技术通过对大量古代和现代诗歌的分析、理解、建模,自动学习到了诗词写作模型,并开发了诗词生成器。
「为你写诗」还可以模仿不同的诗人创作。这是它模仿李商隐的一首诗:
《北街梦寻》
十里秦淮近北街,
春风吹梦到江南。
欲寻旧迹人何处,
只看花飞不见帆。
写的有模有样有木有?(希望这句话机器也能看懂。)
手机百度根据关键词「老司机」作诗。
惊人效果背后的技术: 深度学习 神经网络
关于「机器人写诗」、「人工智能写作」有一个比较学术的说法叫作「文本生成」。目前很大一部分「机器人进行文学创作」都是用基于模板的文本生成方法来实现的,当然,也有很多研究者使用了基于深度学习的生成方法。
此前就有许多国外的研究者利用基于字符的递归神经网络 Char-RNN(Character based Recurrent Neural Network)从文本数据集里学习,然后自动生成了有模有样的文本。斯坦福大学计算机科学博士 Andrej Karpathy 就在 GitHub 上写过一篇影响较广的博文 《递归神经网络惊人的有效性》(The Unreasonable Effectiveness of Recurrent Neural Networks),里面会手把手地教你如何玩转 RNN 文本创作。
Karpathy 举了很多应用实例,比如他用莎士比亚的作品来做训练,得出了很多莎翁风格的剧本:
他还做了一个有趣的尝试,喂给 RNN 8000 个婴儿的名字,让它学会「取名」。(听我一句劝,千万不要输:璃莹殇·安洁莉娜·樱雪羽晗灵·血丽魑·魅·J·Q·安塔利亚·伤梦薰魅·海瑟薇·蔷薇玫瑰泪……)
同样,利用 RNN 还可以写出很多东西。如果你拿某个作词人的歌词合集去做训练,就能写出「张氏情歌」、「李氏情歌」;如果你用某个营销号的微博文来做训练,搞不好会创作出一套够发半年的段子库存。假扮总统发言什么的也不在话下,据「DeepDrumpf」的研发者描述,他也是运用了基于深度学习的文本生成方法,以川普的演讲和辩论(字幕)作为训练语料,使用深度神经网络去训练模型的。
模仿海明威?Can do!
更有趣的是, Medium 上的一个作者 Adam Geitgey 利用机器学习让机器学会了写海明威的小说。
海明威山寨大赛现场。
写海明威式小说的核心部分可以这么理解,如果你输入一个单词,而神经网络能根据你的输入自动预测下一个字母,如果再让它根据这个字母去预测下一个字母,一直预测下去,会发生什么?机器会不会自己写出一个完整的故事?这也就是「循环」(Recurrent)有意思之处。
作者建立了一个 RNN 神经网络,在作者刚开始训练这个模型的时候,预测并不准确。这是经过 100 个循环训练之后的结果:
hjCTCnhoofeoxelif edElobe negnk e iohehasenoldndAmdaI ayio pe e h’e btentmuhgehi bcgdltt. gey heho grpiahe.
Ddelnss.eelaishaner” cot AAfhB ht ltny
ehbih a”on bhnte ectrsnae abeahngy
amo k ns aeo?cdse nh a taei.rairrhelardr er deffijha
什么鬼!至此还拼不成任何可读的单词。
而经过 1000 个循环之后:
hing soor ither. And the caraos, and the crowebel for figttier and ale the room of me? Streat was not to him Bill-stook of the momansbed mig out ust on the bull, out here. I been soms
inick stalling that aid.
“Hon’t me and acrained on .Hw’s don’t you for the roed,” In’s pair.”
“Alough marith him.”
经过几千次的交互训练之后:
“He went over to the gate of the café. It was like a country bed.
“Do you know it’s been me.”
“Damned us,” Bill said.
“I was dangerous,” I said. “You were she did it and think I would a fine cape you,” I said.
“I can’t look strange in the cab.”
“You know I was this is though,” Brett said.
“It’s a fights no matter?”
“It makes to do it.”
“You make it?”
“Sit down,” I said. “I wish I wasn’t do a little with the man.”
“You found it.”
“I don’t know.”
“You see, I’m sorry of chatches,” Bill said. “You think it’s a friend off back and make you really drunk.”
棒棒哒,到这里,算法已经能用恰当的格式重新写出一篇看起来可信的文章了,而且写出的是海明威式的风格——简短而直接的对话形式,甚至有一些话语能够被人类理解。
不只是模仿海明威写文章,实际上,任何有规律可循的数据都能拿给这个算法去处理。
机器的极限?
一直以来,在所有「机器有可能帮我们做到的事」当中,利用技术去帮人们更好地创造艺术可谓是人们的宏愿之一。不过,但在人类所创造的艺术面前,机器是否还有「无法做到」的事呢?
在《诗云》当中,虽然小说里的高等智慧已经建造出了能够写出并存储所有诗歌的计算机,但即使用上最先进的科技,机器仍然无法辨别出哪些是「好诗」。大概是,想要做到像你们人类一样「理解」艺术,恐怕对我们来说还是太难了(神秘的维孝)。
参考文献
- Machine Learning is Fun! Part 2, by Adam Geitgey, Medium.
- The Unreasonable Effectiveness of Recurrent Neural Networks, by Andrej Karpathy.
AI 领域还有哪些不可思议的研究?在百度大脑微信(baidubrain)后台回复「大脑洞」即可获取系列文章。