郝曉芳 馮俊青
【摘 要】現(xiàn)如今構(gòu)建人工智能或機(jī)器學(xué)習(xí)系統(tǒng)比以往任何時(shí)候都更加容易。普遍存在的尖端開源工具如 TensorFlow、Torch 和 Spark,再加上 AWS 的大規(guī)模計(jì)算力、Google Cloud 或其他供應(yīng)商的云計(jì)算,可以讓我們在短時(shí)間內(nèi)使用筆記本電腦建立起最前沿的機(jī)器學(xué)習(xí)模型。人工智能的核心要素其實(shí)是數(shù)據(jù),許多單位、企業(yè)、公司也都認(rèn)識(shí)到數(shù)據(jù)民主化是加快人工智能發(fā)展的必要步驟。事實(shí)上,我們很難用一篇文章來說明哪些開放數(shù)據(jù)集是有用的,因?yàn)樽C明數(shù)據(jù)集的有效性是需要大量實(shí)踐操作的。所以,教師在中小學(xué)書法教育評價(jià)中自建書法數(shù)據(jù)集,是一項(xiàng)必要且有意義的工作。
【關(guān)鍵詞】中小學(xué)書法評價(jià);機(jī)器學(xué)習(xí);書法數(shù)據(jù)集
【中圖分類號(hào)】G420? 【文獻(xiàn)標(biāo)志碼】B? 【文章編號(hào)】1005-6009(2021)30-0010-04
【作者簡介】1.郝曉芳,江蘇省鹽城市日月路小學(xué)(江蘇鹽城,224005)副校長,高級(jí)教師,鹽城市小學(xué)語文學(xué)科帶頭人,江蘇省小學(xué)語文優(yōu)質(zhì)課評比特等獎(jiǎng)獲得者;2.馮俊青,鹽城工學(xué)院(江蘇鹽城,224005)講師,江蘇省“六大人才高峰”高層次人才培養(yǎng)對象。
一、常見的書法開放數(shù)據(jù)集
目前,在網(wǎng)絡(luò)上可以找到很多公開的手寫漢字?jǐn)?shù)據(jù)集,其中用得最多的是中國科學(xué)院自動(dòng)化研究所搜集整理的CASIA-HWDB數(shù)據(jù)集。該數(shù)據(jù)集可以免費(fèi)使用,其包含 1020個(gè)人書寫的脫機(jī)手寫中文單字樣本和手寫文本,數(shù)據(jù)集是用Anoto筆在點(diǎn)陣紙上書寫后掃描、分割得到的。手寫單字樣本分為三個(gè)數(shù)據(jù)庫:HWDB1.0、HWDB1.1、HWDB1.2,手寫文本也分為三個(gè)數(shù)據(jù)庫:HWDB2.0、HWDB2.1、HWDB2.2。HWDB1.0、HWDB1.1、HWDB1.2總共有3895135個(gè)手寫單字樣本,分屬7356類(7185 個(gè)漢字和 171個(gè)英文字母、數(shù)字、符號(hào))。HWDB2.0、HWDB2.1、HWDB2.2總共有5091頁圖像,分割為52230個(gè)文本行和 1349414個(gè)文字。所有文字和文本樣本均存為灰度圖像(背景已去除),按書寫人的序號(hào)分別存儲(chǔ)。
這個(gè)數(shù)據(jù)集作為練習(xí)和訓(xùn)練手寫文字識(shí)別深度學(xué)習(xí)系統(tǒng)是沒有問題的,但是用于對中小學(xué)書法作品進(jìn)行評價(jià)就不夠了。數(shù)據(jù)集的建立最好以中小學(xué)生書法作品為采集對象。從2019年開始,在我校教師的共同努力下,共采集了2萬多幅小學(xué)生硬筆書法作品,以此來建立專用數(shù)據(jù)集,期望在書法的深度學(xué)習(xí)評價(jià)領(lǐng)域取得進(jìn)展。
二、原始圖片采集
在課題研究期間,我校教師共采集了2萬張真實(shí)的小學(xué)生硬筆書法作品彩色圖片,共6個(gè)類別,分別為小學(xué)六個(gè)年級(jí)的硬筆書法作品,如圖1、2、3所示。
三、自建專用數(shù)據(jù)集
一般自建數(shù)據(jù)集,首先要對搜集的圖片進(jìn)行預(yù)處理,包括旋轉(zhuǎn)、裁剪、縮放、轉(zhuǎn)為張量、正則化等。圖片預(yù)處理之后再采用以下幾種方法生成數(shù)據(jù)集:
1.留出法。
教師可直接將數(shù)據(jù)集D劃分為兩個(gè)互斥的集合:訓(xùn)練集S和測試集T。用S訓(xùn)練模型,用T來評估其測試誤差。需要注意的是,劃分時(shí)盡可能保持?jǐn)?shù)據(jù)分布的一致性,保持樣本類別比例相似。可采用分層采樣的方式。
在使用留出法時(shí),一般要采用若干次隨機(jī)劃分、重復(fù)進(jìn)行實(shí)驗(yàn)評估,取平均值作為留出法的評估結(jié)果。通常情況下,我們將2/3~4/5的大于一半數(shù)量的樣本劃分出來用于訓(xùn)練。
使用sklearn.model_selection中的train_test_
split( )來分割我們的數(shù)據(jù)集,其具體參數(shù)如下:
x、y代表待劃分?jǐn)?shù)據(jù)集所有樣本特征集合(自變量)和標(biāo)簽集合(因變量)。
test_size用來測試數(shù)據(jù)集所占的比例,有以下幾種輸入類型:
a.float型,0.0~1.0之間,此時(shí)傳入的參數(shù)即作為測試集的比例;
b.int型,此時(shí)傳入的參數(shù)的絕對值即作為測試集樣本的數(shù)量;
c.None,需要另一個(gè)參數(shù)train_size有輸入才生效,此時(shí)測試集取為train_size指定的比例或數(shù)量的補(bǔ)集;
d.缺省時(shí)為0.25,但要注意只有在train_size和test_size都不輸入值時(shí)缺省值才會(huì)生效。
train_size:基本同test_size,但缺省值為None。一般操作時(shí)test_size和train_size輸入一個(gè)即可。
random_state:int型,控制隨機(jī)數(shù)種子,默認(rèn)為None;隨機(jī)數(shù)種子其實(shí)就是該組隨機(jī)數(shù)的編號(hào),在需要重復(fù)試驗(yàn)的時(shí)候,保證得到一組一樣的隨機(jī)數(shù)。比如你每次都填1,其他參數(shù)一樣的情況下你得到的隨機(jī)數(shù)組是一樣的。但填0或不填,每次都會(huì)不一樣。
隨機(jī)數(shù)的產(chǎn)生取決于種子,隨機(jī)數(shù)和種子之間的關(guān)系遵從兩個(gè)規(guī)則:種子不同,產(chǎn)生不同的隨機(jī)數(shù);種子相同,即使實(shí)例不同也會(huì)產(chǎn)生相同的隨機(jī)數(shù)。
stratify:控制分類問題中的分層抽樣,為了保持split前類的分布,默認(rèn)為None,即不進(jìn)行分層抽樣,當(dāng)傳入為數(shù)組時(shí),則依據(jù)該數(shù)組進(jìn)行分層抽樣(一般傳入因變量所在列,即y)。
shuffle:bool型,用來控制是否在分割數(shù)據(jù)前打亂原數(shù)據(jù)集的順序,默認(rèn)為True。
返回值:依次返回訓(xùn)練集自變量、測試集自變量、訓(xùn)練集因變量、測試集因變量,因此使用該函數(shù)賦值須在等號(hào)右邊采取x_train,x_test,y_train,y_test的形式。
如下是隨機(jī)抽樣時(shí)的sklearn實(shí)現(xiàn):
from sklearn.model_selection import train_
test_split
x_train,x_test,y_train,y_test = train_test_
split(x,y,test_size=0.3)
如下是分層抽樣時(shí)的sklearn實(shí)現(xiàn):
from sklearn.model_selection import train_
test_split
x_train,x_test,y_train,y_test = train_test_
split(x,y,test_size=0.3,stratify=y)
隨機(jī)劃分法還有以下幾種函數(shù)可以實(shí)現(xiàn):ShuffleSplit,GroupShuffleSplit,StratifiedShuffle-
Split
2.交叉驗(yàn)證法。
交叉驗(yàn)證法(cross validation)是先將數(shù)據(jù)集D劃分為k個(gè)大小相似的互斥子集,即D=D1∪D2∪...∪DK,Di∩Dj=Φ(i≠j),每個(gè)子集Di都盡可能保持?jǐn)?shù)據(jù)分布的一致性,即從D中通過分層采樣得到。然后每次用k-1個(gè)子集的并集作為訓(xùn)練集,剩下的那一個(gè)子集作為驗(yàn)證集,從而可以進(jìn)行k次訓(xùn)練與測試,最終返回的是這k個(gè)測試結(jié)果的均值。顯然,交叉驗(yàn)證法的穩(wěn)定性和保真性在很大程度上取決于k的取值,因此交叉驗(yàn)證法又稱作“k折交叉驗(yàn)證”(k-fold cross validation),k最常見的取值為10,即“10折交叉驗(yàn)證”。這個(gè)方法充分利用了所取樣本,但計(jì)算比較煩瑣,需要訓(xùn)練k次,測試k次。
交叉驗(yàn)證法的一個(gè)特例:留一法(Leave-one-out,即LOO),留一法不受隨機(jī)樣本劃分方式的影響,因?yàn)閙個(gè)樣本只有唯一的方式劃分m個(gè)子集(每個(gè)子集包含一個(gè)樣本),其優(yōu)缺點(diǎn)如下:
優(yōu)點(diǎn):留一法使用的訓(xùn)練集與初始數(shù)據(jù)集相比只少了一個(gè)樣本,這就使得在絕大多數(shù)情況下,留一法中被實(shí)際評估的模型與期望評估的用D訓(xùn)練出的模型很相似,因此,留一法的評估結(jié)果往往被認(rèn)為比較準(zhǔn)確。
缺點(diǎn):當(dāng)數(shù)據(jù)集比較大時(shí),訓(xùn)練m個(gè)模型的計(jì)算成本是難以想象的。
我們使用sklearn.model_selection里的函數(shù)進(jìn)行交叉驗(yàn)證。K折交叉驗(yàn)證:K_Fold,GroupKFold,Stratified-KFold;
留一法:LeaveOneGroupOut,LeavePGroups-
Out,LeaveOneOut,LeavePOut
3.自助法。
自助法則是使用有放回采樣的方式進(jìn)行數(shù)據(jù)采樣的,即我們每次從數(shù)據(jù)集D中取一個(gè)樣本作為訓(xùn)練集中的元素,然后把該樣本放回,重復(fù)該行為m次,這樣我們就可以得到大小為m的訓(xùn)練集,在這里面有的樣本重復(fù)出現(xiàn),有的樣本則沒有出現(xiàn)過,我們把那些沒有出現(xiàn)過的樣本作為測試集。通過估計(jì)m次采樣后每個(gè)樣本大約有0.368的概率不被采樣,因此我們可以認(rèn)為在D中約有36.8%的數(shù)據(jù)沒有在訓(xùn)練集中出現(xiàn)過。
優(yōu)點(diǎn):這種方法對于那些數(shù)據(jù)集小、難以有效劃分訓(xùn)練/測試集時(shí)很有用。
缺點(diǎn):該方法改變了數(shù)據(jù)的初始分布,可能會(huì)導(dǎo)致引入估計(jì)偏差。
將創(chuàng)建的數(shù)據(jù)集拆分為訓(xùn)練數(shù)據(jù)集(1.5萬張圖片)和預(yù)測數(shù)據(jù)集(0.5萬張圖片)。其中1.5萬張圖片的訓(xùn)練數(shù)據(jù)集又被拆分為5個(gè)data_batch,1萬張圖片的預(yù)測數(shù)據(jù)集組成test_batch,如圖4所示。
若數(shù)據(jù)量充足,通常采用留出法或者k折交叉驗(yàn)證法來進(jìn)行訓(xùn)練/測試集的劃分;對于數(shù)據(jù)集小且難以有效劃分訓(xùn)練/測試集時(shí)使用自助法;對于數(shù)據(jù)集小且可有效劃分時(shí)最好使用留一法來進(jìn)行劃分,因?yàn)檫@種方法最為準(zhǔn)確。在機(jī)器學(xué)習(xí)中還存在著一種叫作時(shí)間序列的數(shù)據(jù)類型,這種數(shù)據(jù)的特點(diǎn)是高度的自相關(guān)性,前后相鄰時(shí)段的數(shù)據(jù)關(guān)聯(lián)程度非常高。因此,在對這種數(shù)據(jù)分割時(shí),不可以像其他機(jī)器學(xué)習(xí)任務(wù)那樣進(jìn)行簡單隨機(jī)抽樣的方式采樣,對時(shí)間序列數(shù)據(jù)的采樣不能破壞其時(shí)段的連續(xù)型,在sklearn.model_selection中我們使用TimeSeriesSplit( )來分割時(shí)序數(shù)據(jù),其主要參數(shù)如下:
n_splits:int型,控制產(chǎn)生(訓(xùn)練集+驗(yàn)證集)的數(shù)量;
max_train_size:控制最大的時(shí)序數(shù)據(jù)長度。
【參考文獻(xiàn)】
[1]陳康. 超限學(xué)習(xí)機(jī)拓展研究及其腦電分類應(yīng)用[D].杭州:杭州電子科技大學(xué),2019.
[2]黃海. 基于MDD融合數(shù)據(jù)集的GPP估算比較研究[D].北京:中國地質(zhì)大學(xué),2019.
[3]李佳根. 基于深度遷移學(xué)習(xí)的賴氨酸乙?;稽c(diǎn)預(yù)測問題的研究[D].長春:東北師范大學(xué),2019.
[4]周張萍. 面向課堂教學(xué)的字幕生成關(guān)鍵技術(shù)研究[D].廈門:廈門大學(xué),2019.
[5]鄧?yán)? 基于數(shù)據(jù)集相似性的分類算法自動(dòng)選擇研究[D].深圳:深圳大學(xué),2019.
[6]陳磊陽. 基于改進(jìn)VGGNet的不透水面信息提取應(yīng)用研究[D].開封:河南大學(xué),2019.
[7]陳遠(yuǎn)鵬. 基于長時(shí)間可穿戴社交數(shù)據(jù)集的語音分割方法的研究[D].成都:電子科技大學(xué),2019.