Skip to content

smr_alignment.MetricAlignmentOptimizer: Make entropy penalty convex#19

Merged
s-heppner merged 1 commit intomainfrom
Fix/16
Nov 2, 2025
Merged

smr_alignment.MetricAlignmentOptimizer: Make entropy penalty convex#19
s-heppner merged 1 commit intomainfrom
Fix/16

Conversation

@s-heppner
Copy link
Owner

Previously, MetricAlignmentOptimizer.optimize_weights() used the cvxpy built-in cvxpy.entr(x) entropy penalty. What I didn't realise until I ran the optimizer on real data, is that this function is actually concave. Therefore, it is possible, that the overall optimization problem is not convex anymore, messing up our convex solver.

This adapts the entropy penalty to be a basic L2 penalty, which is convex.

Fixes #16

Previously, `MetricAlignmentOptimizer.optimize_weights()` used the
`cvxpy` built-in `cvxpy.entr(x)` entropy penalty. What I didn't
realise until I ran the optimizer on real data, is that this
function is actually concave. Therefore, it is possible, that the
overall optimization problem is not convex anymore, messing up our
convex solver.

This adapts the entropy penalty to be a basic L2 penalty,
which is convex.

Fixes #16
@s-heppner s-heppner merged commit aedfd61 into main Nov 2, 2025
9 checks passed
@s-heppner s-heppner deleted the Fix/16 branch November 2, 2025 12:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

MatchAlignmentOptimizer uses a concave entropy penalty

1 participant