【机器学习】机器学习中用到的高等数学知识-1.线性代数 (Linear Algebra)

  • 向量(Vector)和矩阵(Matrix):用于表示数据集(Dataset)和特征(Feature)。
  • 矩阵运算:加法、乘法和逆矩阵(Inverse Matrix)等,用于计算模型参数。
  • 特征值(Eigenvalues)和特征向量(Eigenvectors):用于降维(dimensionality reduction)(如主成分分析 PCA(Principal Component Analysis))和理解数据结构。
  • 奇异值分解 (SVD):用于数据降维和矩阵近似。

向量和矩阵

向量

向量是线性代数中的一个基本概念,它是具有大小和方向的数学对象。向量在物理学、工程学、计算机科学和许多其他领域中都有广泛的应用。以下是向量的基本概念、性质和应用。

1. 向量的定义

向量可以用有序的数值集合来表示,通常写作 \mathbf{v}\vec{v}。在 n-维空间中,一个向量可以表示为:

\mathbf{v} = \begin{pmatrix} v_1 \\ v_2 \\ \vdots \\ v_n \end{pmatrix}

这里,v_1, v_2, \ldots, v_n​ 是向量的分量。

2. 向量的类型

向量可以根据其特征进行分类:

      位置向量的用途
         表示点的位置
:可以用位置向量确定一个点在空间中的具体位置。
         计算点间距离:两个点的距离可以通过它们的相对位置向量计算,例如 \|\mathbf{OP}_1 - \mathbf{OP}_2\|
         空间变换:位置向量可以用于描述平移、旋转等空间操作。

      示例
         若点 A 的坐标为 (3, 4),则其位置向量为:

                                                           \mathbf{OA} = \begin{bmatrix} 3 \\ 4 \end{bmatrix}

         若点 B 在三维空间中的坐标为 (1, -2, 5),则其位置向量为:

                                                        \mathbf{OB} = \begin{bmatrix} 1 \\ -2 \\ 5 \end{bmatrix}                                                    

       位置向量的使用使得我们可以将几何问题转化为向量运算,使得计算更为简洁和直观。

  • 零向量:是向量空间中的特殊向量,它的所有分量都为零。零向量通常用符号 \mathbf{0} 表示,在任意维度的向量空间中都存在。例如:
     

    在二维空间中,零向量为:

    \mathbf{0} = \begin{bmatrix} 0 \\ 0 \end{bmatrix}

    n-维空间中,零向量为:

    \mathbf{0} = \begin{bmatrix} 0 \\ 0 \\ \vdots \\ 0 \end{bmatrix}
    零向量的特点是无方向、无长度,它在向量加法中是单位元,添加到任何向量上都不会改变其值。
  • 单位向量:模(长度)为 1 的向量,通常用于表示方向,单位向量的符号通常为 \hat{i}, \hat{j}​, \hat{k} 或加上帽子符号的其它向量符号。下面是一些常见的单位向量示例:
     

    二维空间中的单位向量:
        沿 x-轴方向的单位向量:
                                                         \hat{i} = \begin{bmatrix} 1 \\ 0 \end{bmatrix}
        沿 y-轴方向的单位向量:
                                                        \hat{j} = \begin{bmatrix} 0 \\ 1 \end{bmatrix}
    三维空间中的单位向量
        沿 x-轴方向的单位向量:
                                                        \hat{i} = \begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix}
        沿 y-轴方向的单位向量:
                                                        \hat{j} = \begin{bmatrix} 0 \\ 1 \\ 0 \end{bmatrix}
        沿 z-轴方向的单位向量:
                                                        \hat{k} = \begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix}

    任意向量的单位化: 对于任意非零向量 \mathbf{v},可以通过将它除以其模长 \|\mathbf{v}\| 来获得单位向量:

                                                       \hat{\mathbf{v}} = \frac{\mathbf{v}}{\|\mathbf{v}\|}

    例如,如果 \mathbf{v} = \begin{bmatrix} 3 \\ 4 \end{bmatrix},则它的模长为 5,单位向量为:

                                         ​​​  \hat{\mathbf{v}} = \frac{1}{5} \begin{bmatrix} 3 \\ 4 \end{bmatrix} = \begin{bmatrix} 0.6 \\ 0.8 \end{bmatrix}

    单位向量在多种计算中都很有用,尤其是表示方向,而不关注大小。

  • 位置向量(Position Vector):表示空间中一个点的位置的向量,它通常从坐标系的原点 O 指向该点 P,可以表示点的相对位置。位置向量是非常有用的工具,尤其在几何、物理学和工程中,用于描述物体的位置。
     

    位置向量的定义

    在二维和三维空间中,位置向量常以从原点到目标点的矢量形式表示。若点 P 的坐标为 (x, y)(x, y, z),则位置向量 \mathbf{OP} 为:

        二维空间中的位置向量: 若 P = (x, y),则位置向量为:

                                                       \mathbf{OP} = \begin{bmatrix} x \\ y \end{bmatrix}

        三维空间中的位置向量: 若 P = (x, y, z),则位置向量为:

                                                       \mathbf{OP} = \begin{bmatrix} x \\ y \\ z \end{bmatrix}

3. 向量的运算

向量之间可以进行多种运算,包括:

  • 向量加法:将两个相同维数的向量相加,对应分量相加。

    \mathbf{u} + \mathbf{v} = \begin{pmatrix} u_1 + v_1 \\ u_2 + v_2 \\ \vdots \\ u_n + v_n \end{pmatrix}
  • 向量减法:将两个相同维数的向量相减,对应分量相减。

    \mathbf{u} - \mathbf{v} = \begin{pmatrix} u_1 - v_1 \\ u_2 - v_2 \\ \vdots \\ u_n - v_n \end{pmatrix}
  • 数乘:将向量的每个分量乘以一个标量 k

    \mathbf{v} = \begin{pmatrix} kv_1 \\ kv_2 \\ \vdots \\ kv_n \end{pmatrix}

4. 向量的性质

向量具有以下重要性质:

  • 模(长度):向量的模可以通过以下公式计算:

    |\mathbf{v}| = \sqrt{v_1^2 + v_2^2 + \cdots + v_n^2}
  • 点积(内积):两个向量的点积是一个标量,计算方式如下:

    \mathbf{u} \cdot \mathbf{v} = u_1v_1 + u_2v_2 + \cdots + u_nv_n

    点积的结果可以用来判断两个向量的夹角关系,若 \mathbf{u} \cdot \mathbf{v} = 0,则两者正交。

  • 叉积(外积):仅在三维空间中定义,返回一个向量,计算方式为:

    \mathbf{u} \times \mathbf{v} = \begin{pmatrix} u_2v_3 - u_3v_2 \\ u_3v_1 - u_1v_3 \\ u_1v_2 - u_2v_1 \end{pmatrix}

    叉积的结果与两个向量均垂直,其大小等于两个向量夹角的正弦值乘以它们的模。

5. 向量的应用

向量在许多领域中有广泛的应用,包括:

  • 物理学:描述力、速度、加速度等物理量。
  • 工程学:在设计和分析中使用向量表示物体的位置和方向。
  • 计算机图形学:用于表示图形、模型和运动。
  • 机器学习:用于表示数据点和特征,进行分类和聚类。

6. 结论

向量是描述空间中大小和方向的基本工具,理解向量的性质和运算对于学习线性代数、物理学和工程学等领域至关重要。掌握向量的概念和应用能够为解决实际问题提供强有力的支持。


矩阵

矩阵是线性代数中的基本概念之一,它是一个按照矩形阵列排列的数值集合,通常用来表示线性方程组、线性变换、图像处理和其他许多数学和工程问题。以下是矩阵的基本概念、性质及应用。

1. 矩阵的定义

一个矩阵是由 m 行和 n 列的元素(通常是数字)组成的二维数组。矩阵通常用大写字母表示,例如 A,其形式为:

A = \begin{pmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{pmatrix}

这里,a_{ij}​ 是第 i 行第 j 列的元素。

2. 矩阵的类型

矩阵根据其特征可以分为几种类型:

  • 行矩阵:只有一行的矩阵。
  • 列矩阵:只有一列的矩阵。
  • 方阵:行数与列数相同的矩阵(例如 n \times n 矩阵)。
  • 零矩阵:所有元素均为零的矩阵。
  • 单位矩阵:对角线元素为 1,其他元素为 0 的方阵。

3. 矩阵的运算

矩阵之间可以进行多种运算,包括:

  • 加法:两个相同维数的矩阵可以相加,对应元素相加。

    C = A + B \Rightarrow c_{ij} = a_{ij} + b_{ij}
  • 减法:两个相同维数的矩阵可以相减,对应元素相减。

    C = A - B \Rightarrow c_{ij} = a_{ij} - b_{ij}
  • 数乘:矩阵中的每个元素都可以乘以一个标量 k

    B = kA \Rightarrow b_{ij} = k \cdot a_{ij}
  • 矩阵乘法:两个矩阵相乘,只有当第一个矩阵的列数等于第二个矩阵的行数时才能进行。设 Am \times n 矩阵,Bn \times p 矩阵,结果矩阵 C 将是 m \times p 矩阵。

    C = AB \Rightarrow c_{ij} = \sum_{k=1}^{n} a_{ik} b_{kj}

4. 矩阵的性质

矩阵有许多重要的性质,包括:

  • 转置矩阵:将矩阵的行和列互换,记作 A^T

    (A^T)_{ij} = a_{ji}
  • :方阵的对角线元素之和,记作 \text{tr}(A)

  • 行列式:方阵的一个标量值,反映了该矩阵的特性(如是否可逆),记作 |A|\det(A)

  • 逆矩阵:若矩阵 A 是可逆的,则存在一个矩阵 A^{-1},使得 AA^{-1} = A^{-1}A = I(单位矩阵)。

5. 矩阵的应用

矩阵在许多领域中有广泛的应用,包括:

  • 线性方程组:可以用矩阵表示和求解线性方程组。
  • 图形变换:在计算机图形学中,矩阵用于进行旋转、缩放和平移等变换。
  • 数据分析:在机器学习和统计学中,矩阵用于表示数据集和执行各种运算。
  • 网络分析:在图论中,邻接矩阵和权重矩阵用于表示网络结构。

6. 结论

矩阵是线性代数的核心工具,提供了一种有效的方式来表示和处理线性关系。掌握矩阵的基本概念、运算和性质对学习更高级的数学和应用至关重要。


矩阵运算

矩阵运算是线性代数的重要组成部分,广泛应用于计算机科学、物理学、统计学和机器学习等领域。主要的矩阵运算包括加法、减法、数乘、矩阵乘法、转置、求逆、以及行列式计算。以下是这些运算的简要概述和应用。

1. 矩阵加法和减法

  • 加法:两个矩阵相加,需要它们的维度相同。对应元素相加形成新的矩阵。

    例如,对于矩阵 A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}B = \begin{bmatrix} 5 & 6 \\ 7 & 8 \end{bmatrix},它们的和为:

    A + B = \begin{bmatrix} 1+5 & 2+6 \\ 3+7 & 4+8 \end{bmatrix} = \begin{bmatrix} 6 & 8 \\ 10 & 12 \end{bmatrix}
  • 减法:与加法类似,减法要求矩阵维度相同,对应元素相减。

2. 数乘(标量乘法)

一个矩阵的每个元素都与同一个标量(数值)相乘,称为数乘。若有矩阵 A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix},标量 c = 3,则:

cA = 3 \times \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} = \begin{bmatrix} 3 & 6 \\ 9 & 12 \end{bmatrix}

3. 矩阵乘法

矩阵乘法需要左矩阵的列数等于右矩阵的行数,得到一个新的矩阵。假设 Am \times n 矩阵,Bn \times p 矩阵,则 ABm \times p 矩阵,计算方式如下:

(AB)_{ij} = \sum_{k=1}^{n} A_{ik} B_{kj}

例如:

A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}, \quad B = \begin{bmatrix} 2 & 0 \\ 1 & 2 \end{bmatrix}

AB = \begin{bmatrix} 1\cdot2 + 2\cdot1 & 1\cdot0 + 2\cdot2 \\ 3\cdot2 + 4\cdot1 & 3\cdot0 + 4\cdot2 \end{bmatrix} = \begin{bmatrix} 4 & 4 \\ 10 & 8 \end{bmatrix}

4. 矩阵转置

矩阵转置是将矩阵的行与列互换。对于 A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix},其转置 A^T 为:

A^T = \begin{bmatrix} 1 & 3 \\ 2 & 4 \end{bmatrix}

5. 矩阵求逆

对于方阵 A,如果存在一个矩阵 A^{-1} 使得 AA^{-1} = A^{-1}A = I(单位矩阵),则 A^{-1} 称为 A 的逆矩阵。矩阵求逆仅适用于方阵,且非所有方阵都有逆(只有行列式不为零的矩阵才有逆)。

6. 行列式

行列式是方阵的一个标量值,记为 \det(A),可以用于判断矩阵是否可逆(行列式不为零时矩阵可逆)。例如,对于 A = \begin{bmatrix} a & b \\ c & d \end{bmatrix},行列式 \det(A) = ad - bc

3x3 矩阵的行列式: 对于一个 3 \times 3 的矩阵 A = \begin{bmatrix} a & b & c \\ d & e & f \\ g & h & i \end{bmatrix},行列式为:

\text{det}(A) = a \cdot \text{det}\begin{bmatrix} e & f \\ h & i \end{bmatrix} - b \cdot \text{det}\begin{bmatrix} d & f \\ g & i \end{bmatrix} + c \cdot \text{det}\begin{bmatrix} d & e \\ g & h \end{bmatrix}

这就是通过展开法计算行列式。

Python 示例

使用 NumPy 库可以简便地实现这些矩阵运算:

import numpy as np

# 创建矩阵
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
C = np.array([[2, 0], [1, 2]])

# 矩阵加法
print("A + B =\n", A + B)

# 矩阵减法
print("A - B =\n", A - B)

# 数乘
print("3 * A =\n", 3 * A)

# 矩阵乘法
print("A * C =\n", np.dot(A, C))

# 矩阵转置
print("A^T =\n", A.T)

# 矩阵求逆
try:
    A_inv = np.linalg.inv(A)
    print("A inverse =\n", A_inv)
except np.linalg.LinAlgError:
    print("A is not invertible")

# 行列式
det_A = np.linalg.det(A)
print("det(A) =", det_A)

应用

矩阵运算在机器学习、数据科学、图像处理、物理模拟等领域极其重要,尤其在神经网络和线性回归等算法中被广泛应用。


特征值和特征向量

特征值和特征向量是线性代数中重要的概念,在许多科学与工程应用(例如数据降维、图像处理、推荐系统、自然语言处理等)中扮演关键角色。了解特征值和特征向量有助于理解数据中的模式,识别重要的方向和特征。

什么是特征值和特征向量?

假设有一个 n \times n 方阵 A,如果存在一个向量 \mathbf{v} 和一个标量 \lambda,使得:

\mathbf{v} = \lambda \mathbf{v}

那么 \mathbf{v} 就是矩阵 A 的特征向量,\lambda 就是对应的特征值。

解读:
  • 特征向量:在矩阵作用下保持方向不变的向量。
  • 特征值:是标量,表示在矩阵作用下特征向量的拉伸或缩放因子。

如何求特征值和特征向量?

  1. 特征值的求解:特征值的求解基于以下特征方程:

    \det(A - \lambda I) = 0

    其中 I是单位矩阵。通过解这个多项式方程,我们可以找到所有可能的特征值 \lambda

  2. 特征向量的求解:在找到特征值 \lambda 后,代入 \mathbf{v} = \lambda \mathbf{v} 并解线性方程组,可以找到对应的特征向量 \mathbf{v}

示例

假设有矩阵 A

A = \begin{bmatrix} 4 & 1 \\ 2 & 3 \end{bmatrix}

  1. 计算特征值:

    \det \begin{bmatrix} 4 - \lambda & 1 \\ 2 & 3 - \lambda \end{bmatrix} = 0

    展开行列式并解方程,得到特征值。

  2. 代入特征值解出特征向量。

矩阵的特征方程求解步骤如下:

步骤 1:定义矩阵和特征值

设有一个 n \times n 的方阵 A,其特征值定义为满足方程:

A \mathbf{x} = \lambda \mathbf{x}

其中,\mathbf{x} 是特征向量,\lambda 是特征值。

步骤 2:构造特征方程

将方程 A \mathbf{x} = \lambda \mathbf{x} 改写为:

A \mathbf{x} - \lambda \mathbf{x} = 0

这可以进一步表示为:

(A - \lambda I) \mathbf{x} = 0

其中,I 是单位矩阵,\lambda 是特征值。

为了有非零解 \mathbf{x},必须有:

\text{det}(A - \lambda I) = 0

这是特征方程。

步骤 3:展开行列式

计算 \text{det}(A - \lambda I),这是一个关于 \lambda 的多项式。对于 n \times n 的矩阵,展开行列式得到一个 n 次多项式:

\text{det}(A - \lambda I) = p(\lambda)

其中,p(\lambda) 是关于 \lambda 的特征方程。这个多项式的根就是矩阵 A 的特征值。

步骤 4:求解特征值

解方程 p(\lambda) = 0,得到特征值 \lambda_1, \lambda_2, \dots, \lambda_n​。

举个例子

考虑一个 2 \times 2 的矩阵:

\begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix}

构造特征方程:

A - \lambda I = \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} - \lambda \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix} = \begin{pmatrix} 1 - \lambda & 2 \\ 3 & 4 - \lambda \end{pmatrix}

求行列式:

\text{det}(A - \lambda I) = \text{det} \begin{pmatrix} 1 - \lambda & 2 \\ 3 & 4 - \lambda \end{pmatrix} = (1 - \lambda)(4 - \lambda) - 2 \times 3= (1 - \lambda)(4 - \lambda) - 6 = \lambda^2 - 5\lambda - 2

解方程:

\lambda^2 - 5\lambda - 2 = 0

使用求根公式:

\lambda = \frac{-(-5) \pm \sqrt{(-5)^2 - 4(1)(-2)}}{2(1)} = \frac{5 \pm \sqrt{25 + 8}}{2} = \frac{5 \pm \sqrt{33}}{2}

因此,特征值为:

\lambda_1 = \frac{5 + \sqrt{33}}{2}, \quad \lambda_2 = \frac{5 - \sqrt{33}}{2}

这是矩阵 A 的特征值计算过程。
 

使用求根公式来解二次方程的过程是基于二次方程的标准形式和求解方法。二次方程的标准形式为:

ax^2 + bx + c = 0

其中,a、b、c 是常数,且 a ≠ 0。

求根公式的推导

二次方程的求根公式是通过配方或者使用判别式来得到的。具体步骤如下:

步骤 1:标准化二次方程

首先将二次方程写成标准形式:

ax^2 + bx + c = 0

然后,除以 a(假设 a \neq 0):

x^2 + \frac{b}{a}x + \frac{c}{a} = 0

步骤 2:完成平方式

接下来,我们需要通过配方来将方程转化为平方形式。首先,左边部分是一个完全平方式,因此我们将常数项移到右边:

x^2 + \frac{b}{a}x = -\frac{c}{a}

然后在等式两边加上 \left(\frac{b}{2a}\right)^2

\frac{b}{a}x + \left(\frac{b}{2a}\right)^2 = -\frac{c}{a} + \left(\frac{b}{2a}\right)^2

这时左边已经是一个完全平方式:

\left(x + \frac{b}{2a}\right)^2 = \frac{b^2}{4a^2} - \frac{c}{a}

简化右边:

\left(x + \frac{b}{2a}\right)^2 = \frac{b^2 - 4ac}{4a^2}

步骤 3:解出 x

对两边开平方:

x + \frac{b}{2a} = \pm \frac{\sqrt{b^2 - 4ac}}{2a}

最后,解出 x

x = -\frac{b}{2a} \pm \frac{\sqrt{b^2 - 4ac}}{2a}

这就是二次方程的求根公式:

x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}

特征值和特征向量的几何意义

特征向量指示矩阵变换作用下保持方向的“固有”方向,而特征值则表示这种“固有”方向的缩放程度。例如:

  • 数据降维:在主成分分析(PCA)中,我们选择数据协方差矩阵的特征向量(即主成分)来保留主要信息。
  • 图像压缩:在图像处理中的奇异值分解(SVD)中,我们可以通过保留矩阵的主要特征向量来减少数据维度。

Python 实现示例

以下代码使用 numpy 库来求矩阵的特征值和特征向量:

import numpy as np

# 定义矩阵 A
A = np.array([[4, 1], [2, 3]])

# 计算特征值和特征向量
eigenvalues, eigenvectors = np.linalg.eig(A)

print("特征值:", eigenvalues)
print("特征向量:\n", eigenvectors)

应用场景

  1. 主成分分析(PCA):用于数据降维和特征提取。
  2. 图像处理:特征值分解帮助从图像数据中提取信息。
  3. 稳定性分析:在物理学、工程学中,特征值可用于判断系统的稳定性(例如,控制系统的稳定性与特征值的正负相关)。
  4. 推荐系统:在矩阵分解中,特征值和特征向量帮助识别潜在的用户偏好模式。

特征值和特征向量提供了数据内在结构和变化方向的重要信息,因此在机器学习和数据分析中不可或缺。


奇异值分解 (SVD)

奇异值分解(Singular Value Decomposition, SVD)是一种在矩阵分解和数据分析中非常有用的工具,广泛应用于数据降维、噪声过滤、推荐系统、图像压缩等多个领域。

什么是奇异值分解?

对于任意一个 m \times n 的矩阵 A,可以将它分解为三个矩阵的乘积:

TA = U \Sigma V^T

其中:

  • U 是一个 m \times m 的正交矩阵,称为左奇异向量组成的矩阵。
  • \Sigma 是一个 m \times n 的对角矩阵,称为奇异值矩阵,其中的元素为非负实数,且按照降序排列。这些非零的对角元素就是矩阵 A 的奇异值。
  • V^T 是一个 n \times n 的正交矩阵,称为右奇异向量组成的矩阵。

奇异值分解的结构使得我们可以对矩阵 A 进行有效的压缩和分析。

假设我们有一个 A 矩阵:

 A = \begin{pmatrix} 1 & 2 \\ 3 & 4 \\ 5 & 6 \end{pmatrix}

步骤 1:计算 A^T AA A^T

为了计算 U\SigmaV,首先需要计算 A^T AA A^T,它们分别的特征值和特征向量会帮助我们求出奇异值和奇异向量。

  1. 计算 A^T A:

 A^T = \begin{pmatrix} 1 & 3 & 5 \\ 2 & 4 & 6 \end{pmatrix}

          然后计算:

 A^T A = \begin{pmatrix} 1 & 3 & 5 \\ 2 & 4 & 6 \end{pmatrix} \begin{pmatrix} 1 & 2 \\ 3 & 4 \\ 5 & 6 \end{pmatrix} = \begin{pmatrix} 35 & 44 \\ 44 & 56 \end{pmatrix}

  1. 计算 A A^T:

 A A^T = \begin{pmatrix} 1 & 2 \\ 3 & 4 \\ 5 & 6 \end{pmatrix} \begin{pmatrix} 1 & 3 & 5 \\ 2 & 4 & 6 \end{pmatrix} = \begin{pmatrix} 5 & 11 & 17 \\ 11 & 25 & 39 \\ 17 & 39 & 61 \end{pmatrix}​​

步骤 2:计算特征值和特征向量
  1. 计算 A^T A 的特征值和特征向量:

    • A^T A 的特征值即为矩阵 A 的奇异值的平方。
    • 特征向量对应着右奇异向量。
  2. 计算 A A^T 的特征值和特征向量:

    • A^T 的特征值也与矩阵 A 的奇异值相关。
    • 特征向量对应着左奇异向量。
步骤 3:求解奇异值和奇异向量

假设计算出的特征值和特征向量为:

  • 特征值(奇异值的平方):
    • 7.7224 和 0.2776
  • 奇异值(取平方根):
    • \sigma_1 = \sqrt{7.7224} \approx 2.78
    • \sigma_2 = \sqrt{0.2776} \approx 0.53

然后,得到右奇异向量 V 和左奇异向量 U(通过对 A^T AA A^T 的特征向量进行标准化得到)。

步骤 4:构造矩阵 U\SigmaV
  1. 左奇异向量矩阵 U: U 的列由 A A^T 的特征向量组成。假设计算出以下特征向量:

    U = \begin{pmatrix} -0.2298 & 0.8835 & 0.4082 \\ -0.5247 & 0.2406 & -0.8189 \\ -0.8189 & -0.4016 & 0.4082 \end{pmatrix}
  2. 奇异值矩阵 \Sigma:

    \Sigma = \begin{pmatrix} 2.78 & 0 \\ 0 & 0.53 \\ 0 & 0 \end{pmatrix}
  3. 右奇异向量矩阵 V: V 的列由 A^T A 的特征向量组成。假设计算出以下特征向量:

    V = \begin{pmatrix} -0.4046 & 0.9147 \\ -0.9147 & -0.4046 \end{pmatrix}
步骤 5:重构矩阵 A

         通过 U\Sigma V^T,我们可以验证分解的正确性,恢复原矩阵 A

总结

奇异值分解的关键步骤包括:

  • 计算 A^T AA A^T
  • 求解它们的特征值和特征向量。
  • 奇异值是特征值的平方根,右奇异向量来自 A^T A 的特征向量,左奇异向量来自 A A^T 的特征向量。
  • 通过这些步骤,我们可以得到 U\SigmaV 矩阵,从而得到矩阵 A 的奇异值分解。

这个过程在实际应用中可以使用数值计算方法(如通过SVD算法的库函数)来计算。

SVD 的计算方法

  1. 计算矩阵的特征值和特征向量:我们可以通过 A A^TA^T A 的特征值和特征向量来构造 UV 矩阵。
  2. 构造奇异值矩阵:特征值的平方根便是奇异值,将这些奇异值排列在 \Sigma 矩阵的对角线上。

SVD 的几何意义

  • 矩阵 A 的奇异值表示的是矩阵在不同方向上的拉伸或缩放程度。
  • 奇异值较大的方向表示数据中的主要模式,而较小的奇异值方向则表示噪声或不重要的模式。因此,在数据降维中,我们可以保留最大的奇异值所对应的分量,从而获得矩阵的低秩近似。

SVD 的应用

  1. 数据降维:在主成分分析(PCA)中,我们可以使用 SVD 提取出数据的主成分,从而减少数据维度。
  2. 图像压缩:SVD 可以用于对图像进行压缩,通过保留最大的奇异值所对应的主成分来保持图像的大部分信息。
  3. 推荐系统:在协同过滤推荐系统中,SVD 用于用户和物品的隐式特征分解,可以帮助识别用户偏好。
  4. 噪声去除:通过丢弃小奇异值分量,我们可以从数据中去除噪声,提取出主要模式。

Python 示例

以下代码展示了如何使用 NumPy 进行奇异值分解:

import numpy as np

# 定义矩阵 A
A = np.array([[3, 1, 1], [-1, 3, 1]])

# 进行奇异值分解
U, S, Vt = np.linalg.svd(A)

# SVD 分解结果
print("U 矩阵:\n", U)
print("奇异值(对角矩阵的对角元素):\n", S)
print("V 转置矩阵:\n", Vt)

# 重构矩阵 A(通过 U * S * Vt)
S_matrix = np.zeros((U.shape[0], Vt.shape[0]))
np.fill_diagonal(S_matrix, S)
A_reconstructed = U @ S_matrix @ Vt
print("重构后的矩阵 A:\n", A_reconstructed)

应用示例:图像压缩

在图像压缩中,我们可以通过 SVD 提取最重要的奇异值分量来降低数据量。例如,若图像被表示为矩阵,SVD 分解后,保留最大的奇异值对应的前几列,可以保留图像的主要特征,同时去除冗余信息。

总结

奇异值分解提供了一种强大的方法来分析数据的主成分结构,有助于降维、数据压缩和模式识别。在实际应用中,SVD 尤其在高维数据处理中被广泛使用,比如文本数据、图像数据和推荐系统等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/914169.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

向量数据库PGVECTOR安装

文章目录 前提向量数据库介绍PGVECTOR安装1、pgvector下载2、编译安装3、创建vector扩展 前提 已经安装好了pg14版本。 其他版本也可以。 pg安装教程:https://blog.csdn.net/yushaoyyds/article/details/138855306?spm1001.2014.3001.5502 向量数据库介绍 向量数…

头歌网络安全(11.12)

头歌禁止复制解决 必须先下篡改猴!!!! 头歌复制助手 Educoder Copy Helperhttps://scriptcat.org/zh-CN/script-show-page/1860 Java生成验证码 第1关:使用Servlet生成验证码 任务描述 本关任务:使用se…

技术栈1:nginx基础入门

目录 1.nginx概述 2.正向代理与反向代理 3.负载均衡 4.动静分离 5.nginx反向代理配置 1.nginx概述 Nginx (engine x)是一个高性能的HTTP和反向代理Web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔赛索耶夫为俄罗斯访问量第二的Rambler.ru站点开发…

自建CDN是否适合您的企业?

在信息化加速发展的今天,CDN(内容分发网络)对于优化内容传输速度、提升用户体验的重要性已不容忽视。企业在选择CDN方案时,常常面临两个选择:自建CDN或租用CDN服务。自建CDN让企业拥有高度的自主权和灵活性&#xff0c…

aws xray通过设置采样规则对请求进行过滤

参考资料 https://github.com/aws/aws-xray-sdk-pythonpython api reference,https://docs.aws.amazon.com/xray-sdk-for-python/latest/reference/node api reference,https://docs.aws.amazon.com/xray-sdk-for-nodejs/latest/reference/ 初始化环境…

特色3D打印stm32迷你8轴双核心主板

我自己设计的3D打印机主板 1. 这是一块迷你的8轴主板, 主板尺寸为100mm*75mm, 使用一个8cm静音风扇散热足够了2. 这是一个带有保护的板子, 驱动上的gpio具有过压保护功能, 能够直接抗住24V的冲击, 意味着一个驱动炸了, 板子不烧, 并且其他的驱动也没事, 主板支持自动关机3. 8…

无人机动力测试台如何快速外接第三方传感器

前言 动力测试台对于测试动力系统的拉力、扭矩、RPM 和效率至关重要。将传感器集成到您的测试中增加了另一层优化,可以将您的性能提升到一个新的水平。 在无人驾驶行业中,有充分的证据表明,从外部传感器收集数据可能具有挑战性。为了解决这…

Autosar CP Network Management模块规范导读

Network Management模块的主要功能 网络管理适配:作为通信管理器和总线特定网络管理模块之间的适配层,实现不同总线网络管理功能的统一接口,确保系统中各种网络的协同工作。协调功能 网络协调关闭:使用协调算法协调多个网络的关闭,确保它们在合适的时间同步进入睡眠模式,…

数据库系统概论(期末复习版)

(一)绪论 数据(Data):是数据库中存储的基本对象 数据的定义:描述事物的符号记录 数据的种类:文字、图形、图象、声音等 数据的特点:数据与其语义是不可分的 数据库(Database,简称DB):是长期…

【Linux】进程池实现指南:掌控并发编程的核心

文章目录 1.为什么要有进程池2.进程池的工作原理2.1 进程池的工作流程 3. 进程池的实现(重点)3.1 Channel类3.2 ProcessPool类3.2.1 创建子进程3.2.2 杀死所有进程3.2.3 其他功能 3.3 控制进程池 4. 完整代码5. 总结 🏠 大家好,我…

专业140+总分400+南京大学851信号与系统考研经验南大电子信息通信工程集成电路,真题,大纲,参考书。

经历一年的备战,顺利上岸南大,专业课851信号与系统140,总分400,数学二没有考的很好,比专业课低不少,有点遗憾,英语和政治正常发挥,总结一下自己复习经验,希望大家可以从中…

【OpenEuler】配置虚拟ip

OpenEuler系统手动配置虚ip 介绍操作方法临时生效永久生效 验证 介绍 我们知道通过keepalived服务可以为linux服务器设置虚拟ip,但是有些特殊场景下若无法安装部署keepalived服务,则需要通过手动设置的方式,配置服务器的虚拟ip。 本方案提供…

vue-echarts 动态x轴字段,可选多个公司数据,根据选择的条件动态生成echarts柱形图(或者折线图)

需求&#xff1a;月份、 公司 、显示字段、柱形图&#xff08;折线图&#xff09;&#xff0c;都为动态可选的。 &#xff08;此例子&#xff1a;模拟数据都为随机数&#xff0c;所以每次截图值都会不同&#xff09; &#xff08;Vue3 echarts 5.4.2版本&#xff09; <te…

算法每日双题精讲——滑动窗口(最大连续1的个数 III,将 x 减到 0 的最小操作数)

&#x1f31f;快来参与讨论&#x1f4ac;&#xff0c;点赞&#x1f44d;、收藏⭐、分享&#x1f4e4;&#xff0c;共创活力社区。 &#x1f31f; 别再犹豫了&#xff01;快来订阅我们的算法每日双题精讲专栏&#xff0c;一起踏上算法学习的精彩之旅吧&#xff01;&#x1f4aa;…

重磅!通过国密局技术评审的112家密评机构公示

2024年10月28日&#xff0c;国家密码管理局官方网站发布《商用密码检测机构&#xff08;商用密码应用安全性评估业务&#xff09;资质申请通过技术评审的机构名单公示》&#xff0c;依据《商用密码管理条例》、《商用密码检测机构管理办法》有关规定&#xff0c;国家密码管理局…

【Windows】CMD命令学习——系统命令

CMD&#xff08;命令提示符&#xff09;是Windows操作系统中的一个命令行解释器&#xff0c;允许用户通过输入命令来执行各种系统操作。 系统命令 systeminfo - 显示计算机的详细配置信息。 tasklist - 显示当前正在运行的进程列表。 taskkill - 终止正在运行的进程。例如&am…

题目:Wangzyy的卡牌游戏

登录 - XYOJ 思路&#xff1a; 使用动态规划&#xff0c;设dp[n]表示当前数字之和模三等于0的组合数。 状态转移方程&#xff1a;因为是模三&#xff0c;所以和的可能就只有0、1、2。等号右边的f和dp都表示当前一轮模三等于k的组合数。以第一行为例&#xff1a;等号右边表示 j转…

会议直击|美格智能受邀出席第三届无锡智能网联汽车生态大会,共筑汽车产业新质生产力

11月10日&#xff0c;2024世界物联网博览会分论坛——第三届无锡智能网联汽车生态大会在无锡举行&#xff0c;美格智能CEO杜国彬受邀出席&#xff0c;并参与“中央域控&#xff1a;重塑汽车智能架构的未来”主题圆桌论坛讨论&#xff0c;与行业伙伴共同探讨智能网联汽车产业领域…

使用HTML、CSS和JavaScript创建动态雪人和雪花效果

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 ✨特色专栏&#xff1a…