| # Figure Data Extraction and Reproduction |
|
|
| This folder contains the data used in Figure 2, Figure 3, and Figure 4 from the Training Lipschitz Transformer paper and scripts to reproduce the figures from the saved CSV files. |
|
|
| ## Files |
|
|
| - `reproduce_figures.py`: Script to reproduce the figures from the saved CSV files |
| - `requirements.txt`: Python dependencies required to run the scripts |
| - `figure_2/`: Directory containing the CSV files for each subplot of Figure 2 |
| - `figure_3/`: Directory containing the CSV files and a PDF for Figure 3 |
| - `figure_4/`: Directory containing the CSV files for each subplot of Figure 4 |
|
|
| ## Usage |
|
|
| ### 1. Install Dependencies |
|
|
| ```bash |
| pip install -r requirements.txt |
| ``` |
|
|
| ### 2. Reproduce Figures |
|
|
| Run the reproduction script to create the figures from the CSV files: |
|
|
| ```bash |
| python reproduce_figures.py |
| ``` |
|
|
| This will create: |
| - `figure_2_reproduced.pdf`: Recreation of Figure 2 |
| - `figure_3_reproduced.pdf`: Recreation of the right panel of Figure 3 |
| - `figure_4_reproduced.pdf`: Recreation of Figure 4 |
|
|
| ## CSV File Structure |
|
|
| Each CSV file contains the processed data for its respective subplot: |
|
|
| ### Figure 2 Files |
| - **figure_2_subplot_1.csv**: MLP model results with frontier points for different optimizers and techniques |
| - **figure_2_subplot_2.csv**: Transformer model results with frontier points for different optimizers and techniques |
|
|
| ### Figure 3 Files |
| - **figure_3_subplot_1.pdf**: Contains the left panel of Figure 3 with adversarial examples pre-made from the models contained in the `models/MLPs/` directory |
| - **figure_3_subplot_2.csv**: Contains adversarial robustness data with columns for model_name, epsilon (adversarial perturbation budget), accuracy, avg_correct_prob (mean probability for correct class), and prob_error_bar (error bars for probability measurements) |
| |
| ### Figure 4 Files |
| - **figure_4_subplot_1.csv**: Contains points used to plot the frontier of validation loss vs. Lipschitz constant with columns for technique, learning rate, w_max, final validation loss, Lipschitz constant, optimizer, etc. |
| - **figure_4_subplot_2_3.csv**: Contains results for top validation accuracy model for each of our tested techniques with columns for technique, learning rate, w_max, final validation accuracy, Lipschitz constant, optimizer, etc. |
| |
| ## Reproducibility |
| |
| The reproduction script creates pixel-perfect recreations of the original figures with: |
| - Identical color schemes and marker styles |
| - Same axis scaling and formatting |
| - Matching legend positioning and styling |
| - Equivalent subplot layouts and spacing |
| |
| This ensures full reproducibility of Figure 2 (MLP and Transformer optimizer comparisons), Figure 3 (adversarial robustness analysis), and Figure 4 (Lipschitz weight constraints comparison) from the saved CSV data. |