正所謂古有倉頡,今有神經(jīng)網(wǎng)絡(luò)。 最近,谷歌大腦研究員David Ha做了個讓神經(jīng)網(wǎng)絡(luò)和你一起寫“漢字”的網(wǎng)頁版Demo。你在頁面上寫幾筆,神經(jīng)網(wǎng)絡(luò)會根據(jù)你寫出來的部分,補完一個“漢字”。 它的名字叫Kanji-RNN,創(chuàng)作過程就像這樣: 據(jù)網(wǎng)友探索和量子位自行測試,在頁面上畫圈圈有一定概率得到驚喜——這個Kanji-RNN可能會愣一下,甚至毫無反應(yīng)。 如果你不畫圈圈,很多時候會得到腦洞異常開闊的“偽漢字”。比如: 這是量子位遇到的一些未完成品,如果真的讓它無限開“腦洞”,恐怕biangbiang面都要甘拜下風(fēng)了。 Kanji-RNN模型是什么結(jié)構(gòu)、如何訓(xùn)練出來的呢? David Ha沒有詳細(xì)介紹,不過根據(jù)名字、簡介信息鏈接到的頁面、他以往做的工作,可以推測一二。 首先,它的名字叫Kanji-RNN。我們起碼可以看出,這個模型是用循環(huán)神經(jīng)網(wǎng)絡(luò)來預(yù)測下一筆該寫什么、寫在哪的; 其次,David Ha在Google參與的一項大工程,就是那個讓你教機器畫簡筆畫的Sketch-RNN,他之前在GitHub上發(fā)布的舊版Sketch-RNN中,就包含了訓(xùn)練神經(jīng)網(wǎng)絡(luò)寫漢字的部分,還寫過一篇博客介紹如何用Sketch-RNN來生成漢字,所用的數(shù)據(jù)集是KanjiVG; 而如今的Kanji-RNN頁面上的簡介信息,并沒有鏈接到原來的代碼,而是鏈接了TensorFlow官方賬戶下的一個Sketch-RNN-JS,可見和原來的有一定差異,以網(wǎng)頁Demo的形式呈現(xiàn),大概是借助了TensorFlow.js的力量。 總之,這應(yīng)該是一個以Sketch-RNN的JavaScript實現(xiàn)為基礎(chǔ),用KanjiVG訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò),與之前廣受歡迎的Google神經(jīng)網(wǎng)絡(luò)畫簡筆畫系列同宗同源。 說到這兒,你大概也看出來量子位為什么要給“漢字”加引號了。一是因為它并不會真的用你的筆畫匹配真正的漢字,而是根據(jù)你的筆畫“創(chuàng)造一個像漢字的圖形”,很多時候?qū)懗鰜淼亩紝嵲诓幌褡?;另一個原因呢,就在它的名字Kanji-RNN,和數(shù)據(jù)集KanjiVG里。 這里的Kanji和我們?nèi)粘K鶎懙淖致杂胁煌?,指的是日語里用到的那些漢字,數(shù)量比我們用到漢字少,而且經(jīng)過了霓虹國人民的再創(chuàng)作。 根據(jù)訓(xùn)練集的指引,它們長這個樣子: 對于那些向往神秘東方的美國人民來說,Kanji-RNN的魅力不言而喻,在Reddit、HackerNews等論壇上都大受歡迎。 而從小寫漢字的中國人,從Kanji-RNN中大概能得到不一樣的樂趣:量子位就一心想讓它寫個認(rèn)識的漢字出來,一上午深陷其中不能自拔。 你也試試? http:///kanji-rnn/ 如果你也想自己訓(xùn)練一個,可以從下面這兩個地方找找靈感。
如果你不知道量子位說的“Google用神經(jīng)網(wǎng)絡(luò)畫簡筆畫”是怎么回事,一定要玩一下這個不容錯過的小游戲: 當(dāng)然,如果你想嚴(yán)肅地探討這件事兒,這篇論文再合適不過啦: — 完 — 實習(xí)生招聘 量子位正在招募市場運營實習(xí)生,策劃執(zhí)行AI明星公司CEO、高管等參與的線上/線下活動,有機會與AI行業(yè)大牛充分交流。 工作地點在北京中關(guān)村。簡歷歡迎投遞到quxin@qbitai.com |
|
來自: 西北望msm66g9f > 《編程》