在一間寬敞的廚房里,各種廚具應(yīng)有盡有,當(dāng)然還要有一位技藝高超的大廚,桌上原本擺著土豆一個(gè)、茄子一根、青尖椒一根、大蒜三瓣、蔥一根、二兩食用油,醬油兩勺、淀粉一勺、鹽一勺,轉(zhuǎn)眼間所有食材和調(diào)料就被加工成一盤(pán)熱騰騰的美味地三鮮。如果把這些原材料看作是一個(gè)數(shù)學(xué)函數(shù)的輸入,那道做好的地三鮮就是函數(shù)的輸出,大廚使用各種工具做菜的過(guò)程就是函數(shù)本身。
當(dāng)然函數(shù)有很多種,有的非常簡(jiǎn)單,比如只是把兩個(gè)數(shù)加到一起,兩個(gè)輸入分別是2和3,輸出就是5,有的則非常復(fù)雜,比如預(yù)測(cè)全球氣候變化的復(fù)雜函數(shù)模型。函數(shù)輸入和輸出之間的反向關(guān)系也很微妙,如果端給你一盤(pán)地三鮮,你大概也一定能看出來(lái)里面有土豆,茄子和青椒,把“函數(shù)輸入”的原料說(shuō)出個(gè)大概,也就是說(shuō)這個(gè)函數(shù)從輸出到輸入是基本可逆的。當(dāng)然如果遇到的廚師是擁有祖?zhèn)髡{(diào)料秘方的幾十代傳人,完全恢復(fù)出輸入還真有點(diǎn)難度。但是對(duì)于求和的函數(shù),告訴你輸出是5,猜測(cè)出輸入并不難,而且你會(huì)發(fā)現(xiàn)輸入有很多種可能性,不僅2和3可以,1和4可以,0和5也可以……。
但也有這樣的函數(shù),告訴你輸出之后,獲得對(duì)應(yīng)的輸入是非常困難的,哪怕只是尋找到很多個(gè)正確答案的其中一個(gè)也很難,除非窮盡所有的輸入可能性進(jìn)行搜索。這樣的函數(shù)是有去無(wú)回的“單向車(chē)道”,相當(dāng)于是大廚會(huì)把熟悉的原料做成完全看不出本來(lái)面貌的超級(jí)黑暗料理,會(huì)產(chǎn)生不可逆的輸出結(jié)果。這樣的函數(shù)往往無(wú)法用一個(gè)簡(jiǎn)單的方程直接表示出來(lái),但是電腦上運(yùn)行一段代碼就可以表示從輸入到輸出的計(jì)算過(guò)程,正方向運(yùn)行的速度還是會(huì)很快,至少比做一盤(pán)菜要快很多。
單方向的函數(shù)并不容易設(shè)計(jì)出來(lái),需要專(zhuān)門(mén)的數(shù)學(xué)原理,研究人員可是花了好多年才尋找到的,它們用途非常廣泛。
舉個(gè)例子,你一定面對(duì)面和別人玩過(guò)石頭剪子布,有沒(méi)有想過(guò)在電話(huà)里怎么玩?看不到對(duì)方還能玩嗎?如果你和對(duì)方在電話(huà)里輪流說(shuō)要出什么,你先說(shuō)了石頭,對(duì)方一定說(shuō)布,對(duì)方先說(shuō)了剪子,你一定說(shuō)石頭,誰(shuí)“占得后機(jī)”誰(shuí)就會(huì)贏。當(dāng)然你可以和對(duì)方約定,我們都做個(gè)“不說(shuō)謊話(huà)的誠(chéng)實(shí)好孩子“,事先心里想好了出什么,到時(shí)候就不能變,聽(tīng)到了對(duì)方出了什么之后也不能改。但是到底究竟誰(shuí)說(shuō)了真話(huà),誰(shuí)說(shuō)了假話(huà),又如何知道呢?
單向函數(shù)在這里就可以顯神通,比如石頭,剪子和布分別用數(shù)字1,2和3來(lái)表示,每個(gè)人把自己要出的手勢(shì)加上一段設(shè)定的隨機(jī)數(shù)字字母,比如1m94DxjHr5(表示出石頭)或者20nS5hs54Js(表示出剪子),然后各自把自己的數(shù)字字母串輸入到單向函數(shù),會(huì)得到各自不同的輸出結(jié)果,兩人玩的時(shí)候,先輪流說(shuō)出自己的函數(shù)輸出結(jié)果作為一個(gè)”防偽標(biāo)簽“,由于從輸出無(wú)法看出輸入,也就無(wú)法根據(jù)對(duì)方的信息臨時(shí)改變主意,然后再輪流說(shuō)出自己原本要出什么手勢(shì)以及自己設(shè)定的密碼是什么。如果懷疑有人為了取勝而作弊,可以當(dāng)場(chǎng)用函數(shù)驗(yàn)證聲稱(chēng)的輸入是不是對(duì)應(yīng)預(yù)先說(shuō)的輸出,這樣在電話(huà)里公平地玩石頭剪刀布就成為可能。
如果說(shuō)電話(huà)里玩石頭剪子布只是多此一舉,那么大量網(wǎng)站既要驗(yàn)證用戶(hù)的權(quán)限又無(wú)需保存用戶(hù)的真正個(gè)人信息,區(qū)塊鏈數(shù)字貨幣中要保證只有真正挖到礦的使用者才能獲得獎(jiǎng)勵(lì),單向函數(shù)在這些實(shí)際應(yīng)用中可就發(fā)揮不可或缺的作用了。
而更多時(shí)候,我們面對(duì)的函數(shù)并不像上面所說(shuō)的單向函數(shù)那么難以反方向還原。從輸出獲得輸入雖有些難度,但也不是不可能,不至于要超級(jí)計(jì)算機(jī)花費(fèi)成千萬(wàn)上億年才能實(shí)現(xiàn)的地步。使用身邊的一臺(tái)普通筆記本電腦就足夠勝任任務(wù),只是計(jì)算時(shí)間上我們希望越快越好,能用一星期不用一個(gè)月,能用一小時(shí)不用一天,高效準(zhǔn)確是理想的目標(biāo)。
在光學(xué)器件設(shè)計(jì)中,有不少的任務(wù)就是這種類(lèi)型,比如下面圖1中這種多層薄膜結(jié)構(gòu),看起來(lái)像粵式早茶中的相鄰兩層深淺顏色不同的千層糕。千層糕里面紅白層分別加了紅糖和椰漿,而薄膜器件中則是二氧化硅和氮化硅兩種材料很多層交替疊在一起。雖然其中的每一層都非常薄(數(shù)十?dāng)?shù)百納米級(jí)別,比人的頭發(fā)絲直徑還要小),但是每一層厚度怎樣設(shè)置,可“事關(guān)重大”。我們并不需要像千層糕那樣讓每一層薄厚均勻,看起來(lái)美觀(guān),而是要優(yōu)化設(shè)計(jì)為適當(dāng)?shù)谋『?,比如可以第一層二氧化硅很厚,第二層氮化硅很薄,第三層二氧化硅又變厚……?/span>

圖1 二氧化硅和氮化硅材料交替的多層薄膜光學(xué)器件
當(dāng)一束光照射到這樣的多層薄膜結(jié)構(gòu)并從另外一側(cè)穿透后,不同頻率(波長(zhǎng))的部分透過(guò)率會(huì)不一樣,比如對(duì)于可見(jiàn)光,不同頻率就意味著紅綠藍(lán)不同顏色的光,最后透射率與頻率之間的關(guān)系會(huì)是一條曲線(xiàn),而這一曲線(xiàn)正好與每一層薄膜厚度分布的密切相關(guān)。我們面對(duì)的函數(shù)輸入就是每層薄膜的厚度分布,輸出是對(duì)應(yīng)結(jié)構(gòu)的透射率頻譜分布,從輸入獲得輸出可以在電腦上通過(guò)物理仿真模擬比較容易實(shí)現(xiàn),而反過(guò)來(lái),給定了目標(biāo)的輸出,要獲得一組符合要求的目標(biāo)輸入,卻是一個(gè)“逆向設(shè)計(jì)“的困難任務(wù)。

圖2 多層薄膜光學(xué)器件的透過(guò)率頻譜分布曲線(xiàn)
在各種光學(xué)應(yīng)用中,我們會(huì)專(zhuān)門(mén)需要讓某些頻率的光透過(guò),同時(shí)不讓另外一些頻率的光透過(guò),事先會(huì)有一個(gè)像圖4那樣的目標(biāo)透射率頻譜分布曲線(xiàn),我們的任務(wù)是利用函數(shù)尋找到對(duì)應(yīng)的輸入,也就是逆向設(shè)計(jì)出最佳“千層糕”的結(jié)構(gòu)。假設(shè)“千層糕”一共10層,每層的厚度有10種不同尺寸可選,隨機(jī)組合一下,最后可能的結(jié)構(gòu)就一共有多達(dá)100億種,雖然每次把其中任何一種結(jié)構(gòu)輸入給函數(shù),都可以得到對(duì)應(yīng)的輸出曲線(xiàn),但是逐一嘗試數(shù)量巨大的所有可能的輸入,“遍歷全搜索”看哪個(gè)輸出最接近目標(biāo),是一種“愚公移山”式的低效笨拙方法。而計(jì)算機(jī)上有更智能的算法來(lái)幫助我們逆向設(shè)計(jì)尋找答案,像遺傳進(jìn)化算法和深度學(xué)習(xí),可以用盡可能少的搜索次數(shù)獲得正確答案。
在達(dá)爾文的進(jìn)化論中,世界上各種生物能夠變成今天的樣子,是因?yàn)榛虻耐蛔円约碍h(huán)境的篩選,優(yōu)勝劣汰,適者生存,不適者被淘汰,而優(yōu)勝者的后代往往有更強(qiáng)的適應(yīng)力,經(jīng)過(guò)很多代的進(jìn)化之后,有些動(dòng)物從不會(huì)飛變得會(huì)飛,從笨手笨腳變得可以輕易藏身叢林中,從體型龐大變得輕盈快速,一切都是因?yàn)樯娴膲毫?。這表面看起來(lái)好像和我們要解決的問(wèn)題“八竿子打不到一起”,但實(shí)際卻是“異曲同工”,對(duì)于進(jìn)化過(guò)程的模仿也成了反方向求解函數(shù)一件利器。
遺傳進(jìn)化算法把自然進(jìn)化的過(guò)程搬到了計(jì)算機(jī)上,可以用來(lái)解決光學(xué)器件逆向設(shè)計(jì)的問(wèn)題。假設(shè)每一種薄膜層厚度不同的分布而形成的結(jié)構(gòu)就看作是一只動(dòng)物個(gè)體,最開(kāi)始先隨機(jī)生成相當(dāng)數(shù)量的不同個(gè)體,然后如上所說(shuō),我們用物理仿真函數(shù),可以獲得每只動(dòng)物對(duì)應(yīng)的輸出,也就是透射率頻譜分布,它們中有的和設(shè)計(jì)目標(biāo)相對(duì)接近,獲得的適應(yīng)度分?jǐn)?shù)會(huì)高一些,另一些適應(yīng)度的分?jǐn)?shù)會(huì)低一些,這也預(yù)示著這群“動(dòng)物”的命運(yùn),適應(yīng)者就有比較大幾率留下來(lái),不適者就有比較大幾率被淘汰。然后我們還會(huì)讓分?jǐn)?shù)高的個(gè)體交配產(chǎn)生后代,當(dāng)然這里并沒(méi)有真的交配,只是讓兩個(gè)結(jié)構(gòu)的不同薄膜層厚度取一下中間數(shù)值,這樣產(chǎn)生的新結(jié)構(gòu)也意味著有可能產(chǎn)生更高的適應(yīng)度。除此之外,我們還會(huì)產(chǎn)生一些隨機(jī)變化,比如讓一個(gè)較好的結(jié)構(gòu)里面某一層突然變厚或者變薄,看適應(yīng)度會(huì)不會(huì)提升,以探索新的可能性。
事實(shí)上,以上的過(guò)程就像我們尋找美食一樣,一種方式是根據(jù)自己曾經(jīng)去過(guò)的喜愛(ài)的餐廳,繼續(xù)發(fā)掘菜單上沒(méi)有嘗試過(guò)的菜品,可以比較保險(xiǎn)地獲得滿(mǎn)意體驗(yàn),但天花板上限也可見(jiàn),另一種方式是去光顧沒(méi)去過(guò)的新餐廳,雖然有不確定踩雷的風(fēng)險(xiǎn),但也許會(huì)有更好的發(fā)現(xiàn),最優(yōu)的策略就是將這兩種所謂的“局部搜索”和“全局搜索”相結(jié)合。遺傳進(jìn)化算法通過(guò)對(duì)大量個(gè)體的不斷篩選,交叉和突變,經(jīng)過(guò)一代又一代的進(jìn)化,最后搜索獲得的最優(yōu)結(jié)構(gòu)中不同薄膜層厚度的分布對(duì)應(yīng)的輸出曲線(xiàn)會(huì)與目標(biāo)非常接近,完成了所希望的器件設(shè)計(jì)任務(wù)。在整個(gè)尋找“最佳千層糕”的過(guò)程中,100億種可能的組合中也只有很少一部分被嘗試,遺傳進(jìn)化算法卻可以利用較少的搜索次數(shù),智能高效率地給出一個(gè)不錯(cuò)的逆向設(shè)計(jì)結(jié)果。
而近年來(lái)流行的另外一種用于光學(xué)器件逆向設(shè)計(jì)的智能算法則是深度學(xué)習(xí),原本通過(guò)物理仿真函數(shù),從輸入獲得輸出容易進(jìn)行,反過(guò)來(lái)則無(wú)法直接實(shí)現(xiàn)。不過(guò)這沒(méi)有關(guān)系,本著“世界上本沒(méi)有路,走的人多了,也便成了路“的精神,我們可以嘗試大量不同的輸入(當(dāng)然相比 100 億所有可能性還是一個(gè)小數(shù)目),把從已知函數(shù)獲得的對(duì)應(yīng)輸出結(jié)果也都記錄下來(lái)。然后我們使用深度學(xué)習(xí)這樣一個(gè)模仿人類(lèi)大腦神經(jīng)元連接的黑箱模型,對(duì)于從輸出到輸入的反向關(guān)系建立數(shù)據(jù)模型,用大量輸出和輸入對(duì)應(yīng)的數(shù)據(jù)來(lái)訓(xùn)練深度學(xué)習(xí)網(wǎng)絡(luò),使得網(wǎng)絡(luò)中的參數(shù)具有最優(yōu)的數(shù)值,這樣一個(gè)訓(xùn)練好的人工智能模型也就具備了從給定輸出中推測(cè)輸入結(jié)構(gòu)的能力,也就是說(shuō)給定一個(gè)所需的透過(guò)率頻譜分布曲線(xiàn),深度學(xué)習(xí)的輸出就可以直接告訴你薄膜中每一層厚度應(yīng)該怎樣設(shè)計(jì),也同樣比遍歷全搜索的方式聰明很多。

圖3 深度學(xué)習(xí)用于光學(xué)器件逆向設(shè)計(jì)
實(shí)際中我們要設(shè)計(jì)的光學(xué)器件各式各樣,不只有像千層糕的,還有像巧克力方格,變形軟糖等多種結(jié)構(gòu),有了各種逆向設(shè)計(jì)智能算法,它們就總能乖乖地按照預(yù)想的方式來(lái)與照射光你來(lái)我往。
作者簡(jiǎn)介:
焦述銘,鵬城實(shí)驗(yàn)室助理研究員,香港城市大學(xué)電子工程博士,從事全息三維顯示算法,單像素成像,光學(xué)計(jì)算,圖像處理,信息安全,機(jī)器學(xué)習(xí)等研究,曾獲得香港特區(qū)政府Hong Kong PhD Fellowship Scheme和廣東省“珠江人才計(jì)劃”海外青年引進(jìn)計(jì)劃(博士后資助項(xiàng)目)。在Optics Letters, Optics Express, IEEE Transactions on Industrial Informatics, Engineering等期刊上以第一或通訊作者發(fā)表論文20余篇,獲得2020年國(guó)際顯示技術(shù)大會(huì)(ICDT 2020)優(yōu)秀論文獎(jiǎng)。擔(dān)任《應(yīng)用光學(xué)》和《液晶與顯示》期刊青年編委,中國(guó)光學(xué)學(xué)會(huì)全息與光信息處理專(zhuān)業(yè)委員會(huì)委員,中國(guó)圖像圖形學(xué)學(xué)會(huì)三維成像與顯示專(zhuān)業(yè)委員會(huì)委員,中國(guó)圖像圖形學(xué)學(xué)會(huì)三維視覺(jué)專(zhuān)業(yè)委員會(huì)委員。擔(dān)任中國(guó)科普作家協(xié)會(huì)會(huì)員,Light科普坊科學(xué)家顧問(wèn)團(tuán)成員,曾在果殼網(wǎng),科學(xué)大院,南方都市報(bào),讀者原創(chuàng)版等網(wǎng)絡(luò)和平面媒體撰寫(xiě)科普文章,2013年第六版《十萬(wàn)個(gè)為什么》圖書(shū)數(shù)學(xué)分冊(cè)和電子信息分冊(cè)作者之一。
