Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
benchmarkfunction
Search
yuki
March 21, 2021
0
4.2k
benchmarkfunction
yuki
March 21, 2021
Tweet
Share
More Decks by yuki
See All by yuki
240315_発表資料_清水.pdf
yuyumoyuyu
2
560
230315_symposium
yuyumoyuyu
1
410
220305_kenkyukai
yuyumoyuyu
2
63
221124_kenkyukai
yuyumoyuyu
0
300
voltageequation5
yuyumoyuyu
0
8.2k
210910_kenkyukai
yuyumoyuyu
0
210
210826_bumontaikai
yuyumoyuyu
0
84
voltageequation4
yuyumoyuyu
9
10k
210518_iemdc
yuyumoyuyu
0
78
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
20
1.1k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.8k
Music & Morning Musume
bryan
46
6.2k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Designing the Hi-DPI Web
ddemaree
280
34k
Scaling GitHub
holman
458
140k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
10 Git Anti Patterns You Should be Aware of
lemiorhan
655
59k
Done Done
chrislema
181
16k
Speed Design
sergeychernyshev
25
620
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
A designer walks into a library…
pauljervisheath
204
24k
Transcript
最適化手法評価のための ベンチマーク関数 Benchmark Function 大阪府立大学 工学研究科 清水 悠生
2 最適化とは? ✓ ある基準に従って最も適切な解を求めることを最適化という ✓ 数学的に,目的関数 f を最小化(最大化)する解 x* を
求める問題を最適化問題と呼ぶ 変数 x 出力 f(x) x* f*
3 最適化が難しい関数の性質 ✓ 微分可能な関数の最適化において 最適化が困難な関数の特徴は下記のようなものが存在 ⚫ 悪スケール性 ⚫ 変数間依存性 ⚫
多峰性
4 悪スケール性 ✓ 同じ出力をとる範囲が変数によって大きく異なる性質を 悪スケール性と呼ぶ ✓ 感度の低い変数の方向に最適化が進みづらくなる x 2 x
1 x 2 x 1 良スケール性関数の 等高線(2変数) 悪スケール性関数の 等高線(2変数)
5 変数間依存性 ✓ 目的関数を各変数毎の関数の和として表現できない性質を 変数間依存性と呼ぶ ✓ 悪スケール性と同様に最適化が進みづらい方向が存在 x 2 x
1 x 2 x 1 変数間依存性のない関 数の等高線(2変数) 変数間依存性のある関 数の等高線(2変数)
6 多峰性 ✓ 極値が複数存在する関数を多峰性関数と呼ぶ ✓ 真の最適解(大域的最適解)ではなく 局所最適解に収束してしまうリスクが存在 変数 x 出力
f(x) 大域的最適解 局所最適解
7 ベンチマーク関数 ✓ 最適化手法の性能を評価するための評価関数を ベンチマーク関数と呼ぶ ✓ 本記事では,前スライドまでで説明した性質を持つ 9種類のベンチマーク関数を紹介 ✓ Pythonによる実装例はこちら↓
✓ https://github.com/yshimizu12/BenchmarkFunction
8 Sphere関数 ✓ 性能評価の基本となる単純な凸関数 𝑓 𝒙 = 𝑖=1 𝑛
𝑥𝑖 2 探索範囲:𝑺 = −5.12,5.12 𝑛 最適解: 𝒙∗ = 0, … , 0 2変数の場合 x 2 =0平面上 x 1 =0平面上
9 Ellipsoid関数 ✓ 弱い悪スケール性を示す関数 𝑓 𝒙 = 𝑖=1 𝑛
1000 Τ 𝑖−1 𝑛−1𝑥𝑖 2 探索範囲:𝑺 = −5.12,5.12 𝑛 最適解: 𝒙∗ = 0, … , 0 2変数の場合 x 2 =0平面上 x 1 =0平面上
10 k-tablet関数 (k=n/4) ✓ 強い悪スケール性を示す関数 𝑓 𝒙 = 𝑖=1
𝑘 𝑥𝑖 2 + 𝑖=𝑘+1 𝑛 100𝑥𝑖 2 探索範囲:𝑺 = −5.12,5.12 𝑛 最適解: 𝒙∗ = 0, … , 0 2変数の場合 x 2 =0平面上 x 1 =0平面上
11 Rosenbrock関数 (star型) ✓ 変数x 1 と他変数の間に強い変数間依存性を有する関数 𝑓 𝒙 =
𝑖=2 𝑛 100 𝑥1 − 𝑥𝑖 2 2 + 1 − 𝑥𝑖 2 探索範囲:𝑺 = −2.048,2.048 𝑛 最適解: 𝒙∗ = 1, … , 1 2変数の場合 x 2 =0平面上 x 1 =0平面上
12 Rosenbrock関数 (chain型) ✓ 隣り合う変数間に強い変数間依存性を有する関数 𝑓 𝒙 = 𝑖=1
𝑛−1 100 𝑥𝑖+1 − 𝑥𝑖 2 2 + 1 − 𝑥𝑖 2 探索範囲:𝑺 = −2.048,2.048 𝑛 最適解: 𝒙∗ = 1, … , 1 x 2 =0平面上 x 1 =0平面上 2変数の場合
13 Bohachevsky関数 ✓ 比較的弱い多峰性を示す関数 𝑓 𝒙 = 𝑖=1 𝑛−1
𝑥𝑖 2 + 2𝑥𝑖+1 2 − 0.3 cos 3𝜋𝑥𝑖 − 0.4 cos 4𝜋𝑥𝑖+1 + 0.7 探索範囲:𝑺 = −5.12,5.12 𝑛,最適解: 𝒙∗ = 0, … , 0 2変数の場合 x 2 =0平面上 x 1 =0平面上
14 Ackley関数 ✓ 比較的弱い多峰性を示す関数 𝑓 𝒙 = 20 − 20
exp −0.2 1 𝑛 𝑖=1 𝑛 𝑥𝑖 2 + 𝑒 − exp 1 𝑛 𝑖=1 𝑛 cos 2𝜋𝑥𝑖 探索範囲:𝑺 = −32.768,32.768 𝑛,最適解: 𝒙∗ = 0, … , 0 2変数の場合 x 2 =0平面上 x 1 =0平面上
15 Schaffer関数 ✓ 強い多峰性を示す関数 𝑓 𝒙 = 𝑖=1 𝑛−1
𝑥𝑖 2 + 𝑥𝑖+1 2 0.25 sin2 50 𝑥𝑖 2 + 𝑥𝑖+1 2 0.1 + 1.0 探索範囲:𝑺 = −100,100 𝑛 最適解: 𝒙∗ = 0, … , 0 2変数の場合 x 2 =0平面上 x 1 =0平面上
16 Rastrigin関数 ✓ 強い多峰性を示す関数 𝑓 𝒙 = 10𝑛 +
𝑖=1 𝑛 𝑥𝑖 − 1 2 − 10 cos 2𝜋 𝑥𝑖 − 1 探索範囲:𝑺 = −5.12,5.12 𝑛 最適解: 𝒙∗ = 1, … , 1 2変数の場合 x 2 =0平面上 x 1 =0平面上