雷祥 陳治湘 趙濤



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