你永遠(yuǎn)不知道漢字的潛力。谷歌大腦東京分部的研究員hardmaru,用神經(jīng)網(wǎng)絡(luò)根據(jù)筆畫(huà)生成漢字,新造了一系列“假漢字”。你別說(shuō),有些看上去還真像那么一回事。
因?yàn)槲覀兌际侵袊?guó)人,從小看著漢字、寫(xiě)著漢字長(zhǎng)大,所以已經(jīng)忘記了漢字本身是一件多么困難的事情。
是的,漢字基本的筆畫(huà)就只有點(diǎn)橫撇捺等幾種,但是,中國(guó)文字從甲骨文、金文、篆書(shū)、隸書(shū)一路走來(lái),不同程度存在難寫(xiě)難認(rèn)的缺陷。就算只是一個(gè)“點(diǎn)”,在不同的字里面,這個(gè)點(diǎn)的大小和方向也是各不相同。因此,對(duì)于漢字設(shè)計(jì)師來(lái)說(shuō),可是要了老命。
調(diào)查記者 Nikhil Sonnad 曾經(jīng)在 QZ 發(fā)表過(guò)一篇文章,詳細(xì)講述了設(shè)計(jì)一個(gè)漢字字體漫長(zhǎng)艱苦而又令人沉迷的過(guò)程。其中有這樣一個(gè)例子,展示了言字旁在不同的文字中擁有不同的大小和方向:
言字旁在不同的文字中擁有不同的大小和方向。來(lái)源:QZ
這也是為什么相比五花八門(mén)的英文和阿拉伯?dāng)?shù)字字體,漢字的字體那么少的一個(gè)原因。
Nikhil Sonnad 在那篇文章中指出,一位經(jīng)驗(yàn)豐富的設(shè)計(jì)師可以在6個(gè)月的時(shí)間里設(shè)計(jì)一種涵蓋幾十種西方語(yǔ)言的新字體。但是,對(duì)于單個(gè)中文字體,至少需要一個(gè)好幾人的設(shè)計(jì)師團(tuán)隊(duì)兩年以上的時(shí)間。
有沒(méi)有什么好的方法能夠解決這個(gè)問(wèn)題?
作為新智元(ID:AI_era)的讀者,或許有人已經(jīng)猜到我們接下來(lái)會(huì)說(shuō)什么。是的,還是神經(jīng)網(wǎng)絡(luò)。
谷歌大腦東京分部的研究人員hardmaru,使用神經(jīng)網(wǎng)絡(luò)生成漢字,但他與眾不同的地方在于,由于提供給神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)是“筆畫(huà)”,因此生成的是所有理論上可以存在,但現(xiàn)實(shí)中并沒(méi)有在使用的漢字。
或許你要說(shuō),這樣做有什么用,但仔細(xì)看就能發(fā)現(xiàn)作者這樣做在理論和實(shí)際上的意義。
漢字這個(gè)系統(tǒng)本質(zhì)上是開(kāi)放的。使用可用的元素(偏旁部首、筆畫(huà)等等),可以制作出無(wú)數(shù)個(gè)不同的字符。雖然代碼目前還不能很準(zhǔn)確地定位筆畫(huà)的位置,但hardmaru實(shí)驗(yàn)中的一些結(jié)果,看起來(lái)非常像真實(shí)存在的漢字。
認(rèn)識(shí)一個(gè)字不一定寫(xiě)得出,但寫(xiě)得出就一定認(rèn)識(shí)它
在一篇介紹他的這項(xiàng)工作的博客中,hardmaru表示,他從小也被父母硬逼著去學(xué)漢字,雖然他周?chē)娜舜蠖嗾f(shuō)英語(yǔ)。老師教他寫(xiě)漢字的過(guò)程就是抄寫(xiě)聽(tīng)寫(xiě)抄寫(xiě)聽(tīng)寫(xiě)的不斷循環(huán),就好像LSTM根據(jù)訓(xùn)練樣本輸出序列結(jié)果一樣。
另一方面,他也注意到,“寫(xiě)”漢字和“讀”漢字是兩個(gè)非常不同的過(guò)程。你認(rèn)識(shí)一個(gè)字(能夠閱讀或者發(fā)出讀音),但不一定寫(xiě)得出來(lái);但是,如果你能寫(xiě)出一個(gè)漢字,你一定知道它的發(fā)音?,F(xiàn)在,人們?cè)絹?lái)越多的依賴(lài)基于發(fā)音的輸入法來(lái)“寫(xiě)”漢字,當(dāng)真正提筆寫(xiě)字的時(shí)候,常常會(huì)出現(xiàn)忘記怎么寫(xiě)的情況。
在一定程度上,機(jī)器學(xué)習(xí)的過(guò)程也一樣,最初都是從簡(jiǎn)單的分類(lèi)問(wèn)題開(kāi)始:判斷輸入的圖像是貓還是狗,交易是真實(shí)的還是是欺詐……這些任務(wù)非常有用。但是,hardmaru認(rèn)為,更有趣的任務(wù)是生成數(shù)據(jù),在hardmaru看來(lái),生成數(shù)據(jù)是數(shù)據(jù)分類(lèi)的延伸和擴(kuò)展。相比能夠認(rèn)出某個(gè)漢字,能夠把這個(gè)漢字寫(xiě)出來(lái)表明我們對(duì)這個(gè)漢字有更多的理解。同理,生成內(nèi)容也是理解內(nèi)容的關(guān)鍵。
生成對(duì)抗網(wǎng)絡(luò)(GAN)在生成數(shù)據(jù)方面有著優(yōu)異的表現(xiàn),機(jī)器翻譯也算是一類(lèi)生成數(shù)據(jù)的例子。但hardmaru想生成的是矢量數(shù)據(jù)。因?yàn)樗J(rèn)為很多內(nèi)容都更適合用矢量的形式來(lái)表達(dá),比如用數(shù)碼筆畫(huà)的素描、CAD設(shè)計(jì)、科學(xué)實(shí)驗(yàn)數(shù)據(jù)等等。
字體和筆畫(huà)也更適合用矢量來(lái)表示。精心設(shè)計(jì)的TrueType字體,不管大小,顯示出來(lái)都很美麗。
用 Sketch-RNN 新造一本《新華字典》
接下來(lái),我們將介紹hardmaru如何使用RNN生成矢量格式的手寫(xiě)體漢字。漢字以矢量保存(SVG格式)。
hardmaru實(shí)現(xiàn)的是一個(gè)生成“新造”漢字的網(wǎng)絡(luò)sketch-rnn,與Graves手寫(xiě)體生成模型框架(見(jiàn)下)類(lèi)似。
用于訓(xùn)練的數(shù)據(jù)是真實(shí)的漢字,并且包含了筆畫(huà)順序。因此,神經(jīng)網(wǎng)絡(luò)生成的漢字看上去也是按照一定程度上合理的筆畫(huà)順序來(lái)的。
訓(xùn)練數(shù)據(jù)樣本,不同的顏色代表了筆畫(huà)順序,來(lái)源于KanjiVG數(shù)據(jù)集
在sketch-rnn中,每一筆都用類(lèi)似筆畫(huà)的數(shù)據(jù)建模,其中每一步數(shù)據(jù)都包含x和y軸的偏移量,以及這一筆是落在紙上還是沒(méi)有落在紙上,如果落在紙上,那么上一筆和這一筆之間就會(huì)有連線。神經(jīng)網(wǎng)絡(luò)必須為下一步提供概率分布。這個(gè)概率分布不是離散的,而是連續(xù)分配x軸和y軸上的偏移量,以及筆在下一步在紙上抬起的概率(也即筆畫(huà)結(jié)束的概率)。sketch-rnn使用混合高斯分布來(lái)估算下一筆的位移。這個(gè)用來(lái)生成筆跡的方法叫做混合密度網(wǎng)絡(luò)(Mixture Density Networks,MDN)。
以上是使用混合高斯密度來(lái)生成漢字筆劃的一個(gè)例子。黑點(diǎn)代表在寫(xiě)字過(guò)程中連起來(lái)的線,LSTM + MDN算法將持續(xù)估計(jì)下一個(gè)點(diǎn)出現(xiàn)位置的概率分布。這個(gè)分布被建模成混合高斯分布。這意味著下一個(gè)位置是許多不同位置的混合(深淺不同的紅色橢圓),并且每個(gè)位置本身都是x軸和y軸偏移的二維聯(lián)合高斯分布,每個(gè)偏移都有自己的位置2×2協(xié)方差矩陣。
MDN軌跡展示
除了筆劃的位置分布和結(jié)束概率之外,還需要對(duì)寫(xiě)完整個(gè)漢字的概率進(jìn)行建模,也即結(jié)束字符“end-of-char”概率。但是,每個(gè)筆畫(huà)完結(jié)的概率跟整個(gè)漢字完結(jié)的概率有一定重復(fù),hardmaru 花了不少功夫嘗試對(duì)上述兩個(gè)信號(hào)(筆劃完結(jié)概率、字符完結(jié)概率)建模。最終,他通過(guò)神經(jīng)網(wǎng)絡(luò)中的softmax層將筆的狀態(tài)建模為一組離散的狀態(tài)。筆的狀態(tài)分為三種:筆畫(huà)結(jié)束、字符結(jié)束、落筆。模型會(huì)計(jì)算每一步三種狀態(tài)的概率。
LSTM+MDN基本上是LSTM+Softmax的擴(kuò)展,hardmaru以后想嘗試更強(qiáng)大的方法。GAN(生成對(duì)抗網(wǎng)絡(luò))也許能應(yīng)用到循環(huán)網(wǎng)絡(luò)上,但他預(yù)計(jì)訓(xùn)練LSTM GAN會(huì)非常困難。
除了上面展示的各種例子,這是已有的一些有趣的結(jié)果,hardmaru自己做了“注釋”:
還有一些不知道怎么描述的結(jié)果:
-
谷歌
+關(guān)注
關(guān)注
27文章
6142瀏覽量
105115 -
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4765瀏覽量
100566 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8382瀏覽量
132444
原文標(biāo)題:谷歌大腦研究員玩轉(zhuǎn)漢字RNN:神經(jīng)網(wǎng)絡(luò)生成新華字典
文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論