IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 动手学深度学习——线性代数 -> 正文阅读

[人工智能]动手学深度学习——线性代数

标量

简单操作
c = a + b c = a ? b c = s i n a c = a + b \\ c = a \cdot b \\ c = sina c=a+bc=a?bc=sina
长度
∣ a ∣ = { a i f a > 0 ? a o t h e r w i s e ∣ a + b ∣ ≤ ∣ a ∣ + ∣ b ∣ ∣ a ? b ∣ = ∣ a ∣ ? ∣ b ∣ |a| = \left \{ \begin{aligned} a \quad if a>0 \\ -a \quad otherwise\end{aligned} \right. \\ |a+b| \leq |a| + |b| \\ |a \cdot b| = |a|\cdot|b| a={aifa>0?aotherwise?a+ba+ba?b=a?b

向量

简单操作
c = a + b w h e r e c i = a i + b i c = α ? b w h e r e c i = α b i c = s i n a w h e r e c i = sin ? a i c = a + b \quad where \quad c_i = a_i + b_i \\ c = \alpha \cdot b \quad where \quad c_i = \alpha b_i\\ c = sina \quad where \quad c_i = \sin a_i c=a+bwhereci?=ai?+bi?c=α?bwhereci?=αbi?c=sinawhereci?=sinai?
长度
∣ ∣ a ∣ ∣ = [ ∑ i = 1 m a i 2 ] 1 2 ∣ ∣ a ∣ ∣ ≥ 0 f o r a l l a ∣ ∣ a + b ∣ ∣ ≤ ∣ ∣ a ∣ ∣ + ∣ ∣ b ∣ ∣ ∣ ∣ a ? b ∣ ∣ = ∣ a ∣ ? ∣ ∣ b ∣ ∣ ||a|| = [\sum_{i=1}^m a_i^2]^{1 \over 2} \\ ||a|| \geq 0 \quad for \quad all \quad a \\ ||a+b|| \leq ||a|| + ||b|| \\ ||a \cdot b|| = |a|\cdot||b|| a=[i=1m?ai2?]21?a0forallaa+ba+ba?b=a?b
点乘
a T b = ∑ i a i b i a^Tb = \sum_i a_ib_i aTb=i?ai?bi?
正交
a T b = ∑ i a i b i = 0 a^Tb=\sum_ia_ib_i=0 aTb=i?ai?bi?=0

矩阵

简单操作
C = A + B w h e r e C i j = A i j + B i j C = α ? B w h e r e C i j = α B i j C = s i n A w h e r e C i j = sin ? A i j C = A + B \quad where \quad C_{ij} = A_{ij}+B_{ij} \\ C = \alpha \cdot B \quad where \quad C_{ij}= \alpha B_{ij} \\ C = sinA \quad where \quad C_{ij} = \sin A_{ij} C=A+BwhereCij?=Aij?+Bij?C=α?BwhereCij?=αBij?C=sinAwhereCij?=sinAij?
乘法(矩阵乘以向量)
c = A b w h e r e c i = ∑ j A i j b j c = Ab \quad where \quad c_i = \sum_jA_{ij}b_j c=Abwhereci?=j?Aij?bj?
乘法(矩阵乘以矩阵)
C = A B w h e r e C i k = ∑ j A i j B j k C = AB \quad where \quad C_{ik} = \sum_jA_{ij}B_{jk} C=ABwhereCik?=j?Aij?Bjk?
范数
c = A ? b h e n c e ∣ ∣ c ∣ ∣ ≤ ∣ ∣ A ∣ ∣ ? ∣ ∣ b ∣ ∣ c = A\cdot b \quad hence \quad ||c|| \leq ||A|| \cdot ||b|| c=A?bhencecA?b
取决于如何衡量b和c的长度
常见范数:
1.矩阵范数:最小的满足的上面公式的值
2.Frobenius范数
∣ ∣ A ∣ ∣ F r o b = [ ∑ i j A i j 2 ] 1 2 ||A||_{Frob} = [\sum_{ij}A_{ij}^2]^{1 \over 2} AFrob?=[ij?Aij2?]21?

特殊矩阵

对称和反对称 A i j = A j i a n d A i j = ? A j i A_{ij} = A_{ji} \quad and \quad A_{ij} = -A_{ji} Aij?=Aji?andAij?=?Aji?
正定
∣ ∣ x ∣ ∣ 2 = x T x ≥ 0 g e n e r a l i z e s t o x T A x ≥ 0 ||x||^2 = x^Tx \geq 0 \quad generalizes \quad to \quad x^TAx \geq0 x2=xTx0generalizestoxTAx0
正交矩阵
1.所有行都相互正交
2.所有行都有单位长度 U w i t h ∑ j U i j U k j = δ i k U \quad with \sum_jU_{ij}U_{kj} = \delta_{ik} Uwithj?Uij?Ukj?=δik?
3.可以写成 U U T = 1 UU^T = 1 UUT=1
置换矩阵
P w h e r e P i j = 1 i f a n d o n l y i f j = π ( i ) P \quad where \quad P_{ij} =1 \quad if \quad and \quad only \quad if \quad j= \pi(i) PwherePij?=1ifandonlyifj=π(i)
置换矩阵是正交矩阵

  • 特征向量和特征值
  • 不被矩阵改变方向的向量
  • 对称矩阵总是可以找到特征向量

代码

标量由只有一个元素的张量表示

import torch 
x = torch.tensor([3.0])
y = torch.tensor([2.0])

x + y,x * y, x / y, x**y 

可以将向量视为标量组成的列表

x = torch.arrange(4)
x

通过张量的索引来访问任一元素

x[3]

访问张量的长度

len(x)

只有一个轴的张量,形状只有一个元素

x.shape

通过制定两个分量m和n来创建一个形状 m × n m \times n m×n的矩阵

A = torch.arange(20).reshape(5,4)

矩阵的转置

A.T

对称矩阵A等于其转置: A = A T A=A^T A=AT

B = torch.tensor([[1,2,3],[2,0,4],[3,4,5]])
B == B.T

就像向量是标量的推广,矩阵是向量的推广一样,我们可以构建具有更多轴的数据结构

x = torch.arange(24).reshape(2,3,4)
x

给定任何相同形状的任何两个张量,任何按元素二元运算的结果都将是相同形状的张量

A = torch.arange(20,dtype=torch.float32).reshape(5,4)
B = A.clone()
A, A + B

两个矩阵的按元素乘法成为哈达玛积

A*B

表示任何形状张量的元素和

A.sum()

指定求和汇总张量的轴

A_sum_axis0 = A.sum(axis=0)
A_sum_axis1 = A.sum(axis=1)
A_sum_axis2 = A.sum(axis =[0,1])

求均值

A.mean(), A.sum()/A.numel()
A.mean(axis=0),A.sum(axis=0)/A.shape[0]

计算总和或均值时保持轴数不变

sum_A =A.sum(axis=1,keedims=True)

通过广播将A处以sum_A

A/sum_A

某个轴计算A元素的累积总和

A.cumsum(axis=0)

点积是相同位置的按元素乘积的和

x = torch.tensor([0,1,2,3])
y = torch.ones(4,dtype= torch.float32)
torch.dot(x,y)

我们可以通过执行按元素乘法,然后进行求和来表示两个向量的点积

torch.sum(x*y)

矩阵向量积 A x Ax Ax是一个长度为m的列向量,其 i t h i^{th} ith元素是点积 a i T x a_i^Tx aiT?x

torch.mv(A,x)

我们可以将矩阵-矩阵乘法AB看做是简单的执行m次矩阵-向量积,并将结果拼接在一起,形成一个 n × m 矩 阵 n \times m矩阵 n×m

torch.mm(A,B)

L2范数是向量元素平方和的平方根

torch.norm(u)

L1范数表示向量元素的绝对值之和

torch.abs(u).sum()

矩阵的佛罗贝尼乌斯范数(Frobenius norm)是矩阵元素的平方和的平方根

torch.norm(torch.ones((4,9)))
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-30 12:03:49  更:2021-08-30 12:04:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 17:57:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码