高海林 李陽(yáng) 費(fèi)宛瑩 席文靜 李雪
摘要:光電效應(yīng)實(shí)驗(yàn)是物理學(xué)習(xí)過程中的一個(gè)重要實(shí)驗(yàn),通過光電效應(yīng)實(shí)驗(yàn)可以對(duì)普朗克常數(shù)進(jìn)行計(jì)算。當(dāng)數(shù)據(jù)量較少時(shí),計(jì)算結(jié)果和真實(shí)值之間往往存在較大誤差。隨著機(jī)器學(xué)習(xí)和人工智能的快速發(fā)展,物理數(shù)值計(jì)算也可以使用不同的神經(jīng)網(wǎng)絡(luò)框架進(jìn)行解決。文章介紹了光電效應(yīng)方程對(duì)普朗克常數(shù)計(jì)算的理論依據(jù),采用深度學(xué)習(xí)的Keras框架對(duì)110個(gè)數(shù)據(jù)樣本進(jìn)行了不同批次訓(xùn)練,研究了損失函數(shù)對(duì)普朗克常數(shù)計(jì)算精度的影響?;谏疃葘W(xué)習(xí)Keras框架的普朗克常數(shù)計(jì)算方法研究為物理常數(shù)的計(jì)算提供了新的思路。
關(guān)鍵詞:光電效應(yīng);普朗克常數(shù);深度學(xué)習(xí);Keras框架
中圖分類號(hào):TP311? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2023)31-0022-03
開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID) :
0 引言
普朗克常數(shù)是一個(gè)物理常數(shù)[1],記為[h]。1900年,馬克斯·普朗克在研究物體熱輻射的規(guī)律時(shí),提出了一個(gè)全新的黑體輻射公式,即:
[Mλ(T)=2πhc2λ-51exp(hcλkT)-1]? (1)
公式(1) 也被稱為普朗克公式。其中,[c]和[λ]分別表示光速和波長(zhǎng),[k]和[T]分別表示玻爾茲曼常數(shù)和絕對(duì)溫度,[h]為普朗克常數(shù)。普朗克在對(duì)上述公式尋找理論解釋時(shí),提出了著名的量子假設(shè)。
1 普朗克常數(shù)計(jì)算實(shí)驗(yàn)原理
某些金屬在受到適當(dāng)頻率的光照射時(shí),金屬中的自由電子會(huì)獲得能量而逸出金屬表面,這種現(xiàn)象被稱為光電效應(yīng)[2]。光電效應(yīng)的實(shí)驗(yàn)原理裝置如圖1所示。
圖1中,[A]為光電管陽(yáng)極,[K]為光電管陰極。當(dāng)適當(dāng)頻率為[υ]的單色光入射到光電管陰極上時(shí),電子從陰極逸出后向陽(yáng)極運(yùn)動(dòng),形成光電流。
當(dāng)[UAK=UA-UK]為正值時(shí),[UAK]越大,光電流[IAK]越大,但當(dāng)電壓[UAK]達(dá)到某一數(shù)值時(shí),光電流達(dá)到飽和。若在陽(yáng)極和陰極間施加反向電壓,光電流則逐漸減小,直到[UAK]達(dá)到某一負(fù)值[US]時(shí),光電流變?yōu)榱?,此時(shí)[US]稱為遏止電位或截止電壓。從場(chǎng)的角度可以對(duì)此進(jìn)行解釋,這是因?yàn)閺年帢O逸出的具有最大初動(dòng)能的電子不能穿過反向電場(chǎng)到達(dá)陽(yáng)極,即
[eUs=12mv2]? ? ? ? ?(2)
愛因斯坦在對(duì)光電效應(yīng)尋求理論解釋時(shí),提出了著名的光電效應(yīng)方程,即:
[hυ=12mv2+A]? ? ? ? ?(3)
其中,[12mv2]為電子最大初動(dòng)能,[A]為逸出功。
將(2) 式代入(3) 式得:
[hυ=e|Us|+A]? ? ? ? (4)
當(dāng)利用不同頻率的單色光照射光電管陰極時(shí),有:
[hυ1=e|Us1|+A]? ? ? ? (5)
[hυ2=e|Us2|+A]? ? ? ? (6)
……
其中,[v1]和[v2]分別表示兩種不用頻率的單色光。
聯(lián)立上述任意兩個(gè)方程,得:
[h=e(Usi-Usj)υi-υj]? ? ? ? (7)
其中,[Usi]是入射光頻率為[υi]時(shí),對(duì)應(yīng)的截止電壓。
由公式(7) 可知,愛因斯坦光電效應(yīng)方程提供了一種測(cè)量普朗克常數(shù)的方法[3-5]。如果從實(shí)驗(yàn)數(shù)據(jù)所得的[|Us|-υ]關(guān)系曲線如圖2所示,那么直線斜率的物理含義應(yīng)該是:
[k=he]? ? ? ? ? ? ? (8)
其中,[e]為電子電荷,數(shù)值為[1.602 176 634×10-19C]。
求出直線斜率[k],然后乘以元電荷[e]即為普朗克常數(shù)[h]。
在大學(xué)實(shí)驗(yàn)中,光電效應(yīng)實(shí)驗(yàn)是一個(gè)很重要的實(shí)驗(yàn)。通過該實(shí)驗(yàn),可以加深學(xué)生對(duì)于光電效應(yīng)方程的理解,提高動(dòng)手能力,同時(shí)鍛煉數(shù)據(jù)分析與處理的能力。
以南京醫(yī)科大學(xué)康達(dá)學(xué)院為例,學(xué)生在利用長(zhǎng)春市長(zhǎng)城教學(xué)儀器有限公司生產(chǎn)的GD-IIIA型普朗克常數(shù)測(cè)定儀進(jìn)行光電實(shí)驗(yàn)時(shí),儀器可以提供的濾色片僅僅有5種,對(duì)應(yīng)的波長(zhǎng)分別為365.0 nm、404.7 nm、436.8 nm、546.1 nm和577.0 nm,這也就相當(dāng)于圖2 [|Us|-υ]關(guān)系圖中僅僅有5個(gè)點(diǎn)。計(jì)算擬合直線斜率的方法通常有2種,一種是先繪制標(biāo)準(zhǔn)坐標(biāo)軸,然后在二維坐標(biāo)系中描繪出數(shù)據(jù)點(diǎn),再繪出擬合的直線(離散的點(diǎn)盡量均勻分布在直線兩側(cè)),最后計(jì)算直線斜率。另一種方法是每相鄰兩數(shù)據(jù)之間計(jì)算斜率,最后再求出斜率的平均值。雖然可以通過多次測(cè)量減少誤差,但實(shí)際計(jì)算結(jié)果和普朗克常數(shù)的真實(shí)值之間往往存在較大的誤差。
2 基于Keras框架的普朗克常數(shù)計(jì)算
2.1 Keras框架簡(jiǎn)介
Keras是一個(gè)由Python語(yǔ)言編寫的開源人工神經(jīng)網(wǎng)絡(luò)庫(kù),它通常以TensorFlow、CNTK或者Theano作為后端運(yùn)行,可以對(duì)深度學(xué)習(xí)的模型進(jìn)行設(shè)計(jì)、調(diào)試、評(píng)估和可視化等[6-14]。
Keras在代碼結(jié)構(gòu)上由面向?qū)ο蠓椒ň帉?,完全模塊化并具有可擴(kuò)展性。Keras支持現(xiàn)代人工智能領(lǐng)域的主流算法,包括前饋結(jié)構(gòu)和遞歸結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò),也可以通過封裝參與構(gòu)建統(tǒng)計(jì)學(xué)習(xí)模型。
2.2 軟件簡(jiǎn)介
利用Keras框架進(jìn)行普朗克常數(shù)計(jì)算需要用到的軟件主要有Anaconda Navigator和Pycharm。
Anaconda是一個(gè)安裝、管理Python相關(guān)包的軟件,還自帶Python、Jupyter Notebook、Spyder等。在計(jì)算中,Anaconda Navigator主要用來管理環(huán)境以及安裝Python、Pycharm軟件及keras、numpy、matplotlib等第三方庫(kù)。
Pycharm軟件主要分為社區(qū)版和專業(yè)版,是一款由JetBrains公司開發(fā)的Python集成開發(fā)環(huán)境(IDE) 。Pycharm軟件的功能十分強(qiáng)大,并且多平臺(tái)支持(Windows/MacOS/Linux) 。Pycharm軟件還可用于支持Django框架下的專業(yè)Web開發(fā),具有很多高級(jí)功能。目前官方提供社區(qū)開源版本。本次用來計(jì)算普朗克常數(shù)的Pycharm軟件版本為免費(fèi)的社區(qū)版。
2.3 計(jì)算過程
2.3.1 模型構(gòu)建
利用Keras框架進(jìn)行普朗克常數(shù)計(jì)算的過程主要有準(zhǔn)備數(shù)據(jù)集、構(gòu)建模型、編譯模型、訓(xùn)練模型、評(píng)估模型、保存模型、調(diào)用模型等步驟。
數(shù)據(jù)集采用的是某班級(jí)做光電效應(yīng)物理實(shí)驗(yàn)的實(shí)驗(yàn)數(shù)據(jù),實(shí)驗(yàn)儀器為長(zhǎng)春市長(zhǎng)城教學(xué)儀器有限公司生產(chǎn)的GD-IIIA型普朗克常數(shù)測(cè)定儀。實(shí)際參與訓(xùn)練的數(shù)據(jù)集里有110個(gè)樣本。該樣本記錄在Excel數(shù)據(jù)表格中,第一列數(shù)值為頻率值,第二列數(shù)值為對(duì)應(yīng)的反向截止電壓值。程序里通過調(diào)用pandas庫(kù)讀取Excel表格,并將數(shù)據(jù)轉(zhuǎn)換為一維張量。
模型構(gòu)建是影響普朗克常數(shù)計(jì)算正確與否的關(guān)鍵因素。Keras框架通常有2種類型的模型,分別為函數(shù)式模型(Model) 和序貫?zāi)P停⊿equential) 。函數(shù)式模型(Model) 的特點(diǎn)是多輸入多輸出,層與層之間是任意連接的。這種模型的典型特點(diǎn)是編譯速度慢。而序貫?zāi)P停⊿equential) 的特點(diǎn)是單輸入單輸出,即層與層之間只是相鄰關(guān)系,沒有跨層連接,輸入和輸出之間是一條路通到底。這種模型編譯速度快,操作也比較簡(jiǎn)單。本次計(jì)算普朗克常數(shù)采用的是序貫?zāi)P?。反向截止電壓和頻率可以認(rèn)為是線性回歸的關(guān)系,因此采用序貫?zāi)P徒r(shí)僅僅需要在模型中添加一個(gè)全連接層就可以了。對(duì)于這個(gè)全連接層而言,輸入張量的維度為1維,輸出張量的維度也是1維。調(diào)用model.summary()方法可以對(duì)構(gòu)建的序貫?zāi)P蛥?shù)進(jìn)行觀測(cè)。模型具體參數(shù)如3所示。
由圖3可知,建立序貫?zāi)P蛥?shù)的數(shù)目為兩個(gè),分別表示權(quán)重[w]和偏置[b]。調(diào)用model.compile()方法可以實(shí)現(xiàn)對(duì)Keras模型的編譯。本次計(jì)算中,編譯設(shè)置的優(yōu)化器算法為sgd(隨機(jī)梯度算法),損失函數(shù)為mse(均方誤差),學(xué)習(xí)率設(shè)置成0.01。訓(xùn)練模型采用的方法是model.fit(),其中batch_size為單次傳遞給程序用以訓(xùn)練的數(shù)據(jù)(樣本)個(gè)數(shù),也被稱為單次訓(xùn)練的批次,設(shè)置為32。epochs為迭代周期,也稱為訓(xùn)練的輪回?cái)?shù)。訓(xùn)練完模型后,獲得的權(quán)重值[w]即為[|Us|-υ]直線的斜率,之后再乘以元電子[e]就可以計(jì)算出普朗克常數(shù)。評(píng)估模型采用的方法是model.evaluate()。
2.3.2 不同批次訓(xùn)練
下面對(duì)使用Keras框架搭建的模型進(jìn)行不同輪次的訓(xùn)練,訓(xùn)練輪次分別為1 000、3 000、5 000、7 000、9 000和11 000。訓(xùn)練完模型后,讀取模型權(quán)重值,并計(jì)算出普朗克常量。為了證明模型計(jì)算的準(zhǔn)確性,需要在每次訓(xùn)練完模型后計(jì)算出普朗克常量的相對(duì)誤差。對(duì)于普朗克常量,現(xiàn)在的公認(rèn)值為[6.626 070 15×10-34J·s](自第26屆國(guó)際計(jì)量大會(huì)(CGPM)表決通過為精確數(shù))。相對(duì)誤差采用的計(jì)算公式為:
[E=|X--X公認(rèn)|X公認(rèn)×100%]? ? (9)
相對(duì)誤差僅僅是用于展示出數(shù)值計(jì)算的準(zhǔn)確性,需要人工讀取并記錄數(shù)值,模型并不對(duì)誤差進(jìn)行學(xué)習(xí)。在數(shù)值計(jì)算中,為保證精度,計(jì)算出的普朗克常量取6位有效數(shù)字,訓(xùn)練數(shù)據(jù)后計(jì)算的相對(duì)誤差取3位有效數(shù)字。訓(xùn)練輪次和計(jì)算出的普朗克常量數(shù)值以及相對(duì)誤差E的對(duì)應(yīng)關(guān)系如表1所示。
由表1可知,訓(xùn)練次數(shù)為1 000時(shí),計(jì)算出的相對(duì)誤差數(shù)值最大。訓(xùn)練次數(shù)超過1 000時(shí),相對(duì)誤差值均小于1%,可以計(jì)算出普朗克常數(shù)的大致范圍。訓(xùn)練次數(shù)為3 000時(shí),此時(shí)計(jì)算出的普朗克常量數(shù)值為[6.640 07×10-34J·s],較接近公認(rèn)值。訓(xùn)練次數(shù)越多并一定能提高準(zhǔn)確率。訓(xùn)練次數(shù)為9 000時(shí),計(jì)算出的相對(duì)誤差數(shù)值大于訓(xùn)練7 000時(shí)的計(jì)算值。訓(xùn)練次數(shù)為3 000時(shí),原始數(shù)據(jù)和擬合的回歸曲線如圖4所示,損失率的變化情況如圖5所示。
2.3.3 不同損失函數(shù)的訓(xùn)練
在機(jī)器學(xué)習(xí)中,損失函數(shù)通常被用于模型的參數(shù)估計(jì),即通過最小化損失函數(shù)進(jìn)行求解和評(píng)估模型。
在Keras框架下,反向截止電壓和頻率的關(guān)系為線性回歸問題。為了研究不同損失函數(shù)對(duì)普朗克常數(shù)計(jì)算精度的計(jì)算影響,下面對(duì)搭建的序貫?zāi)P瓦M(jìn)行不同損失函數(shù)的測(cè)試。測(cè)試的損失函數(shù)分別為mean_absolute_error(平均絕對(duì)誤差)、mean_squared_logarithmic_error(均方對(duì)數(shù)誤差)、mean_absolute_percentage_error(百分比平均絕對(duì)誤差)和logcosh(對(duì)數(shù)雙曲余弦函數(shù))。訓(xùn)練輪次統(tǒng)一設(shè)置成3 000次,學(xué)習(xí)率統(tǒng)一設(shè)置成0.01。
由表2可知,相比較其他損失函數(shù),在mse(均方誤差)損失函數(shù)下,計(jì)算出的相對(duì)誤差值較低,數(shù)值為0.212%。損失方法采用均方對(duì)數(shù)誤差計(jì)算出的普朗克常數(shù)的相對(duì)誤差值最大,數(shù)值為403%。
2.3.4 保存模型
在確定損失函數(shù)和訓(xùn)練次數(shù)的前提下,可以調(diào)用model.save()函數(shù)保存訓(xùn)練好的模型,以便于后續(xù)調(diào)用模型評(píng)估新的測(cè)量數(shù)據(jù)的可信度。
3 結(jié)論
對(duì)于物理線性回歸的問題,可以使用深度學(xué)習(xí)進(jìn)行嘗試解決。本文采用深度學(xué)習(xí)的Keras框架,對(duì)普朗克常量進(jìn)行了計(jì)算,本質(zhì)上是基于物理實(shí)驗(yàn)對(duì)物理常數(shù)的檢驗(yàn)與計(jì)算。在樣本量為110,優(yōu)化器算法為sgd(隨機(jī)梯度算法),損失函數(shù)為mse(均方誤差),學(xué)習(xí)率為0.01時(shí),計(jì)算出的普朗克常量數(shù)值接近于真實(shí)值?;谏疃葘W(xué)習(xí)Keras框架的普朗克常數(shù)計(jì)算方法研究為物理常數(shù)的計(jì)算提供了新的思路,具有新的意義。
參考文獻(xiàn):
[1] 于春波.鐵礦石物相分析檢測(cè)方法的研究與應(yīng)用[J].中國(guó)檢驗(yàn)檢測(cè),2018,26(2):18-22,51.
[2] 郎集會(huì),范雯琦.基于光電效應(yīng)的普朗克常數(shù)的測(cè)定與分析[J].吉林師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2015,36(1):104-106.
[3] 羅兵,陳妍,徐中輝.單層2H-MoTe2光電效應(yīng)的理論研究[J].人工晶體學(xué)報(bào),2021,50(3):504-508.
[4] 張艷,楊慶余.愛因斯坦與普朗克——紀(jì)念光電效應(yīng)獲獎(jiǎng)100周年[J].大學(xué)物理,2022,41(5):35-40.
[5] 楊瑩,張文攀,張計(jì)才.基于自制暗箱測(cè)量光電效應(yīng)中光強(qiáng)與光電流的關(guān)系[J].大學(xué)物理,2022,41(2):63-66.
[6] 蘇金樹,張博鋒,徐昕.基于機(jī)器學(xué)習(xí)的文本分類技術(shù)研究進(jìn)展[J].軟件學(xué)報(bào),2006,17(9):1848-1859.
[7] 周飛燕,金林鵬,董軍.卷積神經(jīng)網(wǎng)絡(luò)研究綜述[J].計(jì)算機(jī)學(xué)報(bào),2017,40(6):1229-1251.
[8] 孫艷豐,齊光磊,胡永利,等.基于改進(jìn)Fisher準(zhǔn)則的深度卷積神經(jīng)網(wǎng)絡(luò)識(shí)別算法[J].北京工業(yè)大學(xué)學(xué)報(bào),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īng)網(wǎng)絡(luò)的服裝圖像分類檢索算法[J].計(jì)算機(jī)工程,2016,42(11):309-315.
[12] 曹大有,胥帥.基于TensorFlow預(yù)訓(xùn)練模型快速、精準(zhǔn)的圖像分類器[J].漢江師范學(xué)院學(xué)報(bào),2017,37(3):27-32.
[13] 彭博,杜尚耕,周云帆,等.以卷積神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)采集方法拓寬真空教學(xué)實(shí)驗(yàn)[J].物理實(shí)驗(yàn),2023,43(3):13-21.
[14] 張敏,許廷發(fā).基于Gabor小波紋理特征的目標(biāo)識(shí)別新方法[J].物理實(shí)驗(yàn),2004,24(4):12-15.
【通聯(lián)編輯:唐一東】