易混淆的基本概念
标量:一个数字
向量:行数/列数
矩阵:二维数组
张量:一般指多维(0维张量为标量,1维张量为向量,2维张量为矩阵)
转向:沿主对角线折叠。
Numpy中定义矩阵的方法和换位的方法;
import numpy as npa = np.array([[1, 2, 3], [4, 5, 6]])a = a.reshape(3, 2)print(a)[[1 2] [3 4] [5 6]]复制代码基本算术关系
与高等数学中的矩阵乘法一致:
a = np.array([[1, 2], [3, 4]])b = np.array([[5, 6], [7, 8]])print(a * b)print(a.dot(b))print(np.dot(a, b))print(np.linalg.inv(a))# 星(*)[[ 5 12] [21 32]]# 点乘[[19 22] [43 50]]# 点乘[[19 22] [43 50]]# 逆运算[[-2. 1. ] [ 1.5 -0.5]]复制代码界限范数
范数是用来度量长度的函数。数学上,范数包括向量范数和矩阵范数。
向量范数
我们先讨论向量的范数。向量有方向和大小,这个大小用范数表示。
严格来说,范数是满足以下性质的任意函数:
当p=2时,范数(可以简化为)称为欧氏范数,距离可以计算出来。但是我们看到这里有一个平方根运算,所以为了去掉这个平方根,我们可能会找到范数的平方,也就是范数,这会减少一个开运算。在后面提到的损失函数中,范数和平方范数都提供了相同的优化目标,所以平方范数更常用,更容易计算,可以快速计算。
当p=1时,范数()是向量所有元素的绝对值之和。在机器学习领域,区分0和非0,范数优于范数。
当p=0时,范数实际上不是范数。大多数引用范数的地方都会强调它不是真范数,用来表示这个向量中有多少非零元素。然而,它实际上非常有用,并在机器学习的正则化和稀疏编码中有应用。举个例子说:判断用户名和密码是否正确,用户名和密码是两个向量,什么时候,登录成功,什么时候,用户名和密码有错误,什么时候,用户名和密码都错了。我们知道是这样的,希望以后看到相关内容的时候就知道了。
当P无限时,范数也称为无限范数和最大范数。表示向量中元素的最大绝对值。
矩阵范数
对于矩阵范数,我们就来说说Frobenius范数。简单来说就是矩阵中所有元素的平方和,还有其他定义方法,如下,其中共轭转置,tr是迹;表示的奇异值:
奇异值分解
我们熟悉的特征分解矩阵:奇异分解与之类似:矩阵的行和列的值为,正交矩阵,对角矩阵和正交矩阵,矩阵对角上的元素称为奇异值,其中非零奇异值为或的特征值的平方根;称为的左奇异向量是特征向量;的右奇异向量是特征向量。因为奇异矩阵是不能求逆的,而求逆是研究矩阵的一个非常好的方法,所以考虑下一个最好的方法,伪逆,它最接近矩阵求逆。把矩阵变成最舒服的形式去研究其他性质。伪逆把矩阵变成主对角线上有那么多行列的非零元素,矩阵中的其他元素都是零,这也是统计学中常见的方法,在机器学习中非常有用。
定义
对角矩阵:只有主对角线包含非零元素;
单位向量:具有单位范数的向量;
正交矢量:如果两个矢量都不为零,则夹角为90度;
正交性:范数为1的互正交性;
正交矩阵:行向量和列向量分别与标准正交;
特征分解:将矩阵分解为特征向量和特征值;
和特征向量:的和;
正定、半正定、负定:特征值均为正、非负、负。
摘要
线性代数的一大特点是“一大串”,知识体系统一,相互联系紧密,而且非常漂亮。它在深度学习中有重要的应用,我们应该学好它。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 ZLME@xxxxxxxx@hotmail.com 举报,一经查实,立刻删除。