?

基于Keras框架的普朗克常數計算方法研究

2023-12-25 03:25高海林李陽費宛瑩席文靜李雪
電腦知識與技術 2023年31期
關鍵詞:光電效應深度學習

高海林 李陽 費宛瑩 席文靜 李雪

摘要:光電效應實驗是物理學習過程中的一個重要實驗,通過光電效應實驗可以對普朗克常數進行計算。當數據量較少時,計算結果和真實值之間往往存在較大誤差。隨著機器學習和人工智能的快速發展,物理數值計算也可以使用不同的神經網絡框架進行解決。文章介紹了光電效應方程對普朗克常數計算的理論依據,采用深度學習的Keras框架對110個數據樣本進行了不同批次訓練,研究了損失函數對普朗克常數計算精度的影響?;谏疃葘W習Keras框架的普朗克常數計算方法研究為物理常數的計算提供了新的思路。

關鍵詞:光電效應;普朗克常數;深度學習;Keras框架

中圖分類號:TP311? ? ? ? 文獻標識碼:A

文章編號:1009-3044(2023)31-0022-03

開放科學(資源服務)標識碼(OSID) :

0 引言

普朗克常數是一個物理常數[1],記為[h]。1900年,馬克斯·普朗克在研究物體熱輻射的規律時,提出了一個全新的黑體輻射公式,即:

[Mλ(T)=2πhc2λ-51exp(hcλkT)-1]? (1)

公式(1) 也被稱為普朗克公式。其中,[c]和[λ]分別表示光速和波長,[k]和[T]分別表示玻爾茲曼常數和絕對溫度,[h]為普朗克常數。普朗克在對上述公式尋找理論解釋時,提出了著名的量子假設。

1 普朗克常數計算實驗原理

某些金屬在受到適當頻率的光照射時,金屬中的自由電子會獲得能量而逸出金屬表面,這種現象被稱為光電效應[2]。光電效應的實驗原理裝置如圖1所示。

圖1中,[A]為光電管陽極,[K]為光電管陰極。當適當頻率為[υ]的單色光入射到光電管陰極上時,電子從陰極逸出后向陽極運動,形成光電流。

當[UAK=UA-UK]為正值時,[UAK]越大,光電流[IAK]越大,但當電壓[UAK]達到某一數值時,光電流達到飽和。若在陽極和陰極間施加反向電壓,光電流則逐漸減小,直到[UAK]達到某一負值[US]時,光電流變為零,此時[US]稱為遏止電位或截止電壓。從場的角度可以對此進行解釋,這是因為從陰極逸出的具有最大初動能的電子不能穿過反向電場到達陽極,即

[eUs=12mv2]? ? ? ? ?(2)

愛因斯坦在對光電效應尋求理論解釋時,提出了著名的光電效應方程,即:

[hυ=12mv2+A]? ? ? ? ?(3)

其中,[12mv2]為電子最大初動能,[A]為逸出功。

將(2) 式代入(3) 式得:

[hυ=e|Us|+A]? ? ? ? (4)

當利用不同頻率的單色光照射光電管陰極時,有:

[hυ1=e|Us1|+A]? ? ? ? (5)

[hυ2=e|Us2|+A]? ? ? ? (6)

……

其中,[v1]和[v2]分別表示兩種不用頻率的單色光。

聯立上述任意兩個方程,得:

[h=e(Usi-Usj)υi-υj]? ? ? ? (7)

其中,[Usi]是入射光頻率為[υi]時,對應的截止電壓。

由公式(7) 可知,愛因斯坦光電效應方程提供了一種測量普朗克常數的方法[3-5]。如果從實驗數據所得的[|Us|-υ]關系曲線如圖2所示,那么直線斜率的物理含義應該是:

[k=he]? ? ? ? ? ? ? (8)

其中,[e]為電子電荷,數值為[1.602 176 634×10-19C]。

求出直線斜率[k],然后乘以元電荷[e]即為普朗克常數[h]。

在大學實驗中,光電效應實驗是一個很重要的實驗。通過該實驗,可以加深學生對于光電效應方程的理解,提高動手能力,同時鍛煉數據分析與處理的能力。

以南京醫科大學康達學院為例,學生在利用長春市長城教學儀器有限公司生產的GD-IIIA型普朗克常數測定儀進行光電實驗時,儀器可以提供的濾色片僅僅有5種,對應的波長分別為365.0 nm、404.7 nm、436.8 nm、546.1 nm和577.0 nm,這也就相當于圖2 [|Us|-υ]關系圖中僅僅有5個點。計算擬合直線斜率的方法通常有2種,一種是先繪制標準坐標軸,然后在二維坐標系中描繪出數據點,再繪出擬合的直線(離散的點盡量均勻分布在直線兩側),最后計算直線斜率。另一種方法是每相鄰兩數據之間計算斜率,最后再求出斜率的平均值。雖然可以通過多次測量減少誤差,但實際計算結果和普朗克常數的真實值之間往往存在較大的誤差。

2 基于Keras框架的普朗克常數計算

2.1 Keras框架簡介

Keras是一個由Python語言編寫的開源人工神經網絡庫,它通常以TensorFlow、CNTK或者Theano作為后端運行,可以對深度學習的模型進行設計、調試、評估和可視化等[6-14]。

Keras在代碼結構上由面向對象方法編寫,完全模塊化并具有可擴展性。Keras支持現代人工智能領域的主流算法,包括前饋結構和遞歸結構的神經網絡,也可以通過封裝參與構建統計學習模型。

2.2 軟件簡介

利用Keras框架進行普朗克常數計算需要用到的軟件主要有Anaconda Navigator和Pycharm。

Anaconda是一個安裝、管理Python相關包的軟件,還自帶Python、Jupyter Notebook、Spyder等。在計算中,Anaconda Navigator主要用來管理環境以及安裝Python、Pycharm軟件及keras、numpy、matplotlib等第三方庫。

Pycharm軟件主要分為社區版和專業版,是一款由JetBrains公司開發的Python集成開發環境(IDE) 。Pycharm軟件的功能十分強大,并且多平臺支持(Windows/MacOS/Linux) 。Pycharm軟件還可用于支持Django框架下的專業Web開發,具有很多高級功能。目前官方提供社區開源版本。本次用來計算普朗克常數的Pycharm軟件版本為免費的社區版。

2.3 計算過程

2.3.1 模型構建

利用Keras框架進行普朗克常數計算的過程主要有準備數據集、構建模型、編譯模型、訓練模型、評估模型、保存模型、調用模型等步驟。

數據集采用的是某班級做光電效應物理實驗的實驗數據,實驗儀器為長春市長城教學儀器有限公司生產的GD-IIIA型普朗克常數測定儀。實際參與訓練的數據集里有110個樣本。該樣本記錄在Excel數據表格中,第一列數值為頻率值,第二列數值為對應的反向截止電壓值。程序里通過調用pandas庫讀取Excel表格,并將數據轉換為一維張量。

模型構建是影響普朗克常數計算正確與否的關鍵因素。Keras框架通常有2種類型的模型,分別為函數式模型(Model) 和序貫模型(Sequential) 。函數式模型(Model) 的特點是多輸入多輸出,層與層之間是任意連接的。這種模型的典型特點是編譯速度慢。而序貫模型(Sequential) 的特點是單輸入單輸出,即層與層之間只是相鄰關系,沒有跨層連接,輸入和輸出之間是一條路通到底。這種模型編譯速度快,操作也比較簡單。本次計算普朗克常數采用的是序貫模型。反向截止電壓和頻率可以認為是線性回歸的關系,因此采用序貫模型建模時僅僅需要在模型中添加一個全連接層就可以了。對于這個全連接層而言,輸入張量的維度為1維,輸出張量的維度也是1維。調用model.summary()方法可以對構建的序貫模型參數進行觀測。模型具體參數如3所示。

由圖3可知,建立序貫模型參數的數目為兩個,分別表示權重[w]和偏置[b]。調用model.compile()方法可以實現對Keras模型的編譯。本次計算中,編譯設置的優化器算法為sgd(隨機梯度算法),損失函數為mse(均方誤差),學習率設置成0.01。訓練模型采用的方法是model.fit(),其中batch_size為單次傳遞給程序用以訓練的數據(樣本)個數,也被稱為單次訓練的批次,設置為32。epochs為迭代周期,也稱為訓練的輪回數。訓練完模型后,獲得的權重值[w]即為[|Us|-υ]直線的斜率,之后再乘以元電子[e]就可以計算出普朗克常數。評估模型采用的方法是model.evaluate()。

2.3.2 不同批次訓練

下面對使用Keras框架搭建的模型進行不同輪次的訓練,訓練輪次分別為1 000、3 000、5 000、7 000、9 000和11 000。訓練完模型后,讀取模型權重值,并計算出普朗克常量。為了證明模型計算的準確性,需要在每次訓練完模型后計算出普朗克常量的相對誤差。對于普朗克常量,現在的公認值為[6.626 070 15×10-34J·s](自第26屆國際計量大會(CGPM)表決通過為精確數)。相對誤差采用的計算公式為:

[E=|X--X公認|X公認×100%]? ? (9)

相對誤差僅僅是用于展示出數值計算的準確性,需要人工讀取并記錄數值,模型并不對誤差進行學習。在數值計算中,為保證精度,計算出的普朗克常量取6位有效數字,訓練數據后計算的相對誤差取3位有效數字。訓練輪次和計算出的普朗克常量數值以及相對誤差E的對應關系如表1所示。

由表1可知,訓練次數為1 000時,計算出的相對誤差數值最大。訓練次數超過1 000時,相對誤差值均小于1%,可以計算出普朗克常數的大致范圍。訓練次數為3 000時,此時計算出的普朗克常量數值為[6.640 07×10-34J·s],較接近公認值。訓練次數越多并一定能提高準確率。訓練次數為9 000時,計算出的相對誤差數值大于訓練7 000時的計算值。訓練次數為3 000時,原始數據和擬合的回歸曲線如圖4所示,損失率的變化情況如圖5所示。

2.3.3 不同損失函數的訓練

在機器學習中,損失函數通常被用于模型的參數估計,即通過最小化損失函數進行求解和評估模型。

在Keras框架下,反向截止電壓和頻率的關系為線性回歸問題。為了研究不同損失函數對普朗克常數計算精度的計算影響,下面對搭建的序貫模型進行不同損失函數的測試。測試的損失函數分別為mean_absolute_error(平均絕對誤差)、mean_squared_logarithmic_error(均方對數誤差)、mean_absolute_percentage_error(百分比平均絕對誤差)和logcosh(對數雙曲余弦函數)。訓練輪次統一設置成3 000次,學習率統一設置成0.01。

由表2可知,相比較其他損失函數,在mse(均方誤差)損失函數下,計算出的相對誤差值較低,數值為0.212%。損失方法采用均方對數誤差計算出的普朗克常數的相對誤差值最大,數值為403%。

2.3.4 保存模型

在確定損失函數和訓練次數的前提下,可以調用model.save()函數保存訓練好的模型,以便于后續調用模型評估新的測量數據的可信度。

3 結論

對于物理線性回歸的問題,可以使用深度學習進行嘗試解決。本文采用深度學習的Keras框架,對普朗克常量進行了計算,本質上是基于物理實驗對物理常數的檢驗與計算。在樣本量為110,優化器算法為sgd(隨機梯度算法),損失函數為mse(均方誤差),學習率為0.01時,計算出的普朗克常量數值接近于真實值?;谏疃葘W習Keras框架的普朗克常數計算方法研究為物理常數的計算提供了新的思路,具有新的意義。

參考文獻:

[1] 于春波.鐵礦石物相分析檢測方法的研究與應用[J].中國檢驗檢測,2018,26(2):18-22,51.

[2] 郎集會,范雯琦.基于光電效應的普朗克常數的測定與分析[J].吉林師范大學學報(自然科學版),2015,36(1):104-106.

[3] 羅兵,陳妍,徐中輝.單層2H-MoTe2光電效應的理論研究[J].人工晶體學報,2021,50(3):504-508.

[4] 張艷,楊慶余.愛因斯坦與普朗克——紀念光電效應獲獎100周年[J].大學物理,2022,41(5):35-40.

[5] 楊瑩,張文攀,張計才.基于自制暗箱測量光電效應中光強與光電流的關系[J].大學物理,2022,41(2):63-66.

[6] 蘇金樹,張博鋒,徐昕.基于機器學習的文本分類技術研究進展[J].軟件學報,2006,17(9):1848-1859.

[7] 周飛燕,金林鵬,董軍.卷積神經網絡研究綜述[J].計算機學報,2017,40(6):1229-1251.

[8] 孫艷豐,齊光磊,胡永利,等.基于改進Fisher準則的深度卷積神經網絡識別算法[J].北京工業大學學報,2015,41(6):835-841.

[9] ABADI M,BARHAM P,CHEN J M,et al.TensorFlow:a system for large-scale machine learning[EB/OL].[2022-06-20].2016:arXiv:1605.08695.https://arxiv.org/abs/1605.08695.pdf.

[10] ABADI M.TensorFlow:learning functions at scale[C]//Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming.New York,NY,USA:ACM,2016.

[11] 厲智,孫玉寶,王楓,等.基于深度卷積神經網絡的服裝圖像分類檢索算法[J].計算機工程,2016,42(11):309-315.

[12] 曹大有,胥帥.基于TensorFlow預訓練模型快速、精準的圖像分類器[J].漢江師范學院學報,2017,37(3):27-32.

[13] 彭博,杜尚耕,周云帆,等.以卷積神經網絡數據采集方法拓寬真空教學實驗[J].物理實驗,2023,43(3):13-21.

[14] 張敏,許廷發.基于Gabor小波紋理特征的目標識別新方法[J].物理實驗,2004,24(4):12-15.

【通聯編輯:唐一東】

猜你喜歡
光電效應深度學習
光電效應中的“三圖”問題求解策略
摻雜半導體硅材料電阻率測量的光電效應和熱效應
有體驗的學習才是有意義的學習
MOOC與翻轉課堂融合的深度學習場域建構
大數據技術在反恐怖主義中的應用展望
高中物理光電效應復習的重點問題探討
光電效應測普朗克常數新數據處理方法
對光電效應的幾點認識
全面準確理解光電效應的規律
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合