latent_geometry
latent_geometry
¶
Moment and covariance regularizers for latent geometry.
VICLatentLoss
¶
Bases: BaseLoss
VICReg-style covariance + variance loss for latent decorrelation and anti-collapse.
Note
Combines two regularization terms: - Covariance: Penalizes off-diagonal covariance to encourage independent dimensions - Variance: Hinge loss forcing std >= gamma per dimension to prevent collapse Ref. https://arxiv.org/pdf/2105.04906
Initialize VICReg latent loss.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
key
|
str
|
Prediction key for latent mu tensor. |
value
|
covariance_weight
|
float
|
Weight for off-diagonal covariance penalty. |
3.0
|
variance_weight
|
float
|
Weight for variance hinge loss. |
10.0
|
gamma
|
float
|
Hinge threshold for per-dimension standard deviation. |
0.3
|
Source code in src/versatil/metrics/losses/latent_geometry.py
set_weights
¶
Setter that updates the weight scalar coefficients.
Source code in src/versatil/metrics/losses/latent_geometry.py
get_required_keys
¶
forward
¶
Compute VICReg loss combining covariance and variance terms.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
predictions
|
dict[str, Tensor]
|
Must contain self.key with shape (B, latent_dim). |
required |
targets
|
dict[str, Tensor]
|
Unused. |
required |
is_pad
|
Tensor | None
|
Unused. |
None
|
Returns:
| Type | Description |
|---|---|
LossOutput
|
LossOutput with weighted covariance and variance penalties. |
Source code in src/versatil/metrics/losses/latent_geometry.py
PosteriorGeometryLoss
¶
PosteriorGeometryLoss(key=value, mean_weight=0.0, std_weight=0.0, target_std=1.0, max_std_weight=0.0, max_std=2.0, covariance_weight=0.0, epsilon=1e-06)
Bases: BaseLoss
Moment regularizer for posterior latent geometry.
The loss keeps posterior means centered, controls per-dimension latent
scale, optionally caps large standard deviations, and decorrelates latent
dimensions. Unlike VICLatentLoss, this regularizer penalizes excessive
posterior spread.
Initialize posterior geometry loss.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
key
|
str
|
Prediction key for latent vectors. |
value
|
mean_weight
|
float
|
Weight for squared batch-mean penalty. |
0.0
|
std_weight
|
float
|
Weight for squared deviation from |
0.0
|
target_std
|
float
|
Desired per-dimension posterior standard deviation. |
1.0
|
max_std_weight
|
float
|
Weight for hinge penalty above |
0.0
|
max_std
|
float
|
Maximum tolerated per-dimension standard deviation. |
2.0
|
covariance_weight
|
float
|
Weight for off-diagonal covariance penalty. |
0.0
|
epsilon
|
float
|
Numerical epsilon for standard deviation. |
1e-06
|
Source code in src/versatil/metrics/losses/latent_geometry.py
set_weights
¶
Setter that updates the weight scalar coefficients.
Source code in src/versatil/metrics/losses/latent_geometry.py
get_required_keys
¶
forward
¶
Compute posterior moment and covariance penalties.