雷祥 陳治湘 趙濤
摘 ?要: 本文利用JMP對(duì)一個(gè)復(fù)雜多項(xiàng)式進(jìn)行擬合,從實(shí)驗(yàn)設(shè)計(jì)產(chǎn)生樣本數(shù)據(jù)、神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)、訓(xùn)練樣本技巧、到結(jié)果分析進(jìn)行詳細(xì)闡述。使讀者能夠使用JMP軟件的神經(jīng)網(wǎng)絡(luò)分析工具,解決實(shí)際問(wèn)題。
關(guān)鍵詞: 神經(jīng)網(wǎng)絡(luò);JMP;實(shí)例分析
中圖分類號(hào): TP389.1 ? ?文獻(xiàn)標(biāo)識(shí)碼: A ? ?DOI:10.3969/j.issn.1003-6970.2019.05.050
本文著錄格式:雷祥,陳治湘,趙濤,等. 基于JMP的神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)實(shí)例分析[J]. 軟件,2019,40(5):257261
【Abstract】: This paper uses JMP to fit a complex polynomial, and elaborates sample data, neural network design, training sample skills, and results analysis from experimental design. Enables readers to solve real-world problems using JMP software's neural network analysis tools.
【Key words】: Neural network; JMP; Example analysis
0 ?引言
當(dāng)前人工智能已經(jīng)應(yīng)用在很多領(lǐng)域,輔助人類解決了很多問(wèn)題,神經(jīng)網(wǎng)絡(luò)作為人工智能的基礎(chǔ)理論,近些年也得到飛速發(fā)展,也有了TensorFlow、Caffe、Chainer等機(jī)器學(xué)習(xí)框架,能夠滿足用戶快速搭建應(yīng)用。本文使用JMP軟件提供的神經(jīng)網(wǎng)絡(luò)工具,對(duì)一個(gè)復(fù)雜多項(xiàng)式進(jìn)行擬合,并對(duì)結(jié)果進(jìn)行分析,便于提升大家對(duì)神經(jīng)網(wǎng)絡(luò)的直觀認(rèn)識(shí)[1,3]。JMP是全球最大的統(tǒng)計(jì)學(xué)軟件公司SAS推出了一種交互式可視化統(tǒng)計(jì)發(fā)現(xiàn)軟件,被譽(yù)為“卓越績(jī)效的統(tǒng)計(jì)發(fā)現(xiàn)引擎”[4],其主要有三個(gè)特點(diǎn),一是具有操作簡(jiǎn)便、交互性強(qiáng)、可視化效果好的特點(diǎn),專業(yè)版中還集成了預(yù)測(cè)、聚類、質(zhì)量與過(guò)程、可靠性與生存、消費(fèi)者研究等分析工具,適合非統(tǒng)計(jì)專業(yè)背景的數(shù)據(jù)分析人員使用,二是JMP還有強(qiáng)大的實(shí)驗(yàn)設(shè)計(jì)功能,幾乎涵蓋了所有主流的實(shí)驗(yàn)設(shè)計(jì)工具。三是提供強(qiáng)大的二次開(kāi)發(fā)功能,JMP可以作為一個(gè)服務(wù)器引擎,提供調(diào)用接口,實(shí)現(xiàn)用戶個(gè)性化需求,為用戶節(jié)省大量復(fù)雜設(shè)計(jì)和計(jì)算[7]。
1 ?樣本產(chǎn)生
神經(jīng)網(wǎng)絡(luò)的樣本數(shù)據(jù)是基礎(chǔ),為了能夠進(jìn)行直觀喝準(zhǔn)確的對(duì)比神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)效果,使用下述多項(xiàng)式產(chǎn)生樣本數(shù)據(jù),再利用神經(jīng)網(wǎng)絡(luò)進(jìn)行學(xué)習(xí)訓(xùn)練。
使用JMP進(jìn)行可視化,得到圖1,顯示了 , 對(duì)應(yīng)Z的效果。
使用JMP的實(shí)驗(yàn)設(shè)計(jì)功能,對(duì)曲面進(jìn)行抽樣,為了計(jì)算快速,使用空間填充設(shè)計(jì)的快速靈活填充設(shè)計(jì)方法,輸入需要的樣本數(shù)量,即可均勻產(chǎn)生樣本空間。
對(duì)X、Y進(jìn)行抽樣后,產(chǎn)生實(shí)驗(yàn)點(diǎn),然后使用多項(xiàng)式進(jìn)行計(jì)算,得出對(duì)應(yīng)的Z值,作為神經(jīng)網(wǎng)絡(luò)通過(guò)學(xué)習(xí)樣本數(shù)據(jù),擬合出模型。(注:使用該多項(xiàng)式,目的是為了產(chǎn)生準(zhǔn)確的樣本數(shù)據(jù),神經(jīng)網(wǎng)絡(luò)中不需要這個(gè)多項(xiàng)式模型,預(yù)先也不知道該模型)。
2 ?神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)
神經(jīng)網(wǎng)絡(luò)本質(zhì)是高維模型的擬合,也是一種回歸思想,找一個(gè)模型來(lái)對(duì)多維數(shù)據(jù)進(jìn)行擬合,但這個(gè)模型不是經(jīng)典的線性模型、二次模型、或者指數(shù)模型等,而是一組矩陣參數(shù),通過(guò)修改參數(shù)來(lái)使得樣本值與實(shí)際值的誤差最小,或者誤差穩(wěn)定[6,9,10]。在JMP中,設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)主要是要設(shè)計(jì)隱層的數(shù)量和每一層的節(jié)點(diǎn)數(shù)量。理論上節(jié)點(diǎn)和層數(shù)越多,擬合效果越好,但是層數(shù)和節(jié)點(diǎn)越多,計(jì)算量越大,容易導(dǎo)致過(guò)擬合。JMP中提供了2個(gè)隱藏層、三種激活函數(shù),可以根據(jù)具體情況進(jìn)行選擇和設(shè)計(jì)[8]。
2.1 ?設(shè)計(jì)基本原則
首先確定網(wǎng)絡(luò)層數(shù)、然后確定節(jié)點(diǎn)個(gè)數(shù)。網(wǎng)絡(luò)層次在大多數(shù)情況下,使用1個(gè)隱藏就夠,不宜太多。節(jié)點(diǎn)個(gè)數(shù)一般從3個(gè)開(kāi)始,不斷增加,如果維度比較多,那么節(jié)點(diǎn)個(gè)數(shù)一般要大于維度,后面層次的節(jié)點(diǎn)個(gè)數(shù)不宜太多。這些原則并沒(méi)有什么科學(xué)依據(jù),都是同行的經(jīng)驗(yàn)。
然后是訓(xùn)練結(jié)果分析,通過(guò)觀察測(cè)試誤差,是否達(dá)到我們的精度要求來(lái)衡量神經(jīng)網(wǎng)絡(luò)的優(yōu)劣,是否需要改進(jìn)。訓(xùn)練結(jié)果中主要關(guān)注訓(xùn)練集和驗(yàn)證集的R平方這個(gè)指標(biāo), 被稱為判定系數(shù),是衡量擬合效果的重要參數(shù)。R平方的范圍是[0,1],越趨近1,說(shuō)明擬合效果越好,越趨近與0,效果越差。另外,還可以把預(yù)測(cè)值與實(shí)際值進(jìn)行可視化比較,直觀比較預(yù)測(cè)效果。最后,修正網(wǎng)絡(luò)結(jié)構(gòu)。通過(guò)多次訓(xùn)練,循環(huán)迭代修正網(wǎng)絡(luò)結(jié)構(gòu),使得網(wǎng)絡(luò)達(dá)到最穩(wěn)定狀態(tài)。
2.2 ?設(shè)計(jì)案例
為了對(duì)比各種設(shè)計(jì)的優(yōu)劣,根據(jù)JMP提供的實(shí)驗(yàn)環(huán)境,下面進(jìn)行三組實(shí)驗(yàn)。
實(shí)驗(yàn)一:使用1000個(gè)樣本數(shù)據(jù)進(jìn)行學(xué)習(xí)訓(xùn)練結(jié)果,其中驗(yàn)證集是使用了其中20%的樣本作為交叉驗(yàn)證,為便于對(duì)比,設(shè)定隨機(jī)數(shù)種子。下面實(shí)驗(yàn)主要是驗(yàn)證各種激活函數(shù)的性能、以及節(jié)點(diǎn)數(shù)量對(duì)擬合效果的影響。PCA的計(jì)算中最主要的工作量是計(jì)算樣本協(xié)方差矩陣(散布矩陣)的特征值和特征向量。
為了便于對(duì)比,使用JMP的圖形生成器,對(duì)上述表格進(jìn)行疊加可視化,效果如圖4。
圖4中我們可以看出,使用線性的激活函數(shù)效果最差,即使是節(jié)點(diǎn)數(shù)量增加,也沒(méi)有明顯提升,對(duì)于TanH和徑向高斯兩張激活函數(shù)無(wú)明顯差異,徑向高斯激活函數(shù)相對(duì)比較穩(wěn)定,當(dāng)節(jié)點(diǎn)數(shù)量增加到一定程度后,無(wú)明顯差異。
實(shí)驗(yàn)二:從實(shí)驗(yàn)一中 可以看出線性激活函數(shù)的擬合能力很差,不適合本實(shí)驗(yàn)樣本,因此下屬實(shí)驗(yàn)只使用其余兩種激活函數(shù)。JMP提供了2個(gè)隱層設(shè)計(jì),下面的實(shí)驗(yàn)中,增加一個(gè)隱藏層。利用上面的結(jié)論,可以通過(guò)計(jì)算小矩陣的特征值和特征向量,間接得到矩陣的特征值和特征向量,由于矩陣的維數(shù)遠(yuǎn)遠(yuǎn)小于矩陣的維數(shù),所以利用這種做法可以大大減小傳統(tǒng)PCA算法中的計(jì)算量,提高運(yùn)算速度。
實(shí)驗(yàn)三:交換兩個(gè)隱層節(jié)點(diǎn)的數(shù)量,觀察對(duì)擬合度的影響。
從表2、3中我們可以看出,R平方的值是隨節(jié)點(diǎn)的數(shù)量增加而增加,但節(jié)點(diǎn)增加到一定數(shù)量后,R平方的值變化不大,因此在設(shè)計(jì)節(jié)點(diǎn)數(shù)量時(shí),當(dāng)R平方的值穩(wěn)定到一定范圍后,就沒(méi)有必要再繼續(xù)增加節(jié)點(diǎn)數(shù)量,因?yàn)楣?jié)點(diǎn)數(shù)量增加,會(huì)導(dǎo)致后期學(xué)習(xí)訓(xùn)練的運(yùn)算量成急劇增加。隱藏層節(jié)點(diǎn)的數(shù)量交換后,對(duì)結(jié)果影響不大。
從圖5中可以看出,在本實(shí)驗(yàn)中當(dāng)R平方到達(dá)0.99后,基本趨于穩(wěn)定。所以,我們確定網(wǎng)絡(luò)層的節(jié)點(diǎn)第一層位5個(gè),第二層為3個(gè),網(wǎng)絡(luò)結(jié)構(gòu)如下圖6。
網(wǎng)絡(luò)結(jié)構(gòu)確定后,就可以使用神經(jīng)網(wǎng)絡(luò)的模型進(jìn)行預(yù)測(cè)和分析。在JMP里面,訓(xùn)練結(jié)束后,點(diǎn)擊模型左邊的紅色小三角,點(diǎn)擊“發(fā)布預(yù)測(cè)公式”,在出來(lái)的對(duì)話框中,點(diǎn)擊神經(jīng)左邊的紅色小三角,點(diǎn)擊“運(yùn)行腳本”,選擇數(shù)據(jù)對(duì)話框,預(yù)測(cè)出來(lái)的結(jié)果,就保存在當(dāng)前現(xiàn)在的數(shù)據(jù)表后面幾列,列名加上了“Predicted”前綴。
3 ?神經(jīng)網(wǎng)絡(luò)結(jié)論分析
有了預(yù)測(cè)數(shù)據(jù)和真是數(shù)據(jù),可以使用JMP中提供的“疊加圖”來(lái)進(jìn)行可視化分析,右圖中“+”符號(hào)表示預(yù)測(cè)結(jié)果,“O”表示實(shí)際結(jié)果,從圖中可以看出,大部分點(diǎn)都比較吻合,說(shuō)明預(yù)測(cè)效果良好。
為了更加直觀看到神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)效果,還可以用JMP提供的曲面圖工具,對(duì)真實(shí)值和預(yù)測(cè)值進(jìn)行可視化,觀察二者的效果,如圖9,作圖為實(shí)際多項(xiàng)式的可視化效果,右圖為通過(guò)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)后預(yù)測(cè)出來(lái)的效果。
4 ?總結(jié)
JMP中提供了豐富數(shù)據(jù)分析工具,其中的神經(jīng)網(wǎng)絡(luò)工具比較使用,用戶可以不必了解神經(jīng)網(wǎng)絡(luò)內(nèi)部復(fù)雜的計(jì)算和推導(dǎo)過(guò)程,只需要了解其工作原理,設(shè)計(jì)原則和評(píng)價(jià)標(biāo)準(zhǔn)即可。本文使用一個(gè)復(fù)雜二維多項(xiàng)式例子,神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)和使用進(jìn)行詳細(xì)的闡述,有助于大家理解和使用神經(jīng)網(wǎng)絡(luò),為大家提供一種分析高維數(shù)據(jù)模型擬合的方法。
參考文獻(xiàn)
[1] 趙宏, 郭萬(wàn)鵬. 深度神經(jīng)網(wǎng)絡(luò)代價(jià)函數(shù)選擇與性能評(píng)測(cè)研究[J]. 軟件, 2018, 39(1): 14-20.
[2] 許益通, 張冰雪, 趙逢禹. 基于學(xué)習(xí)風(fēng)格的自適應(yīng)學(xué)習(xí)內(nèi)容推薦研究[J]. 軟件, 2018, 39(4): 01-08.
[3] 劉建偉, 劉媛, 羅雄麟. 深度學(xué)習(xí)研究進(jìn)展[J]. 計(jì)算機(jī)應(yīng)用研究, 2014, 31(7): 1921-1929.
[4] jmp_jsl_guide pdf, JMP10. 0官方教程.
[5] 百度百科[OL]. [2013. 10. 25]. http://baike.baidu.com/view/ 2239902.htm.
[6] 魯?shù)婪騄. 佛洛依德, 威廉姆J. 威爾遜, 平沙. 回歸分析因變量統(tǒng)計(jì)模型[M]. 重慶: 重慶大學(xué)出版社, 2006, 62-64.
[7] 雷祥, 江凌, 張少華等. JMP二次開(kāi)發(fā)方法研究[J]. 軟件, 2014(2): 48-49.
[8] 上海財(cái)經(jīng)大學(xué)統(tǒng)計(jì)與管理學(xué)院譯, 探索性數(shù)據(jù)分析——基于JMP軟件(引進(jìn)版)[M]. 上海: 上海財(cái)經(jīng)大學(xué)出版社, 2013-09-01, 49.
[9] 張敏, 徐啟華. 基于改進(jìn)BP的神經(jīng)網(wǎng)絡(luò)模型參考自適應(yīng)控制[J]. 軟件, 2015, 36(7): 118-123.
[10] 王宏濤, 孫劍偉. 基于BP神經(jīng)網(wǎng)絡(luò)和SVM 的分類方法研究[J]. 軟件, 2015, 36(11): 96-99.