李沐动手学深度学习-学习笔记之预备知识

本文介绍了PyTorch中的基本数据操作,包括张量创建、运算符使用、广播机制和切片。深入讲解了线性代数概念,如向量、矩阵的运算,降维和范数。此外,详细阐述了自动微分的原理,包括梯度计算、链式法则和自动求导。内容涵盖张量的L1、L2范数及其在神经网络中的应用。
摘要由CSDN通过智能技术生成

目录

1.数据操作

1.1相关函数

1.2运算符

1.3广播机制

1.4切片

2.线性代数

2.1相关函数

2.2降维

2.3范数

3.自动微分

3.1梯度

3.2链式法则

 3.3自动求导

4.概率


1.数据操作

n维数组,也称为张量(tensor),张量表示由一个数值组成的数组,这个数组可能有多个维度。 具有一个轴的张量对应数学上的向量(vector); 具有两个轴的张量对应数学上的矩阵(matrix); (具有两个轴以上的张量没有特殊的数学名称)

1.1相关函数

先导入torch

import torch

1.创建向量  →  arange (初始值为从0开始+1的浮点数)

2.访问张量形状 → shape \ 访问张量中元素总数 → numel \ 改变张量形状 → reshape

 3.创建全0、全1、高斯分布的随机数张量 → zeros、ones、randn

1.2运算符

正常的矩阵按元素运算+、-、*、/        另外 ** 为求幂运算符

对张量中所有元素求和 → sum

1.3广播机制

广播机制就是通过适当复制元素来扩展一个或两个数组, 以便在转换之后,两个张量具有相同的形状

1.4切片

切片操作与python语法相同

X[-1]表示选择最后一个元素,X[1:3]表示选择第二个和第三个元素(  表示[1,3)  )

2.线性代数

2.1相关函数

1.访问张量长度 → len()       访问向量长度 → shanpe()

2.访问矩阵的转置  → .T

3.求张量的平均值 → mean()

4.点积 → .dot     点积是相同位置的按元素乘积的和:x⊤y=∑di=1xiyix⊤y=∑i=1dxiyi。

2.2降维

通过指定张量沿哪一个轴来通过求和降低维度。

函数:sum(axis=n) 表示沿n轴降维求和

当 keepidms=True,保持其二维或者三维的特性,(结果保持其原来维数),默认为 False,不保持其二维或者三维的特性.(结果不保持其原来维数)

如果我们想沿某个轴计算A元素的累积总和, 比如axis=0(按行计算),我们可以调用cumsum函数。 此函数不会沿任何轴降低输入张量的维度。

2.3范数

线性代数中最有用的一些运算符是范数(norm)。 非正式地说,一个向量的范数告诉我们一个向量有多大。 这里考虑的大小(size)概念不涉及维度,而是分量的大小。

L2范数(欧式距离)                     :

L1范数 (向量元素的绝对值之和):

 LP范数:                                       :

3.自动微分

3.1梯度

表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。

我们可以连结一个多元函数对其所有变量的偏导数,以得到该函数的梯度(gradient)向量。 具体而言,设函数f:Rn→Rf:Rn→R的输入是 一个nn维向量x=[x1,x2,…,xn]⊤x=[x1,x2,…,xn]⊤,并且输出是一个标量。 函数f(x)f(x)相对于xx的梯度是一个包含nn个偏导数的向量:

3.2链式法则

 3.3自动求导

废话不多说,直接上图

12

34

反向模式就是我们常说的BP算法,其基于的原理是链式法则。我们仅需要一个前向过程和反向过程就可以计算所有参数的导数或者梯度,这对于拥有大量训练参数的神经网络模型梯度的计算特别适合,所以常用的深度学习框架如Tensorflow其自动求导就是基于反向模式。

反向累积总结:

  1. 构造计算图。
  2. 前向:执行图,存储中间结果。
  3. 反向:从相反执行图去除不需要的枝干。

复杂度 

计算复杂度:O(n),n是操作子个数,通常正向和方向的代价类似。

内存复杂度:O(n),因为需要存储正向的所有中间结果。

4.概率

概率论为主,期望、方差、似然估计等等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值