【动手学深度学习】3.矩阵计算及其自动求导含义和简单实现

前言

这几天一直在看B站王木头的视频,仔细阐述了我最初认识神经网络的遇到的但是好像没人在意的问题,讲得非常棒。


矩阵的求导运算

对于机器学习或者是说深度学习来讲,所有的优化模型的求解都是通过求导数来进行的。
先来回忆一下标量的求导
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

标量 y 对 n 维列向量 x=(x1,x2,⋯,xn)T 求导,其结果还是一个 n 维列向量。
标量 y 对 n 维行向量 xT=(x1,x2,⋯,xn) 求导,其结果还是一个 n 维行向量。
形状规则:标量 y 对向量 x 的每个元素求导,然后将各个求导结果按向量 x 的形状排列。
原文地址:https://www.cnblogs.com/yanghh/p/13756471.html

在这里插入图片描述
在这里插入图片描述


向量链式法则

在这里插入图片描述
标量求导转换到向量尤其要注意形状。
在这里插入图片描述
在这里插入图片描述
L2归一化:将一组数变成0-1之间。pytorch调用的函数是F.normalize。
几种范数的解释 l0-Norm, l1-Norm, l2-Norm, … , l-infinity Norm
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


自动求导代码实现

在这里插入图片描述
在我们计算y 关于 x 的梯度之前,我们需要一个地方存储它,
在这里插入图片描述
现在我们来计算 y
在这里插入图片描述
通过调用反向传播函数来自动计算 y 关于 x 每个分量的梯度
在这里插入图片描述
现在我们计算 x 的另一个函数
在这里插入图片描述

深度学习中 ,我们的目的往往不是计算微分矩阵,而是批量中每个样本单独计算的偏导数之和
在这里插入图片描述
将某些计算移动到记录的计算图之外
在这里插入图片描述
即使构建函数的计算图需要通过Python控制流(例如,条件、循环或任意函数调用),我们仍然可以计算得到的变量的梯度
在这里插入图片描述


突然意识到自己都是贴的图片,应该把代码放上来 本文源代码 lesson03 链接:https://pan.baidu.com/s/1tj6qHFFuQ1GmVuWzwS1TLw 提取码:d2lc
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值