当前位置:网站首页>微积分 / 自动求导
微积分 / 自动求导
2022-07-30 05:38:00 【PBemmm】
微积分
导数和微分
大概概念还是记得一点
以下式子等价:

一些定律:
偏导数
这个在高数下学过,还算有些印象
以下符号等价

梯度

其实很简单,就是函数对各自变量分别求一阶偏导组成
某点梯度的方向是函数在这个点变化速率最大的方向,如果想要函数最快增加,则沿着梯度方向移动;如果想要函数最快减小,则沿着梯度的反方向移动。
链式法则
比较简单

总结
这里需要调用matplotlib绘图,暂时略过了,把大概概念过了一遍
自动微分
深度学习框架通过自动计算导数,即自动微分(automatic differentiation)来加快求导。 实际中,根据我们设计的模型,系统会构建一个计算图(computational graph), 来跟踪计算是哪些数据通过哪些操作组合起来产生输出。 自动微分使系统能够随后反向传播梯度。 这里,反向传播(backpropagate)意味着跟踪整个计算图,填充关于每个参数的偏导数。
黑体字不是很理解。。。什么叫反向传播梯度
看了看李沐的视频,有正向传播和反向传播两种,时间复杂度类似,但是反向传播空间复杂度为O(1),原理我还是晕,先跳过原理,大概把用法过一遍吧。。。。有空再补原理
讲的不错的一个博客https://blog.csdn.net/raelum/article/details/124557195
设置一个tensor的 requires_grad为True 会保存该Tensor是否记录所有操作用于计算梯度,可直接在创建tensor时指定属性requires_grad = True,也可以使用函数x.requires_grad_(True)。

大概就是设置requires_grad为True,然后写出y与x的关系,再调用backward()反向传播,.grad访问算出的梯度。再算其他式子的话需要先清除梯度。
非标量变量的反向传播
这里没看懂。。。
大概是说对于矩阵先求和在求导
分离计算

y.detach()使其不再是关于x*x的函数,而变成的一个常数,这里z对x求导结果便是u
python控制流梯度计算
def f(a):
b = a * 2
while b.norm() < 1000:
b = b * 2
if b.sum() > 0:
c = b
else:
c = 100 * b
return c
a = torch.randn(size=(), requires_grad=True)
d = f(a)
d.backward()
a.grad == d / a结果为True
对于这个函数,它是一个分段线性的,f(x) = k * x,所谓分段线性, 就是x值不同时k不同,但我们仍然可以通过backward进行求导,d / a 结果便是k,即函数的导
边栏推荐
- Error: listen EADDRINUSE: address already in use 127.0.0.1:3000
- "Hou Lang" programmer version, a speech dedicated to a new generation of programmers, He Bing's "Hou Lang" speech imitation show
- [GStreamer] 插件的名字要和GST_PLUGIN_DEFINE匹配
- More fragrant open source projects than Ruoyi in 2022
- It is enough for MySQL to have this article (37k words, just like Bojun!!!)
- It's time to have to learn English, give yourself multiple paths
- 图形镜像对称(示意图)
- 839. Simulated heap
- 4、nerf(pytorch)
- PyCharm使用教程(较详细,图+文)
猜你喜欢

分布式事务之 Seata框架的原理和实战使用(三)
![[Image detection] Research on cumulative weighted edge detection method based on grayscale image with matlab code](/img/c1/f962f1c1d9f75732157d49a5d1d0d6.png)
[Image detection] Research on cumulative weighted edge detection method based on grayscale image with matlab code

429. N 叉树的层序遍历(两种解法)

Redis学习

Teach you to completely uninstall MySQL

HCIP-第九天-BGP(边界网关协议)

2022年SQL大厂高频实战面试题(详细解析)

MySQL 灵魂 16 问,你能撑到第几问?

Difference between cookie and session

2022 SQL big factory high-frequency practical interview questions (detailed analysis)
随机推荐
CISP-PTE真题演示
倒计数(来源:Google Kickstart2020 Round C Problem A)(DAY 88)
每日练习------输出一个整数的二进制数、八进制数、十六进制数。
坠落的蚂蚁(北京大学考研机试题)
[其他] DS5
[Koltin Flow (2)] The end operator of the Flow operator
839. Simulated heap
MySQL 有这一篇就够(呕心狂敲37k字,只为博君一点赞!!!)
子查询作为检索表时的不同使用场景以及是否需要添加别名的问题
My first understanding of MySql, and the basic syntax of DDL and DML and DQL in sql statements
Redis学习
Teach you how to design a CSDN system
PyCharm usage tutorial (more detailed, picture + text)
MySQL的存储过程
解决phpstudy无法启动MySQL服务
【飞控开发基础教程9】疯壳·开源编队无人机-PWM(电机控制)
[GO语言基础] 一.为什么我要学习Golang以及GO语言入门普及
最新版MySQL 8.0 的下载与安装(详细教程)
[Mysql] CONVERT函数
分布式事务之 Seata框架的原理和实战使用(三)