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