《动手学深度学习》 线性代数、矩阵计算、自动求导
反向求导因为反向求导需要记住计算的中间结果,因此消耗资源多。正向求导。
·
线性代数基本
学习线性代数中的基本数学对象、算术和运算,并用数学符号和相应的代码来实现。
标量
- 简单操作
- c = a + b
- 长度:绝对值
向量
- 简单操作
- 长度
- 向量的每个元素平方求和在开根号

- 向量的每个元素平方求和在开根号
- 点乘
- 正交:向量垂直
矩阵
- 简单操作
- 乘法
矩阵乘法本质上是扭曲空间- 矩阵乘向量:行和列做内积
- 矩阵乘矩阵
- 范数
- 取决于如何衡量b和c的长度
- 常见范数
- 矩阵范数:最小的满足上面公式的值
- Frohenius 范数
- 特殊矩阵
- 对称和反对称
- 正定矩阵:乘以任意一个行向量和列向量,都为正
- 正交矩阵
- 所有行都相互正交
- 置换矩阵
- 特征向量和特征值
矩阵计算
标量导数
导数就是函数切线的斜率。
亚导数
- 将导数扩展到不可微的函数

梯度
- 将导数扩展到向量

- x,y都是标量,导数也是标量
- x是向量,y是标量,导数是行向量
- y是向量,x是标量,导数是同样的列向量。
- x是向量,y是向量,导数是矩阵

对列向量求导,得到一个行向量。
怎么理解呢?将函数看做一条等高线,在对应点处做一条切线,梯度就是垂直于等高线的方向,也就是正交于切线。梯度指向的一定是变化最大的方向,这是机器学习求解的核心思想。
向量链式法则
y=f(u),u=f(x) y = f(u),u = f(x) y=f(u),u=f(x)
-
标量链式法则

-
扩展到向量
- y,u是标量;x是向量

形状不变 - y是标量,x,u是向量

形状不变 - x,u,y都是向量

形状不变
- y,u是标量;x是向量
例题

自动求导
计算一个函数在指定值上的导数。
计算图
- 将代码分解成操作子
- 将计算表示成一个无环图

- 显式构造
- 先定义好公式,在代入值
- 隐式构造
- 记住计算的结果。
自动求导的两种模式
利用链式法则进行自动求导
反向累计总结

复杂度
-
反向求导

因为反向求导需要记住计算的中间结果,因此消耗资源多。 -
正向求导

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)