tdhook.latent.dimension_estimation.ca_pca#

Classes#

CaPcaDimensionEstimator

Curvature-adjusted intrinsic dimension estimation via local PCA [25].

Functions#

_ca_pca(data, k, eps, pca_cls)

Compute per-point dimension via CA-PCA. data: (N, D). Returns (N,) dimension estimates.

_dim_from_ca_pca(lambda_hat, D)

Select dimension via curvature-corrected eigenvalue matching.

Module Contents#

class tdhook.latent.dimension_estimation.ca_pca.CaPcaDimensionEstimator(k='auto', in_key='data', out_key='dimension', eps=1e-05)[source]#

Bases: tensordict.nn.TensorDictModuleBase

Curvature-adjusted intrinsic dimension estimation via local PCA [25].

Extends local PCA by calibrating to a quadratic embedding instead of a flat unit ball, accounting for manifold curvature. For each point, uses its k+1 nearest neighbors, forms the local covariance, and selects dimension by comparing curvature-corrected eigenvalues to the expected spectrum of a d-dimensional ball.

Reads a data tensor from the input TensorDict. Expects (N, D) or (…, N, D). Outputs per-point dimension estimates of shape (…, N).

Parameters:
  • k (Union[int, Literal['auto']])

  • in_key (str)

  • out_key (str)

  • eps (float)

k = 'auto'[source]#
in_key = 'data'[source]#
out_key = 'dimension'[source]#
eps = 1e-05[source]#
in_keys[source]#
out_keys[source]#
forward(td)[source]#
Parameters:

td (tensordict.TensorDict)

Return type:

tensordict.TensorDict

__repr__()[source]#
tdhook.latent.dimension_estimation.ca_pca._ca_pca(data, k, eps, pca_cls)[source]#

Compute per-point dimension via CA-PCA. data: (N, D). Returns (N,) dimension estimates.

Parameters:
  • data (torch.Tensor)

  • k (int)

  • eps (float)

  • pca_cls (type)

Return type:

torch.Tensor

tdhook.latent.dimension_estimation.ca_pca._dim_from_ca_pca(lambda_hat, D)[source]#

Select dimension via curvature-corrected eigenvalue matching.

Parameters:
  • lambda_hat (numpy.ndarray)

  • D (int)

Return type:

int