首頁/ 美食/ 正文

反過來找答案,沒那麼容易

本文由「Light科普坊」出品

撰稿:焦述銘(鵬城實驗室)

審稿專家:左超(南京理工大學)

在一間寬敞的廚房裡,各種廚具應有盡有,當然還要有一位技藝高超的大廚,桌上原本擺著土豆一個、茄子一根、青尖椒一根、大蒜三瓣、蔥一根、二兩食用油,醬油兩勺、澱粉一勺、鹽一勺,轉眼間所有食材和調料就被加工成一盤熱騰騰的美味地三鮮。

如果把這些原材料看作是一個數學函式的輸入,那道做好的地三鮮就是函式的輸出,大廚使用各種工具做菜的過程就是函式本身。

反過來找答案,沒那麼容易

圖1:一盤正宗的東北地三鮮

圖源:Light科普坊/VEER

當然函式有很多種,有的非常簡單,比如只是把兩個數加到一起,兩個輸入分別是 2 和 3,輸出就是 5,有的則非常複雜,比如預測全球氣候變化的複雜函式模型。函式輸入和輸出之間的反向關係也很微妙,如果端給你一盤地三鮮,你大概也一定能看出來裡面有土豆,茄子和青椒,把“函式輸入”的原料說出個大概,也就是說這個函式從輸出到輸入是基本可逆的。當然如果遇到的廚師是擁有祖傳調料秘方的幾十代傳人,完全恢復出輸入還真有點難度。但是對於求和的函式,告訴你輸出是 5,猜測出輸入並不難,而且你會發現輸入有很多種可能性,不僅 2 和 3 可以,1 和 4 可以,0 和 5 也可以……

但也有這樣的函式,告訴你輸出之後,獲得對應的輸入是非常困難的,哪怕只是尋找到很多個正確答案的其中一個也很難,除非窮盡所有的輸入可能性進行搜尋。這樣的函式是有去無回的“單向車道”,相當於是大廚會把熟悉的原料做成完全看不出本來面貌的超級黑暗料理,會產生不可逆的輸出結果。這樣的函式往往無法用一個簡單的方程直接表示出來,但是電腦上執行一段程式碼就可以表示從輸入到輸出的計算過程,正方向執行的速度還是會很快,至少比做一盤菜要快很多。

MD5 和 SHA-1 是單向函式典型例子[

1

]。這種單方向的函式並不容易設計出來,需要專門的數學原理,研究人員可是花了好多年才尋找到的,它們用途非常廣泛。

舉個例子,你一定面對面和別人玩過石頭剪子布,有沒有想過在電話裡怎麼玩?看不到對方還能玩嗎?如果你和對方在電話裡輪流說要出什麼,你先說了石頭,對方一定說布,對方先說了剪子,你一定說石頭,誰“佔得後機”誰就會贏。當然你可以和對方約定,我們都做個“不說謊話的誠實好孩子“,事先心裡想好了出什麼,到時候就不能變,聽到了對方出了什麼之後也不能改。但是到底究竟誰說了真話,誰說了假話,又如何知道呢?

反過來找答案,沒那麼容易

圖2:石頭剪刀布(猜拳遊戲)

圖源:Light科普坊/VEER

單向函式在這裡就可以顯神通,比如石頭,剪子和布分別用數字 1,2 和 3 來表示,每個人把自己要出的手勢加上一段設定的隨機數字字母,比如 1m94DxjHr5(表示出石頭)或者 20nS5hs54Js(表示出剪子),然後各自把自己的數字字母串輸入到單向函式,會得到各自不同的輸出結果,兩人玩的時候,先輪流說出自己的函式輸出結果作為一個”防偽標籤“,由於從輸出無法看出輸入,也就無法根據對方的資訊臨時改變主意,然後再輪流說出自己原本要出什麼手勢以及自己設定的密碼是什麼。如果懷疑有人為了取勝而作弊,可以當場用函式驗證聲稱的輸入是不是對應預先說的輸出,這樣在電話裡公平地玩石頭剪刀布就成為可能。

如果說電話裡玩石頭剪子布只是多此一舉,那麼大量網站既要驗證使用者的許可權又無需儲存使用者的真正個人資訊,區塊鏈數字貨幣中要保證只有真正挖到礦的使用者才能獲得獎勵,單向函式在這些實際應用中可就發揮不可或缺的作用了。

而更多時候,我們面對的函式並不像上面所說的單向函式那麼難以反方向還原。從輸出獲得輸入雖有些難度,但也不是不可能,不至於要超級計算機花費成千萬上億年才能實現的地步。使用身邊的一臺普通膝上型電腦就足夠勝任任務,只是計算時間上我們希望越快越好,能用一星期不用一個月,能用一小時不用一天,高效準確是理想的目標。

在光學器件設計中,有不少的任務就是這種型別,比如下面圖2中這種多層薄膜結構[

2

],

看起來像粵式早茶中的相鄰兩層深淺顏色不同的千層糕

。千層糕裡面紅白層分別加了紅糖和椰漿,而薄膜器件中則是二氧化矽和氮化矽兩種材料很多層交替疊在一起。雖然其中的每一層都非常薄(數十數百奈米級別,比人的頭髮絲直徑還要小),但是每一層厚度怎樣設定,可“事關重大”。我們並不需要像千層糕那樣讓每一層薄厚均勻,看起來美觀,而是要最佳化設計為適當的薄厚,比如可以第一層二氧化矽很厚,第二層氮化矽很薄,第三層二氧化矽又變厚……。

反過來找答案,沒那麼容易

圖3:二氧化矽和氮化矽材料交替的多層薄膜光學器件

圖源:Acs Photonics 5。4 (2018): 1365-1369, Fig。2

反過來找答案,沒那麼容易

圖4:粵式早茶中的千層糕點心

圖源:Light科普坊/VEER

當一束光照射到這樣的多層薄膜結構並從另外一側穿透後,不同頻率(波長)的部分透過率會不一樣,比如對於可見光,不同頻率就意味著紅綠藍不同顏色的光,最後透射率與頻率之間的關係會是一條曲線,而這一曲線正好與每一層薄膜厚度分佈的密切相關。我們面對的函式輸入就是每層薄膜的厚度分佈,輸出是對應結構的透射率頻譜分佈,從輸入獲得輸出可以在電腦上透過物理模擬模擬比較容易實現,而反過來,給定了目標的輸出,要獲得一組符合要求的目標輸入,卻是一個“逆向設計“的困難任務。

反過來找答案,沒那麼容易

圖5:多層薄膜光學器件的透過率頻譜分佈曲線

圖源:Acs Photonics 5。4 (2018): 1365-1369, Fig。2

在各種光學應用中,我們會專門需要讓某些頻率的光透過,同時不讓另外一些頻率的光透過,事先會有一個像圖4那樣的目標透射率頻譜分佈曲線,我們的任務是利用函式尋找到對應的輸入,也就是逆向設計出最佳“千層糕”的結構。假設“千層糕”一共 10 層,每層的厚度有 10 種不同尺寸可選,隨機組合一下,最後可能的結構就一共有多達 10也就是 100 億種,雖然每次把其中任何一種結構輸入給函式,都可以得到對應的輸出曲線,但是逐一嘗試數量巨大的所有可能的輸入,“遍歷全搜尋”看哪個輸出最接近目標,是一種“愚公移山”式的低效笨拙方法。而計算機上有更智慧的演算法來幫助我們反方向尋找答案,像遺傳進化演算法和深度學習,可以用盡可能少的搜尋次數獲得正確答案。

在達爾文的進化論中,世界上各種生物能夠變成今天的樣子,是因為基因的突變以及環境的篩選,優勝劣汰,適者生存,不適者被淘汰,而優勝者的後代往往有更強的適應力,經過很多代的進化之後,有些動物從不會飛變得會飛,從笨手笨腳變得可以輕易藏身叢林中,從體型龐大變得輕盈快速,一切都是因為生存的壓力。這表面看起來好像和我們要解決的問題“八竿子打不到一起”,但實際卻是“異曲同工”,對於進化過程的模仿也成了反方向求解函式一件利器。

遺傳進化演算法把自然進化的過程搬到了計算機上,可以用來解決光學器件逆向設計的問題。假設每一種薄膜層厚度不同的分佈而形成的結構就看作是一隻動物個體,最開始先隨機生成相當數量的不同個體,然後如上所說,我們用物理模擬函式,可以獲得每隻動物對應的輸出,也就是透射率頻譜分佈,它們中有的和設計目標相對接近,獲得的適應度分數會高一些,另一些適應度的分數會低一些,這也預示著這群“動物”的命運,適應者就有比較大機率留下來,不適者就有比較大機率被淘汰。然後我們還會讓分數高的個體交配產生後代,當然這裡並沒有真的交配,只是讓兩個結構的不同薄膜層厚度取一下中間數值,這樣產生的新結構也意味著有可能產生更高的適應度。除此之外,我們還會產生一些隨機變化,比如讓一個較好的結構裡面某一層突然變厚或者變薄,看適應度會不會提升,以探索新的可能性。

事實上,以上的過程就像我們尋找美食一樣,一種方式是根據自己曾經去過的喜愛的餐廳,繼續發掘選單上沒有嘗試過的菜品,可以比較保險地獲得滿意體驗,但天花板上限也可見,另一種方式是去光顧沒去過的新餐廳,雖然有不確定踩雷的風險,但也許會有更好的發現,最優的策略就是將這兩種所謂的“區域性搜尋”和“全域性搜尋”相結合。遺傳進化演算法透過對大量個體的不斷篩選,交叉和突變,經過一代又一代的進化,最後搜尋獲得的最優結構中不同薄膜層厚度的分佈對應的輸出曲線會與目標非常接近,完成了所希望的器件設計任務。在整個尋找“最佳千層糕”的過程中,100 億種可能的組合中也只有很少一部分被嘗試,遺傳進化演算法卻可以利用較少的搜尋次數,智慧高效率地給出一個不錯的逆向設計結果。

反過來找答案,沒那麼容易

圖6:自然進化過程

圖源:Light科普坊/VEER

而近年來流行的另外一種用於光學器件逆向設計的智慧演算法則是深度學習,原本透過物理模擬函式,從輸入獲得輸出容易進行,反過來則無法直接實現。不過這沒有關係,本著“世界上本沒有路,走的人多了,也便成了路“的精神,我們可以嘗試大量不同的輸入(當然相比 100 億所有可能性還是一個小數目),把從已知函式獲得的對應輸出結果也都記錄下來。然後我們使用深度學習這樣一個模仿人類大腦神經元連線的黑箱模型,對於從輸出到輸入的反向關係建立資料模型,用大量輸出和輸入對應的資料來訓練深度學習網路,使得網路中的引數具有最優的數值,這樣一個訓練好的人工智慧模型也就具備了從給定輸出中推測輸入結構的能力,也就是說給定一個所需的透過率頻譜分佈曲線,深度學習的輸出就可以直接告訴你薄膜中每一層厚度應該怎樣設計,也同樣比遍歷全搜尋的方式聰明很多。

反過來找答案,沒那麼容易

圖7:深度學習用於光學器件逆向設計

圖源:Acs Photonics 5。4 (2018): 1365-1369, Fig。1

實際中我們要設計的光學器件各式各樣,不只有像千層糕的,還有像巧克力方格,變形軟糖等多種結構,有了各種逆向設計智慧演算法,它們就總能乖乖地按照預想的方式來與照射光你來我往。

本文封面圖由Light科普坊提供

本文封面圖由Light科普坊提供

[1] Gandhi U, Sinha MP, Kulhare MR。 a Review Towards Various Hash Algorithms and Their Comparative Analysis。 Int。 Res。 J。 Eng。 Technol。 2017;4(2):1316-9。

[2] Liu D, Tan Y, Khoram E, Yu Z。 Training deep neural networks for the inverse design of nanophotonic structures。 ACS Photonics。 2018 Feb 25;5(4):1365-9。

參考資料:

作者簡介

,鵬城實驗室助理研究員,香港城市大學電子工程博士,從事全息三維顯示演算法,單畫素成像,光學計算,影象處理,資訊保安,機器學習等研究,曾獲得香港特區政府Hong Kong PhD Fellowship Scheme和廣東省“珠江人才計劃”海外青年引進計劃(博士後資助專案)。在Optics Letters, Optics Express, IEEE Transactions on Industrial Informatics, Engineering等期刊上以第一或通訊作者發表論文20餘篇,獲得2020年國際顯示技術大會(ICDT 2020)優秀論文獎。擔任《應用光學》和《液晶與顯示》期刊青年編委,中國光學學會全息與光資訊處理專業委員會委員,中國影象圖形學學會三維成像與顯示專業委員會委員,中國影象圖形學學會三維視覺專業委員會委員。擔任中國科普作家協會會員,Light科普坊科學家顧問團成員,曾在果殼網,科學大院,南方都市報,讀者原創版等網路和平面媒體撰寫科普文章,2013年第六版《十萬個為什麼》圖書數學分冊和電子資訊分冊作者之一。

轉載內容僅代表作者觀點

不代表中科院物理所立場

如需轉載請聯絡原公眾號

焦述銘

相關文章

頂部