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 Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
47
2.1k
GitHub's CSS Performance
jonrohan
1030
460k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
329
21k
Code Reviewing Like a Champion
maltzj
520
39k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
Teambox: Starting and Learning
jrom
133
8.8k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Designing for Performance
lara
604
68k
Gamification - CAS2011
davidbonilla
80
5k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
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平面上