高维张量运算应用—卷积层的反向求导

来源:互联网 发布:linux exit 头文件 编辑:程序博客网 时间:2024/06/07 06:22

高维张量运算应用—卷积层的反向求导


一般形式的张量

  所谓张量,不考虑物理意义,仅在形式上来看,是一个n阶的量ai1i2i3...in,张量积有以下特殊形式:
  n=0时是标量。
  n=1时是向量(矢量)。
  n=2时是矩阵。
  n更高时是高维张量。
  
  在tensorflow中可以用tensor定义张量。
  


一般形式的张量积

  以下用I,J,K表示下标集合(可以为空),i,j,k为下标。
  关于张量积,cIK=aIJbJK,表示cIK=ΣJaIJbJK,张量积有以下特殊形式:
  c=aibi,对应向量点积c=aTb
  cI=aIbI,对应张量的按元素积c=ab
  cIJ=aIbJ,对应张量的张量积c=ab
  cik=aijbjk,对应矩阵乘法c=ab
  
  在tensorflow中可以用einsum(‘ij,jk->ik’,a,b)定义张量乘法,前一个字符串指定了求和方式。


利用张量积运算推导张量导数

  用张量积运算推导高维量的推导相比矩阵运算推导,处理维度更加方便清晰,下面以矩阵,向量运算,统一用张量进行推导:
  
  d(AB)dt=d(AijBjk)dt=AijdBjk+BjkdAijdt=AdBdt+dAdtB
  d(aTx)=d(aixi)dxk=d(aixi)dxi=ai=a
  d(Wx)da=d(Wijxj)dxk=d(Wikxk)dxkl=Wij=W


利用张量积运算推导卷积层的反向求导

  用张量积运算推导高维量的推导相比矩阵运算,更加清晰,不易错。
  
  下面假设卷积层y=xw,即yij=Σklxi+k,j+lwkl
  下面用张量运算推导卷积层的反向求导:
  那么yijxkl=wik,jl,进而Lxkl=Lyijyijxkl=wik,jlLyij=Lyijw,其中wij=wi,j

原创粉丝点击