周祉煜 孟倩



摘要:弗蘭克-赫茲實驗是“近代物理實驗”中的重要實驗之一,數據量大且數據處理復雜。支持向量機是一種廣泛應用于函數逼近、模式識別、回歸等領域的機器學習算法。本文將支持向量機算法應用于弗蘭克-赫茲實驗數據的擬合,過程簡單,在python環境下驗證該方法擬合精度高,效果好。支持向量機算法還可應用于其他的物理實驗曲線擬合。
關鍵詞:支持向量機;曲線擬合;弗蘭克-赫茲實驗;Python
中圖分類號:TP18? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)13-0001-02
Abstract: Frank-Hertz experiment is a classical experiment in modern physics experiments. It has a large amount of experimental data and a complicated data processing process. Support Vector Machine is a machine learning algorithm which widely used in function approximation, pattern recognition, regression and other fields. In this paper, support vector machine is used to do curve fitting for the experimental data of Frank-Hertz experiment. The process is simple, and the method is verified to have high curve fitting accuracy and good effect in python environment. SVM can also be applied to curve fitting in other physics experiments.
Key words: support vector machine, curve fitting, Frank Hertz experiment,python
1998年,Vapnik V N.等人[1]提出了一種新型的基于小樣本和統計學習理論的機器學習方法-支持向量機(Support Vector Machine, SVM),該方法可以從有限的訓練樣本出發尋找“最優函數規律”, 使它能夠對未知輸出作盡可能準確的預測,可應用于函數逼近、模式識別、回歸等領域。劉欣等將SVM引入水黏度測定物理實驗,取得良好的效果[2]。弗蘭克-赫茲實驗是近代物理學中的一個重要實驗,學生做實驗時多采用手工物理實驗數據處理方法來描點、作圖、擬合。王蘊杰等將BP神經網絡算法引入弗蘭克-赫茲實驗曲線擬合[3]并取得良好效果。本文將 SVM算法引入大學物理弗蘭克-赫茲實驗曲線擬合,python環境下實驗結果表明,采用SVM方法擬合弗蘭克-赫茲實驗曲線可以取得精確的效果,SVM 是一種值得引進的物理實驗數據處理方法。
1 弗蘭克-赫茲實驗原理
弗蘭克-赫茲實驗(Frank-Hertz)的裝置[3-4]如圖1所示,在充氬氣的弗蘭克-赫茲管中,電子由熱陰極K發出,陰極K和控制陰極發射電流的第一柵極[G1]直接的加速電壓使電子加速。[G2]是第二柵極,A為板極,在A和[G2]之間有拒斥電壓[Ug2a]。當電子通過柵極[G1]進入[G1][G2]區域時,就會與弗蘭克-赫茲管中的氬原子發生碰撞。當電子通過柵極[G2]進入[G2]A空間時,如果加速電壓[Ug2k]比較小,原子和氬電子發生彈性碰撞,損失的能量近似為0。當加速電壓[Ug2k]超過第一激發電位時,電子與氬原子發生非彈性碰撞,電子把從加速電場獲得的部分或全部能量傳遞給氬原子,使氬原子從基態躍遷到第一激發態,由于電子本身損失了能量,拒斥電壓的作用無法到達極板A ,因此,可以觀察到極板K的電流顯著減小。由于原子有吸收能量的量子化特征,所以隨著加速電壓的增加,極板的電流會表現出明顯的峰谷特征。
2 支持向量機[5]
SVM算法可用于分類與回歸問題,用于回歸問題的SVM算法被稱為支持向量回歸機。 其基本思想是,把輸入空間的數據,在高維特征空間中做非線性映射,從而轉換為做線性回歸問題。
3 支持向量機在弗蘭克-赫茲實驗曲線擬合中的應用
3.1 弗蘭克赫茲實驗數據
在充氬氣的弗蘭克-赫茲管中測得板極電流[Ig]與加速電壓[Ug2k(v)]共164條數據[6]。本文從中隨機選取148個作為訓練樣本,16個作為測試樣本。首先錄入實驗數據,以加速電壓[Ug2k]為輸入,板極電流[Ig]為輸出,用Python圖形可視化庫Seaborn 畫出圖像,得出加速電壓與板極電流的映射關系如圖2所示。
3.2 SVM擬合過程
SVM擬合過程如圖3所示。
為了提高預測精確度,使用python第三方機器學習模塊sklearn的StandardScaler()函數對數據集進行預處理,即標準化處理[7],經過使用均值與方差處理,得到符合標準正態分布數據。
對于采用徑向基核函數的支持向量回歸機,性能影響最大的是超參數(C,γ,ε)的選擇[8]。其中參數C為 懲罰因子,表示對錯誤劃分的樣本的懲罰程度,參數γ為徑向基核函數的參數,控制了徑向基核函數的徑向作用范圍,影響樣本數據在高維特征空間中分布。參數ε是SVM的一個參數,也是影響SVM性能的主要因素。SVM預測準確率依賴于超參數(C,γ,ε)的最佳選擇。
圖4(a)表示當懲罰因子C和參數ε固定的條件下,核函數參數γ對模型擬合精確度(R2決定系數)的影響。當參數γ較小時,訓練樣本的擬合精確度不高;當γ增加時擬合精確度迅速提高,即性能提高;當繼續增大時性能無明顯變化。圖4(b)表示在參數γ和參數ε固定情況下, C的變化對支持向量機擬合精確度的影響。當參數C較小時,擬合精確度不高;當C增加時擬合優度急劇提高,增大到一定值后,擬合優度基本不變。圖4(c)表示γ,C固定的條件下,ε的值對支持向量機擬合精確度的影響。當ε較低時擬合精確度較高,模型性能好;隨著ε的增加,擬合精確度顯著下降。
分別單獨調整懲罰因子C、核函數參數γ和模型ε精度都可以提高模型的性能。實驗顯示,這三個參數都在一定取值范圍內影響擬合精確度。經過綜合考慮,最終選取(C,γ,ε)=(60,60,0.0001)作為最優參數。
確定最優參數后,使用python第三方機器學習模塊sklearn庫提供的SVR()方法建立支持向量機回歸模型,進行訓練和擬合。
實驗結果顯示訓練樣本的R2決定系數達到 0.999934。R2決定系數越接近1,說明擬合效果越好。
3.3 弗蘭克-赫茲實驗曲線擬合結果
用訓練好的模型對測試樣本進行預測,平均誤差為0.81896%,均方差為0.00012618,R2決定系數為0.999893。由表1預測值Igp與真實值Igt可以看出,支持向量機算法的預測值與真實值非常吻合。圖5表示由表1測試樣本真實值數據點連線所得結果與支持向量機預測值的對比。由表1和圖5可見,通過支持向量機準確的擬合了弗蘭克赫茲實驗曲線。
4 結束語
從以上討論可以看出:
(1)采用支持向量機算法可以很好地擬合弗蘭克-赫茲實驗曲線,事實上,對于其他物理實驗曲線,線性的或者非線性的,多維輸入的,也可以采用支持向量機進行擬合。
(2)支持向量機訓練后,在一定范圍內可以精確地求出任意非測量點的數據值。
(3)采用支持向量機擬合實驗曲線不需要知道實驗線的方程式,只需要通過系統輸入的數據即可進行擬合,擬合曲線非常精確。尤其是涉及變量關系復雜的曲線時,支持向量機算法擬合實驗曲線就顯得更為優越,說明SVM 是一種值得引進的物理實驗數據處理方法。
參考文獻:
[1] Vapnik V.Statistical learning theory[M]. Canada: John Wiley Sons, Inc., 1998.
[2] 劉欣,章顯,陶卿.SVM在物理實驗中的應用[J].大學物理,2005,24(6):40-43.
[3] 王蘊杰.基于BP神經網絡的弗蘭克-赫茲實驗曲線擬合[J].大學物理實驗,2013,26(6):95-96.
[4] 鄭勇林,楊闊,葛澤玲.近代物理實驗及其數據分析方法[M].北京:電子工業出版社,2016.
[5] 鄧乃揚,田英杰.數據挖掘中的新方法:支持向量機[M].北京:科學出版社,2004.
[6] 弗蘭克-赫茲實驗數據處理 [J/OL]. 豆丁.(2016-03-30).https://www.docin.com/p-1511744593.html.
[7] (美)PrateekJoshi..Python機器學習經典實例[M].北京:人民郵電出版社,2017.
[8] 孟倩,王洪權,王永勝,等.煤自燃極限參數的支持向量機預測模型[J].煤炭學報,2009,34(11):1489-1493.
【通聯編輯:唐一東】