目的
深度學習已經有很多有趣的應用方向。同學提出一個瘋狂的計畫:結合實驗室的機械手臂,建立一個可以讓機械手根據攝影鏡頭看到的印刷體漢字,改寫出具有特定筆跡的同一個漢字。這個計畫需要結合以下的子計畫
領域遷移網路(Domain Transfer Network, DTN) ,基礎架構是生成對抗網路 (Generative Adversarial Networks, GAN),它包含一個可訓練的生成器 (Generator) 和一個可訓練的辨識器 (Discriminator),兩者輪流交替訓練:辨識器評量生成器的輸出與生成目標之間的差距,回饋給生成器調整其參數;生成器提供生成輸出,合併其生成目標,提供給辨識器訓練其分辨兩者差異的能力。
同學以 Facebook AI Research 的研究員 Yaniv Taigman, Adam Polyak & Lior Wolf 發表的一個DTN實例的網路架構作為初學的對象。這個實例的領域遷移目標是:將街景的門牌號轉換為手寫體數字,我們簡稱為SVHND-DTN (Street View House Number to Digit)。網路架構從GAN延伸出,是很好的程式實作練習對象。模型示意圖如下:
先從簡化的任務動手,建立一個序列生成的深度學習模型,能夠將印刷漢字圖像,生成正確的筆畫序列。同學以Atsunobu Kotani 與Stefanie Tellex 的建網路架構為基礎:將印刷漢字圖,依筆畫順序,從開始寫到寫完整個字,分解成圖形序列,以此為訓練資料,訓練網路Stroke-N (stroke network),使其具有將輸入的任意印刷漢字圖像生成依筆畫順序的圖形序列。
經過程式實作後,訓練後Stroke-N,將輸入的一些印刷漢字圖,依照輸出的筆畫順序,寫出漢字的gif圖如下:
深度學習學習成果
原始筆畫順序