当前位置: 首页 > news >正文

吴恩达机器学习笔记(3)—线性代数回顾(可选)

在本篇内容中,我们将复习线性代数的知识。

一、矩阵和向量

矩阵是指由数字组成矩形阵列,并写在方括号内,矩阵的维数即行数×列数,如下是4×2矩阵。

$R^{4 \times 2} = A = \begin{bmatrix} 1402 & 191 \\ 1371 & 821 \\ 949 & 1437 \\ 147 & 1448 \\ \end{bmatrix}$

矩阵元素 $A_{ij}$ 指第 i 行,第 j 列的元素。 比如:$ A_{11} = 1402,\ A_{12} = 191 $

矩阵提供了一种很好的方式,能够快速整理、索引和访问大量数据。

向量是一种特殊的矩阵,向量是只有一列的矩阵,课程中的向量一般都是列向量。如下是一个向量,也称为四维列向量(4×1)。

$R^{4} = y = \begin{bmatrix} 1402 \\ 1371 \\ 949 \\ 147 \\ \end{bmatrix}$

向量元素 $y_{i}$ 表示向量的第 i 个元素。比如:$ y_{1} = 1402,\ y_{2} = 1371 $

如下图,左图为从 1 开始索引向量,右图为从 0 开始索引向量,如无特别说明,一般用从 1 开始索引向量

二、加法和标量乘法

矩阵的加法,将矩阵的行列数相等的元素都逐个相加,只有相同维度的两个矩阵才能相加。如下:

$\begin{bmatrix} 1 & 0 \\ 2 & 5 \\ 3 & 1 \\ \end{bmatrix} + \begin{bmatrix} 4 & 0.5 \\ 2 & 5 \\ 0 & 1 \\ \end{bmatrix} = \begin{bmatrix} 5 & 0.5 \\ 4 & 10 \\ 3 & 2 \\ \end{bmatrix}$

矩阵和标量的乘法,需要将矩阵中的元素和标量都逐一相乘标量是只有大小、没有方向的量(与向量/矢量相对),标量通常是实数。如下:

$3 \times \begin{bmatrix} 1 & 0 \\ 2 & 5 \\ 3 & 1 \\ \end{bmatrix} = \begin{bmatrix} 3 & 0 \\ 6 & 15 \\ 9 & 3 \\ \end{bmatrix} = \begin{bmatrix} 1 & 0 \\ 2 & 5 \\ 3 & 1 \\ \end{bmatrix} \times 3$

三、矩阵向量乘法

矩阵向量乘法,$ A = m \times n$ 矩阵乘以 n 维向量( $x = n \times 1$ 矩阵),计算结果是 m 维向量( $y = m \times 1$ 矩阵),相乘的两个矩阵中的 n 是相等的。计算向量元素 $y_i$ 的过程,将矩阵 A 的第 i 行元素分别乘以向量 x 中的元素,并且相加起来。如下是 3x2 矩阵乘以 2x1 矩阵,计算结果是 3x1 矩阵。

$\begin{bmatrix} 1 & 3 \\ 4 & 0 \\ 2 & 1 \end{bmatrix} \times \begin{bmatrix} 1 \\ 5 \end{bmatrix} = \begin{bmatrix} 1 \times 1 + 3 \times 5 = 16 \\ 4 \times 1 + 0 \times 5 = 4 \\ 2 \times 1 + 1 \times 5 = 7 \end{bmatrix}$

假设有个预测房子价格的公式 $h_\theta \left( x \right)=-40 + 0.25x$ ,同时有四间房子的大小 x 的值分别为2104、1416、1534、852。矩阵向量乘法可以方便用来计算对应每个房子的价格。计算方式如下:

$\begin{bmatrix} 1 & 2104 \\ 1 & 1416 \\ 1 & 1534 \\ 1 & 852 \end{bmatrix} \times \begin{bmatrix} -40 \\ 0.25 \end{bmatrix} = \begin{bmatrix} 1 \times -40 + 2104 \times 0.25 \\ 1 \times -40 + 1416 \times 0.25 \\ 1 \times -40 + 1534 \times 0.25 \\ 1 \times -40 + 852 \times 0.25 \end{bmatrix}$

例子中的小技巧是在计算预测房价时,可通过一行代码而不是一堆代码得到计算结果,代码更简洁并且计算效率更高

四、矩阵乘法

矩阵乘法在线性回归中,可用于解决参数 $ \theta_{0} $ 和 $ \theta_{1} $ 的计算问题而不需要梯度下降法。

矩阵乘法,$ A = m \times n$ 矩阵乘以 $ B = n \times o $ 矩阵,计算结果是 $ C = m \times o $ 矩阵。计算矩阵 C 的第 i 列要用矩阵 A 和矩阵 B 的第 i 列相乘得到。能够相乘的矩阵必须满足第一个矩阵的列数必须等于第二个矩阵的行数的特征如下是 2x2 矩阵乘以 2x2 矩阵,计算结果是 2x2 矩阵。

$\begin{bmatrix} 1 & 3 \\ 2 & 5 \end{bmatrix} \times \begin{bmatrix} 0 & 1 \\ 3 & 2 \end{bmatrix} = \begin{bmatrix} 9 & 7 \\ 15 & 12 \end{bmatrix}$

$\begin{bmatrix} 1 & 3 \\ 2 & 5 \end{bmatrix} \times \begin{bmatrix} 0 \\ 3 \end{bmatrix} = \begin{bmatrix} 9 \\ 15 \end{bmatrix}$

$\begin{bmatrix} 1 & 3 \\ 2 & 5 \end{bmatrix} \times \begin{bmatrix} 1 \\ 2 \end{bmatrix} = \begin{bmatrix} 7 \\ 12 \end{bmatrix}$

如下,假设要预测4间房子的价格,只有3个假设函数。要想将这3个假设都用于这4间房屋,使用矩阵乘法来计算,是一种高效的方法。计算结果的第 i 列是第 i 个假设的预测价格。

五、矩阵乘法特征

矩阵的乘法不满足交换律$A \times B \ne B \times A$

$\begin{bmatrix} 1 & 1 \\ 0 & 0 \end{bmatrix} \times \begin{bmatrix} 0 & 0 \\ 2 & 0 \end{bmatrix} = \begin{bmatrix} 2 & 0 \\ 0 & 0 \end{bmatrix}$

$\begin{bmatrix} 0 & 0 \\ 2 & 0 \end{bmatrix} \times \begin{bmatrix} 1 & 1 \\ 0 & 0 \end{bmatrix} = \begin{bmatrix} 0 & 0 \\ 2 & 2 \end{bmatrix}$

矩阵的乘法满足结合律$A \times (B \times C) = (A \times B) \times C$

单位矩阵是一种特殊的矩阵,类比实数中的数字1,数字1可以看作是一个乘法单位,任意实数z乘以1都等于实数z。单位矩阵通常记作 I(或 $ I_{n \times n} $),从矩阵的左上角到右下角的对角线(称为主对角线)上的元素均为1以外全都为0。如下,1x1的单位矩阵就是数字1。

$\begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} \quad \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}$

单位矩阵的特性:$A_{m \times n} \times I_{n \times n} = I_{m \times m} \times A_{m \times n} = A_{m \times n} $

六、逆和转置

矩阵的逆:如矩阵 A 是一个 mxm 矩阵(方阵),如果有逆矩阵,则:$A \times A^{-1} = A^{-1} \times A = I $

并非所有矩阵都有逆矩阵,比如全为0的矩阵。不存在逆矩阵的矩阵也称为奇异矩阵或退化矩阵。

矩阵的转置:设 A 为 $m \times n$ 矩阵,第 i 行 j 列的元素是 $a(i,j)$,即:$A = a(i,j)$,A 的转置矩阵为 $n \times m $ 矩阵 B,满足 $B = a(j,i)$,即 $b(i,j) = a(j,i)$,(B的第 i 行第 j 列元素是A的第 j 行第 i 列元素),记 $A^T=B$ 或 $A'=B$。直观来看,将 A 的所有元素绕着一条从第1行第1列元素出发的右下方45度的射线作镜面翻转,即得到 A 的转置。如下:

$\begin{bmatrix} a & b \\ c & d \\ e & f \end{bmatrix} ^T = \begin{bmatrix} a & c & e \\ b & d & f \end{bmatrix}$

http://www.lryc.cn/news/593839.html

相关文章:

  • 17.TaskExecutor与ResourceManager交互
  • 微服务雪崩防护最佳实践之sentinel
  • ThinkSound:阿里开源首个“会思考”的音频生成模型——从“看图配音”到“听懂画面”的技术跃迁
  • SpringBoot 整合 Langchain4j 实现会话记忆存储深度解析
  • Node.js 与 Java 性能对比
  • 【Kafka】深入理解 Kafka MirrorMaker2 - 实战篇
  • Node.js v20.19.4 (LTS)升级
  • Python模块和包
  • 【PTA数据结构 | C语言版】邻接矩阵表示的图基本操作
  • simulink系列之模型接口表生成及自动连线脚本
  • LeetCode|Day19|14. 最长公共前缀|Python刷题笔记
  • CSS篇——第一章 六十五项关键技能(上篇)
  • Python高级数据类型:集合(Set)
  • 【通识】PCB文件
  • 【Linux服务器】-MySQL数据库参数调优
  • day11 ADC
  • 深入解析Linux文件重定向原理与dup2系统调用
  • MyBatis之缓存机制详解
  • 立创EDA中双层PCB叠层分析
  • 如何快速学习一门新技术
  • Java SE 讨论String类
  • QML 动画效果详解
  • Temperature 是在LLM中的每一层发挥作用,还是最后一层? LLM中的 Temperature 参数 是怎么计算的
  • 车载通信架构 --- DoIP协议通信
  • 2025年睿抗机器人开发者大赛CAIP-编程技能赛(省赛)-RoboCom 世界机器人开发者大赛-本科组
  • 2021 RoboCom 世界机器人开发者大赛-本科组(初赛)解题报告 | 珂学家
  • Lock4j 使用说明
  • 使用Python进行文件拷贝的方法
  • 地图定位与导航
  • Claude Code 最新详细安装教程