深度学习了40万个表情,一大波AI 表情包来了

640?wx_fmt=gif


自从有了表情包,跟人聊天时的第一反应,就是去找找看有什么适合的表情。


有一类表情包,形式是文字+图,尤其能够精妙地抒发和传递感情。


640?wx_fmt=jpeg


在这一点上,可能全世界的网友都一样。


640?wx_fmt=jpeg



好用的表情永远不嫌多,而且似乎总是不够用。


怎么办?


好在我们有深度学习。

表情包,一个天然的图说生成问题


斯坦福大学的Abel L. Peirson V和E. Meltem Tolunayl,在这一期斯坦福深度学习自然语言处理课程CS224n的期末作业中,提交了一个表情包生成器,使用深度学习,制作“图片+文字”型的表情包。


下面这些都是他们的系统自动生成的结果。不得不说,深得表情包制作精髓。


640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png


这个表情包生成器的基本的框架是一个编码器-解码器图说生成系统,先进行CNN图像嵌入,然后用一个LSTM RNN进行文字生成。


其中,编码器的目标是要给出一个有意义的状态,让解码器开始进行文字生成。他们使用在ImageNet上预训练的Inception-v3做为编码器模型,并将最后一层隐藏CNN作为编码器的输出。当表情包模板进入Inception模型后,输出是一组长度固定的向量,也即图像嵌入,能够反映图像的内容。这个图像嵌入之后会被投射到词嵌入空间里,方便后续文字生成。


他们一共尝试了3种不同的编码器模型,最简单的一种只输入图像,另一种输入图像和标签,最后一种的输入也是图像和标签,但使用了注意力机制。至于解码器,都是一个单向LSTM。这样搭配组合成了3种编码器-解码器方案。下图展示了第二种方案的模型。



640?wx_fmt=png

学习40万个表情,幽默程度媲美人类



数据集是这个表情包生成器的精髓。他们的数据集由大约40万张带标签和图说的图片组成。其中有2600个独特的图像-标签对,是他们写Python脚本从Memegenerator.net中获取的。一张图片对应一个标签,标签是对这幅图的简单描述,而每张图都与很多不同的图说(大约160个)相关联。


下图展示了数据的样本:


640?wx_fmt=png


在训练前,他们还针对图说中的标点、格式和某些词出现的频率等进行了预处理。


训练的结果,深度学习生成了各种表情:


640?wx_fmt=png

系统看过的图像(左边4张)的输入标签是来自训练集的标签,而对于没见过的图像(右边4张),我们使用的句子是“AI是新的电力”。


从语法、搞笑程度和可区分性(分辨是人制作的还是深度学习生成的)几个维度判断,深度学习表情包生成器取得了不错的效果。尤其是搞笑程度,因为这一点是制作表情包的初衷,普通表情包的搞笑程度7分(满分10分),深度学习生成的表情包最高达到了6.8。


两位作者指出,幽默是很难评判的事情,本身就是一个很深的研究领域。他们的这项工作十分基础,接下来如果能构建出能够自动断句的表情包生成器(就是自动判断图片上方和下方两行文字从哪里断开),将会是一个很大的进步。(因为使用的都是网络热图,因此数据含有性别歧视和不文明的成分。)此外,探索视觉注意力机制在表情包生成中的作用,也是一个不错的研究方向。


相关论文和代码

  1. Dank Learning: Generating Memes Using Deep Neural https://arxiv.org/pdf/1806.04510v1.pdf

  2. Github:https://github.com/alpv95/MemeProject


来源:Arxiv

文章版权归原作者所有,转载仅供学习使用,不用于任何商业用途,如有侵权请留言联系删除,感谢合作。


640?wx_fmt=png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/303462.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网关Ocelot功能演示安排的明明白白~~~

前言网关(Gateway)在微服务架构中至关重要,可以将其理解为是外部客户端(前端、MVC后台等调用方)与后台服务的连接点,通过这层可以做统一的处理,比如路由、身份认证和授权、服务治理等;网关的好处:统一入口,…

通过Dapr实现一个简单的基于.net的微服务电商系统

本来想在Dpar 1.0GA时发布这篇文章,由于其他事情耽搁了放到现在。时下微服务和云原生技术如何如荼,微软也不甘示弱的和阿里一起适时推出了Dapr(https://dapr.io/),园子里关于dapr的文章不太多,所以今天就借…

基于 Python 自建分布式高并发 RPC 服务

RPC(Remote Procedure Call)服务,也即远程过程调用,在互联网企业技术架构中占据了举足轻重的地位,尤其在当下微服务化逐步成为大中型分布式系统架构的主流背景下,RPC 更扮演了重要角色。Google 开源了 gRPC…

程序员江湖鄙视链大全,看看你处于链条的哪一级?

有人的地方就有江湖。程序员,是一个知识、智商、都异于常人的 群体,有人总结了程序员江湖等级鄙视链的方法和流程。老婆漂亮的程序员鄙视老婆不漂亮的程序员鄙视有女友的程序员鄙视单身狗程序员而在单身狗之间,才有了语言,编辑器和…

java什么是静态_什么是java静态

什么是java静态java静态包括静态变量、静态方法、静态初始化块,以下是静态的详解。(推荐教程:java教程)1. 什么是静态变量大家都知道,我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立。然而在…

如何在 .NET 程序万种死法中有效的生成 Dump (上)

一:背景相信很多人都知道通过 任务管理器 抓取dump,虽然简单粗暴,但无法满足程序的无数种死法,比如:内存膨胀,程序爆炸CPU爆高,程序累死应用无响应,用户气死意外退出,和人…

74款app源码,值得你拥有的干货

最近,小编一直在整理一些app的源码,如:BiliClient(仿bilibili客户端)、WeChat高仿微信、知乎专栏App、Compass(MIUI指南针的社区开源版)等。现在小编打算将这些资料免费分享给大家!&…

监控系统简介:使用 Prometheus 与 Grafana

注:本文虽以 Docker 进行演示,但 Docker 并不是必须的,相关软件也可以直接安装到计算机上背景如果我们是Web应用的开发者,会对响应时间、接口的稳定性等比较敏感,在站点尚未部署到生产环境时,我们有充足的时…

7500 cpuz跑分 i5_核心硬盘 i5 7500性能测试_DIY攒机酷品测试-中关村在线

下面我们进入CPU测试环节。为保测试性准确可靠,以下测试均采用Windows 10 1周年版 64位正版系统,且不对操作系统进行任何优化,用以获取最大的系统稳定性与兼容性。Intel 酷睿i5 7500i5 7500 CPU-ZFritz Chess BenchmarkFritz Chess Benchmark…

Android Ap 开发 设计模式第七篇:生成器模式

Builder Pattern 模式解读 生活在深圳这所高速发展的城市,高楼大厦林立。所谓万丈高楼平地起,在我们感慨楼层的高耸之外,更要配服楼层的建造者和设计者。大楼首先得打稳地基、搭建骨架,再由下往上一层层盖上去。而这样的架构从程序…

MySQL 创始人:写代码比打游戏还爽,程序员应该多泡开源社区

编者按:根据StackOverflow的最新调查,MySQL仍然是全世界最流行的数据库,受访的开发者中有44.3%的人在使用,超过了第二位的SQL Server 10多个百分点。可是你知道MySQL是怎么诞生的吗?openocean 的一篇有关MySQL开发者Mi…

tomcat如何修改java版本_Java程序员必备——Tomcat配置技巧Top10

一、配置系统管理(Admin Web Application)大多数商业化的J2EE服务器都提供一个功能强大的管理界面,且大都采用易于理解的Web应用界面。Tomcat按照自己的方式,同样提供一个成熟的管理工具,并且丝毫不逊于那些商业化的竞争对手。Tomcat的Admin …

祝福!微软 46 周年生日快乐!

46 年前的今天,即 1975 年 4 月 4 日,比尔盖茨(Bill Gates)和保罗艾伦(Paul Allen)共同创立了微软公司。他们是小时候认识的朋友及高中同学,并对电脑编程充满激情。1975 年 1 月,MIT…

荐书 | 没有数学思维的程序员不是好的问题解决者

今天小木给大家推荐以下五本关于数学历史或数学思维的名家著作。读者推荐:01《这才是最好的数学书》[日] 笹部贞市郎55.00赠:《谁谋杀了希尔伯特教授》数学漫画随机一本《神笔涂绘》内容简介:有人曾请教笹部贞士郎,是如何引领近代…

java反射sethaha_Java反射深度测试

通过反射API构造对象,并使用反射调用方式访问对象的public/private方法和字段。package lavasoft.test;/*** 测试的业务类** author leizhimin 2010-5-6 20:16:10*/public class MyService {private String msg;public MyService() {System.out.println("log: …

监控系统简介(二):使用 App Metrics 在 ASP.NET Web API 中记录指标

回顾在《监控系统简介:使用 Prometheus 与 Grafana》一文中,我们了解了什么是监控系统,Prometheus 这一监控工具及它提供的数据类型、PromQL 以及 Grafana 可视化工具的基本用法。今天这一篇我们将在 ASP.NET Web API 项目中进行实战&#xf…

剧透人生!你什么时候结婚换工作甚至狗带,Facebook都知道

来源:大数据文摘即将换工作?要结婚了?有亲人朋友要去世了?你关心的这些人生重大节点,有人希望比你提前知道它们何时发生,并基于此对你精准投放广告。惊悚?这是Facebook在2010年以来提交的一系列…

如何在 NET 程序万种死法中有效的生成 Dump (下)

一:背景 上一篇我们聊到了如何通过 procdump 抓取 cpu爆高 和 内存暴涨 两种情况,这一篇再聊聊如何去抓程序 挂死 和 意外退出。二:程序挂死 1. 定义程序挂死 简单的说就是程序没有响应,既然没响应了,可能 死锁, 可能 …

C++程序运行时内存布局之--无继承情况下的虚函数

2019独角兽企业重金招聘Python工程师标准>>> 虚函数是C实现多态的关键,没有虚函数,C只能是OB,不能完成OO。 本文介绍的是没有继承情况下,带有虚函数的类在内存中布局,以及其实例(对象&#xff0…

纠结学哪种编程语言?请看这个回答

各位童鞋,如果最近/未来几年有人还纠结学习哪种编程语言,那你可以请他/她参考一下这个 Quora 帖子的最高赞回答:> 能找一份工作:Java> 能找一份高薪工作:C> 啥样工作都能找到:Python> 总能找到…