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字典
参考文献
[65] Scetbon, M., Cuturi, M., & Peyré, G. (2021). “低秩Sinkhorn分解”。在国际机器学习会议。
- 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)) – 距离矩阵的第二次低秩分解
参考文献
[65] Scetbon, M., Cuturi, M., & Peyré, G. (2021). “低秩Sinkhorn分解”。在国际机器学习会议上。
- 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字典
参考文献
[65] Scetbon, M., Cuturi, M., & Peyré, G. (2021). “低秩Sinkhorn分解”。在国际机器学习会议。