第137章先跑跑看?
第137章先跑跑看?(第2/3頁)
接受率,低得令人發指。這說明他們的提議分布選得太爛了,跟目標分布完全不匹配。」
這在數學上,是極其低效的。
他走了回去。
「等一下。」
正準備按下回車鍵的張樂陽手一抖,停了下來,疑惑地回頭看著這位大一新生。
「怎麽了同學?還有事嗎?」
徐辰冇有看他,而是指著屏幕上那行正在跳動的代碼。
「你們這是在算一個高維積分的期望值,對吧?」徐辰冇有用物理術語,而是直接切入了數學本質。
「呃……是。」張樂陽愣了一下,「這是配分函數的路徑積分。」
「既然是積分,為什麽要用這種各向同性的隨機遊走去采樣?」徐辰皺著眉頭。
「你們的目標函數,在這個高維空間裡顯然不是均勻分布的。看這個梯度的變化,它應該集中在一個非常狹窄的流形附近。」
「你們這樣均勻撒網,99.9%的計算量都浪費在了那些概率密度幾乎為零的空白區域裡。這就是你們收斂慢的根本原因。」
……
張樂陽張大了嘴巴。
他雖然是物理博士,但數學功底也不差。
徐辰這幾句話,雖然冇提一個物理名詞,卻精準地戳中了他們算法的死穴!
張樂陽當然知道自己的算法「笨」。
在這個圈子裡混了這麽多年,誰不知道metropolis算法效率低?誰不知道隨機遊走是在浪費算力?
但問題是,大家都這麽乾啊!
「那……那能怎麽辦?」張樂陽下意識地反駁道,「這個係統的維度太高了,幾百萬維!這可不是二維平麵上的找山峰,我們根本不知道那個『狹窄的流形』藏在哪個角落,除了靠隨機遊走去碰運氣,還能有什麽辦法?」
「誰說隻能靠碰運氣?」
徐辰搖了搖頭,眼神變得銳利。
「雖然我不懂你們的物理模型,但我看你們的哈密頓量表達式……」他指了指屏幕一角那個複雜的公式,「這裡麵包含了一個明顯的辛結構。」
「既然有辛結構,為什麽不利用哈密頓動力學去輔助采樣?」
「與其讓粒子像醉漢一樣隨機亂撞,不如給它一個初速度,讓它沿著哈密頓方程的軌道,自己『滑』向那個高概率區域!」
「這在數學上叫……哈密頓蒙特卡洛,簡稱hmc。」
徐辰看著張樂陽,繼續說道:「你們的模型本身就自帶了梯度信息,你們卻非要蒙著眼睛走路。這就是對數學結構的浪費。」
張樂陽整個人都僵住了。
hmc?哈密頓蒙特卡洛?
這個詞他聽說過,在統計學和機器學習領域很火。但在他們這個具體的物理細分領域,大家習慣了傳統的metropolis算法,很少有人想過引入這種複雜的數學工具。
因
(本章未完,請點擊下一頁繼續閱讀)