• 沒有找到結果。

第 4 章 將基因區域搜尋法應用於繞射型濾波器的設計

利用演算法設計繞射型光學元件,首先最重要的就是定義出目標 函數。目標函數的設定方式的好壞將會直接影響運算的結果,一個不 恰當的設定,將會導致結果無法符合預期,本章將在第一小節裡討論 幾種不同的設定方式,並比較其優缺點。在第二小節裡將介紹針對繞 射光學元件所修改的基因演算法,而第三小節將介紹本論文所採用的 編碼方式以及演算法交互迭代的方法。

4.1 目標函數(Object function)的設定與比較分析

由於許多最佳化演算法都是求函數的極小值,因此,在繞射光學 元件的設計上,一般常見的目標函數設定都是採用誤差函數(Error function),如平方誤差和(Sum Square Error,SSE):

( ) i( ) i 2 i

SSE P =

I PI  ………(4.1) 式中的P表示是演算法目前搜尋的位置(解),而I Pi( )是訊號區內的光 強度,Ii是光強度的目標值。當 SSE=0 時,也就代表已經達到我們所 要求的目標了,但這只是一種理想的狀況,實際上我們只能找到一個 極小值而已,圖 4-1 為誤差函數示意圖。而基因演算法是一種求極大 值的演算法,其目標函數設定方式跟一般求最小值的演算法可以利用

fmin = −F………(4.3) 式中大寫的 F 表示基因演算法的適應度函數(求最大值),而 fmin是共 軛梯度法以及其他種求最小值最佳化演算法的目標函數。

0.00E+00 5.00E+05 1.00E+06 1.50E+06 2.00E+06 2.50E+06

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39

目標值 實際值 取樣點

圖 4-1 誤差函數示意圖

濾波型元件有幾點要求:1.主要波長具有高繞射效率 2.具有高 SNR 值。因此希望主波長在訊號區的光強度分佈近似於理想的愛里盤 (理想聚焦元件的分佈),而其他波長則希望在訊號區內強度為 0,因 此可以寫成下列的式子:

1 1 2 3 4

2

2 2 2

0 0 0

i i i i i

i i i i

SSE=

IλIλ  +

Iλ −  +

Iλ −  +

Iλ −  ……(4.4)

式中的Iλ1i是愛里盤的強度分佈,而由於主波長的誤差跟其他波長的

誤差的大小會有所不同,所以習慣上會針對第 n 個波長加上一個誤差 的加權(weight)。

1 1 2 2 3 3 4 4

2 2 2 2

i i i i i i i

i i i i

SSE=

IλIλ  +

W Iλ λ +

W Iλ λ +

W Iλ λ …………(4.5)

上式是一般普遍所使用的設定方法,然而由於主波長的光強度誤差 跟其他光強度的誤差大小,往往相差數個數量級,往往需要經過不斷 的測試,才能找出合適的加權值。當取樣點改變或是元件規格改變 時,都必須要再調整加權值的大小。顯然這不是一種非常好的設定方 式,因此本論文考慮基因演算法求最大值的特性,使用幾種不同的目 標函數設定方式:

1. 求SNR最大值:

這個概念是來自於我們希望主波長具有在訊號區內有極高的光 通量,而其他波長的光通量趨近於 0,也就是 SNR 極大的概念。考慮 四個波長的計算,使用基因區域搜尋法,其計算結果為η1=0.32051%

2 0.000012%

η =η3 =0.0000026%η4 =0.00000072%SNR=20921,此一 結果雖然有極高的SNR值,但主波長的繞射效率過低,並不符合我們 希望得到的結果。

2. 求η1×100+ iW SNR'η1×SNR'W極大:

接近 0 時會發生趨近無窮大的現象,考慮在分母加入一個非 0 值,使 其SNR是有限值

' 1

1

nontrival i

i 100 的目的是為了讓目標函數有適當大小的值(well-scaled),如此

考慮設定ηnontrival =0.5%W =0.5,根據此種設定的方式使用基因區域

2 4.4929%

η = η3=1.31486%η4 =0.532997%

簡單估計 68.2965% - 60%

6.3408% 1

W → ≈ 。然而實際上若將 W 設定為 1,並不能

4.2 改良型基因演算法12

償超過2π 的部分都是可以忽略的,數學形式可以寫成φ φ'= mod 2π

結構的相位常數是 2,再右邊一個的相位常數是 3,依此類推。當光 線通過這八個不同的結構時,全部將會聚焦到同一點上,強度也會完 全相同,但是,相位卻不會相同,也就是第一個結構的相位是跟他的 相位常數 0 有關,而第二個結構在聚焦點上,光的相位是跟他的相位 常數 1 有關,同時我們也知道,這兩個元件聚焦點上光的相位會相差 1(也就是1 2

π),如果將這兩個結構各取一半(結構一取左邊一半,

結構二取右邊一半)之後拼在一起,所得到的新結構,其聚焦效果會 不如原本的結構,這是因為這兩個結構的相位常數不相同,最後進行 波的疊加時,反而不能達到良好的建設性疊加。在瞭解了光學上特殊 的性質之後,我們開始進入基因演算法的正題,考慮圖 4-2 是一個 Fresnel 透鏡結構,是繞射行純聚焦元件的最佳解,也就是我們使用 基因演算法,想要得到的解。

而基因演算法中,每一個染色體個體代表一個結構,而會有多個 染色體個體形成一個族群,最後再由此一族群進行交配、突變等演化 的行為,最後演化出一個最好的解。在演化的過程中,優秀的個體容 易被挑選出來(被挑選的機率正比於該染色體的是否優秀的評估 值),因此我們考慮在一個廣大的族群中,就在演化的過程中出現兩 組較優秀的個體如圖 4-4 所示:

0 50 100 150 200 250 0

1 2 3 4 5 6 7

0 50 100 150 200 250

0 1 2 3 4 5 6 7

圖 4-4 整個族群中兩個較優秀的個體

因為此兩組染色體都十分優秀(由圖可知,已經蠻接近 Fresnel 透鏡了),因此極有可能被挑選出來互相交配。考慮其交配的切割點 (單切割點交配法)是落在橫軸 100 的位置,左邊那個結構,取的是 100 以後的基因,又邊那個結構,取的是 100 以前的基因,如此我們 得到一個新的染色體個體,照理說,此組染色體遺傳自兩個相當優秀 的個體,,這組染色體應該也會有相當好的表現才是,但事實卻完全 相反,此組染色體所代表的結構,其聚焦效果將會十分的差,原不如 親代的結構的聚焦效果。其原因可以簡單的看出,圖 4-4 左邊圖形,

其結構的相位常數大致可以看成是 7(對於 Fresnel 透鏡來說),而右 邊圖形的相位常數卻是 3,兩者之間差了 4(也就是4 2

π π= ),因此 反而造成波的破壞性的疊加了。當我們瞭解問題就出在相位常數上

成子代比親代還差,因此提出一個簡單的方法,也就是當發生子代比 兩個親代還要差的時候,考慮補償 ~3

2 2

π π 的相位常數,就是將右邊那 個結構,考慮相位常數,因此可以得到 4 個結構(分 8 階,故 ~3

2 2

π π

有 4 種結構),此 4 個結構(或稱光學性質等效的 4 組染色體)再與左 邊那個結構(染色體)交配,形成 4 個子代,最後由此 4 個子代挑選出 最好的,當成新的一代。在之前所提到的這個例子中,如果改採這種 修改型的交配方法,我們馬上就可以得到當相位常數改變 4(就是相 位常數相差變成 0),將會與左邊那組交配出最好的結果,而此結果 就會馬上與 Fresnel 透鏡完全相同。當然,或許這僅僅是一個方便解 釋的例子,但是,這也是實際演化的時候,極有可能碰到的問題,當 我們改採此種修改型交配法時,可以很輕鬆的克服此一嚴重的問題。

假若整個族群中不存在相位常數的問題,而剛才所介紹的方法需 要額外測試相位的常數,勢必浪費許多運算,因此考慮使用統計的方 式,假若整個族群大小為NPop,由第 t 代產生第 t+1 個子代時,如果 有rNPop個子代需要使用修改型交配的方法,則認定此一族群存在相位 常數的問題,在 t+1 代裡仍然使用修改型的交配方法,反之若需要修 改型交配法的子代數目小於rNPop,則認定此族群不存在相位常數的,

t+1 代之後將只使用一般的交配方法,其中r是一個比例常數,本論 文的設定是 0.5,以下圖 4-5 是利用修改型演算法與一般演算法設計

一個使用波長為 1μm,元件大小 1500μm,300 個分割點,焦距為 40000 μm,光班半徑為 16.26670μm,其目標函數為愛里盤的繞射效率,

其收斂速度的的比較曲線圖。

0 200 400 600 800 1000 1200 1400 1600 1800 2000

0 10 20 30 40 50 60 70 80

Time(sec)

Efficiency(%)

MGA Single Crossover GA Uniform Crossover GA Modified Crossover GA Single Crossover GA Uniform Crossover GA

圖 4-5 不同的交配方法隨時間收斂的曲線

由圖 4-5 可以看出,均勻交配法(藍色曲線)的收斂速度雖然快,

但卻容易發生收斂過早的現象,而單切點交配(綠色曲線)的收斂速度 不如針對繞射元件改良的交配方法(紅色曲線)。本論文中均採用此種 改良型的交配方法。

階,所以相位的補償總共有 0 ,1 ,2 ,3 ,4 ,5 ,6 ,7

式中的[]符號是高斯算符。雖然(4.9)的轉換看起來是不連續的,但 X 是表示相位的補償,以相位的角度而言,超過一個週期便開始重

複,因此這個轉換對於相位而言,仍然是連續的。與(4.7)的轉換方 法相較,此一轉換方法僅需幾個簡單的四則運算便可完成,在計算速 度有著明顯的優勢,本論文採用此種約束的方法。

基因演算法計算的直接就是分階後的結構,而共軛梯度法所計算 是分階前的結構。所以當共軛梯度法收斂要把計算結果交給基因演算 法之前必須做分階量化的動作,其轉換的方法如下:

( 0.5, )

L c

X =MOD X + L ………(4.10) 如此便能夠將共軛梯度法所求得的區域最佳解傳遞給基因演算法。接 著討論基因演算法與共軛梯度法相互迭代的方法:基因演算法是一種 收斂緩慢的全域型最佳化法,而共軛梯度法是一種收斂快速但卻可能 落入區域最佳解陷阱的演算法,在結合此兩種演算法時,究竟應該先 跑哪一種演算法呢?如果目標函數本身存在多個區域最佳解,那先跑 共軛梯度法將會落入區域最佳解的陷阱裡,在交給基因演算法時,必 須要依靠良好的突變機制才能跳脫此一區域最佳解,然而突變機制可 視為一種隨機搜尋的方式,是必須要反覆大量的測試(try & error)

開始收斂時,再挑出最佳的染色體,然後交給共軛梯度法進行快速的 計算而求得全域最佳解。反之,如果目標函數本身僅有一個最佳解(具 有單一峰值),則先跑基因演算法就不是一個明智的作法,其原因是 基因演算法的收斂速度跟共軛梯度法相比,實在是太慢了。但我們如 何知道目標函數究竟是屬於哪一種的函數呢?解決的方法就是可以 先用共軛梯度法測試,因為共軛梯度法收斂的速度遠快於基因演算 法,所以多跑幾次也沒有關係,每次跑共軛梯度法時設定不同的初值 (建議用隨機亂數選取),如果每次計算出來的結果都十分相近(如同 4.2 節所述,必須扣除相位常數再進行比較),那表示即使這個目標 函數具有多個區域最佳解,其全域最佳解也與共軛梯度法所求得的解

開始收斂時,再挑出最佳的染色體,然後交給共軛梯度法進行快速的 計算而求得全域最佳解。反之,如果目標函數本身僅有一個最佳解(具 有單一峰值),則先跑基因演算法就不是一個明智的作法,其原因是 基因演算法的收斂速度跟共軛梯度法相比,實在是太慢了。但我們如 何知道目標函數究竟是屬於哪一種的函數呢?解決的方法就是可以 先用共軛梯度法測試,因為共軛梯度法收斂的速度遠快於基因演算 法,所以多跑幾次也沒有關係,每次跑共軛梯度法時設定不同的初值 (建議用隨機亂數選取),如果每次計算出來的結果都十分相近(如同 4.2 節所述,必須扣除相位常數再進行比較),那表示即使這個目標 函數具有多個區域最佳解,其全域最佳解也與共軛梯度法所求得的解

相關文件