pytorch 深度学习之线性代数
标量
包含一个数值的叫标量(scalar)。标量由只有一个元素的张量表示:
向量
将向量视为标量值组成的列表。 我们将这些标量值称为向量的元素(element)或分量(component)。通过一维张量处理向量。一般来说,张量可以具有任意长度,取决于机器的内存限制,可以使用下标来引用向量的任一元素。
长度,维度和形状
向量的长度通常称为向量的维度,可以通过调用 Python 的内置 len()函数来访问张量的长度。当用张量表示一个向量(只有一个轴)时,我们也可以通过.shape属性访问向量的长度。 形状(shape)是一个元素组,列出了张量沿每个轴的长度(维数)。 对于只有一个轴的张量,形状只有一个元素:
矩阵
正如向量将标量从零阶推广到一阶,矩阵将向量从一阶推广到二阶。
当我们交换矩阵的行和列时,结果称为矩阵的转置(transpose):
作为方阵的一种特殊类型,对称矩阵(symmetric matrix) 等于其转置:,定义一个对称矩阵:
张量
就像向量是标量的推广,矩阵是向量的推广一样,我们可以构建具有更多轴的数据结构。 张量为我们提供了描述具有任意数量轴的 n 维数组的通用方法:
张量算法的基本性质
给定具有相同形状的任意两个张量,任何按元素二元运算的结果都将是相同形状的张量:
将张量乘以或加上一个标量不会改变张量的形状,其中张量的每个元素都将与标量相加或相乘:
降维
计算张量元素的和:
默认情况下,调用求和函数会沿所有的轴降低张量的维度,使它变为一个标量。 我们还可以指定张量沿哪一个轴来通过求和降低维度。 以矩阵为例,为了通过求和所有行的元素来降维(轴0),我们可以在调用函数时指定 axis=0。 由于输入矩阵沿0轴降维以生成输出向量,因此输入轴0的维数在输出形状中消失:
指定 axis=1 将通过汇总所有列的元素降维(轴1)。因此,输入轴1的维数在输出形状中消失:
沿着行和列对矩阵求和,等价于对矩阵的所有元素进行求和:
调用 mean 函数可以求平均值:
有时在调用函数来计算总和或均值时保持轴数不变会很有用:
点积
给定两个向量:,它们的点积(dot product):,或者记为:,相同位置的按元素乘积的和::
矩阵-向量积
为矩阵 A 和向量 x 调用 torch.mv(A, x) 时,会执行矩阵-向量积。 注意,A 的列维数(沿轴1的长度)必须与 x 的维数(其长度)相同:
矩阵-矩阵乘法
假设有两个矩阵:,:
则计算结果 :
范数
一个向量的范数告诉我们一个向量有多大。 这里考虑的大小(size)概念不涉及维度,而是分量的大小。
在线性代数中,向量范数是将向量映射到标量的函数 。给定任意向量 ,向量范数要满足一些属性:
- 第一个性质:如果我们按常数因子 缩放向量的所有元素, 其范数也会按相同常数因子的绝对值缩放:
- 第二个性质:三角不等式:
- 第三个性质:范数必须是非负的:
- 最后一个性质要求范数最小为0,当且仅当向量全由0组成:
欧几里得距离是一个 范数:
范数,表示为向量元素的绝对值之和:
与 范数相比, 范数受异常值的影响较小。
范数和 范数都是更一般的范数的特例:
类似于向量的 范数,矩阵 的Frobenius范数(Frobenius norm)是矩阵元素平方和的平方根:
Frobenius 范数满足向量范数的所有性质,它就像是矩阵形向量的 范数。 调用以下函数将计算矩阵的 Frobenius 范数。
范数和目标
经常试图解决优化问题: 最大化分配给观测数据的概率; 最小化预测和真实观测之间的距离。目标,或许是深度学习算法最重要的组成部分(除了数据),通常被表达为范数。
__EOF__

本文链接:https://www.cnblogs.com/xiaojianliu/p/16152580.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)