Optuna 시각화
Optuna 시각화 (Visualization)
Optuna는 optuna.visualization에 다양한 시각화 기능을 제공해서 최적화 결과를 시각적으로 분석하게 해 줘요. 이 모듈은 Plotly를 필요로 해요.
출처: Quick Visualization for Hyperparameter Optimization Analysis
$ pip install plotly
# Jupyter Notebook에서 실행한다면
$ pip install nbformat
Matplotlib을 선호한다면 pip install matplotlib로 설치하고, 예제에서 optuna.visualization을 optuna.visualization.matplotlib로 바꾸면 돼요.
시각화 함수들
각 함수는 study를 인자로 받아 최적화 결과를 그려요.
plot_optimization_history(study)— 최적화 이력 시각화plot_intermediate_values(study)— 트라이얼들의 학습 곡선 시각화plot_parallel_coordinate(study)— 고차원 파라미터 관계 시각화.params=["lr", "n_layers"]같은 인자로 대상 파라미터를 고를 수 있어요.plot_contour(study)— 하이퍼파라미터 간 관계 시각화.params인자로 대상을 선택할 수 있어요.plot_slice(study)— 개별 하이퍼파라미터를 슬라이스 플롯으로 시각화plot_param_importances(study)— 파라미터 중요도 시각화.target인자로 트라이얼 시간 같은 다른 대상의 중요도도 볼 수 있어요.plot_edf(study)— 경험적 분포 함수(EDF) 시각화plot_rank(study)— objective 값으로 색칠한 산점도로 파라미터 관계 시각화plot_timeline(study)— 수행된 트라이얼의 최적화 타임라인 시각화
다중 목적 최적화(파레토 프론트) 시각화는 optuna.visualization.plot_pareto_front()를 써요.
생성된 그림 커스터마이즈
optuna.visualization과 optuna.visualization.matplotlib의 함수는 편집 가능한 figure 객체를 반환해요. Plotly 기반이면 plotly.graph_objects.Figure, Matplotlib 기반이면 matplotlib.axes.Axes죠. 이 객체를 해당 시각화 라이브러리의 API로 수정할 수 있어요.
fig = plot_intermediate_values(study)
fig.update_layout(
title="Hyperparameter optimization for FashionMNIST classification",
xaxis_title="Epoch",
yaxis_title="Validation Accuracy",
)
Optuna Dashboard
Optuna Dashboard를 쓰면 최적화 이력, 하이퍼파라미터 중요도, 하이퍼파라미터 관계 등을 그래프와 표로 확인할 수 있어요. study를 RDB 백엔드로 영속화하고 다음 명령으로 대시보드를 실행해요.
$ pip install optuna-dashboard
$ optuna-dashboard sqlite:///example-study.db
더 알아보기
- Optuna 시작하기 — 첫 최적화
- Pythonic Search Space — 탐색 공간 정의
- Optuna 시각화 참조 — 시각화 API