【深度学习创作】用《权力的游戏》前五部训练RNN生成第六部(原理解析)

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析DNS,个人版 1个月
云解析 DNS,旗舰版 1个月
简介:

《权力的游戏》(英语:Game of Thrones)是一部中世纪史诗奇幻题材的美国电视连续剧。该剧以美国作家乔治·R·R·马丁的奇幻文学《冰与火之歌》系列作为基础改编创作。


按照作者计划,《冰与火之歌》系列将有7部,目前出版至第5部。


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


也就是说,从2011年开始,读者对第六部《凛冬的寒风》的等待已经超过了6年。

 

近日,一位名叫Zack Thoutt的工程师在开源社区Github上发起了这样一个项目:基于《冰与火之歌》前面五部作品,训练RNN(循环神经网络)模型,进而生成第六部作品。


640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy


训练:你可能需要一块GPU和TensorFlow1.0.


Zack在Github页面上说:你是否已经受够了一直在等待下一本《权力的游戏》(GOT)图书的出版?至少我是这样的。所以我决定根据前五本《权力的游戏》图书训练一个RNN模型,使用该神经网络的预测生成第六部。


他也表示,如果大家想训练这一模型,你可能会需要一块GPU和TensorFlow1.0. 


他使用的是FloydHub和以下命令:


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

用于训练的前5部作品的文字资料在网上都能找到。


在这部由深度学习模型完成的“新作”中,还有许多问题没有回答:琼恩真的是一个兰尼斯特-坦格利安人?那些狗如何统治7国?为什么瓦里斯要毒害丹妮莉丝?


作者在项目介绍的最后也欢迎大家都一起来参与制作,共同唱响“冰与火之歌”。开源地址:https://github.com/zackthoutt/got-book-6。


 为什么是RNN?深度学习的基础模型之一


RNN无疑是深度学习的主要内容之一,它允许神经网络处理序列数据,如文本、音频和视频。 它们可以用于将序列编码至不同层级的理解(抽象层次不同的知识表示)、标注序列,甚至从头开始生成新序列。一个 RNN cell在处理序列数据时一直被重复使用,Share Weights。 


RNN的核心特征是“循环”, 即系统的输出会保留在网络里, 和系统下一刻的输入一起共同决定下一刻的输出。


这一点符合著名的图灵机原理。 即此刻的状态包含上一刻的历史,又是下一刻变化的依据。 这其实包含了可编程神经网络的核心概念,即, 当你有一个未知的过程,但你可以测量到输入和输出, 你假设当这个过程通过RNN的时候,它是可以自己学会这样的输入输出规律的, 而且因此具有预测能力。 


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

这里A被称作 controller(图中是在处理序列数据,有个错误,最后应该是x3,y3), 可以是FNNs(feedforward neural networks),也可以是RNNs,但RNNs能实现更多操作,因为它是 Turing Complete 的。


上文提到,RNN具有“记忆”能力,这也是为什么它能实现预测的重要原因。具体到《权力的游戏》图书的生成,正式因为在前5部作品的训练过程中的“循环”和“记忆”,让模型具备“预测”第六部作品的能力。


RNN在语言研究中得到广泛的采用。去年,谷歌就曾发布了一项名为“探索RNN极限”的研究,开源大规模语言建模模型库,含有大约 10 亿英语单词,词汇有 80 万,大部分是新闻数据。


精彩内容分享:奈德依然活着,琼恩是兰尼斯特人!


这本由RNN生成的图书的前五章目前已经公开,书中的情节与我们此前熟悉和喜爱的前五本一样:包含了许多的转折。


640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy


以下是一些对话的摘录:

 

珊莎实际上是拜拉席恩家族的人,詹姆很怕她,因为她是次子团的成员之一:


我害怕珊莎主人,大人”,詹姆提醒她说。“他们拜拉席恩家族是要道之一。也就是你的次子团。”


里克仍然是一个烦人的人:


“对你来说,有些事情是必须的”,一个女人慵懒的声音响起,“天呐,里克。”


一个名叫Greenbeard的新主角出现在了剧情中:

 

“是的,佩特”,高大的男人举起剑,将他挡在身后,并将巨大的铁王座推向女孩冲过来的方向。 


阿多回来了,现在,他除了“Hodor”,还会说一些新的单词。


阿多看着他们低声吼道,“你回家要走哪条路。”


奈德依然活着,并且琼恩是兰尼斯特人!


双方都回来之后,他们立刻想到了希望他回答问题的方式。当琼恩缓慢后退时,奈德在脑海中看到了他的斧头和左手。


瓦里斯毒死了丹妮莉丝和另外一个人:


瓦里斯毒死了丹妮莉丝和另外一个人。当他醒来时,听到一首舒缓的歌曲。


琼恩骑着一条龙,开始变得有些狂躁:


琼恩骑着龙,在天空极速绕圈。龙喷出的火焰在沙漠中形成一个个燃烧的大坑。


詹姆杀掉了瑟曦,琼恩变成狼:


 詹姆杀死了瑟曦,他非常冷血,一直在自言自语,琼恩认为他是现在的狼……


他们决定让狗来做决定:


“问那些狗。”


整本书以一段怪异的描述结尾:


在一场冬季的暴风雪中,琼恩作为坦格利安人的一面得到全面的展示 ……


正如开源项目作者本人在提到,在这部由深度学习模型完成的“新作”中目前只完成了前五章,还有许多问题没有回答:琼恩真的是一个兰尼斯特-坦格利安人?那些狗如何统治7国?为什么瓦里斯要毒害丹妮莉丝?……


如果你想尝试一下,去Github找他,或许你可以生成《红楼梦》的续集呢?


文章转自新智元公众号,原文链接

相关文章
|
12天前
|
机器学习/深度学习 API PHP
PHP 7新特性深度解析与应用实践深入浅出:用深度学习识别手写数字
【8月更文挑战第27天】随着PHP 7的发布,这个广受欢迎的Web开发语言带来了许多令人兴奋的新特性。本文将深入探讨这些新特性,并展示如何在实际项目中利用它们来提升代码的性能和可维护性。无论你是PHP新手还是资深开发者,这篇文章都将为你提供宝贵的见解和实用的技巧。
|
10天前
|
vr&ar
简单易懂的 全景图高清下载方法以及原理简要解析(支持下载建E、720yun、酷雷曼、景站、酷家乐、百度街景原图)
这篇文章介绍了一种简单易懂的全景图高清下载方法,使用在线网站全景管家,支持下载包括建E、720yun、酷雷曼等多个平台的全景图原图,并简要解析了全景图的原理和制作方法。
简单易懂的 全景图高清下载方法以及原理简要解析(支持下载建E、720yun、酷雷曼、景站、酷家乐、百度街景原图)
|
5天前
|
域名解析 网络协议
DNS服务工作原理
文章详细介绍了DNS服务的工作原理,包括FQDN的概念、名称解析过程、DNS域名分级策略、根服务器的作用、DNS解析流程中的递归查询和迭代查询,以及为何有时基于IP能访问而基于域名不能访问的原因。
14 2
|
12天前
|
机器学习/深度学习 人工智能 TensorFlow
利用深度学习进行图像识别的基本原理与实践
【8月更文挑战第27天】在这篇文章中,我们将探索图像识别技术的核心原理,并借助深度学习框架实现一个基本的图像识别模型。通过简洁的代码示例和直观的解释,我们旨在向读者展示如何从零开始构建自己的图像识别系统,以及这一过程中可能遇到的挑战和解决方案。无论你是AI领域的初学者还是有一定基础的开发者,这篇文章都将为你提供有价值的见解和指导。
|
13天前
|
JavaScript 前端开发 安全
JS 混淆解析:JS 压缩混淆原理、OB 混淆特性、OB 混淆JS、混淆突破实战
JS 混淆解析:JS 压缩混淆原理、OB 混淆特性、OB 混淆JS、混淆突破实战
24 2
|
13天前
|
缓存 前端开发 JavaScript
Webpack 模块解析:打包原理、构造形式、扣代码补参数和全局导出
Webpack 模块解析:打包原理、构造形式、扣代码补参数和全局导出
19 1
|
15天前
|
设计模式 JavaScript 前端开发
Vue响应式原理全解析
Vue的响应式系统是其核心特性之一,它使得Vue能够以高效的方式响应数据的变化。通过对对象属性的getter和setter进行劫持,Vue实现了对数据变化的侦测和依赖收集,当数据变化时能够自动派发更新。Vue3中,响应式系统得到了进一步的加强和优化,使用Proxy替代了 `Object.defineProperty`,带来了更好的性能和更强大的拦截能力。理解Vue的响应式原理,对于深入理解Vue的工作机制和进行高效的Vue开发都具有重要意义。
32 1
|
19天前
|
缓存 监控 网络协议
DNS缓存中毒原理
【8月更文挑战第17天】
50 1
|
1天前
|
负载均衡 网络协议 安全
DNS解析中的Anycast技术:原理与优势
【9月更文挑战第7天】在互联网体系中,域名系统(DNS)将域名转换为IP地址,但网络规模的扩张使DNS解析面临高效、稳定与安全挑战。Anycast技术应运而生,通过将同一IP地址分配给多个地理分布的服务器,并依据网络状况自动选择最近且负载低的服务器响应查询请求,提升了DNS解析速度与效率,实现负载均衡,缓解DDoS攻击,增强系统高可用性。此技术利用动态路由协议如BGP实现,未来在网络发展中将扮演重要角色。
6 0
|
7天前
|
前端开发 Java UED
瞬间变身高手!JSF 与 Ajax 强强联手,打造极致用户体验的富客户端应用,让你的应用焕然一新!
【8月更文挑战第31天】JavaServer Faces (JSF) 是 Java EE 标准的一部分,常用于构建企业级 Web 应用。传统 JSF 应用采用全页面刷新方式,可能影响用户体验。通过集成 Ajax 技术,可以显著提升应用的响应速度和交互性。本文详细介绍如何在 JSF 应用中使用 Ajax 构建富客户端应用,并通过具体示例展示 Ajax 在 JSF 中的应用。首先,确保安装 JDK 和支持 Java EE 的应用服务器(如 Apache Tomcat 或 WildFly)。
17 0

热门文章

最新文章

推荐镜像

更多
下一篇
DDNS