Files
Atomizer/docs/08_ARCHIVE/historical/OPTUNA_DASHBOARD.md
Anto01 e3bdb08a22 feat: Major update with validators, skills, dashboard, and docs reorganization
- Add validation framework (config, model, results, study validators)
- Add Claude Code skills (create-study, run-optimization, generate-report,
  troubleshoot, analyze-model)
- Add Atomizer Dashboard (React frontend + FastAPI backend)
- Reorganize docs into structured directories (00-09)
- Add neural surrogate modules and training infrastructure
- Add multi-objective optimization support

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 19:23:58 -05:00

228 lines
6.1 KiB
Markdown

# Optuna Dashboard Integration
Atomizer leverages Optuna's built-in dashboard for advanced real-time optimization visualization.
## Quick Start
### 1. Install Optuna Dashboard
```bash
# Using atomizer environment
conda activate atomizer
pip install optuna-dashboard
```
### 2. Launch Dashboard for a Study
```bash
# Navigate to your substudy directory
cd studies/simple_beam_optimization/substudies/full_optimization_50trials
# Launch dashboard pointing to the Optuna study database
optuna-dashboard sqlite:///optuna_study.db
```
The dashboard will start at http://localhost:8080
### 3. View During Active Optimization
```bash
# Start optimization in one terminal
python studies/simple_beam_optimization/run_optimization.py
# In another terminal, launch dashboard
cd studies/simple_beam_optimization/substudies/full_optimization_50trials
optuna-dashboard sqlite:///optuna_study.db
```
The dashboard updates in real-time as new trials complete!
---
## Dashboard Features
### **1. Optimization History**
- Interactive plot of objective value vs trial number
- Hover to see parameter values for each trial
- Zoom and pan for detailed analysis
### **2. Parallel Coordinate Plot**
- Multi-dimensional visualization of parameter space
- Each line = one trial, colored by objective value
- Instantly see parameter correlations
### **3. Parameter Importances**
- Identifies which parameters most influence the objective
- Based on fANOVA (functional ANOVA) analysis
- Helps focus optimization efforts
### **4. Slice Plot**
- Shows objective value vs individual parameters
- One plot per design variable
- Useful for understanding parameter sensitivity
### **5. Contour Plot**
- 2D contour plots of objective surface
- Select any two parameters to visualize
- Reveals parameter interactions
### **6. Intermediate Values**
- Track metrics during trial execution (if using pruning)
- Useful for early stopping of poor trials
---
## Advanced Usage
### Custom Port
```bash
optuna-dashboard sqlite:///optuna_study.db --port 8888
```
### Multiple Studies
```bash
# Compare multiple optimization runs
optuna-dashboard sqlite:///substudy1/optuna_study.db sqlite:///substudy2/optuna_study.db
```
### Remote Access
```bash
# Allow connections from other machines
optuna-dashboard sqlite:///optuna_study.db --host 0.0.0.0
```
---
## Integration with Atomizer Workflow
### Study Organization
Each Atomizer substudy has its own Optuna database:
```
studies/simple_beam_optimization/
├── substudies/
│ ├── full_optimization_50trials/
│ │ ├── optuna_study.db # ← Optuna database (SQLite)
│ │ ├── optuna_study.pkl # ← Optuna study object (pickle)
│ │ ├── history.json # ← Atomizer history
│ │ └── plots/ # ← Matplotlib plots
│ └── validation_3trials/
│ └── optuna_study.db
```
### Visualization Comparison
**Optuna Dashboard** (Interactive, Web-based):
- ✅ Real-time updates during optimization
- ✅ Interactive plots (zoom, hover, filter)
- ✅ Parameter importance analysis
- ✅ Multiple study comparison
- ❌ Requires web browser
- ❌ Not embeddable in reports
**Atomizer Matplotlib Plots** (Static, High-quality):
- ✅ Publication-quality PNG/PDF exports
- ✅ Customizable styling and annotations
- ✅ Embeddable in reports and papers
- ✅ Offline viewing
- ❌ Not interactive
- ❌ Not real-time
**Recommendation**: Use **both**!
- Monitor optimization in real-time with Optuna Dashboard
- Generate final plots with Atomizer visualizer for reports
---
## Troubleshooting
### "No studies found"
Make sure you're pointing to the correct database file:
```bash
# Check if optuna_study.db exists
ls studies/*/substudies/*/optuna_study.db
# Use absolute path if needed
optuna-dashboard sqlite:///C:/Users/antoi/Documents/Atomaste/Atomizer/studies/simple_beam_optimization/substudies/full_optimization_50trials/optuna_study.db
```
### Database Locked
If optimization is actively writing to the database:
```bash
# Use read-only mode
optuna-dashboard sqlite:///optuna_study.db?mode=ro
```
### Port Already in Use
```bash
# Use different port
optuna-dashboard sqlite:///optuna_study.db --port 8888
```
---
## Example Workflow
```bash
# 1. Start optimization
python studies/simple_beam_optimization/run_optimization.py
# 2. In another terminal, launch Optuna dashboard
cd studies/simple_beam_optimization/substudies/full_optimization_50trials
optuna-dashboard sqlite:///optuna_study.db
# 3. Open browser to http://localhost:8080 and watch optimization live
# 4. After optimization completes, generate static plots
python -m optimization_engine.visualizer studies/simple_beam_optimization/substudies/full_optimization_50trials png pdf
# 5. View final plots
explorer studies/simple_beam_optimization/substudies/full_optimization_50trials/plots
```
---
## Optuna Dashboard Screenshots
### Optimization History
![Optuna History](https://optuna.readthedocs.io/en/stable/_images/dashboard_history.png)
### Parallel Coordinate Plot
![Optuna Parallel Coords](https://optuna.readthedocs.io/en/stable/_images/dashboard_parallel_coordinate.png)
### Parameter Importance
![Optuna Importance](https://optuna.readthedocs.io/en/stable/_images/dashboard_param_importances.png)
---
## Further Reading
- [Optuna Dashboard Documentation](https://optuna-dashboard.readthedocs.io/)
- [Optuna Visualization Module](https://optuna.readthedocs.io/en/stable/reference/visualization/index.html)
- [fANOVA Parameter Importance](https://optuna.readthedocs.io/en/stable/reference/generated/optuna.importance.FanovaImportanceEvaluator.html)
---
## Summary
| Feature | Optuna Dashboard | Atomizer Matplotlib |
|---------|-----------------|-------------------|
| Real-time updates | ✅ Yes | ❌ No |
| Interactive | ✅ Yes | ❌ No |
| Parameter importance | ✅ Yes | ⚠️ Manual |
| Publication quality | ⚠️ Web only | ✅ PNG/PDF |
| Embeddable in docs | ❌ No | ✅ Yes |
| Offline viewing | ❌ Needs server | ✅ Yes |
| Multi-study comparison | ✅ Yes | ⚠️ Manual |
**Best Practice**: Use Optuna Dashboard for monitoring and exploration, Atomizer visualizer for final reporting.