tf.linalg.lstsq
| Просмотреть исходный код на GitHub |
Решает одну или несколько задач линейного наименьших квадратов.
tf.linalg.lstsq(
matrix, rhs, l2_regularizer=0.0, fast=True, name=None
)
matrix — это тензор формы [..., M, N], чьи внутренние 2 измерения образуют матрицы M×N. Rhs — это тензор формы [..., M, K], чьи внутренние 2 измерения образуют матрицы M×K. Вычисляемый результат — это тензор формы [..., N, K], чьи внутренние 2 измерения образуют матрицы M×K, которые решают уравнения matrix[..., :, :] * output[..., :, :] = rhs[..., :, :] в смысле наименьших квадратов.
Ниже мы будем использовать следующую нотацию для каждой пары матриц и правых частей в пакете:
matrix=\(A \in \Re^{m \times n}\), rhs=\(B \in \Re^{m \times k}\), output=\(X \in \Re^{n \times k}\), l2_regularizer=\(\lambda\).
Если fast равно True, то решение вычисляется путем решения нормальных уравнений с помощью разложения Холецкого. В частности, если \(m \ge n\), то \(X = (A^T A + \lambda I)^{-1} A^T 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^T (A A^T + \lambda I)^{-1} B\), что (для \(\lambda = 0\)) является решением с минимальной нормой для недоопределённой линейной системы, т. е. \(X = \mathrm{argmin}_{Z \in \Re^{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 формы [..., M, N]. |
rhs | Tensor формы [..., M, K]. |
l2_regularizer | 0-мерный double Tensor. Игнорируется, если fast=False. |
fast | bool. По умолчанию True. |
name | строка, необязательное имя операции. |
| Возвращаемые значения | |
|---|---|
output | Tensor формы [..., N, K], чьи внутренние 2 измерения образуют матрицы M×K, которые решают уравнения matrix[..., :, :] * output[..., :, :] = rhs[..., :, :] в смысле наименьших квадратов. |
| Исключения | |
|---|---|
NotImplementedError | linalg.lstsq в настоящее время отключён для complex128 и l2_regularizer != 0 из-за низкой точности. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.3/api_docs/python/tf/linalg/lstsq