Skip to content

Latest commit

 

History

History
398 lines (271 loc) · 10.5 KB

introduction-to-types-of-matrices-in-linear-algebra.md

File metadata and controls

398 lines (271 loc) · 10.5 KB

机器学习中的线性代数中的矩阵类型简介

原文: https://machinelearningmastery.com/introduction-to-types-of-matrices-in-linear-algebra/

许多线性代数涉及向量和矩阵的运算,并且存在许多不同类型的矩阵。

在线性代数入门时,您可能会遇到几种类型的矩阵,特别是与机器学习相关的线性代数部分。

在本教程中,您将发现一系列不同类型的矩阵,这些矩阵来自线性代数领域,您可能会在机器学习中遇到这些矩阵。

完成本教程后,您将了解:

  • 正方形,对称,三角形和对角矩阵,正如它们的名字所暗示的那样。
  • 除了沿值为 1 的主对角线以外的所有零值的标识矩阵。
  • 正交矩阵,概括了垂直向量的概念并具有有用的计算属性。

让我们开始吧。

  • 更新 Feb / 2018 :修正了正交矩阵等价方程中的小错字。

A Gentle Introduction to Types of Matrices in Linear Algebra

线性代数中矩阵类型的温和介绍 Tony 的照片,保留一些权利。

教程概述

本教程分为 6 个部分,涵盖了主要的矩阵类型;他们是:

  1. 方阵
  2. 对称矩阵
  3. 三角矩阵
  4. 对角矩阵
  5. 身份矩阵
  6. 正交矩阵

方阵

方阵是矩阵,其中行数(n)等于列数(m)。

n = m

方矩阵与矩形矩阵形成对比,矩形矩阵的行数和列数不相等。

假设行数和列数匹配,则尺寸通常表示为 n,例如 n x n。矩阵的大小称为顺序,因此 4 阶矩阵是 4 x 4。

沿着从左上到右下的矩阵对角线的值向量称为主对角线。

以下是 3 阶矩阵的示例。

     1, 2, 3
M = (1, 2, 3)
     1, 2, 3

方形矩阵很容易相加并相乘,并且是许多简单线性变换的基础,例如旋转(如图像的旋转)。

对称矩阵

对称矩阵是一种方形矩阵,其中右上角三角形与左下角三角形相同。

毫不夸张地说,对称矩阵 S 是世界上最重要的矩阵 - 在线性代数理论和应用中。

为了对称,对称轴始终是矩阵的主要对角线,从左上角到右下角。

下面是 5×5 对称矩阵的示例。

     1, 2, 3, 4, 5
     2, 1, 2, 3, 4
M = (3, 2, 1, 2, 3)
     4, 3, 2, 1, 2
     5, 4, 3, 2, 1

对称矩阵总是正方形并且等于它自己的转置。

M = M^T

三角矩阵

三角矩阵是一种方矩阵,其在矩阵的右上或左下具有所有值,其余元素填充零值。

仅在主对角线上方具有值的三角矩阵称为上三角矩阵。然而,仅在主对角线下方具有值的三角矩阵被称为下三角矩阵。

下面是 3×3 上三角矩阵的示例。

     1, 2, 3
M = (0, 2, 3)
     0, 0, 3

下面是 3×3 下三角矩阵的示例。

     1, 0, 0
M = (1, 2, 0)
     1, 2, 3

LU 分解将给定矩阵解析为上三角矩阵和下三角矩阵。

NumPy 提供从现有方阵中计算三角矩阵的函数。 tril()函数用于从给定矩阵计算下三角矩阵,triu()用于从给定矩阵计算上三角矩阵

下面的例子定义了一个 3×3 方阵,并从中计算出下三角矩阵和上三角矩阵。

# triangular matrices
from numpy import array
from numpy import tril
from numpy import triu
M = array([[1, 2, 3], [1, 2, 3], [1, 2, 3]])
print(M)
lower = tril(M)
print(lower)
upper = triu(M)
print(upper)

运行该示例将打印定义的矩阵,然后是下三角矩阵和上三角矩阵。

[[1 2 3]
 [1 2 3]
 [1 2 3]]

[[1 0 0]
 [1 2 0]
 [1 2 3]]

[[1 2 3]
 [0 2 3]
 [0 0 3]]

对角矩阵

对角矩阵是主对角线外部的值具有零值的矩阵,其中主对角线从矩阵的左上角到右下角。

对角矩阵通常用变量 D 表示,并且可以表示为完整矩阵或主对角线上的值向量。

对角矩阵主要由零组成,并且仅沿主对角线具有非零条目。

下面是 3×3 方形对角矩阵的示例。

     1, 0, 0
D = (0, 2, 0)
     0, 0, 3

作为向量,它将表示为:

d = (d11, d22, d33)

或者,使用指定的标量值:

d = (1, 2, 3)

对角矩阵不必是正方形。在矩形矩阵的情况下,对角线将覆盖最短的维度;例如:

     1, 0, 0, 0
     0, 2, 0, 0
D = (0, 0, 3, 0)
     0, 0, 0, 4
     0, 0, 0, 0

NumPy 提供了函数 diag(),它可以从现有矩阵创建对角矩阵,或者将向量转换为对角矩阵。

下面的示例定义了一个 3×3 方阵,将主对角线提取为向量,然后从提取的向量中创建一个对角矩阵。

# diagonal matrix
from numpy import array
from numpy import diag
M = array([[1, 2, 3], [1, 2, 3], [1, 2, 3]])
print(M)
# extract diagonal vector
d = diag(M)
print(d)
# create diagonal matrix from vector
D = diag(d)
print(D)

首先运行该示例打印定义的矩阵,然后是主对角线的向量和从向量构造的对角矩阵。

[[1 2 3]
 [1 2 3]
 [1 2 3]]

[1 2 3]

[[1 0 0]
 [0 2 0]
 [0 0 3]]

身份矩阵

单位矩阵是一个方形矩阵,在乘法时不会改变向量。

单位矩阵的值是已知的。沿主对角线(左上角到右下角)的所有标量值都具有值 1,而所有其他值都为零。

单位矩阵是当我们将该向量乘以该矩阵时不改变任何向量的矩阵。

单位矩阵通常使用符号“I”或维度“In”表示,其中 n 是表示方形单位矩阵的维数的下标。在一些符号中,标识可以被称为单位矩阵或“U”,以兑现它包含的一个值(这与单位矩阵不同)。

例如,大小为 3 或 I3 的单位矩阵如下:

     1, 0, 0
I = (0, 1, 0)
     0, 0, 1

在 NumPy 中,可以使用 identity()函数创建具有特定大小的单位矩阵。

以下示例创建 I3 单位矩阵。

# identity matrix
from numpy import identity
I = identity(3)
print(I)

运行该示例将打印创建的标识矩阵。

[[ 1\.  0\.  0.]
 [ 0\.  1\.  0.]
 [ 0\.  0\.  1.]]

单独,单位矩阵并不那么有趣,尽管它是其他导入矩阵运算中的一个组件,例如矩阵求逆。

正交矩阵

当它们的点积等于零时,两个向量是正交的,称为正交。

v . w = 0

要么

v . w^T = 0

当我们认为一条线与另一条线垂直于它时,这是直观的。

正交矩阵是一种方形矩阵,其列和行是正交单位向量,例如,正交矩阵。垂直,长度或大小为 1。

正交矩阵是方形矩阵,其行是相互正交的并且其列是相互正交的

正交矩阵通常表示为大写“Q”。

通过正交矩阵的乘法保留长度。

正交矩阵的形式正式定义如下:

Q^T . Q = Q . Q^T = I

其中 Q 是正交矩阵,Q ^ T 表示 Q 的转置,I 是单位矩阵。

如果矩阵的转置等于其反转,则矩阵是正交的。

Q^T = Q^-1

正交矩阵的另一个等价是矩阵和它自身的点积等于单位矩阵。

Q . Q^T = I

正交矩阵用于线性变换,例如反射和置换。

下面列出了简单的 2×2 正交矩阵,其是反射矩阵或坐标反射的示例。

     1,  0
Q = (0, -1)

下面的示例创建此正交矩阵并检查上述等价。

# orthogonal matrix
from numpy import array
from numpy.linalg import inv
Q = array([[1, 0], [0, -1]])
print(Q)
# inverse equivalence
V = inv(Q)
print(Q.T)
print(V)
# identity equivalence
I = Q.dot(Q.T)
print(I)

首先运行该示例打印正交矩阵,正交矩阵的逆,然后打印正交矩阵的转置并且显示为等效的。最后,打印单位矩阵,其由正交矩阵的点积与其转置计算。

[[ 1  0]
 [ 0 -1]]

[[ 1  0]
 [ 0 -1]]

[[ 1\.  0.]
 [-0\. -1.]]

[[1 0]
 [0 1]]

正交矩阵是有用的工具,因为它们在计算上是便宜的并且可以稳定地计算它们的逆,就像它们的转置一样。

扩展

本节列出了一些扩展您可能希望探索的教程的想法。

  • 使用您自己的小型人为数据修改每个示例。
  • 编写自己的函数来实现每个操作。
  • 研究一个例子,其中每个操作都用于机器学习。

如果你探索任何这些扩展,我很想知道。

进一步阅读

如果您希望深入了解,本节将提供有关该主题的更多资源。

图书

API

用品

摘要

在本教程中,您发现了一组来自线性代数领域的不同类型的矩阵,您可能会在机器学习中遇到这些矩阵。

具体来说,你学到了:

  • 正方形,对称,三角形和对角矩阵,顾名思义。
  • 除了沿值为 1 的主对角线以外的所有零值的标识矩阵。
  • 正交矩阵,概括了垂直向量的概念并具有有用的计算属性。

你有任何问题吗? 在下面的评论中提出您的问题,我会尽力回答。