tf.raw_ops.MatrixSolveLs
Решает одну или несколько задач линейных наименьших квадратов.
tf.raw_ops.MatrixSolveLs(
matrix, rhs, l2_regularizer, fast=True, name=None
)
matrix — это тензор формы [..., M, N], две самые внутренние размерности которого образуют вещественные или комплексные матрицы размера [M, N]. Rhs — это тензор того же типа, что и matrix, и формы [..., M, K]. Выходные данные — тензор формы [..., N, K], в котором каждая выходная матрица решает соответствующее уравнение matrix[..., :, :] * output[..., :, :] = rhs[..., :, :] в смысле наименьших квадратов.
Для матрицы (комплексной) и правых частей в пакете используется следующая нотация:
matrix=\(A \in \mathbb{C}^{m \times n}\), rhs=\(B \in \mathbb{C}^{m \times k}\), output=\(X \in \mathbb{C}^{n \times k}\), l2_regularizer=\(\lambda \in \mathbb{R}\).
Если fast равно True, решение вычисляется путем решения нормальных уравнений с использованием разложения Холецкого. В частности, если \(m \ge n\), то \(X = (A^H A + \lambda I)^{-1} A^H B\), что решает задачу наименьших квадратов \(X = \mathrm{argmin}_{Z \in \Re^{n \times k} } ||A Z - B||_F^2 + \lambda ||Z||_F^2\). Если \(m \lt n\), то output вычисляется как \(X = A^H (A A^H + \lambda I)^{-1} B\). При \(\lambda = 0\) это решение линейной системы с недостаточной определенностью, имеющее минимальную норму, то есть \(X = \mathrm{argmin}_{Z \in \mathbb{C}^{n \times k} } ||Z||_F^2 \), при условии, что \(A Z = B\). Обратите внимание: быстрый путь численно устойчив только тогда, когда матрица \(A\) имеет полный численный ранг и число обусловленности \(\mathrm{cond}(A) \lt \frac{1}{\sqrt{\epsilon_{mach} } }\), либо когда \(\lambda\) достаточно велико.
Если fast равно False, используется алгоритм, основанный на численно устойчивом полном ортогональном разложении. Он вычисляет решение задачи наименьших квадратов с минимальной нормой, даже если матрица \(A\) имеет неполный ранг. Этот путь обычно в 6–7 раз медленнее быстрого пути. Если fast равно False, то l2_regularizer игнорируется.
| Аргументы | |
|---|---|
matrix | Tensor. Должен иметь один из следующих типов: float64, float32, half, complex64, complex128. Форма: [..., M, N]. |
rhs | Tensor. Должен иметь тот же тип, что и matrix. Форма: [..., M, K]. |
l2_regularizer | Tensor типа float64. Тензор-скаляр. |
fast | Необязательный bool. Значение по умолчанию — True. |
name | Имя операции (необязательное). |
| Возвращает | |
|---|---|
Tensor. Имеет тот же тип, что и matrix. |
Совместимость с NumPy
Эквивалентно np.linalg.lstsq
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/raw_ops/MatrixSolveLs