2018年11月5日 星期一

字型的深度學習(3)

Tensorflow平台選擇


跑tensorflow平台大致研究了一下, 除了用自己的PC來跑之外, 也可以使用Google Cloud Platform(GCP)或者Amazon的AWS服務, 但發現GCP收費約 USD $300/month跑不掉, 即使是可以使用小時計費的TPU感覺還是不便宜, 自己畢竟還是初學者, 先用PC研究看看吧

zi2zi project will migrate to python 3


zi2zi project似乎還在使用比較舊的python2, 但目前大多數tensorflow app/tutorial都已經轉向python3, 有人在github上面提問後, 作者也已經回應將會將zi2zi migrate到python3

使用local desktop PC來跑Tensorflow

2018年10月24日 星期三

字型的深度學習(2)

發現一個有趣的東西:
zi2zi: Master Chinese Calligraphy with Conditional Adversarial Networks
這個github上面的zi2zi(字到字)專案,跟我之前想到的人工智慧字型學習的概念相當雷同!

稍加研究之後,簡單而言,style transfer的一種AI應用方式,就我初步的理解,這一類的應用主要是在training的時候,給定一組已知input stream,以及他相對應型別轉換後的output stream。講白話一點,如果我的style transfer叫做『灰階化』,那麼這一對已知的input就可以是彩色圖片,而對應的output便是灰階處理過的圖片。下圖是一個風格化的例子
https://www.techleer.com/articles/466-insight-into-fast-style-transfer-in-tensorflow/
如果對style transfer有興趣,可以搜尋prisma這個app看看他們的厲害之處
https://prisma-ai.com/


以下是目前對zi2zi初步理解:


zi2zi利用這個style transfer的基本做法(之一),大致如下:

training的時候…


先用字型A產生特定中文字的圖像當作training input stream,接著找另外一個字型B產生同樣的相同中文字的圖像來當作training output stream。

inference的時候…


當deep learning model已經學習完畢,如果它訓練效果很好,表示它大致上已經摸熟了字型A到字型B的微調原則,所以我們可以刻意給定另外一組不同中文字所組成的圖像當作inference input stream,讓它產生inference output stream。到這邊為止,還是zi2zi的本質。

但我想到的應用是:


倘若字型B是一個字數有短缺的字型,也許因為人力資源有限導致開發中斷或緩慢等等。透過這種作法我們其實可以要求這位虛擬字型學徒,透過inference的方式產生其他原先它並沒有看過的中文字。用這個特點,假設字型A是類似全字庫字型的full set,那我們可以這種做法來補足字型B的字數!

但有幾個潛在的問題:


A. 虛擬字型學徒可能學習效果很差
B. 虛擬字型學徒只能做圖到圖的轉換,但數位字型檔是OTF格式,中間還有一番轉換功夫

2018年10月18日 星期四

字型的深度學習(1)

之前看到日星初號楷體的時候,對這種字型相當著迷,無奈我得知這款字型的當下,日星鉛華網站已經停止服務,我甚至連這個網站原本長啥款都還不知道。
然後,我找到這家鉛字行的粉絲專業
似乎嗅出了那麼一點字型為何停止開放下載的理由,似乎是部分鉛字師父認為部分字型透過數位呈現出來的效果跟他們想的不一樣。

不過,我個人看到這款字型的問題,跟鉛字師傅在意的點完全不一樣,我認為缺字率太高的字型很難被接受,更甭論廣泛使用,畢竟字型這種東西要有人使用,才會被看到才會有人記住。但要克服缺字率這一點似乎就又回到了﹝人力短缺﹞這個很根本的老問題,畢竟鉛字行也算是夕陽產業沒錯吧?願意投入這一行,要能長期執行甚至以此養家活口的人,相對來說應該會很少。所以才冒出了『保留傳統工藝 發揮漢字文化價值』這樣豪邁的標語,打著文化價值的觀點來提倡這項技藝。

感覺這套字型如果還有下一步(也許已經完全停止開發),可能會是刻字老師傅要徹底教會製造數位字型的年輕字型設計師,然後這位還要這數位相對年輕的數位字型設計師還有辦法持續養活自己,持續造字(因為常用字數應該3k-5k可能跑不掉, 全字庫可能也要40k up才算),我們才有可能看到下一代字數足夠的「日星貳號楷體」

但,我有個不同的想法!


如果學會鉛字符號造型精隨的那個傢伙,不是人類,而是一台電腦呢?

如果我們讓人工智慧學會這個字型的外貌(如同老師傅訓練新手學徒造字),接著再讓這個二位元世界的學徒,自動去產生其他字符,是不是就比較有機會產生一個字數足夠的數位字型呢?

一般而言,人工智慧分成training/inference兩個步驟,前者是學習階段,後者算是應用階段。

舉例來說,支付寶電子支付廠商,如果想透過人工智慧的方式來辨識人臉,並加以自動扣除消費者的電子錢包,在他推出這項服務之前,他得先透過一系列複雜的學習跟計算過程,訓練出一的程式模型,而這一段程式碼專精於讀取圖片來進行人臉辨識,最後對應到某特定帳號,那這一段訓練過程叫做training;

而當支付寶公司推出這項服務之後,用戶手機裡面或者結帳櫃台上的電腦裡面,在適當的場合(結帳)來執行這段程式碼進行辨識,叫做inference。

如果有一套方法能夠讓某特定人工智慧程式能夠學會某特定字型的眉眉角角(training),那麼之後要產生數位字型的時候(inference),應該就有機會能夠大量生產眾多中文字符,省去冗長的琢磨時間,藉此解決字數不足的困處

遊戲專輯-小型(獨立)遊戲營利管道

除了販賣遊戲本身之外, 是否也可以在遊戲內置入性行銷呢?

綜觀遊戲市場,特別是獨立團隊(泛指30人以內小型團隊)遊戲市場,由於售價本身不能拉攏太高,導致銷售量如果沒有到達【超級歡迎】的程度,整體來說根本無法維持營運,也很難有持續性成長。所以,最近我就在想,如果直接製作的時候就拉贊助,在遊戲裡面來埋廣告呢?畢竟,遊戲的玩家基本上都是眼睛緊盯著畫面不放,如果能夠廣告的出現,有辦法不讓人只想點下﹝跳過廣告﹞那個連結的話,廣告效果應該會比較明顯,同時也對廠商有利。

舉個例子,假如遊戲裡面本來就有會出現很多顯眼招牌的街道場景,是不是就真的在一些虛擬世界裡面的招牌,擺上現實世界的廣告呢?這種作法眼球滯留時間可能遠超過電視廣告吧。

就拿OverCook來說,如果出現的食材或餐館場景,直接是某些品牌,好比說生魚片就直接tag成○○水產的生魚片。拉麵就冠上××拉麵店的商標,是不是就讓人腦子裡主動對這些品牌或商品跟實際產品直接產生連結,這種行銷手法也許才有辦法在不提高遊戲本身價格的前提下,為這款遊戲本身帶來更多附加價值。

以上,只是前幾天腦海裡突然浮現的想法,總覺得小團隊在遊戲開發如果不想想其他營利管道,把一切都賭在【這款遊戲真的有做好應該可以大賣N套】的作法,似乎很難長久經(燒)營(錢)下去。

2018年10月15日 星期一

網路資源蒐集 [出版發行] EP1

五個平臺出版體驗

http://www.sigono.com/ (如何靠ASO讓App商店轉換激增, 遊戲開發/發行公司)

Blogger 插入表格的最佳流程 + 自適應寬度


人工智慧好文大集合 EP1

https://free.com.tw/google-cloud-platform-free/

Cartoonify 利用 Google 神經網路將上傳的圖片轉為塗鴉手繪風格

GitHub: zi2zi project (字符到字符, Learning Chinese Character style with conditional GAN)

Knowledge Graphs and Deep Learning 102 Topics Covered in the video
1. Graph Convolutional Networks
2. Semi-supervised Learning
3. Knowledge Graphs and Ontology
4. Embedding in Knowledge Graphs
5. Adversarial Learning in Knowledge Graphs (KBGANs)


New Perspective on the Central Limit Theorem and Statistical Testing

Recurrent Net Dreams Up Fake Chinese Characters in Vector Format with TensorFlow

TensorFlow Installation Guide (Official)

好物分享-達文西動力模型

達文西動力模型