0
本文作者: 楊曉凡 | 2017-09-30 15:27 |
雷鋒網(wǎng) AI 科技評論按:隨著蘋果機器學(xué)習(xí)日記(Apple ML Journal)的開放,蘋果分享出的設(shè)計自己產(chǎn)品、運用機器學(xué)習(xí)解決問題的故事也越來越多。近日蘋果在上面就放出了一篇關(guān)于識別手寫中文的文章,介紹了自己對這個功能的思考和實現(xiàn)過程。雖然文章中沒有什么全新的技術(shù),但也不失為一篇有誠意的開發(fā)經(jīng)驗分享。雷鋒網(wǎng) AI 科技評論把文章編譯如下。
隨著手機、平板電腦這樣的移動設(shè)備,以及智能手表這樣的可穿戴設(shè)備變得流行甚至不可或缺,手寫識別也隨之變得前所未有地重要。中文包含了一個很大的字符庫,在這些移動設(shè)備上支持中文手寫識別就帶來了一組獨特的挑戰(zhàn)。這篇文章中,蘋果介紹了他們是如何在 iPone、iPad 和 Watch(繪畫模式中)上應(yīng)對這些挑戰(zhàn)、實現(xiàn)中文手寫的實時識別的。蘋果設(shè)計的基于深度學(xué)習(xí)的識別系統(tǒng)可以準(zhǔn)確地處理高達(dá)3萬個不同的字符。為了達(dá)到合理的準(zhǔn)確度,蘋果的開發(fā)人員們在數(shù)據(jù)收集模式、書寫方式的代表性和訓(xùn)練方式方面專門花了心思處理。他們發(fā)現(xiàn),只要使用恰當(dāng)?shù)姆绞?,即便更大的字符庫也可以解決得了。實驗表明只要訓(xùn)練數(shù)據(jù)的質(zhì)量足夠高、數(shù)量足夠大,隨著字符庫增大,識別準(zhǔn)確率只會慢慢下降。
手寫識別可以增強移動設(shè)備的用戶體驗,尤其是中文的鍵盤輸入還相對比較復(fù)雜。中文的手寫識別也有獨特的挑戰(zhàn)性,因為中文背后的字符庫非常大。其它基于字母的語言中,包含字符的數(shù)量級通常也就在100上下,而中文國標(biāo) GB18030-2005 中含有的漢字有27533個,在整個中國范圍內(nèi)還有許多圖形式的字符仍然在使用著。
為了便于電腦處理,常見的做法是只關(guān)注其中的一部分字符,一般就是選出日常使用中最有代表性的字。根據(jù)這樣的思路,中文國標(biāo)字符集 GB2312-80 僅僅包含了 6763 個字符(其中一級字符3755個,二級字符3008個)。中國科學(xué)院自動化研究所也構(gòu)建了一個嚴(yán)密對齊的字符集,運用在CASIA數(shù)據(jù)庫中,包含了總共7356個字符。SCUT-COUCH數(shù)據(jù)庫的容量也在同一個水平上。
這些字符集基本反映了全中國的作家們的常用字。然而在個人層面上,每個人之間的“最常用字”經(jīng)常都會有所不同。許多人都至少有幾十個自己的“不常用字”,因為這些字其實會在相關(guān)的事物名中出現(xiàn),反倒不用一個個寫出來了。這樣,理想狀況下的中文手寫識別算法就至少要擴充到 GB18030-2005 中2萬多個漢字的水平。
早期的識別算法主要依靠基于一筆一劃分析的結(jié)構(gòu)化方法,后來有了去除筆劃順序影響的需求,就引發(fā)了人們利用整體形狀信息建立統(tǒng)計學(xué)方法的興趣。然而文本類別的數(shù)量越多,清晰地把文本分入一個類別就越難,這些方法顯然會大大提升大字符集下的識別難度。
對于MNIST之類的拉丁字符識別任務(wù),卷積神經(jīng)網(wǎng)絡(luò)(CNN)很快就表現(xiàn)出了壓倒性的優(yōu)勢。只要有足夠的訓(xùn)練數(shù)據(jù)、適當(dāng)補充一些需要的生成樣本,CNN毫無疑問可以達(dá)到出頂尖的表現(xiàn)。不過,這些研究中的字符類別都相當(dāng)?shù)纳佟?/p>
之前,當(dāng)蘋果的研究人員們開始研究如何做大規(guī)模的中文字符識別時,似乎明擺著就應(yīng)該選CNN。但是CNN的方法需要把網(wǎng)絡(luò)拓展到包含接近3萬個字符,同時還要保證在嵌入式設(shè)備上還有實時識別的性能。這篇文章的重點就是介紹如何解決延時、字符覆蓋率、書寫風(fēng)格的魯棒性等方面的問題,達(dá)到理想的性能表現(xiàn)。
蘋果的研究人員們在這項研究中采用了一個普遍的CNN架構(gòu),跟之前用在MNIST手寫識別實驗中的CNN類似。系統(tǒng)的總體架構(gòu)如圖
系統(tǒng)輸入是一張中等分辨率 48x48 的圖像(為了更好的性能),其中包含著一個手寫中文字符。然后把它送入幾個包含卷積層和子采樣層的特征提取層。最后一個特征提取層通過一個全連接層連接到輸出。
在每個卷積層中,蘋果的研究人員們都選擇了能夠從逐漸變得粗糙的粒度中盡量提取特征的卷積核和feature map數(shù)量。他們運用一個2x2的卷積核,通過一個最大池化層做子采樣。最后一個特征層包含的小feature map數(shù)量級一般在1000上下。最后,輸出層上給每一個類都有一個單獨的節(jié)點,對于 GB2312-80 中級別1的漢字就有3755個節(jié)點,拓展到所有字符的時候就要接近30000。
作為基準(zhǔn)線,蘋果的研究人員們在CASIA benchmark任務(wù)中評估了這個CNN模型。雖然這個任務(wù)只涵蓋了漢字中級別1的字符,但是在以往文獻(xiàn)中有豐富的識別測試準(zhǔn)確率結(jié)果。他們使用了同樣的基于 CASIA-OLHWDB、DB1.0-1.2,分為訓(xùn)練集和測試集,訓(xùn)練樣本的數(shù)量大約為100萬個。
值得注意的是,蘋果這項研究的關(guān)注點是面向產(chǎn)品的,所以他們的目標(biāo)并不是在 CASIA 中取得盡可能高的準(zhǔn)確率,更為關(guān)注的是模型大小、推理速度和用戶體驗。所以,他們的優(yōu)化目標(biāo)是一個緊湊的、能夠?qū)崟r計算結(jié)果的系統(tǒng),它要能夠?qū)Ω抖喾N不同的書寫風(fēng)格,對于非標(biāo)準(zhǔn)的筆劃順序也需要有較高的魯棒性。這樣下來,即便把在線的數(shù)據(jù)庫也加入了評估中,他們還是選用了基于圖像特征的識別方法。他們也把實際觀察到的筆劃變化、外型改變也考慮了進(jìn)來。
表1展示了前文圖1中的CNN模型的測試結(jié)果,其中“Hz-1”代表了級別1的漢字庫(3755個字符),“CR(n)”代表了模型的前n位識別結(jié)果中含有正確字符的準(zhǔn)確率。除了常用的首選準(zhǔn)確率(n=1)和前10位識別準(zhǔn)確率(n=10)之外,表格中還加入了一項前4位準(zhǔn)確率(n=4),因為蘋果的用戶界面中就是顯示4個候選字符,前4位準(zhǔn)確率是一個重要的衡量用戶體驗的標(biāo)志。
之前有研究中首選準(zhǔn)確率達(dá)到93%,前10位準(zhǔn)確率達(dá)到98%。相比之下,雖然蘋果自己的前10位準(zhǔn)確率和其它研究中的在同一水平上,但第一位準(zhǔn)確率要稍低。在蘋果看來,這是為了達(dá)到更高的前4位準(zhǔn)確率作出的平衡;而且可能更重要的是,這個模型的大小(1MB)比之前任何類似的系統(tǒng)都要小。
表1中的系統(tǒng)僅僅用了CASIA中的數(shù)據(jù)進(jìn)行了訓(xùn)練,沒有用到其它的訓(xùn)練數(shù)據(jù)。蘋果的研究人員們也很感興趣,如果額外加入自家的iOS設(shè)備上實際采集到的手寫數(shù)據(jù)用來訓(xùn)練系統(tǒng)會達(dá)到怎樣的效果。這些數(shù)據(jù)中涵蓋的書寫風(fēng)格更為多樣,每個字符也有更多對應(yīng)的訓(xùn)練樣本。如下表2就是訓(xùn)練結(jié)果,對應(yīng)的是同一個3755字符的字符庫。
雖然這個系統(tǒng)的體積有大幅度的增加(達(dá)到了15MB),準(zhǔn)確率卻只提升了一點點(前4位準(zhǔn)確率的絕對值提升了2%)。這表明,測試集中的多數(shù)書寫風(fēng)格都已經(jīng)在CASIA的訓(xùn)練集中有了相當(dāng)?shù)母采w。不過這也說明增加更多的訓(xùn)練數(shù)據(jù)并沒有什么壞處:新增加的書寫風(fēng)格并不會對模型的原有表現(xiàn)帶來負(fù)面的影響。
前文有說過,每個人理想狀況的下的“常寫的字”都不一樣,用戶數(shù)目大的時候需要的字庫大小也就遠(yuǎn)遠(yuǎn)不止3755個。準(zhǔn)確挑出需要的字庫也不是一件那么簡單直接的事情。GB2312-80 定義的簡體中文字符,以及 Big5、Big5E、CNS 11643-92 中定義的繁體中文字符覆蓋的范圍也各有不同(從3755到48027個漢字)。近期一些的還有新增了4568個字符的 HKSCS-2008,GB18030-2000中的甚至更多。
蘋果想要保證用戶們的日常用語都能寫得出來,不管是簡體還是繁體中文、是名字還是詩歌,還有其它常用的標(biāo)記、視覺符號和emoji表情,他們也希望能讓用戶無需轉(zhuǎn)譯就寫出偶爾會在產(chǎn)品或者品牌名中出現(xiàn)的拉丁字符。蘋果遵循了國際主流的 Unicode 字符集作為字符編碼標(biāo)準(zhǔn),因為其中幾乎囊括了上面提到的所有字符標(biāo)準(zhǔn)(值得一提的是,Unicode 7.0在B-D拓展中可以區(qū)分7萬個字符,而且還在考慮增加更多)。所以蘋果的字符識別系統(tǒng)就選擇了關(guān)注 GB18030-2005, HKSCS-2008, Big5E 中的漢字部分,以及 ASCII 的核心字符集和一組視覺符號和emoji表情,總數(shù)大約3萬個字符。這對于大多數(shù)中國用戶來說已經(jīng)是最佳的取舍了。
在選出了模型內(nèi)在的字符庫之后,下一個關(guān)鍵的點就是對用戶真正使用的書寫風(fēng)格進(jìn)行采樣。雖然不同的書寫風(fēng)格之間有一些正式的規(guī)則可以用來幫助鑒別,但此外還會有一些區(qū)域性的書寫變化,比如 U+2EBF (艸)的幾種寫法,或者U+56DB(四)的寫得潦草的時候和U+306E(の)之間的類似性。
屏幕上顯示的字符也會帶來迷惑性,因為有些用戶會希望某些字符以特定的樣式顯示。寫得快的時候也會讓風(fēng)格變得潦草,這會增加字符的模糊性,比如 U+738B(王)和U+4E94(五)。
最后,增大國際化的程度有時候也會帶來沒有預(yù)料到的沖突,比如U+4E8C(二),寫成連筆的時候就會和拉丁字符“2”和“Z”產(chǎn)生沖突。
蘋果的設(shè)計準(zhǔn)則是給用戶提供全部的輸入可能性,不管是像印刷字體一樣,還是潦草的、不受約束的寫法。為了囊括盡可能多的字體變形,蘋果的研究人員們從全中國不同區(qū)域的作家們手中收集數(shù)據(jù)。讓他們很驚訝的是,有不少不常用的字,大多數(shù)的用戶連見都沒有見過。由于對不常用字的不熟悉,用戶在書寫的時候可能會猶豫、寫錯筆劃順序,以及造成其它的一些錯誤,都需要納入考慮中。
蘋果的研究人員們雇了許多不同年齡段、性別、教育程度的普通中國人,讓他們寫字,收集數(shù)據(jù);最終得到的手寫數(shù)據(jù)也有許多別的數(shù)據(jù)庫不具有的特點:包含了多大幾千名用戶的數(shù)據(jù),在iOS設(shè)備上用手指書寫(而不是手寫筆),數(shù)據(jù)也是有許多小批的。其中還有一個好處是iOS設(shè)備的采樣會形成非常清晰的手寫筆跡。
蘋果的研究人員們發(fā)現(xiàn)了非常多樣的書寫方式。如下圖2到圖4是其中一些U+82B1(花)的寫法,有的接近打印,有的很潦草,有的變化很大。
實際上,日常生活中用戶們經(jīng)常寫得很快、變化很大,潦草、變形的筆跡看起來會有很大的區(qū)別。比如U+7684(的)和U+4EE5(以)。
反過來說,有時候不同的字也會看起來很相似,造成迷惑。以下U+738(王)、U+4E94(五)的數(shù)據(jù)就是明顯的例子。值得注意的是,要能夠區(qū)分潦草的變化就一定需要足夠的訓(xùn)練數(shù)據(jù)。
根據(jù)前面討論的設(shè)計準(zhǔn)則,蘋果采集了上千萬個手寫的漢字實例用作訓(xùn)練數(shù)據(jù)。下面表3中的結(jié)果就是把可識別的字符數(shù)量從前面的3755個字符拓展到接近3萬之后得到的。仍然是前文的同一個 CASIA 在線測試。
這里保持了同樣的模型大小。前文表2中的系統(tǒng)只是限制在級別1漢字范圍,其它都與表3中的系統(tǒng)相同。準(zhǔn)確率有略微下降,這倒比較符合研究人員們的期待,因為大幅度增長的覆蓋范圍會帶來額外的混淆,比如前面提到過的“二”和“Z”。
把表1到表3的結(jié)果進(jìn)行對比,可以看到把字符覆蓋范圍擴大10倍并不會把錯誤率也擴大10倍,或者把模型大小變大10倍。實際上,對于更大的模型,錯誤率升高得要慢得多。所以,構(gòu)建一個覆蓋了3萬個字符(而不是僅僅3755)、同時還有高準(zhǔn)確率的中文手寫字符識別系統(tǒng),不僅是可能的,還是可行的。
為了說明系統(tǒng)在這所有3萬個字符中的表現(xiàn)如何,蘋果的研究人員們也用一系列不同的測試集進(jìn)行了測試,其中包含了所有支持的字符、用了各種的書寫風(fēng)格。表4是結(jié)果的平均值。
當(dāng)然,表3和表4的結(jié)果是不能夠直接進(jìn)行對比的,因為它們是用不同的測試集得到的。不過,它們的第一位準(zhǔn)確率和前四位準(zhǔn)確率對于整個字符庫都是在同一水平的。這樣的結(jié)果是通過較為均衡的訓(xùn)練模式達(dá)到的。
在表意文字工作組 IRG 不斷從不同的來源收集文字、提出新的增加建議下,目前大小約為75000的Unicode字符集中含有的中日韓文表義文字未來還可能繼續(xù)增加。坦誠地講,之后新增加的字符都會是非常罕見的字符(比如歷史上出現(xiàn)過的名字或者詩歌中的)。不過,對于名字里剛好有一些罕見字的人來說,這些工作還是很有意義的。
那么,蘋果未來打算如何應(yīng)對更大的字符庫呢?這篇文章中的實驗展示了不同數(shù)量的訓(xùn)練數(shù)據(jù)下的訓(xùn)練和測試錯誤率狀況。這樣就可以做近似的推斷,預(yù)測有更多訓(xùn)練數(shù)據(jù)、更多字符需要識別的時候準(zhǔn)確率表現(xiàn)如何。
比如,從表1到表3可以看到,對于增大了十倍的字符庫和模型相關(guān)資源的大小,準(zhǔn)確率僅僅下降了(不到)2%。那么就有理由猜測,對于數(shù)目達(dá)到十萬個的字符庫和同倍增加的訓(xùn)練數(shù)據(jù),完全有可能仍然達(dá)到84%左右的首選準(zhǔn)確率和97%的前10位準(zhǔn)確率(對于同樣的網(wǎng)絡(luò)架構(gòu))。
總結(jié)來說,構(gòu)造一個覆蓋了多達(dá)3萬個中文字符的高準(zhǔn)確率手寫識別系統(tǒng),即便對于嵌入式設(shè)備也是可以實現(xiàn)的。進(jìn)一步地,隨著字符庫大小增加,識別準(zhǔn)確率下降得非常慢,只要有足夠數(shù)量的高質(zhì)量訓(xùn)練數(shù)據(jù)。這對未來可能的基于更大的字符庫的手寫識別來說是一個好消息。
via Apple ML Journal,雷鋒網(wǎng) AI 科技評論編譯
相關(guān)文章:
蘋果機器學(xué)習(xí)博客姍姍來遲,不過第一篇文章就給緊缺訓(xùn)練數(shù)據(jù)的研究者們發(fā)糖
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。