tf.raw_ops.MatrixSolveLs
Решает одну или несколько задач линейной наименьших квадратов.
tf.raw_ops.MatrixSolveLs(
matrix, rhs, l2_regularizer, fast=True, name=None
)
matrix — это тензор формы [..., M, N], внутренние 2 измерения которого образуют вещественные или комплексные матрицы размера [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 | A Tensor. Должен быть одним из следующих типов: float64, float32, half, complex64, complex128. Форма — [..., M, N]. |
rhs | A Tensor. Должен иметь тот же тип, что и matrix. Форма — [..., M, K]. |
l2_regularizer | A Tensor типа float64. Скалярный тензор. |
fast | Необязательный bool. По умолчанию True. |
name | Имя операции (необязательно). |
| Возвращает | |
|---|---|
A 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