《动手学深度学习笔记》1-基础知识
| 2022-4-9
0  |  阅读时长 0 分钟
日期
Apr 8, 2022 → Apr 9, 2022
Tags
深度学习
pytorch
🟧
声明:笔记均整理自《动手学深度学习》,仅摘录了个人认为比较重要的部分

基础概念

张量

张量(tensor),实际上就是n维数组,与numpy中的ndarray类似,但多一些重要功能:
  1. 支持GPU加速计算
  1. 支持自动微分

张量算法

降维
  1. 求和某一维度的所有元素
  1. 计算某一维度的平均值
非降维求和(保持维度/轴数)
  1. keepdims
  1. cumsum()

区别几种数学对象和乘法

  • 标量、向量、矩阵和张量是线性代数中的基本数学对象。
  • 向量泛化自标量,矩阵泛化自向量。
  • 标量、向量、矩阵和张量分别具有零、一、二和任意数量的轴。

范数

简单定义(来自百科)
范数(norm)是数学中的一种基本概念。在泛函分析 中,它定义在赋范线性空间 中,并满足一定的条件,即:①非负性;②齐次性 ;③三角不等式。它常常被用来度量某个向量空间(或矩阵)中的每个向量的长度或大小。
范式
范式
Frobenius范数

范数的目标:

  1. 解决最优化问题:最小化或最大化
  1. 衡量不同向量之间的距离

微积分

深度学习训练模型的本质:最小化一个损失函数
拟合模型的任务的两个关键问题:
  • 优化(optimization):用模型拟合观测数据的过程;
  • 泛化(generalization):数学原理和实践者的智慧,能够指导我们生成出有效性超出用于训练的数据集本身的模型。

梯度 & 相关规则

相对于的梯度:
微分多元函数常用规则,其中为n维向量
  1. 对于所有,都有
  1. 对于所有,都有
  1. 对于所有,都有
注意运用链式法则

自动微分

深度学习框架通过自动计算导数,即自动微分 (automatic differentiation)来加快求导。
实际中,根据我们设计的模型,系统会构建一个计算图 (computational graph), 来跟踪计算是哪些数据通过哪些操作组合起来产生输出。 自动微分使系统能够随后反向传播梯度。 这里,反向传播 (backpropagate)意味着跟踪整个计算图,填充关于每个参数的偏导数。

使用pytorch计算梯度

requires_grad表示这个tensor是否要求计算梯度

非标量变量的反向传播

单独计算批量中每个样本的偏导数之和

分离计算

一些小技巧

节省内存

一些操作会为新结果分配内存,但实际上使用时不想要不必要的内存分配
  1. 执行原地操作

数据预处理-获取特征值

pd.get_dummies()
Loading...
目录