网站首页 > 技术教程 正文
线性代数在机器学习(ML)和深度学习(DL)中是必不可少的。即使我们努力为许多理论创建精确的机器学习模型,线性代数仍然是这些研究中的重要工具。
正交矩阵
如果方形矩阵a的所有列/行都是正交的,那么a就是一个正交矩阵
如果Q由q1到qn列组成,它们彼此正交,如果i = j,内积? q?,q? ?等于1,否则为0。因此,Q?Q= I。方程式Q?= Q-1非常重要。求逆通常是困难的,但对于正交矩阵就不是这样了。因此,如果我们能将一个矩阵分解成正交矩阵,那将是一个好消息。对于对称矩阵,我们可以分解它为Q个Λ Q ?,其中Q是一个正交矩阵,Λ是对角矩阵。
奇异和非奇异矩阵
让我们回顾一下奇异n×n矩阵A的一些属性:
- 它不可逆转。
- 它的行列式等于零。
- 列/行是线性相关的。
- 它的pivots数小于n,也就是说,在行消去之后,它的变量至少有一行是0。
- 它的特征值等于零。根据特征值定义,如果特征值λ为零,则det(A) = 0,因此,它是奇异的。(我们稍后会讨论特征值。)
让我们总结一下奇异和非奇异n×n矩阵之间的区别。
基(Basis)
向量空间的一组基是一系列张成这个空间的线性无关的向量。不同的基可以有不同的向量。但是所有的基都有相同数量的向量。一个子空间的维数等于张成这个子空间的线性无关向量的个数。在执行行消去之后,所有的pivot行/列都可以用来构成a的行/列空间的一组基。Ax=0的n - r特解可以构成n (a)的零空间的一组基。
消去,置换,旋转,反射矩阵
在线性代数中,我们可以使用矩阵乘法来定义一些矩阵运算。行消去可以被视为将矩阵与消去矩阵相乘。
置换矩阵,交换矩阵中的行。对于每个行和列,它只允许一个元素等于1,其他元素必须为0。
旋转矩阵的形式为
反射矩阵的形式为
这就产生了沿u的反射。
所有置换,旋转,反射矩阵都是正交矩阵。它的逆矩阵等于它的转置,P -1 =P?。
LU分解
如所讨论的,高斯消元中的步骤可以表示为矩阵乘法。例如,在下面的3×3矩阵A中,我们使用矩阵E 21来使用第1行消去第2行的前导元素。它的结果等于U,一个上三角矩阵我们用回代来计算结果。
E??和它们的组合E都是下三角矩阵。我们将E形成L(L = E -1)。L也是下三角矩阵。LU分解就是把A分解成下三角矩阵L和上三角矩阵U。
例,
或者,有时我们希望L和U的对角元素都是1。
其中D是一个对角矩阵,它的对角元素包含了pivots。
这是我们第一个矩阵分解的例子。它们在线性代数中起着非常重要的作用。例如,高斯消元可以被视为矩阵分解过程。
矩阵乘法表示
为了计算矩阵乘法(C ^ = AB),我们计算C元素??作为A的rowiB的column?的点积。
AB的乘法结果的列i是A与相应的列i (B)的乘积。
或者,乘法结果的第i行是A的第i行与B的乘法。
或者,乘法的结果是A中的第i列和B中的第i行使用外积的乘积的和。
以下是一个示例,右下方的每个项都在rank 1。
回想起来,我们也可以将矩阵和向量的乘法视为
投影
在下图中,我们将向量b投影到a上。 投影向量p的长度x等于内积a?b。 并且p等于
e垂直于p并将p和b连接在一起。在一种情况下,投影试图最小化这个可以看作误差向量的向量e。现在来看看一个更难的问题。对于一个多维空间,我们如何将一个向量投影到a的列空间上(空间由Ax张成)?让我们用x?和A(a?)的基来表示p
我们将用投影矩阵P来建模这个投影
其中P和p可以从A算出
证明
因为p正交于e,基中的每个向量也垂直于e。我们可以将这些条件(如下图所示)改写成矩阵形式。
我们可以解这个等式
注意:我们可以解逆(A?A)-1,其中A(A?A)-1A?变为A A -1(A?)-1A?,即I。因此,p = b。这是错误的,因为只有当A是可逆的时,(A?A)-1等于A -1(A?)-1。即使对于非方形矩阵,A也是不可逆的。
此外,P = P2= P?——因为列空间上的投影向量,其投影等于本身。
最小二乘方误差
通常,不可能找到Ax = b的精确解。相反,我们希望找到最适合数据的x,例如,我们希望最小二乘方误差
上面的等式与我们的预测具有相同的目标。Recall
x?将实现我们的解
因此,我们可以使用上面的等式来计算x(使用b和A)。然而,在机器学习中,数据是有噪声的。 测量或观察到的b具有噪声。
但是,如果我们知道b是如何分布的,以及成分是如何相关的,我们可以将这些信息转换为对x进行更好的估计。协方差和方差定义为
方差衡量属性(变量)如何变化,而协方差是两个属性如何变化的方式。下面的左图是一般协方差矩阵。如果所有属性彼此无关,则所有非对角元素将为零,如下面的中间图所示。当这些数据也标准化时,就会出现右图。
配备b的协方差矩阵V,我们可以解决x
在前面的等式中,对于每个维度(属性),最小二乘方误差被相等地计数。用新的等式,V - 1项标准化数据。换句话说,方差较小的特定维度上的误差对加权最小平方误差的权重更大,而该维度上的误差的权重更大。新方程将为x提供更好的值。此外,计算出的x的方差将减小到
让我们再次仔细检查这个等式。
如果V = I,它会回到上一个等式。即,当所有变量都标准化且不相关时,两个方程都是相同的。
Gram-Schmidt过程
如前所述,我们喜欢正交矩阵。对于给定的矩阵a,列向量不太可能是正交的。Gram-Schmidt对角化帮助我们找到一组基它张成a的相同列空间。
假设我们有一个矩阵A由a,b和c列组成。我们如何找到张成A的相同列空间的正交向量q 1,q 2和q 3 。
这样我们就可以将A分解成A = QR。 我们从q 1'作为a。 然后q 2'等于b减去沿q 1'的b的投影。 接下来,q 3等于c减去沿q 1和q 2的c的投影。 简而言之,我们尝试在形成正交向量的前一个方向上取出投影部分。
完成后,我们将q 1',q 2'和q 3' 归一化,形成单位长度q 1,q 2和q 3。我们可以将a,b,c重写为
因此,A可以分解成QR,R等于
矩阵中的二次型方程
二次方程可以写成:
二次方程的矩阵形式是:
对于三个变量:
这种表示很重要,因为机器学习(ML)中的误差,如均方误差,通常表示为二次方程。
行列式
3×3矩阵的行列式是:
该定义可以扩展为递归地计算n×n矩阵的行列式。或者,它可以在视觉上计算为:
属性
如果A的行列式的绝对值大于1,则Ax会扩展输出空间。如果它介于0和1之间,则会缩小空间。这对于理解系统的稳定性非常重要。
范数
深度学习使用范数来计算误差或执行正则化。这里有不同类型的范数。
L1范数(曼哈顿距离):
L2范数
LP-范数
Max-norm
Frobenius范数
比较L1和L2范数
与l1 -范数相比,l2 -范数对大值误差模型的变化更为显著。此外,L1-norm增加了模型权重的稀疏性。这是许多机器学习问题所需要的。然而,在L2范数中,梯度变化在0附近更平滑。因此,随着梯度的逐渐变化,l2 -范数训练更加稳定。这使得L2-norm在一般情况下更受欢迎。
矩阵范数
矩阵的范数是任何向量x的最大增长因子。
这与约束x具有单位长度相同。
规范可以计算为:
- 如果矩阵是正定的,则??范数是A的最大特征值。
- 如果矩阵是对称的,我们取特征值的绝对值并选择最大值。
- 否则,它是A的最大奇异值。即A?A的最大特征值的平方根。
瑞利熵(Rayleigh quotient)
找到A的矩阵范数与查找下面瑞利熵的最大值相同。
让我们用内积重写瑞利熵。
我们用上面的Qx代替x。
因此Rayleigh熵是A?A的特征值的加权平均值。由于加权平均值小于或等于其最大值,
我们经常按降序重新调整λ。 因此λ1保持最大的特征值。 因此,A的范数是A?A的最大特征值的根(A的奇异值σ1)。
对于对称矩阵S,
条件数
在线性代数中,我们使用条件数来跟踪输出对输入的误差的敏感程度。消去方法的准确性由条件数反映
迹
迹是A的对角线元素的总和。它可用于验证特征值。
属性
相似矩阵
如果,两个矩阵A和B相似(A ~ B)
对于任意可逆矩阵P,给定A和B, P有很多解,从概念上讲,在线性变换的背景下,P是由x到x’的基变换的矩阵。。
如果我们对x应用变换A,则x'基上的相应变换是P-1AP。物理定律不应随着参考系(基)的变化而改变。
相似矩阵:
- 具有相同的特征值。
- 相同的行列式
- 相同的秩
- 单数或非单数。
如果A是非奇异的,矩阵可以对角化为对角矩阵Λ(矩阵中的所有非对角元素都是零)。
这和矩阵相似度的定义是一样的。因此,A相似于对角矩阵Λ。在实践中,如果这个矩阵像Λ一样简单,我们可以很容易地找到原始矩阵的特征值或行列式。
Jordan形矩阵
Jordan block可以有很多大小, 但是它的对角元素包含一个特征值,而特征值右边的元素必须是一个。
我们可以将矩阵分解为Jordan形,我们使用它的特征值来创建不同大小的Jordan block。
猜你喜欢
- 2024-10-16 机器学习中应用的范数 机器学习中常见的超参照数调整
- 2024-10-16 有限元求解:结构应力法如何实现的网格不敏感呢?
- 2024-10-16 论利用粒子群算法求解测距定位方程
- 2024-10-16 推荐系统多样性——DPP篇 推荐系统的模型
- 2024-10-16 线性代数主要可以从几个角度去理解: (1)线性方程...
- 2024-10-16 numpy入门 day05 numpy eig
- 2024-10-16 python多进程矩阵计算的应用示例 python多进程队列
- 2024-10-16 计量课后5.4(大数据202230906137 HSl)
- 2024-10-16 TensorFlow 2:使用自编码器进行插值
- 2024-10-16 Matlab矩阵的简单操作 matlab如何进行矩阵运算
你 发表评论:
欢迎- 05-05从virsh当中学习QEMU/KVM启动命令
- 05-05Win10 BCD文件损坏怎么修复?(bcd文件损坏win7)
- 05-05亚马逊春节假期期间的店铺管理设置
- 05-051分钟总结常用k8s常用诊断教程(k8s常见故障)
- 05-05VisiPics重复图片查找软件中文汉化教程
- 05-05微服务的发布实现方式1灰度实现(微服务实现原理)
- 05-05轻松掌握Java多线程 - 第二章:线程的生命周期
- 05-05德拉诺之王邪DK报告:PVE向小测试及分析
- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)