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.3k
benchmarkfunction
yuki
March 21, 2021
Tweet
Share
More Decks by yuki
See All by yuki
240315_発表資料_清水.pdf
yuyumoyuyu
2
570
230315_symposium
yuyumoyuyu
1
420
220305_kenkyukai
yuyumoyuyu
2
70
221124_kenkyukai
yuyumoyuyu
0
320
voltageequation5
yuyumoyuyu
0
8.5k
210910_kenkyukai
yuyumoyuyu
0
210
210826_bumontaikai
yuyumoyuyu
0
90
voltageequation4
yuyumoyuyu
9
11k
210518_iemdc
yuyumoyuyu
0
84
Featured
See All Featured
RailsConf 2023
tenderlove
29
940
BBQ
matthewcrist
85
9.4k
A Tale of Four Properties
chriscoyier
157
23k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
Reflections from 52 weeks, 52 projects
jeffersonlam
347
20k
Agile that works and the tools we love
rasmusluckow
328
21k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
YesSQL, Process and Tooling at Scale
rocio
169
14k
Become a Pro
speakerdeck
PRO
26
5k
Facilitating Awesome Meetings
lara
50
6.1k
Optimising Largest Contentful Paint
csswizardry
33
3k
Speed Design
sergeychernyshev
25
670
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平面上