第 3 章 最適化アルゴリズムのパラメータ調整のためのメタ最適化 52
4.3 Particle Swarm Optimization のパラメータ調整法のメタ最適化
4.3.2 Particle Swarm Optimization の調整則の進化結果
関数の具体的な数式を,
GP
により進化的に獲得された木構造を基に表現すると以下の とおりである.GP
によって木構造の形で獲得されたパラメータ調整則の内部状態の表現 型であり,5
回のGP
の試行により,各試行における最終世代の個体の中で,最良の目的 関数値を与えるものを示してある.また,特筆すると(a)
の調整則のc
1(k)
は表現型の上 では調整則となっているが,引数による影響が退化しており,実際にこの調整則を問題に 適用すると常に約1.75243
の定数値を返す.(a)
探索点変位および最良点との距離による調整則c
0(k + 1) =sig((exp(sig(sig(0.0))) − sig(sig(sig(sig(0.813917)))))) ≈ 0.769249 c
1(k + 1) =(sig(exp(sig(sig(exp((sig(exp((sig(sig(0.776912)) −
exp(exp(sig((0.701999 − c
1(k)))))))) × ((0.175895 − sig(((0.706472 − sig(exp((((0.706472 − sig(sig(exp(((( − 0.354804 − sig( − (0.877894))) − ((0.706472 + 0.877894) × |||v(k)||(k)|)) × +((−0.175895+
((sig(sig(( ||| v(k) || (k) | + exp(0.0)))) + (0.877894)))))))))) − 0.776912) − 0.780449)))) + (0.877894))))))))))) + (0.877894)) ≈ 1.75243
c
2(k + 1) =((−((0.604364/(0.0 + √
(||v(k)||)))) × (∆
g(k) − +((−((||v(k)||/
( − 0.374592 + ((∆
g(k) + (0.0610851 + 0.460483))/ √
( || v(k) || ))))) × (( − 0.948512 + (0.0 − ( − 0.158034 − (exp(0.801719) − (( − (sig( − ((sig(−0.159738)/(−0.632893 × ||v(k)||))))) × ∆
g(k))+
0.928146))))) × 0.0))))) + (0.0 − (0.604364/( − (( || v(k) || /(0.0610851+
(1.12593/( || v(k) || − √ ( √
( || v(k) || ))))))) − √
( || v(k) || )))))
(4.6) (b)
イテレーション経過割合による調整則c
0(k + 1) =0.844358 c
1(k + 1) = √
( √ ( √
( √
(sig((c
1(k) + c
1(k)))))))
c
2(k + 1) =exp(((0.37817 + ( − 0.0261027/(c
2(k) − (t(k)))))/(2.15234 × (exp((((exp(c
2(k)) × 0.398039) + (−0.0261027/0.876019))/
((( − (exp(0.5)) × 0.600798) − (+(t(k)))) × − 0.876019)))+
(( − 0.252496 + sig(( √
(0.662518)/0.37817))) + 0.896093)))))
(4.7)
(c)
目的関数改善割合による調整則c
0(k + 1) =sig((((0.78591 − (p
s(k) × ((0.860709 × − ((sig( − 0.36017)/(( − 0.0592678 − 1.29494)/0.0))))/((((0.440813 − (((((sig(p
s(k)) × 0.181351)+
0.773033) + 0.197741) + (c
0(k))) + ((0.842895 × p
s(k)) − 0.00222484))) + (( √
(2.61864) × ( − 0.000980738 + (0.683255 − p
s(k)))) × p
s(k)))/(−0.0592678/p
s(k))) − sig(p
s(k)))))) + 0.773033)−
(sig((0.704643 + (p
s(k) × (sig((((p
s(k) − 0.00222484) × (((p
s(k) × (( − 0.837862 × p
s(k)) × − 0.0768135)) − (p
s(k) − ((+((0.0 × (sig(0.0)/
(( − 0.0592678 − p
s(k))/p
s(k))))) × − 0.760866)))) − (sig((p
s(k) ×
− 0.0592678))/sig((p
s(k) × − 0.0592678))))) + 0.773033)) ×
− 0.0768135))))/(( − 0.0592678 − p
s(k))/p
s(k))))) c
1(k + 1) =(sig((sig(0.967497) − sig( √
(sig((0.278377 + sig(0.213981))))))) + 0.0) c
2(k + 1) =sig(exp(sig(((((0.0 − 0.137816) − 0.831617) × +( √
(c
2(k))))
(4.8)
これらの木構造を獲得するまでのGP
の世代更新に伴う目的関数値の進化過程を100
世 代まで記した様子をFig. 4.1
〜Fig. 4.3
に示す.メタ最適化問題として多目的問題(3.45)
を 想定し目的関数の種類としてR = 4
とし,目的関数E
r(x) = 1, . . . , R
として,Rastrigin
関数,
Alpine
関数,Rosenbrock
関数,Levy
関数を用い,実際のGP
の更新では世代ごとにこの順番で適応度とする関数を交互に交換する方式を採用し,
GP
の個体に対応する木 構造で記述された調整則のうち最良の個体に対する目的関数値をプロットしてある.4
種 類の目的関数を交互に使用しているため,100
世代では各目的関数が問題として25
回使用 される.また,関数値のスケールが大きく異なるため片対数グラフを使用しており,減少 幅が少なく表示されている.GP
の個体に対する調整則が与える目的関数値が世代更新と ともに増減を繰り返しながら,20
世代ぐらいまでにある程度減少しているプロットが多い ことが確認され,とくに調整則(c)
の結果が顕著な進化の過程を示していることがわかる.なお,プロットの各点は最適化アルゴリズムをそれぞれの木構造で与えられる調整則の もとで
1
回試行した結果である.そのため,世代が進むにつれて調整則としては改善して いたとしても,図の上では乱数で与えられる初期点の影響により必ずしも改善が確認でき るものではない.また,目的関数ごとに得られる解の分布やスケールも異なるため,グラ フが横ばいであっても実際には改善が起きている可能性があることを注記しておく.0 20 40 60 80 100 120
GP's Generation
10-2 10-1 100 101 102
E(x)
Rastrigin Alpine Rosenbrock Levy
Fig. 4.1: E(x) of Genetic Programming during evolving rule for PSO on setting (a).
0 20 40 60 80 100 120
GP's Generation
10-2 10-1 100 101 102
E(x)
Rastrigin Alpine Rosenbrock Levy
Fig. 4.2: E(x) of Genetic Programming during evolving rule for PSO on setting (b).
0 20 40 60 80 100 120
GP's Generation
10-2 10-1 100 101 102
E(x)
Rastrigin Alpine Rosenbrock Levy
Fig. 4.3: E(x) of Genetic Programming during evolving rule for PSO on setting (c).
(a)
〜(c)
を比較検定した結果をTable 4.1
に示す.結果のL
とR
の列から,(a)
の設定に おいて進化させた調整則がもっとも良いことがわかり,特に,f
1〜f
5の変数間依存性のな い問題に対して強いことがわかる.これを解明するため,調整則(a)
の近似を行い簡単な 数式として表現し,実装を簡単にしつつ,数式の持つ意味を理解できる形に変換すること を考える.調整則
(a)
をRastrigin
関数に対して,1,000
イテレーション動作させた結果,c
0= 0.769
,c
1= 1.752
と定数であることが判明した.このことからc
2(k)
が実質的な(a)
式の調整則 であることがわかる.そこで|| v(k) || , ∆
g(k), 1/∆
g(k)
の3
変数の線形結合を用いて特定の1,000
イテレーションのc
2(k)
を,次の問題を解くことにより近似する.これらの変数を用いるのは,著者らの研究[30][31][32]において,これらによる簡単な調整則の数式を探索し たことを参考にしてである.また,対数スケールを用いるのは大きな値と小さな値を高い コントラストで近似するためである.
min
w 1000∑
k=1
(w
0+ w
1|| v(k) || + w
2∆
g(k) + w
3/∆
g(k) − ln(c
2(k)))
2(4.9)
これにより近似されるパラメータ調整則はc
0= 0.769 (4.10a)
c
1= 1.752 (4.10b)
c
′2(k) = exp(0.6484 − 1.025 || v(k) || − 1.182∆
g(k) + 0.02597/∆
g(k)) (4.10c)
であり,実際のc
2(k)
のパラメータ値と,近似したc
′2(k)
のパラメータ値1,000
個の散布図は
Fig. 4.4
となる.元の調整則の出力と,近似した調整則の出力のピアソン相関係数は0.986
と大きく,良い近似であると考えられる.(4.10c)
式よりわかることは,群が密集していない状態では(∆
g(k)
大)
,c
2(k) = 0.0
と し,定数c
0,c
1の慣性とp-best
への移流で駆動し,群が密集している状態では(∆
g(k)
小)
,0.02597/∆
g(k)
の項が大きくなり,指数で増幅され,結果として発散状態へ移行することがわかる.これはメタヒューリスティクスでいう「集中化と分散化」の概念を実装したも のであり,概念からアルゴリズムを設計したのではなく,最適なパラメータ調整則を探索 した結果,この概念を導出した結果となっている.ただし,これにより性能が向上するの は変数分離可能な問題に限定されているため,この概念は万能ではないことがわかる.
0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4
c
2(k)
0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4