ot.lowrank

低秩OT求解器

函数

ot.lowrank.compute_lr_sqeuclidean_matrix(X_s, X_t, rescale_cost, nx=None)[源]

计算平方欧几里得距离矩阵的低秩分解。 该函数不适用于其他距离度量。

请参阅“第3.5节,命题1”

Parameters:
  • X_s (类数组, 形状 (n_samples_a, 维度)) – 源域中的样本

  • X_t (类似数组, 形状 (n_samples_b, 维度)) – 目标域中的样本

  • rescale_cost (bool) – 重新缩放平方欧几里得成本矩阵的低秩分解

  • nx (默认值 None) – POT 后端

Returns:

  • M1 (类数组,形状 (n_samples_a, dim+2)) – 距离矩阵的第一次低秩分解

  • M2 (类数组,形状 (n_samples_b, dim+2)) – 距离矩阵的第二次低秩分解

参考文献

ot.lowrank.lowrank_sinkhorn(X_s, X_t, a=None, b=None, reg=0, rank=None, alpha=1e-10, rescale_cost=True, init='random', reg_init=0.1, seed_init=49, gamma_init='rescale', numItermax=2000, stopThr=1e-07, warn=True, log=False)[源]

在耦合的低非负秩约束下解决熵正则化最优传输问题。

该函数解决以下优化问题:

\[\mathop{\inf_{(\mathbf{Q},\mathbf{R},\mathbf{g}) \in \mathcal{C}(\mathbf{a},\mathbf{b},r)}} \langle \mathbf{C}, \mathbf{Q}\mathrm{diag}(1/\mathbf{g})\mathbf{R}^\top \rangle - \mathrm{reg} \cdot H((\mathbf{Q}, \mathbf{R}, \mathbf{g}))\]

其中 :

  • \(\mathbf{C}\) 是 (dim_a, dim_b) 计量成本矩阵

  • \(H((\mathbf{Q}, \mathbf{R}, \mathbf{g}))\) 是分别对每个项评估的三个相应熵的值。

  • \(\mathbf{Q}\)\(\mathbf{R}\) 是OT计划的低秩矩阵分解

  • \(\mathbf{g}\) 是OT计划的低秩分解的权重向量

  • \(\mathbf{a}\)\(\mathbf{b}\) 是源权重和目标权重(直方图,两者之和为1)

  • \(r\) 是 OT 计划的等级

  • \(\mathcal{C}(\mathbf{a}, \mathbf{b}, r)\) 是OT问题的低秩耦合

Parameters:
  • X_s (类数组, 形状 (n_samples_a, 维度)) – 源域中的样本

  • X_t (类似数组, 形状 (n_samples_b, 维度)) – 目标域中的样本

  • a (类数组, 形状 (n_samples_a,)) – 源域中的样本权重

  • b (数组类型, 形状 (n_samples_b,)) – 目标领域中的样本权重

  • reg (float, 可选) – 正则化项 >0

  • rank (int, 可选。默认值为 None。 (>0)) – OT 计划的非负等级。如果为 None,则考虑 min(ns, nt)。

  • alpha (int, 可选,默认值为 1e-10。 (>0 且 <1/r)) – 权重向量 g 的下限。

  • rescale_cost (bool, 可选。默认为 False) – 重新缩放平方欧几里得成本矩阵的低秩分解

  • init (str, 可选。默认值为'random'。) – 低秩耦合的初始化策略。‘random’,‘deterministic’或‘kmeans’

  • reg_init (float, 可选。默认值为 1e-1。 (>0)) – 用于‘kmeans’初始化的正则化项。如果为 None,则考虑为 1。

  • seed_init (int, 可选。默认值为49。 (>0)) – 用于“随机”或“kmeans”初始化策略的随机状态。

  • gamma_init (str, 可选。默认值为 "rescale"。) – gamma 的初始化策略。‘rescale’,或 ‘theory’ Gamma 是一个常数,用于缩放镜像下降优化方案的收敛标准,该方案用于计算低秩耦合 (Q, R 和 g)

  • numItermax (int, 可选。默认值为2000。) – Dykstra算法的最大迭代次数

  • stopThr (float, 可选。默认值为 1e-7。) – Dykstra中的错误停止阈值 (>0)

  • warn (bool, 可选) – 如果为True,当算法不收敛时会发出警告。

  • log (bool, 可选) – 如果为真,则记录日志

Returns:

  • Q (类数组,形状 (n_samples_a, r)) – OT计划的第一低秩矩阵分解

  • R (类数组,形状 (n_samples_b, r)) – OT计划的第二低秩矩阵分解

  • g (类数组,形状 (r, )) – OT的低秩分解的权重向量

  • log (字典 (lazy_plan, value 和 value_linear)) – 仅当参数中的log==True时返回log字典

参考文献

ot.lowrank.compute_lr_sqeuclidean_matrix(X_s, X_t, rescale_cost, nx=None)[源]

计算平方欧几里得距离矩阵的低秩分解。 该函数不适用于其他距离度量。

请参阅“第3.5节,命题1”

Parameters:
  • X_s (类数组, 形状 (n_samples_a, 维度)) – 源域中的样本

  • X_t (类似数组, 形状 (n_samples_b, 维度)) – 目标域中的样本

  • rescale_cost (bool) – 重新缩放平方欧几里得成本矩阵的低秩分解

  • nx (默认值 None) – POT 后端

Returns:

  • M1 (类数组,形状 (n_samples_a, dim+2)) – 距离矩阵的第一次低秩分解

  • M2 (类数组,形状 (n_samples_b, dim+2)) – 距离矩阵的第二次低秩分解

参考文献

ot.lowrank.lowrank_sinkhorn(X_s, X_t, a=None, b=None, reg=0, rank=None, alpha=1e-10, rescale_cost=True, init='random', reg_init=0.1, seed_init=49, gamma_init='rescale', numItermax=2000, stopThr=1e-07, warn=True, log=False)[源]

在耦合的低非负秩约束下解决熵正则化最优传输问题。

该函数解决以下优化问题:

\[\mathop{\inf_{(\mathbf{Q},\mathbf{R},\mathbf{g}) \in \mathcal{C}(\mathbf{a},\mathbf{b},r)}} \langle \mathbf{C}, \mathbf{Q}\mathrm{diag}(1/\mathbf{g})\mathbf{R}^\top \rangle - \mathrm{reg} \cdot H((\mathbf{Q}, \mathbf{R}, \mathbf{g}))\]

其中 :

  • \(\mathbf{C}\) 是 (dim_a, dim_b) 计量成本矩阵

  • \(H((\mathbf{Q}, \mathbf{R}, \mathbf{g}))\) 是分别对每个项评估的三个相应熵的值。

  • \(\mathbf{Q}\)\(\mathbf{R}\) 是OT计划的低秩矩阵分解

  • \(\mathbf{g}\) 是OT计划的低秩分解的权重向量

  • \(\mathbf{a}\)\(\mathbf{b}\) 是源权重和目标权重(直方图,两者之和为1)

  • \(r\) 是 OT 计划的等级

  • \(\mathcal{C}(\mathbf{a}, \mathbf{b}, r)\) 是OT问题的低秩耦合

Parameters:
  • X_s (类数组, 形状 (n_samples_a, 维度)) – 源域中的样本

  • X_t (类似数组, 形状 (n_samples_b, 维度)) – 目标域中的样本

  • a (类数组, 形状 (n_samples_a,)) – 源域中的样本权重

  • b (数组类型, 形状 (n_samples_b,)) – 目标领域中的样本权重

  • reg (float, 可选) – 正则化项 >0

  • rank (int, 可选。默认值为 None。 (>0)) – OT 计划的非负等级。如果为 None,则考虑 min(ns, nt)。

  • alpha (int, 可选,默认值为 1e-10。 (>0 且 <1/r)) – 权重向量 g 的下限。

  • rescale_cost (bool, 可选。默认为 False) – 重新缩放平方欧几里得成本矩阵的低秩分解

  • init (str, 可选。默认值为'random'。) – 低秩耦合的初始化策略。‘random’,‘deterministic’或‘kmeans’

  • reg_init (float, 可选。默认值为 1e-1。 (>0)) – 用于‘kmeans’初始化的正则化项。如果为 None,则考虑为 1。

  • seed_init (int, 可选。默认值为49。 (>0)) – 用于“随机”或“kmeans”初始化策略的随机状态。

  • gamma_init (str, 可选。默认值为 "rescale"。) – gamma 的初始化策略。‘rescale’,或 ‘theory’ Gamma 是一个常数,用于缩放镜像下降优化方案的收敛标准,该方案用于计算低秩耦合 (Q, R 和 g)

  • numItermax (int, 可选。默认值为2000。) – Dykstra算法的最大迭代次数

  • stopThr (float, 可选。默认值为 1e-7。) – Dykstra中的错误停止阈值 (>0)

  • warn (bool, 可选) – 如果为True,当算法不收敛时会发出警告。

  • log (bool, 可选) – 如果为真,则记录日志

Returns:

  • Q (类数组,形状 (n_samples_a, r)) – OT计划的第一低秩矩阵分解

  • R (类数组,形状 (n_samples_b, r)) – OT计划的第二低秩矩阵分解

  • g (类数组,形状 (r, )) – OT的低秩分解的权重向量

  • log (字典 (lazy_plan, value 和 value_linear)) – 仅当参数中的log==True时返回log字典

参考文献