李沐机器学习第三节——矩阵计算(导数)

本文探讨了矩阵计算在机器学习和深度学习中的应用,包括向量的导数概念,如梯度和不同变量形状下的导数形式。同时,介绍了自动求导的基本原理和两种模式,即计算图和链式法则,并通过示例解释了正向和反向传播在计算导数中的作用。最后,提到了在实际计算中如何处理向量和矩阵的求导问题,特别是在批量数据处理中的策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import torch
x = torch.arange(4.0)
x.requires_grad_(True)#等价于x = torch.arange(4.0,requires_grad=True)
x.grad #默认值是None

#现在计算y
y = 2*torch.dot(x,x)

目录

矩阵求导

函数不可微时怎么办?——(将导数拓展到不可微的函数) 亚导数

将导数拓展到向量(要搞清“形状”)

y是标量,x是向量

y是向量,x是标量

y是向量,x也是向量,导数是一个矩阵。

总结

向量链式法则——从标量链式法则扩展

自动求导——计算一个函数在指定值上的导数

自动求导的实现原理——计算图

自动求导的两种模式

代码实现


矩阵求导

函数不可微时怎么办?——(将导数拓展到不可微的函数) 亚导数

 

将导数拓展到向量(要搞清“形状”)

梯度——梯度指向值变化最大的方向,梯度向量与等高线正交(表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。假设一个函数值y由多个参数x确定,那么在每一个参数维度下,都有y随着这个x的变化而变化,这个变化率就是y关于x的偏导,这个变化率也成为一个函数,我们能找到一些参数使得这个函数找到最优解,同理对于其他的x也一样。假设这个变化率函数用向量来表示,那么所有向量之和得到的,就是函数y关于所有变量的梯度,我们要找到所有参数使得这个梯度最优。

(y是标量,x是标量,导数也是标量;

y是标量,x是向量/y是向量,x是标量,导数是向量;

y是向量,x也是向量,导数是一个矩阵。)

矩阵求导有两种布局,分子布局(numerator layout)和分母布局(denominator layout)。

为了阐明这两种布局的区别,我们先来看最简单的求导规则。

首先是向量 y对标量 x求导,我们假定所有的向量都是列向量,

y是标量,x是向量

函数举例:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值