本周驗證了上周說的貝葉斯優(yōu)化+basinhopping的算法,將參數(shù)優(yōu)化到20(理論24)大概要運行2000-3000次量子電路,幾乎等同于differential evolution。相比于純basinhopping, 其實并沒有明顯的改進。貝葉斯優(yōu)化只是加速了參數(shù)優(yōu)化從0到16這一段的過程,而這一段過程,替換成basinhopping開銷可能也就多出小幾百次。我觀察到的basinhopping最大的痛點,是隨著探索的局部最低點值越來越低,尋找到新的極值點是更低點的概率越來越小。如果真要改進basinhopping,也應該改進后半段而不是前半段。但同時我也注意到,在貝葉斯優(yōu)化結束之后,basinhopping前幾次的跳躍找到更低極值點的速度是很快的。我認為這或許是貝葉斯優(yōu)化確實為basinhopping“引導方向”的表現(xiàn)之一,將貝葉斯優(yōu)化和basinhopping結合或許并非沒有可取之處。
我認為可能的改進方向是:交錯使用信任域貝葉斯和basinhopping。具體來說,先用貝葉斯優(yōu)化尋找到"盆地",然后用basinhopping去探索極值點,一旦超過幾次沒有找到新的最低點就停止,再根據(jù)極值點的信息去定位下一次貝葉斯優(yōu)化的信任域,如此往復。理由是:[1] 論文Energy landscapes for the quantum approximate optimization algorithm 提出極值點以漏斗形分布,極值點越低分布越靠近全局最低點。如果這個觀點成立,極值點的信息理應能有助于縮小下一次貝葉斯優(yōu)化的信任域。[2] 論文Quantum Approximate Optimization via Learning-based Adaptive Optimization 中,通過不斷縮小貝葉斯優(yōu)化的信任域,確實達到了遠超貝葉斯優(yōu)化的效果. [1]的觀點所說的漏斗形,其實就是暗示參數(shù)優(yōu)化應該是有一個方向的,應該要朝著漏斗底優(yōu)化才對。basinhopping這個算法本身是沒有方向感的,我認為這可能是為什么basinhopping越運行越艱難的原因。在basinhopping開始乏力的時候,通過貝葉斯優(yōu)化給basinhopping一種方向感,這是這個改進方向的直觀解釋。
但我暫時被卡在了怎么通過上一次basinhopping的結果確定下一次貝葉斯優(yōu)化的信任域這一步。而且,我的想法其實很大程度基于[1]中提出的觀點,但[1]本身也只是對幾類特殊的圖做了實驗畫了圖提出假說,并沒有任何理論推導。我需要找到更多研究QAOA能量景觀的論文,和更多的實驗。
不過我暫時要停止探索這個方向一段時間,先去解決以下畢業(yè)論文的問題。這三天已經(jīng)將部分代碼由qiskit框架遷移到tensorcircuit框架。