Post

[๋…ผ๋ฌธ๋ฆฌ๋ทฐ] Optuna: A Next-generation Hyperparameter Optimization Framework

๐Ÿ“ 2019

[๋…ผ๋ฌธ๋ฆฌ๋ทฐ] Optuna: A Next-generation Hyperparameter Optimization Framework

[Paper] [GitHub]

๐Ÿ’ก ํ•ด๋‹น ํฌ์Šคํ„ฐ์— ์ •๋ฆฌํ•œ ๋‚ด์šฉ์€ ์ œ๊ฐ€ ๋…ผ๋ฌธ์„ ์ฝ๊ณ  ์ดํ•ดํ•œ ํ๋ฆ„๋Œ€๋กœ ๋‚ด์šฉ์„ ์žฌ๊ตฌ์„ฑํ•˜์—ฌ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธ€์˜ ์†Œ์ œ๋ชฉ ๋ฐ ์ˆ˜์‹ ๋ฒˆํ˜ธ๋Š” ์‹ค์ œ ๋…ผ๋ฌธ์˜ ๊ตฌ์„ฑ๊ณผ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

1. Introduction

1-1. Motivation

1-2. Limitations of Existing Methods

1-3. Contributions

2. Methods

2-1. Define-by-run API

fig1

Define-by-run์ด๋ผ๋Š” ๋ง์€ ์›๋ž˜ ๋”ฅ๋Ÿฌ๋‹ ๊ฐœ๋ฐœ์ž๋“ค ์‚ฌ์ด์—์„œ ์ฒ˜์Œ ๋‚˜์˜จ ์šฉ์–ด๋‹ค.

Tensorflow์™€ ๊ฐ™์€ ์ดˆ์ฐฝ๊ธฐ ๋”ฅ๋Ÿฌ๋‹ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” Define-and-run ๋ฐฉ์‹์„ ์ฑ„ํƒํ–ˆ๋‹ค.
์ด๋Š” ์‹ ๊ฒฝ๋ง์˜ ์ „์ฒด ๊ตฌ์กฐ๋ฅผ ์‚ฌ์ „์— ๋ฏธ๋ฆฌ ์ •์˜ํ•ด๋†“์€ ๋’ค, ๊ทธ ๊ณ ์ •๋œ ๊ตฌ์กฐ ์œ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ํ˜๋ ค๋ณด๋‚ด ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ์‹์ด์—ˆ๋‹ค.
ํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ๋ฐฉ์‹ ๋•Œ๋ฌธ์— ํ•œ ๋ฒˆ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•˜๊ณ  ๋‚˜๋ฉด, ์ค‘๊ฐ„์— ๋ณ€์ˆ˜๋ฅผ ์กฐ์ž‘ํ•˜๊ฑฐ๋‚˜ ๋„คํŠธ์›Œํฌ ๊ตฌ์กฐ๋ฅผ ๋ฐ”๊พธ๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ–ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ•œ ๊ฒƒ์ด PyTorch๋กœ ๋Œ€ํ‘œ๋˜๋Š” Define-by-run ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค.
์‚ฌ์ „์— ๋„คํŠธ์›Œํฌ ๊ตฌ์กฐ๋ฅผ ๋ฏธ๋ฆฌ ์„ค๊ณ„ํ•  ํ•„์š” ์—†์ด, ์ง๊ด€์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๊ทธ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ํ๋ฆ„์— ๋”ฐ๋ผ ๋„คํŠธ์›Œํฌ๊ฐ€ ๋™์ ์œผ๋กœ ๊ตฌ์„ฑ๋˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

์ €์ž๋“ค์€ ๊ธฐ์กด์˜ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ์ตœ์ ํ™” (HPO) ํ”„๋ ˆ์ž„์›Œํฌ๋“ค์ด ๊ณผ๊ฑฐ์˜ Define-and-run ๋ฐฉ์‹์ฒ˜๋Ÿผ ์ •์ ์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค๋Š” ์ ์„ ์ง€์ ํ•˜์˜€๊ณ , ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด HPO ์‹œ์Šคํ…œ์— Define-by-run ๊ฐœ๋…์„ ์ƒˆ๋กญ๊ฒŒ ๋„์ž…ํ–ˆ๋‹ค.

์ฆ‰, ์‚ฌ์šฉ์ž๊ฐ€ Hyperparmeter search space๋ฅผ ์‚ฌ์ „์— ์–ต์ง€๋กœ ์ „๋ถ€ ์ •์˜ํ•  ํ•„์š” ์—†์ด, ์‹คํ–‰ ์‹œ์ ์— ๋™์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง€๋„๋ก ํ•œ ๊ฒƒ์ด๋‹ค.

Figure 2๋ฅผ ๋ณด๋ฉด ๊ธฐ์กด์˜ ๋Œ€ํ‘œ์ ์ธ ํ”„๋ ˆ์ž„์›Œํฌ์ธ Hyperopt๋Š” ์‚ฌ์ „์— ๋ชจ๋“  ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ค€๋น„ํ•ด ๋‘์–ด์•ผ ํ–ˆ๋‹ค.
์ด๋กœ ์ธํ•ด ์ตœ์ ํ™” ๋ฌธ์ œ๊ฐ€ ๋ณต์žกํ•ด์งˆ์ˆ˜๋ก, ์ฝ”๋“œ๊ฐ€ ํ›จ์”ฌ ๊ธธ๊ณ  ํ•œ๋ˆˆ์— ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์›Œ์ง„๋‹ค.

๋ฐ˜๋ฉด Figure 1์„ ๋ณด๋ฉด Optuna์˜ ๋ชฉ์  ํ•จ์ˆ˜๋Š” ์ƒํ˜ธ์ž‘์šฉ์ด ๊ฐ€๋Šฅํ•œ Trial ๊ฐ์ฒด๋ฅผ ์ „๋‹ฌ๋ฐ›์œผ๋ฉฐ, ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋Ÿฐํƒ€์ž„ ๋„์ค‘์— trial.suggest_int์™€ ๊ฐ™์€ API๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด, ๊ณผ๊ฑฐ ๊ธฐ๋ก์„ ๋ฐ”ํƒ•์œผ๋กœ ํ†ต๊ณ„์ ์œผ๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ฆ‰์‹œ ์ถœ๋ ฅํ•œ๋‹ค.
๋•๋ถ„์— ํŒŒ์ด์ฌ์˜ for ๋ฃจํ”„๋‚˜ if ์กฐ๊ฑด๋ฌธ์„ ๊ทธ๋Œ€๋กœ ์“ธ ์ˆ˜ ์žˆ์–ด์„œ, ๋ณต์žกํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ณต๊ฐ„์„ ์ง๊ด€์ ์ด๊ณ  ์‰ฝ๊ฒŒ ์ฝ”๋“œ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

fig2

Modular Programming

Optuna์˜ ๋™์  ์„ค๊ณ„ ๋•๋ถ„์—, ๋ณต์žกํ•œ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ์ตœ์ ํ™” ์ฝ”๋“œ๋ฅผ ๋ชฉ์ ์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋…๋ฆฝ์ ์ธ ๋ชจ๋“ˆ๋กœ ๊น”๋”ํ•˜๊ฒŒ ๋‚˜๋ˆ„์–ด ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด Figure 3์„ ๋ณด๋ฉด, ์‹ ๊ฒฝ๋ง์˜ ๋ผˆ๋Œ€ (layer ๊ฐœ์ˆ˜, ๊ฐ layer์˜ unit ์ˆ˜ ๋“ฑ)๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” create_model ํ•จ์ˆ˜์™€, ํ•™์Šต๋ฅ ์ด๋‚˜ weight-decay ๊ฐ™์€ ์˜ตํ‹ฐ๋งˆ์ด์ € ์„ค์ •์„ ๋‹ด๋‹นํ•˜๋Š” create_optimizer ํ•จ์ˆ˜๋ฅผ ๋ณ„๊ฐœ๋กœ ๋งŒ๋“ค์–ด์„œ ๋™์‹œ์— ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.

fig3

Deployment

์ด๋Ÿฌํ•œ Define-by-run ๋ฐฉ์‹์€ ํ•จ์ˆ˜ ์ค‘๊ฐ„์ค‘๊ฐ„์— trial.suggest์ฒ˜๋Ÿผ ๊ฐ’์„ ๋ฌด์ž‘์œ„๋กœ ๋ฝ‘์•„์ฃผ๋Š” ์ฝ”๋“œ๊ฐ€ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ตœ์ ์˜ ๊ฐ’์„ ๋‹ค ์ฐพ๊ณ  ๋‚˜์„œ ์ง„์งœ ์„œ๋น„์Šค์— ์˜ฌ๋ฆด ๋•Œ๋Š” ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ์‹น ๋‹ค ์ง€์šฐ๊ณ  ์ƒˆ๋กœ ์ž‘์„ฑํ•ด์•ผ ํ• ์ง€ ์˜๋ฌธ์ด ๋“ค ์ˆ˜ ์žˆ๋‹ค.

Optuna์—์„œ๋Š” ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ FixedTrial์ด๋ผ๋Š” ๋ณ„๋„์˜ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด ํ•ด๊ฒฐํ–ˆ๋‹ค.

FixedTrial์€ ๊ธฐ์กด์˜ Trial ๊ฐ์ฒด์™€ ๋™์ผํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
๋‹จ์ง€ ์ƒˆ๋กœ์šด ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํƒ์ƒ‰ํ•ด์„œ ์ถ”์ฒœํ•˜๋Š” ๋Œ€์‹ , ์‹คํ—˜ ๊ธฐ๋ก์„ ๋ณด๊ณ  ์„ฑ๋Šฅ์ด ๊ฐ€์žฅ ์ข‹์•˜๋˜ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ๋งŒ ๊ณ ์ •์ ์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ์ž‘๋™ํ•œ๋‹ค.

๊ฒฐ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉ์ž๋Š” ์ตœ์ ์˜ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ์กฐํ•ฉ์„ ์ฐพ์€ ๋’ค ๊ทธ ๊ฐ’๋“ค์„ ๋‹ด์€ FixedTrial ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ, ์›๋ž˜์˜ ๋ชฉ์  ํ•จ์ˆ˜์— ๊ทธ๋Œ€๋กœ ๋„˜๊ฒจ์ฃผ๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฐฐํฌ ์ค€๋น„๊ฐ€ ๋๋‚œ๋‹ค.

2-2. Efficient Sampling and Pruning Mechanism

์ €์ž๋“ค์€ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ์ตœ์ ํ™” ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์–ผ๋งˆ๋‚˜ ํšจ์œจ์ ์ธ์ง€๋Š” ๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ์š”์†Œ์— ๋‹ฌ๋ ค ์žˆ๋‹ค๊ณ  ์„ค๋ช…ํ•œ๋‹ค.

  • ํƒ์ƒ‰ ์ „๋žต (Sampling): ์ˆ˜๋งŽ์€ ๊ฒฝ์šฐ์˜ ์ˆ˜ ์ค‘์—์„œ ๋‹ค์Œ์— ์–ด๋–ค ํŒŒ๋ผ๋ฏธํ„ฐ ์กฐํ•ฉ์„ ํ…Œ์ŠคํŠธํ•ด ๋ณผ ๊ฒƒ์ธ๊ฐ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•
  • ์„ฑ๋Šฅ ์˜ˆ์ธก ์ „๋žต (Pruning): ํ•™์Šต์ด ์ง„ํ–‰๋˜๋Š” ์ดˆ์ค‘๋ฐ˜์˜ ๊ณก์„ ์„ ๋ณด๊ณ , ์ด ํŒŒ๋ผ๋ฏธํ„ฐ ์กฐํ•ฉ์€ ๋๊นŒ์ง€ ๊ฐ€๋ดค์ž ๊ฐ€๋ง์ด ์—†๋‹ค๊ณ  ๋ฏธ๋ฆฌ ์˜ˆ์ธกํ•˜์—ฌ ์‹œ๋„๋ฅผ ์กฐ๊ธฐ์— ์ข…๋ฃŒํ•˜๋Š” ๋ฐฉ๋ฒ• (Automated early stopping)

Pruning์€ ๋ชจ๋ธ์ด ํ•™์Šต ๋ฐ์ดํ„ฐ์— ์˜ค๋ฒ„ํ”ผํŒ…๋˜๋Š” ๊ฒƒ์„ ๋ง‰๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋จธ์‹ ๋Ÿฌ๋‹์˜ Early stopping ๊ธฐ๋ฒ•๊ณผ๋Š” ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒƒ์„ ์ธ์ง€ํ•ด์•ผ ํ•œ๋‹ค.

Sampling Methods

์ƒ˜ํ”Œ๋ง ๋ฐฉ๋ฒ•์—๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ๋“ค ์‚ฌ์ด์˜ ์ƒ๊ด€๊ด€๊ณ„๋ฅผ ๊ณ ๋ คํ•ด์„œ ๋ฝ‘๋Š” relational sampling๊ณผ ๊ฐ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๊ฐœ๋ณ„์ ์œผ๋กœ ๋ฝ‘๋Š” independent sampling์ด ์กด์žฌํ•œ๋‹ค.

๊ธฐ์กด์˜ Define-and-run ๋ฐฉ์‹์€ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ์ „์ฒด ํŒŒ๋ผ๋ฏธํ„ฐ ๊ตฌ์กฐ๋ฅผ ๋‹ค ๊ทธ๋ ค๋†“๊ธฐ ๋•Œ๋ฌธ์—, ์‹œ์Šคํ…œ์ด ์ฒ˜์Œ๋ถ€ํ„ฐ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ํŒŒ์•…ํ•˜๊ณ  ์žˆ๋‹ค.
ํ•˜์ง€๋งŒ Define-by-run ๋ฐฉ์‹์€ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋ฉด์„œ ๊ทธ๋•Œ๊ทธ๋•Œ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋“ฑ์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ดˆ๋ฐ˜์— ์‹œ์Šคํ…œ์ด ํŒŒ๋ผ๋ฏธํ„ฐ๋“ค๋ผ๋ฆฌ ์„œ๋กœ ์–ด๋–ค ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ๋ฏธ๋ฆฌ ์•Œ ์ˆ˜ ์—†๋‹ค.

์ด ๋”œ๋ ˆ๋งˆ๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด Optuna๋Š” ์ดˆ๋ฐ˜์— TPE์™€ ๊ฐ™์€ independent sampling์„ ๋ช‡ ๋ฒˆ ๋Œ๋ฆฌ๋ฉด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์Œ“๋Š”๋‹ค.
์ดํ›„ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ชจ์—ฌ์„œ ์œ ์˜๋ฏธํ•œ ๊ฒฐ๊ณผ ๊ธฐ๋ก์ด ์Œ“์ด๋ฉด, ์‹œ์Šคํ…œ์ด ๊ทธ ๊ธฐ๋ก๋“ค์„ ๋ถ„์„ํ•ด์„œ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ„์˜ ์ˆจ๊ฒจ์ง„ ์ƒ๊ด€๊ด€๊ณ„๋ฅผ ์Šค์Šค๋กœ ์ถ”๋ก ํ•œ๋‹ค.
์ด๋ ‡๊ฒŒ ๊ด€๊ณ„๋ฅผ ํŒŒ์•…ํ•˜๊ณ  ๋‚˜๋ฉด, ๊ทธ๋•Œ๋ถ€ํ„ฐ CMA-ES๋‚˜ GP-BO ๊ฐ™์€ relational sampling ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

Pruning Algorithm

Pruning์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•™์Šต ์ค‘๊ฐ„์ค‘๊ฐ„์˜ ์„ฑ๋Šฅ (๋ชฉ์  ํ•จ์ˆ˜ ๊ฐ’)์„ ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ , ์ •ํ•ด์ง„ ๊ธฐ์ค€์— ๋ฏธ์น˜์ง€ ๋ชปํ•˜๋Š” trial์„ ๊ฐ•์ œ๋กœ ์ข…๋ฃŒํ•˜๋Š” ๋‘ ๋‹จ๊ณ„๋กœ ์ž‘๋™ํ•œ๋‹ค.
Figure 5์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด, ๋‘ ๊ฐ€์ง€ ์—ญํ• ์€ report API์™€ should_prune API๊ฐ€ ๋‹ด๋‹นํ•˜๋„๋ก ์„ค๊ณ„ํ–ˆ๋‹ค.

fig4

Optuna๋Š” ๊ฐ worker๊ฐ€ ๋น„๋™๊ธฐ์ ์œผ๋กœ pruning์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก, ๊ธฐ์กด์˜ Successive Halving์˜ ํ™•์žฅ ํ˜•ํƒœ์ธ Asynchronous Successive Halving (ASHA) ์‚ฌ์šฉํ–ˆ๋‹ค๊ณ  ํ•œ๋‹ค.

๋น„๋™๊ธฐ ๋ฐฉ์‹์€ ๊ฐ worker๊ฐ€ pruning์„ ํ•  ๋•Œ, ๋‹ค๋ฅธ worker์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆด ํ•„์š” ์—†์ด ๊ฐ์ž ์ž๊ธฐ ํŽ˜์ด์Šค๋Œ€๋กœ ์กฐ๊ธฐ ์ข…๋ฃŒ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
๋”ฐ๋ผ์„œ ๋ถ„์‚ฐ ํ™˜๊ฒฝ์— ํŠนํžˆ ๋” ์ž˜ ๋งž๋Š”๋‹ค๊ณ  ํ•œ๋‹ค.

์ถ”๊ฐ€์ ์œผ๋กœ ๋…ผ๋ฌธ์—์„œ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด, ASHA๋ฅผ ์‚ด์ง ๋ณ€ํ˜•ํ•˜์—ฌ ํ•œ ๋ฒˆ ํƒˆ๋ฝํ•œ ์‹œ๋„๋ฅผ ๋‚˜์ค‘์— ๋‹ค์‹œ ์‚ด๋ ค๋‚ด๋Š” ํŒจ์ž๋ถ€ํ™œ์ „์€ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ•˜์˜€๋‹ค.

Algorithm 1์€ ์‹ค์ œ Optuna์—์„œ ๊ตฌํ˜„๋œ pruning ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.

๋จผ์ € ๊ฐ tiral์ด pruning์—์„œ ๋ช‡ ๋ฒˆ ์‚ด์•„๋‚จ์•˜๋Š”์ง€๋ฅผ ๋œปํ•˜๋Š” rung์„ ๊ณ„์‚ฐํ•œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ํ•ด๋‹น trial์˜ ์ˆœ์œ„๊ฐ€ ์ƒ์œ„ $1/\eta$ ์•ˆ์— ๋“ค์–ด์•ผ๋งŒ ๋‹ค์Œ ๋ผ์šด๋“œ๋กœ ์ง„์ถœํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.
๋งŒ์•ฝ rung์ด ๊ฐ™์€ trial์˜ ์ด ๊ฐœ์ˆ˜๊ฐ€ $\eta$๋ณด๋‹ค ์ž‘๋‹ค๋ฉด, ๊ทธ์ค‘์—์„œ ๊ฐ€์žฅ ์„ฑ์ ์ด ์ข‹์€ trial์„ ๋ฌด์กฐ๊ฑด ๋‹ค์Œ ๋ผ์šด๋“œ๋กœ ์ง„์ถœ์‹œํ‚จ๋‹ค.

fig5

2-3. Scalable and Versatile System

Figure 6์€ ์‹œ์Šคํ…œ ์„ค๊ณ„๋„๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ทธ๋ฆผ์ด๋‹ค.

๋ถ„์‚ฐ ํ™˜๊ฒฝ์—์„œ๋Š” ์—ฌ๋Ÿฌ worker๊ฐ€ ๋™์‹œ์— ํˆฌ์ž…๋˜๋Š”๋ฐ, ๊ฐ worker๋Š” ํ•˜๋‚˜์˜ ์ตœ์ ํ™” ๊ณผ์ • (Study) ์•ˆ์—์„œ ๊ฐ์ž ๋…๋ฆฝ์ ์œผ๋กœ ๋ชฉ์  ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜์—ฌ trial์„ ์ง„ํ–‰ํ•œ๋‹ค.
๋ชฉ์  ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋™์•ˆ์—๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ ์ถ”์ฒœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ suggest(), ๊ฐ€์ง€์น˜๊ธฐ ํŒ๋ณ„ ์•Œ๊ณ ๋ฆฌ์ฆ˜should_prune(), ์ค‘๊ฐ„ ๊ฒฐ๊ณผ ๋ณด๊ณ  report()์™€ ๊ฐ™์€ Optuna์˜ ํ•ต์‹ฌ API๋“ค์„ ํ˜ธ์ถœํ•œ๋‹ค.

์ด API๋“ค์ด ํ˜ธ์ถœ๋  ๋•Œ๋งˆ๋‹ค ๋ชฉ์  ํ•จ์ˆ˜๋Š” ๊ณต์œ  ์Šคํ† ๋ฆฌ์ง€ (Shared storage)์— ์ ‘๊ทผํ•œ๋‹ค.
์ด๋ฅผ ํ†ตํ•ด ๊ณผ๊ฑฐ์˜ ์‹คํ—˜ ๊ธฐ๋ก๋“ค์„ ๊ฐ€์ ธ์™€์„œ ์ฐธ๊ณ ํ•˜๊ธฐ๋„ ํ•˜๊ณ , ๊ฐ์ž ๋…๋ฆฝ์ ์œผ๋กœ ์ง„ํ–‰ํ•œ ํ˜„์žฌ์˜ ์ง„ํ–‰ ์ƒํ™ฉ์„ ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅํ•˜์—ฌ ์ „์ฒด ์ž‘์—… ๋‚ด์—ญ์„ ์„œ๋กœ ๊ณต์œ ํ•˜๊ฒŒ ๋œ๋‹ค.

fig6

3. Experiments

This post is licensed under CC BY 4.0 by the author.