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. Вычисляемый результат — это Tensor формы [..., 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-D 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.4/api_docs/python/tf/linalg/lstsq