[๋ ผ๋ฌธ๋ฆฌ๋ทฐ] Optuna: A Next-generation Hyperparameter Optimization Framework
๐ 2019
๐ก ํด๋น ํฌ์คํฐ์ ์ ๋ฆฌํ ๋ด์ฉ์ ์ ๊ฐ ๋ ผ๋ฌธ์ ์ฝ๊ณ ์ดํดํ ํ๋ฆ๋๋ก ๋ด์ฉ์ ์ฌ๊ตฌ์ฑํ์ฌ ์์ฑํ์ต๋๋ค. ๋ฐ๋ผ์ ๊ธ์ ์์ ๋ชฉ ๋ฐ ์์ ๋ฒํธ๋ ์ค์ ๋ ผ๋ฌธ์ ๊ตฌ์ฑ๊ณผ ๋ค๋ฅผ ์ ์์ต๋๋ค!
1. Introduction
1-1. Motivation
1-2. Limitations of Existing Methods
1-3. Contributions
2. Methods
2-1. Define-by-run API
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 ์กฐ๊ฑด๋ฌธ์ ๊ทธ๋๋ก ์ธ ์ ์์ด์, ๋ณต์กํ ํ๋ผ๋ฏธํฐ ๊ณต๊ฐ์ ์ง๊ด์ ์ด๊ณ ์ฝ๊ฒ ์ฝ๋๋ก ํํํ ์ ์๋ค.
Modular Programming
Optuna์ ๋์ ์ค๊ณ ๋๋ถ์, ๋ณต์กํ ํ์ดํผํ๋ผ๋ฏธํฐ ์ต์ ํ ์ฝ๋๋ฅผ ๋ชฉ์ ์ ๋ฐ๋ผ ์ฌ๋ฌ ๊ฐ์ ๋ ๋ฆฝ์ ์ธ ๋ชจ๋๋ก ๊น๋ํ๊ฒ ๋๋์ด ์์ฑํ ์ ์๋ค.
์๋ฅผ ๋ค์ด Figure 3์ ๋ณด๋ฉด, ์ ๊ฒฝ๋ง์ ๋ผ๋ (layer ๊ฐ์, ๊ฐ layer์ unit ์ ๋ฑ)๋ฅผ ๊ฒฐ์ ํ๋ create_model ํจ์์, ํ์ต๋ฅ ์ด๋ weight-decay ๊ฐ์ ์ตํฐ๋ง์ด์ ์ค์ ์ ๋ด๋นํ๋ create_optimizer ํจ์๋ฅผ ๋ณ๊ฐ๋ก ๋ง๋ค์ด์ ๋์์ ์ต์ ํํ ์ ์๋ค.
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๊ฐ ๋ด๋นํ๋๋ก ์ค๊ณํ๋ค.
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์ ๋ฌด์กฐ๊ฑด ๋ค์ ๋ผ์ด๋๋ก ์ง์ถ์ํจ๋ค.
2-3. Scalable and Versatile System
Figure 6์ ์์คํ ์ค๊ณ๋๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ทธ๋ฆผ์ด๋ค.
๋ถ์ฐ ํ๊ฒฝ์์๋ ์ฌ๋ฌ worker๊ฐ ๋์์ ํฌ์
๋๋๋ฐ, ๊ฐ worker๋ ํ๋์ ์ต์ ํ ๊ณผ์ (Study) ์์์ ๊ฐ์ ๋
๋ฆฝ์ ์ผ๋ก ๋ชฉ์ ํจ์๋ฅผ ์คํํ์ฌ trial์ ์งํํ๋ค.
๋ชฉ์ ํจ์๊ฐ ์คํ๋๋ ๋์์๋ ํ๋ผ๋ฏธํฐ ์ถ์ฒ ์๊ณ ๋ฆฌ์ฆ suggest(), ๊ฐ์ง์น๊ธฐ ํ๋ณ ์๊ณ ๋ฆฌ์ฆshould_prune(), ์ค๊ฐ ๊ฒฐ๊ณผ ๋ณด๊ณ report()์ ๊ฐ์ Optuna์ ํต์ฌ API๋ค์ ํธ์ถํ๋ค.
์ด API๋ค์ด ํธ์ถ๋ ๋๋ง๋ค ๋ชฉ์ ํจ์๋ ๊ณต์ ์คํ ๋ฆฌ์ง (Shared storage)์ ์ ๊ทผํ๋ค.
์ด๋ฅผ ํตํด ๊ณผ๊ฑฐ์ ์คํ ๊ธฐ๋ก๋ค์ ๊ฐ์ ธ์์ ์ฐธ๊ณ ํ๊ธฐ๋ ํ๊ณ , ๊ฐ์ ๋
๋ฆฝ์ ์ผ๋ก ์งํํ ํ์ฌ์ ์งํ ์ํฉ์ ์คํ ๋ฆฌ์ง์ ์ ์ฅํ์ฌ ์ ์ฒด ์์
๋ด์ญ์ ์๋ก ๊ณต์ ํ๊ฒ ๋๋ค.





