神经网络造“汉字”新技能全开,biangbiang面自愧不如

品牌
腾讯数码
2018年06月24日 15:23

  李林 发自 学院路

  量子位 出品 | QbitAI

  正所谓古有仓颉,今有神经网络。

  最近,谷歌大脑研究员David Ha做了个让神经网络和你一起写“汉字”的网页版Demo。你在页面上写几笔,神经网络会根据你写出来的部分,补完一个“汉字”。

  它的名字叫Kanji-RNN,创作过程就像这样:

  据网友探索和量子位自行测试,在页面上画圈圈有一定概率得到惊喜——这个Kanji-RNN可能会愣一下,甚至毫无反应。

  如果你不画圈圈,很多时候会得到脑洞异常开阔的“伪汉字”。比如:

  这是量子位遇到的一些未完成品,如果真的让它无限开“脑洞”,恐怕biangbiang面都要甘拜下风了。

  Kanji-RNN模型是什么结构、如何训练出来的呢?

  David Ha没有详细介绍,不过根据名字、简介信息链接到的页面、他以往做的工作,可以推测一二。

  首先,它的名字叫Kanji-RNN。我们起码可以看出,这个模型是用循环神经网络来预测下一笔该写什么、写在哪的;

  其次,David Ha在Google参与的一项大工程,就是那个让你教机器画简笔画的Sketch-RNN,他之前在GitHub上发布的旧版Sketch-RNN中,就包含了训练神经网络写汉字的部分,还写过一篇博客介绍如何用Sketch-RNN来生成汉字,所用的数据集是KanjiVG;

  而如今的Kanji-RNN页面上的简介信息,并没有链接到原来的代码,而是链接了TensorFlow官方账户下的一个Sketch-RNN-JS,可见和原来的有一定差异,以网页Demo的形式呈现,大概是借助了TensorFlow.js的力量。

  总之,这应该是一个以Sketch-RNN的JavaScript实现为基础,用KanjiVG训练的卷积神经网络,与之前广受欢迎的Google神经网络画简笔画系列同宗同源。

  说到这儿,你大概也看出来量子位为什么要给“汉字”加引号了。一是因为它并不会真的用你的笔画匹配真正的汉字,而是根据你的笔画“创造一个像汉字的图形”,很多时候写出来的都实在不像字;另一个原因呢,就在它的名字Kanji-RNN,和数据集KanjiVG里。

  这里的Kanji和我们日常所写的字略有不同,指的是日语里用到的那些汉字,数量比我们用到汉字少,而且经过了霓虹国人民的再创作。

  根据训练集的指引,它们长这个样子:

  对于那些向往神秘东方的美国人民来说,Kanji-RNN的魅力不言而喻,在Reddit、HackerNews等论坛上都大受欢迎。

  而从小写汉字的中国人,从Kanji-RNN中大概能得到不一样的乐趣:量子位就一心想让它写个认识的汉字出来,一上午深陷其中不能自拔。

  你也试试?

  http://otoro.net/kanji-rnn/

  如果你也想自己训练一个,可以从下面这两个地方找找灵感。

  Sketch-RNN的JS代码:

  https://github.com/tensorflow/magenta-demos/blob/master/sketch-rnn-js/README.md

  很久以前的Sketch-RNN代码:

  https://github.com/hardmaru/sketch-rnn/

  如果你不知道量子位说的“Google用神经网络画简笔画”是怎么回事,一定要玩一下这个不容错过的小游戏:

  https://quickdraw.withgoogle.com/

  当然,如果你想严肃地探讨这件事儿,这篇论文再合适不过啦:

  A Neural Representation of Sketch Drawings

  David Ha, Douglas Eck

  https://arxiv.org/abs/1704.03477

  —完—

家电之家©部分网站内容来自网络,如有侵权请联系我们,立即删除!
汉字 神经网络
你该读读这些:一周精选导览
更多内容...

TOP

More