TensorFlow函數(shù):tf.matrix_solve_ls

2018-11-01 18:26 更新
tf.matrix_solve_ls 函數(shù)
matrix_solve_ls(
    matrix,
    rhs,
    l2_regularizer=0.0,
    fast=True,
    name=None
)

定義在:tensorflow/python/ops/linalg_ops.py

參考指南:數(shù)學函數(shù)>矩陣數(shù)學函數(shù)

解決一個或多個線性最小二乘法問題.

matrix 是一個形狀為 [..., M, N] 的張量,并且該張量最內(nèi)部的 2 維構成 M-N 矩陣;rhs 是一個形狀為 [..., M, K] 的張量,該張量最內(nèi)部的 2 維構成 M-K 矩陣.由該函數(shù)計算得到的輸出是一個形狀為 [..., N, K] 的張量,該張量最內(nèi)部的 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,則通過使用 Cholesky 分解求解正態(tài)方程.具體來說,如果:\(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\),(for \(\lambda = 0\)) 是對于未確定的線性系統(tǒng)的最小范數(shù)解,即:\(X = \mathrm{argmin}{Z \in \Re^{n \times k}} ||Z||F^2 \) 到 \(A Z = B\).請注意,當 \(A\) 是數(shù)值上的完全秩并且有條件號\(\mathrm{cond} (A) \lt \frac{1}{\sqrt{\epsilon{mach}}}\) 或者 \(\lambda\) 足夠大時,fast 路徑只有數(shù)值穩(wěn)定.

如果 fast 值為 False,則采用基于數(shù)字 robust 的完全正交分解的算法.即使 \(A\) 是秩不足的,也可以計算出最小范數(shù)最小二乘解.該路徑通常比 fast 路徑慢 6-7倍.如果 fast 的值為 False,則 l2_regularizer 將被忽略.

參數(shù):

  • matrix:形狀為 [..., M, N] 的張量.
  • rhs:形狀為 [..., M, K] 的張量.
  • l2_regularizer:0維雙張量.如果 fast=False,則忽略.
  • fast:布爾值,默認為 True.
  • name:字符串類型值,可選的操作名稱.

返回值:

  • output:形狀為 [..., N, K] 的張量,該張量最內(nèi)部的 2 維構成 M-K 矩陣,以最小二乘方式上求解方程:matrix[..., :, :] * output[..., :, :] = rhs[..., :, :].
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號