链式法则和自动求导

向量链式法则

说明:

1.第一个式子, y是标量,u是标量,x是n维向量

2.第二个式子,y是标量,u是k维向量,x是n维向量,所以y对u求导是k维的行向量,u对x求导是k行n列的矩阵(u在分母,所以有k行)

3.同上

例1

说明:

1.a对w的导数:a是x与w的内积,<x,w> = xTw,即x的转置乘以w,所以就是xTw对w求导,得到xT

 例2

说明:

1.L2范数的定义是向量元素平方和的平方根

2.向量a对向量a本身求导,是一个主对角线为1的矩阵(根据向量对向量求导的定义可知)

自动求导

  • 自动求导计算一个函数在指定值上的导数
  • 它有别于
    • 符号求导

                

  • 数值求导

                                

计算图

  • 将代码分解成操作分子
  • 将计算表示成一个无环图

  • 显示构造
    • Tensorflow/Theano/MXNet

  • 隐式构造
    • Pytorch/MXNet

\

自动求导的两种模式

例1

反向累计总结

  • 构造计算图
  • 前向:执行图,存储中间结果
  • 反向:从相反方向执行图
    • 去除不需要的枝

                

复杂度

  • 计算复杂度:O(n),n是操作子个数
    • 通常正向和反向的代价类似
  • 内存复杂度:O(n),因为需要存储正向的所有中间结果
  • 跟正向累计对比:
    • O(n)计算复杂度用来计算一个变量的梯度
    • O(1)内存复杂度
  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值