diff --git a/analysis/base_loss/centroid_convergence_plotter.py b/analysis/base_loss/centroid_convergence_plotter.py index 55102c1..1904c46 100644 --- a/analysis/base_loss/centroid_convergence_plotter.py +++ b/analysis/base_loss/centroid_convergence_plotter.py @@ -43,7 +43,7 @@ def replicate_base_loss(theta_array, desired_theta, base_key): # --------------------------------------------------------------------- # Helper: safe regression function (handles log transforms, filters invalid data) # --------------------------------------------------------------------- -def safe_compute_best_fit(x, y, log_x=False, log_y=False): +def safe_compute_best_fit(x, y, log_x=False, log_y=True): """ Computes a best-fit line using linear regression, optionally on log(x) and/or log(y). Returns: @@ -215,7 +215,7 @@ def process_condition(condition_name): ax_top.set_ylabel(f"Final Loss @ epoch {final_epoch}") ax_top.set_title(f"{condition_name}: Final Loss vs. Exponent") # best-fit line - xs, y_fit, slope, intercept, R2 = safe_compute_best_fit(df["Exponent"], df["final_loss"], log_x=False, log_y=False) + xs, y_fit, slope, intercept, R2 = safe_compute_best_fit(df["Exponent"], df["final_loss"], log_x=False, log_y=True) if xs is not None: ax_top.plot(xs, y_fit, "k--", label=f"slope={slope:.3f}, int={intercept:.3f}, R²={R2:.3f}") ax_top.legend(fontsize=8) @@ -236,7 +236,7 @@ def process_condition(condition_name): ax_bot.set_ylabel("Epochs to Convergence") ax_bot.set_title(f"{condition_name}: Convergence vs. Exponent") # best-fit line - xs, y_fit, slope, intercept, R2 = safe_compute_best_fit(df["Exponent"], df["epochs_to_convergence"], log_x=False, log_y=False) + xs, y_fit, slope, intercept, R2 = safe_compute_best_fit(df["Exponent"], df["epochs_to_convergence"], log_x=False, log_y=True) if xs is not None: ax_bot.plot(xs, y_fit, "k--", label=f"slope={slope:.3f}, int={intercept:.3f}, R²={R2:.3f}") ax_bot.legend(fontsize=8) diff --git a/analysis/base_loss_learning_rate_sweep/centroid_convergence_plotter.py b/analysis/base_loss_learning_rate_sweep/centroid_convergence_plotter.py index 7f6f019..919a22b 100644 --- a/analysis/base_loss_learning_rate_sweep/centroid_convergence_plotter.py +++ b/analysis/base_loss_learning_rate_sweep/centroid_convergence_plotter.py @@ -43,7 +43,7 @@ def replicate_base_loss(theta_array, desired_theta, base_key): # --------------------------------------------------------------------- # Helper: safe regression function (handles log transforms, filters invalid data) # --------------------------------------------------------------------- -def safe_compute_best_fit(x, y, log_x=False, log_y=False): +def safe_compute_best_fit(x, y, log_x=False, log_y=True): """ Computes a best-fit line using linear regression, optionally on log(x) and/or log(y). Returns: @@ -215,7 +215,7 @@ def process_condition(condition_name): ax_top.set_ylabel(f"Final Loss @ epoch {final_epoch}") ax_top.set_title(f"{condition_name}: Final Loss vs. Exponent") # best-fit line - xs, y_fit, slope, intercept, R2 = safe_compute_best_fit(df["Exponent"], df["final_loss"], log_x=False, log_y=False) + xs, y_fit, slope, intercept, R2 = safe_compute_best_fit(df["Exponent"], df["final_loss"], log_x=False, log_y=True) if xs is not None: ax_top.plot(xs, y_fit, "k--", label=f"slope={slope:.3f}, int={intercept:.3f}, R²={R2:.3f}") ax_top.legend(fontsize=8) @@ -236,7 +236,7 @@ def process_condition(condition_name): ax_bot.set_ylabel("Epochs to Convergence") ax_bot.set_title(f"{condition_name}: Convergence vs. Exponent") # best-fit line - xs, y_fit, slope, intercept, R2 = safe_compute_best_fit(df["Exponent"], df["epochs_to_convergence"], log_x=False, log_y=False) + xs, y_fit, slope, intercept, R2 = safe_compute_best_fit(df["Exponent"], df["epochs_to_convergence"], log_x=False, log_y=True) if xs is not None: ax_bot.plot(xs, y_fit, "k--", label=f"slope={slope:.3f}, int={intercept:.3f}, R²={R2:.3f}") ax_bot.legend(fontsize=8) diff --git a/analysis/base_loss_learning_rate_sweep/extreme_perturbation/plots/degree_convergence/exponent_vs_loss_and_convergence.png b/analysis/base_loss_learning_rate_sweep/extreme_perturbation/plots/degree_convergence/exponent_vs_loss_and_convergence.png index abd10fb..d20cdd9 100644 Binary files a/analysis/base_loss_learning_rate_sweep/extreme_perturbation/plots/degree_convergence/exponent_vs_loss_and_convergence.png and b/analysis/base_loss_learning_rate_sweep/extreme_perturbation/plots/degree_convergence/exponent_vs_loss_and_convergence.png differ diff --git a/analysis/base_loss_learning_rate_sweep/large_perturbation/plots/degree_convergence/exponent_vs_loss_and_convergence.png b/analysis/base_loss_learning_rate_sweep/large_perturbation/plots/degree_convergence/exponent_vs_loss_and_convergence.png index 2406223..6cf6404 100644 Binary files a/analysis/base_loss_learning_rate_sweep/large_perturbation/plots/degree_convergence/exponent_vs_loss_and_convergence.png and b/analysis/base_loss_learning_rate_sweep/large_perturbation/plots/degree_convergence/exponent_vs_loss_and_convergence.png differ diff --git a/analysis/base_loss_learning_rate_sweep/overshoot_angle_test/plots/degree_convergence/exponent_vs_loss_and_convergence.png b/analysis/base_loss_learning_rate_sweep/overshoot_angle_test/plots/degree_convergence/exponent_vs_loss_and_convergence.png index 6b1fca9..fa3fc11 100644 Binary files a/analysis/base_loss_learning_rate_sweep/overshoot_angle_test/plots/degree_convergence/exponent_vs_loss_and_convergence.png and b/analysis/base_loss_learning_rate_sweep/overshoot_angle_test/plots/degree_convergence/exponent_vs_loss_and_convergence.png differ diff --git a/analysis/base_loss_learning_rate_sweep/overshoot_vertical_test/plots/degree_convergence/exponent_vs_loss_and_convergence.png b/analysis/base_loss_learning_rate_sweep/overshoot_vertical_test/plots/degree_convergence/exponent_vs_loss_and_convergence.png index 9a0edd1..ddc96ad 100644 Binary files a/analysis/base_loss_learning_rate_sweep/overshoot_vertical_test/plots/degree_convergence/exponent_vs_loss_and_convergence.png and b/analysis/base_loss_learning_rate_sweep/overshoot_vertical_test/plots/degree_convergence/exponent_vs_loss_and_convergence.png differ diff --git a/analysis/base_loss_learning_rate_sweep/small_perturbation/plots/degree_convergence/exponent_vs_loss_and_convergence.png b/analysis/base_loss_learning_rate_sweep/small_perturbation/plots/degree_convergence/exponent_vs_loss_and_convergence.png index 5f1b302..8efaefb 100644 Binary files a/analysis/base_loss_learning_rate_sweep/small_perturbation/plots/degree_convergence/exponent_vs_loss_and_convergence.png and b/analysis/base_loss_learning_rate_sweep/small_perturbation/plots/degree_convergence/exponent_vs_loss_and_convergence.png differ diff --git a/analysis/time_weighting/centroid_convergence_plotter.py b/analysis/time_weighting/centroid_convergence_plotter.py index eb51723..9c048cc 100644 --- a/analysis/time_weighting/centroid_convergence_plotter.py +++ b/analysis/time_weighting/centroid_convergence_plotter.py @@ -127,7 +127,7 @@ def find_convergence_epoch(data_dict, desired_theta, threshold): # --------------------------------------------------------------------- # Helper: Compute best-fit line (with R^2) for scatter plot data. # --------------------------------------------------------------------- -def safe_compute_best_fit(x, y, log_x=False, log_y=False): +def safe_compute_best_fit(x, y, log_x=False, log_y=True): """ Computes the best-fit line using linear regression. Filters out NaN and non-positive values if log transforms are used. @@ -256,7 +256,7 @@ for cond_name in all_subdirs: axes[0].set_ylabel(f"Loss at Epoch {final_epoch}") axes[0].set_yscale("log") axes[0].set_title(f"{cond_name}: Loss vs. $t_{{median}}$") - xs, y_fit, slope, intercept, R2 = safe_compute_best_fit(df["t_median"], df["final_loss"], log_x=False, log_y=False) + xs, y_fit, slope, intercept, R2 = safe_compute_best_fit(df["t_median"], df["final_loss"], log_x=False, log_y=True) if xs is not None: axes[0].plot(xs, y_fit, "k--", label=f"Fit: slope={slope:.3f}, int={intercept:.3f}\n$R^2$={R2:.3f}") axes[0].legend(fontsize=8) @@ -273,7 +273,7 @@ for cond_name in all_subdirs: axes[1].set_ylabel("Epochs to Convergence") axes[1].set_yscale("log") axes[1].set_title(f"{cond_name}: Convergence vs. $t_{{median}}$") - xs, y_fit, slope, intercept, R2 = safe_compute_best_fit(df["t_median"], df["epochs_to_convergence"], log_x=False, log_y=False) + xs, y_fit, slope, intercept, R2 = safe_compute_best_fit(df["t_median"], df["epochs_to_convergence"], log_x=False, log_y=True) if xs is not None: axes[1].plot(xs, y_fit, "k--", label=f"Fit: slope={slope:.3f}, int={intercept:.3f}\n$R^2$={R2:.3f}") axes[1].legend(fontsize=8) diff --git a/analysis/time_weighting/extreme_perturbation/plots/centroid_convergence/t_median_composite.png b/analysis/time_weighting/extreme_perturbation/plots/centroid_convergence/t_median_composite.png index 82f5737..e82311b 100644 Binary files a/analysis/time_weighting/extreme_perturbation/plots/centroid_convergence/t_median_composite.png and b/analysis/time_weighting/extreme_perturbation/plots/centroid_convergence/t_median_composite.png differ diff --git a/analysis/time_weighting/large_perturbation/plots/centroid_convergence/t_median_composite.png b/analysis/time_weighting/large_perturbation/plots/centroid_convergence/t_median_composite.png index e3da872..d735502 100644 Binary files a/analysis/time_weighting/large_perturbation/plots/centroid_convergence/t_median_composite.png and b/analysis/time_weighting/large_perturbation/plots/centroid_convergence/t_median_composite.png differ diff --git a/analysis/time_weighting/overshoot_angle_test/plots/centroid_convergence/t_median_composite.png b/analysis/time_weighting/overshoot_angle_test/plots/centroid_convergence/t_median_composite.png index 1ed3e24..8aa56d3 100644 Binary files a/analysis/time_weighting/overshoot_angle_test/plots/centroid_convergence/t_median_composite.png and b/analysis/time_weighting/overshoot_angle_test/plots/centroid_convergence/t_median_composite.png differ diff --git a/analysis/time_weighting/overshoot_vertical_test/plots/centroid_convergence/t_median_composite.png b/analysis/time_weighting/overshoot_vertical_test/plots/centroid_convergence/t_median_composite.png index c6f1162..df1e55e 100644 Binary files a/analysis/time_weighting/overshoot_vertical_test/plots/centroid_convergence/t_median_composite.png and b/analysis/time_weighting/overshoot_vertical_test/plots/centroid_convergence/t_median_composite.png differ diff --git a/analysis/time_weighting/small_perturbation/plots/centroid_convergence/t_median_composite.png b/analysis/time_weighting/small_perturbation/plots/centroid_convergence/t_median_composite.png index 5df4bc0..4626aaa 100644 Binary files a/analysis/time_weighting/small_perturbation/plots/centroid_convergence/t_median_composite.png and b/analysis/time_weighting/small_perturbation/plots/centroid_convergence/t_median_composite.png differ diff --git a/analysis/time_weighting_learning_rate_sweep/centroid_convergence_plotter.py b/analysis/time_weighting_learning_rate_sweep/centroid_convergence_plotter.py index 072ffd7..f009df6 100644 --- a/analysis/time_weighting_learning_rate_sweep/centroid_convergence_plotter.py +++ b/analysis/time_weighting_learning_rate_sweep/centroid_convergence_plotter.py @@ -127,7 +127,7 @@ def find_convergence_epoch(data_dict, desired_theta, threshold): # --------------------------------------------------------------------- # Helper: Compute best-fit line (with R^2) for scatter plot data. # --------------------------------------------------------------------- -def safe_compute_best_fit(x, y, log_x=False, log_y=False): +def safe_compute_best_fit(x, y, log_x=False, log_y=True): """ Computes the best-fit line using linear regression. Filters out NaN and non-positive values if log transforms are used. @@ -256,7 +256,7 @@ for cond_name in all_subdirs: axes[0].set_ylabel(f"Loss at Epoch {final_epoch}") axes[0].set_yscale("log") axes[0].set_title(f"{cond_name}: Loss vs. $t_{{median}}$") - xs, y_fit, slope, intercept, R2 = safe_compute_best_fit(df["t_median"], df["final_loss"], log_x=False, log_y=False) + xs, y_fit, slope, intercept, R2 = safe_compute_best_fit(df["t_median"], df["final_loss"], log_x=False, log_y=True) if xs is not None: axes[0].plot(xs, y_fit, "k--", label=f"Fit: slope={slope:.3f}, int={intercept:.3f}\n$R^2$={R2:.3f}") axes[0].legend(fontsize=8) @@ -273,7 +273,7 @@ for cond_name in all_subdirs: axes[1].set_ylabel("Epochs to Convergence") axes[1].set_yscale("log") axes[1].set_title(f"{cond_name}: Convergence vs. $t_{{median}}$") - xs, y_fit, slope, intercept, R2 = safe_compute_best_fit(df["t_median"], df["epochs_to_convergence"], log_x=False, log_y=False) + xs, y_fit, slope, intercept, R2 = safe_compute_best_fit(df["t_median"], df["epochs_to_convergence"], log_x=False, log_y=True) if xs is not None: axes[1].plot(xs, y_fit, "k--", label=f"Fit: slope={slope:.3f}, int={intercept:.3f}\n$R^2$={R2:.3f}") axes[1].legend(fontsize=8) diff --git a/analysis/time_weighting_learning_rate_sweep/extreme_perturbation/plots/centroid_convergence/t_median_composite.png b/analysis/time_weighting_learning_rate_sweep/extreme_perturbation/plots/centroid_convergence/t_median_composite.png index b38192f..ef54029 100644 Binary files a/analysis/time_weighting_learning_rate_sweep/extreme_perturbation/plots/centroid_convergence/t_median_composite.png and b/analysis/time_weighting_learning_rate_sweep/extreme_perturbation/plots/centroid_convergence/t_median_composite.png differ diff --git a/analysis/time_weighting_learning_rate_sweep/large_perturbation/plots/centroid_convergence/t_median_composite.png b/analysis/time_weighting_learning_rate_sweep/large_perturbation/plots/centroid_convergence/t_median_composite.png index 055bef0..d9777fa 100644 Binary files a/analysis/time_weighting_learning_rate_sweep/large_perturbation/plots/centroid_convergence/t_median_composite.png and b/analysis/time_weighting_learning_rate_sweep/large_perturbation/plots/centroid_convergence/t_median_composite.png differ diff --git a/analysis/time_weighting_learning_rate_sweep/overshoot_angle_test/plots/centroid_convergence/t_median_composite.png b/analysis/time_weighting_learning_rate_sweep/overshoot_angle_test/plots/centroid_convergence/t_median_composite.png index f9078fa..4bfbd84 100644 Binary files a/analysis/time_weighting_learning_rate_sweep/overshoot_angle_test/plots/centroid_convergence/t_median_composite.png and b/analysis/time_weighting_learning_rate_sweep/overshoot_angle_test/plots/centroid_convergence/t_median_composite.png differ diff --git a/analysis/time_weighting_learning_rate_sweep/overshoot_vertical_test/plots/centroid_convergence/t_median_composite.png b/analysis/time_weighting_learning_rate_sweep/overshoot_vertical_test/plots/centroid_convergence/t_median_composite.png index 8364b4c..72d2881 100644 Binary files a/analysis/time_weighting_learning_rate_sweep/overshoot_vertical_test/plots/centroid_convergence/t_median_composite.png and b/analysis/time_weighting_learning_rate_sweep/overshoot_vertical_test/plots/centroid_convergence/t_median_composite.png differ diff --git a/analysis/time_weighting_learning_rate_sweep/small_perturbation/plots/centroid_convergence/t_median_composite.png b/analysis/time_weighting_learning_rate_sweep/small_perturbation/plots/centroid_convergence/t_median_composite.png index c472837..19df567 100644 Binary files a/analysis/time_weighting_learning_rate_sweep/small_perturbation/plots/centroid_convergence/t_median_composite.png and b/analysis/time_weighting_learning_rate_sweep/small_perturbation/plots/centroid_convergence/t_median_composite.png differ diff --git a/report/media/analysis/base_loss_learning_rate_sweep/extreme_perturbation/plots/degree_convergence/exponent_vs_loss_and_convergence.png b/report/media/analysis/base_loss_learning_rate_sweep/extreme_perturbation/plots/degree_convergence/exponent_vs_loss_and_convergence.png index abd10fb..d20cdd9 100644 Binary files a/report/media/analysis/base_loss_learning_rate_sweep/extreme_perturbation/plots/degree_convergence/exponent_vs_loss_and_convergence.png and b/report/media/analysis/base_loss_learning_rate_sweep/extreme_perturbation/plots/degree_convergence/exponent_vs_loss_and_convergence.png differ diff --git a/report/media/analysis/base_loss_learning_rate_sweep/large_perturbation/plots/degree_convergence/exponent_vs_loss_and_convergence.png b/report/media/analysis/base_loss_learning_rate_sweep/large_perturbation/plots/degree_convergence/exponent_vs_loss_and_convergence.png index 2406223..6cf6404 100644 Binary files a/report/media/analysis/base_loss_learning_rate_sweep/large_perturbation/plots/degree_convergence/exponent_vs_loss_and_convergence.png and b/report/media/analysis/base_loss_learning_rate_sweep/large_perturbation/plots/degree_convergence/exponent_vs_loss_and_convergence.png differ diff --git a/report/media/analysis/base_loss_learning_rate_sweep/overshoot_angle_test/plots/degree_convergence/exponent_vs_loss_and_convergence.png b/report/media/analysis/base_loss_learning_rate_sweep/overshoot_angle_test/plots/degree_convergence/exponent_vs_loss_and_convergence.png index 6b1fca9..fa3fc11 100644 Binary files a/report/media/analysis/base_loss_learning_rate_sweep/overshoot_angle_test/plots/degree_convergence/exponent_vs_loss_and_convergence.png and b/report/media/analysis/base_loss_learning_rate_sweep/overshoot_angle_test/plots/degree_convergence/exponent_vs_loss_and_convergence.png differ diff --git a/report/media/analysis/base_loss_learning_rate_sweep/overshoot_vertical_test/plots/degree_convergence/exponent_vs_loss_and_convergence.png b/report/media/analysis/base_loss_learning_rate_sweep/overshoot_vertical_test/plots/degree_convergence/exponent_vs_loss_and_convergence.png index 9a0edd1..ddc96ad 100644 Binary files a/report/media/analysis/base_loss_learning_rate_sweep/overshoot_vertical_test/plots/degree_convergence/exponent_vs_loss_and_convergence.png and b/report/media/analysis/base_loss_learning_rate_sweep/overshoot_vertical_test/plots/degree_convergence/exponent_vs_loss_and_convergence.png differ diff --git a/report/media/analysis/base_loss_learning_rate_sweep/small_perturbation/plots/degree_convergence/exponent_vs_loss_and_convergence.png b/report/media/analysis/base_loss_learning_rate_sweep/small_perturbation/plots/degree_convergence/exponent_vs_loss_and_convergence.png index 5f1b302..8efaefb 100644 Binary files a/report/media/analysis/base_loss_learning_rate_sweep/small_perturbation/plots/degree_convergence/exponent_vs_loss_and_convergence.png and b/report/media/analysis/base_loss_learning_rate_sweep/small_perturbation/plots/degree_convergence/exponent_vs_loss_and_convergence.png differ diff --git a/report/media/analysis/time_weighting/extreme_perturbation/plots/centroid_convergence/t_median_composite.png b/report/media/analysis/time_weighting/extreme_perturbation/plots/centroid_convergence/t_median_composite.png index 82f5737..e82311b 100644 Binary files a/report/media/analysis/time_weighting/extreme_perturbation/plots/centroid_convergence/t_median_composite.png and b/report/media/analysis/time_weighting/extreme_perturbation/plots/centroid_convergence/t_median_composite.png differ diff --git a/report/media/analysis/time_weighting/large_perturbation/plots/centroid_convergence/t_median_composite.png b/report/media/analysis/time_weighting/large_perturbation/plots/centroid_convergence/t_median_composite.png index e3da872..d735502 100644 Binary files a/report/media/analysis/time_weighting/large_perturbation/plots/centroid_convergence/t_median_composite.png and b/report/media/analysis/time_weighting/large_perturbation/plots/centroid_convergence/t_median_composite.png differ diff --git a/report/media/analysis/time_weighting/overshoot_angle_test/plots/centroid_convergence/t_median_composite.png b/report/media/analysis/time_weighting/overshoot_angle_test/plots/centroid_convergence/t_median_composite.png index 1ed3e24..8aa56d3 100644 Binary files a/report/media/analysis/time_weighting/overshoot_angle_test/plots/centroid_convergence/t_median_composite.png and b/report/media/analysis/time_weighting/overshoot_angle_test/plots/centroid_convergence/t_median_composite.png differ diff --git a/report/media/analysis/time_weighting/overshoot_vertical_test/plots/centroid_convergence/t_median_composite.png b/report/media/analysis/time_weighting/overshoot_vertical_test/plots/centroid_convergence/t_median_composite.png index c6f1162..df1e55e 100644 Binary files a/report/media/analysis/time_weighting/overshoot_vertical_test/plots/centroid_convergence/t_median_composite.png and b/report/media/analysis/time_weighting/overshoot_vertical_test/plots/centroid_convergence/t_median_composite.png differ diff --git a/report/media/analysis/time_weighting/small_perturbation/plots/centroid_convergence/t_median_composite.png b/report/media/analysis/time_weighting/small_perturbation/plots/centroid_convergence/t_median_composite.png index 5df4bc0..4626aaa 100644 Binary files a/report/media/analysis/time_weighting/small_perturbation/plots/centroid_convergence/t_median_composite.png and b/report/media/analysis/time_weighting/small_perturbation/plots/centroid_convergence/t_median_composite.png differ diff --git a/report/media/analysis/time_weighting_learning_rate_sweep/extreme_perturbation/plots/centroid_convergence/t_median_composite.png b/report/media/analysis/time_weighting_learning_rate_sweep/extreme_perturbation/plots/centroid_convergence/t_median_composite.png index b38192f..ef54029 100644 Binary files a/report/media/analysis/time_weighting_learning_rate_sweep/extreme_perturbation/plots/centroid_convergence/t_median_composite.png and b/report/media/analysis/time_weighting_learning_rate_sweep/extreme_perturbation/plots/centroid_convergence/t_median_composite.png differ diff --git a/report/media/analysis/time_weighting_learning_rate_sweep/large_perturbation/plots/centroid_convergence/t_median_composite.png b/report/media/analysis/time_weighting_learning_rate_sweep/large_perturbation/plots/centroid_convergence/t_median_composite.png index 055bef0..d9777fa 100644 Binary files a/report/media/analysis/time_weighting_learning_rate_sweep/large_perturbation/plots/centroid_convergence/t_median_composite.png and b/report/media/analysis/time_weighting_learning_rate_sweep/large_perturbation/plots/centroid_convergence/t_median_composite.png differ diff --git a/report/media/analysis/time_weighting_learning_rate_sweep/overshoot_angle_test/plots/centroid_convergence/t_median_composite.png b/report/media/analysis/time_weighting_learning_rate_sweep/overshoot_angle_test/plots/centroid_convergence/t_median_composite.png index f9078fa..4bfbd84 100644 Binary files a/report/media/analysis/time_weighting_learning_rate_sweep/overshoot_angle_test/plots/centroid_convergence/t_median_composite.png and b/report/media/analysis/time_weighting_learning_rate_sweep/overshoot_angle_test/plots/centroid_convergence/t_median_composite.png differ diff --git a/report/media/analysis/time_weighting_learning_rate_sweep/overshoot_vertical_test/plots/centroid_convergence/t_median_composite.png b/report/media/analysis/time_weighting_learning_rate_sweep/overshoot_vertical_test/plots/centroid_convergence/t_median_composite.png index 8364b4c..72d2881 100644 Binary files a/report/media/analysis/time_weighting_learning_rate_sweep/overshoot_vertical_test/plots/centroid_convergence/t_median_composite.png and b/report/media/analysis/time_weighting_learning_rate_sweep/overshoot_vertical_test/plots/centroid_convergence/t_median_composite.png differ diff --git a/report/media/analysis/time_weighting_learning_rate_sweep/small_perturbation/plots/centroid_convergence/t_median_composite.png b/report/media/analysis/time_weighting_learning_rate_sweep/small_perturbation/plots/centroid_convergence/t_median_composite.png index c472837..19df567 100644 Binary files a/report/media/analysis/time_weighting_learning_rate_sweep/small_perturbation/plots/centroid_convergence/t_median_composite.png and b/report/media/analysis/time_weighting_learning_rate_sweep/small_perturbation/plots/centroid_convergence/t_median_composite.png differ